首次显示地图后,Google地图API地理位置

时间:2014-09-25 03:31:08

标签: google-maps-api-3 geolocation

此代码采用(400)标记的大列表并将其添加到地图中,最后,它显示包含所有标记的整个地图。

我试图实现的是:当地理位置可用时,将地图置于中心位置,缩放到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);

1 个答案:

答案 0 :(得分: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