使用google maps v3找到用户位置

时间:2013-12-21 14:58:15

标签: javascript jquery google-maps google-maps-api-3

这里我有一个为用户显示地点的代码,但我想根据用户位置显示地点。

如何获取用户的位置并在地图上显示?

我有:

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places"></script>
    <script>

function initialize() {

  var markers = [];
  var map = new google.maps.Map(document.getElementById('map-canvas'), {
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });

  var defaultBounds = new google.maps.LatLngBounds(
      new google.maps.LatLng(-33.8902, 151.1759),
      new google.maps.LatLng(-33.8474, 151.2631));
  map.fitBounds(defaultBounds); ... ... ... etc.

我尝试添加传感器:true,但它不起作用。

有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

您可以尝试使用浏览器的内置地理定位服务(使用W3C地理定位标准)对您的用户进行地理位置定位,因此所有支持HTML5的浏览器都应支持此功能。

您可以在Google Maps JavaScript API v3文档中复制和粘贴代码,例如:https://developers.google.com/maps/documentation/javascript/examples/map-geolocation

(顺便提一下,传感器参数告诉Google您正在使用传感器来确定位置;它本身并不充当传感器。)

答案 1 :(得分:1)

包含此项以在当前坐标处找到地图中心:

  if(navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
      var pos = new google.maps.LatLng(position.coords.latitude,
                                       position.coords.longitude);

      var infowindow = new google.maps.InfoWindow({
        map: map,
        position: pos,
        content: 'Here you are.'
      });

      map.setCenter(pos);
    });
  }