【问题标题】:how to center the map on current user location (geolocation如何使地图以当前用户位置为中心(地理位置
【发布时间】:2012-10-18 00:11:19
【问题描述】:

我有这段代码,我想以用户位置为中心,因为现在它以我拥有的坐标为中心(在丹麦哥本哈根上方)并且它已修复。我需要让我的代码使地图以用户位置为中心并显示其周围的点

function initialize() {

var locations = [
    ['kastelet', 55.6911, 12.5939],
    ['norebro', 55.6883, 12.5597],
    ['noreport', 55.6832, 12.5714],
    ['edisikvosi', 55.678272, 12.503643,],
    ['Sentosa', 55.713207, 12.526474,]
    ];

var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 12,
    center: new google.maps.LatLng(55.6750, 12.5687),
    mapTypeId: google.maps.MapTypeId.ROADMAP
});

var infowindow = new google.maps.InfoWindow();

var marker, i;

for (i = 0; i < locations.length; i++) {
    marker = new google.maps.Marker({
        position: new google.maps.LatLng(locations[i][1], locations[i][2]),
        map: map
    });

    google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
            infowindow.setContent(locations[i][0]);
            infowindow.open(map, marker);
        }
    })(marker, i));
}

// Check if user support geo-location
if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
        var latitude = position.coords.latitude;
        var longitude = position.coords.longitude;
        var geolocpoint = new google.maps.LatLng(latitude, longitude);

        var mapOptions = {
            zoom: 8,
            center: geolocpoint,
            mapTypeId: google.maps.MapTypeId.HYBRID
        }
        // Place a marker
        var geolocation = new google.maps.Marker({
            position: geolocpoint,
            map: map,
            title: 'Your geolocation',
            icon: 'http://labs.google.com/ridefinder/images/mm_20_green.png'
        });
    });
}
}
google.maps.event.addDomListener(window, 'load', initialize);​

【问题讨论】:

    标签: javascript geolocation location point


    【解决方案1】:

    使用map.setCenter

     .....
     navigator.geolocation.getCurrentPosition(function(position) {
            var latitude = position.coords.latitude;
            var longitude = position.coords.longitude;
            var geolocpoint = new google.maps.LatLng(latitude, longitude);
              map.setCenter(geolocpoint );//line added for setting center
    ......
    

    【讨论】:

    • 嗨,谢谢你的回答,你能告诉我把它放在哪里以及从我的代码中删除什么。很抱歉很厚脸皮,但我现在正在学习,我对代码的理解很差:/
    • 看评论我只加了一行。我从您的代码中复制的其他代码只是为了显示位置
    • 嗨,我有一个新问题,似乎我不能添加超过 5 个标记,当我添加第六个标记时,代码找不到我的位置有什么建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多