2014-09-25 89 views
0

此代码需要大量(400)标记列表并将其添加到地图中,最后显示包含所有标记的整个地图。第一次显示地图后的Google地图API地理位置

我试图实现的是:当地理位置可用时,将地图放置在位置上,放大到16级并刷新地图以显示它,否则,让整个大地图显示...我已阅读并尝试了很多不同的东西,但地图定位必须在创建地图之前之前。我想在之后做到这一点。我告诉你我在这里的代码和临时链接到工作现场:http://studioteknik.co/brasseursillimites.com/detaillants/

function initialize() 
{ 
    var map = new google.maps.Map(document.getElementById('map-canvas')); 
    var bounds = new google.maps.LatLngBounds(); 
    var infowindow = new google.maps.InfoWindow(); 

    for (var i in locations) { 

     var p = locations[i]; 
     var latlng = new google.maps.LatLng(p[1], p[2]); 
     bounds.extend(latlng); 

     var marker = new google.maps.Marker({ 
      position: latlng, 
      map: map, 
      title: p[0] 
     }); 

     google.maps.event.addListener(marker, 'click', function() { 
      infowindow.setContent(this.title); 
      infowindow.open(map, this); 
     }); 
    } 

    map.fitBounds(bounds); 
} 

google.maps.event.addDomListener(window, 'load', initialize); 
+0

1.什么不起作用? 2.在你的问题中,我看不到有关地理定位的代码。 – MrUpsidown 2014-09-25 08:30:02

+0

我已经添加的所有代码,请求地理位置,但不刷新页面,所以我删除它! – menardmam 2014-09-25 17:46:59

回答

0

这里是地理位置的一个简单的例子。只需在地图对象创建后的任意位置添加地理位置代码即可。如果用户不允许地理定位,地图将显示在默认位置/缩放级别。

function initialize() { 

    var mapOptions = { 
     zoom: 10, 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     center: new google.maps.LatLng(0,0) 
    }; 

    var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions); 

    // Geolocation code 
    if (navigator.geolocation) { 

     navigator.geolocation.getCurrentPosition(function (position) { 

      map.panTo(new google.maps.LatLng(position.coords.latitude, position.coords.longitude)); 
      map.setZoom(16); 
     }); 
    } 
} 

initialize(); 

JSFiddle demo