【问题标题】:google map set new marker position and panTo谷歌地图设置新的标记位置和panTo
【发布时间】:2014-03-28 20:32:17
【问题描述】:

我正在尝试修改现有主题的 js,以便能够在地图上显示不同的位置。 这是原始代码:

function initialize() {
    var map;
    var brooklyn = new google.maps.LatLng(parseFloat("<?php echo $coordinates[0]; ?>"), parseFloat("<?php echo $coordinates[1]; ?>"));
    var stylez = [{
        featureType: "all",
        elementType: "all",
        stylers: [{
                saturation: -100
            } // <-- THIS
        ]
    }];

    var mapOptions = {
        zoom: parseInt("<?php the_field("google_map_zoom_level"); ?>"),
        center: brooklyn,
        mapTypeControlOptions: {
            mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'tehgrayz']
        }
    };

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

    var mapType = new google.maps.StyledMapType(stylez, {
        name: "Grayscale"
    });
    map.mapTypes.set('tehgrayz', mapType);
    map.setMapTypeId('tehgrayz');
    marker = new google.maps.Marker({
        title: "<?php echo $map["
        address "]; ?>",
        position: new google.maps.LatLng(parseFloat("<?php echo $coordinates[0]; ?>"), parseFloat("<?php echo $coordinates[1]; ?>")),
        map: map
    });
}
initialize();
 //google.maps.event.addDomListener(window, 'load', initialize);
}

我还设法使用各种教程创建了一个将标记移动到新位置的函数。

function changeMarkerPos(lat, lon){
    myLatLng = new google.maps.LatLng(lat, lon);
    marker.setPosition(myLatLng);
    map.panTo(myLatLng);
}

但是,尽管标记确实移动了,但地图并没有按照我的意愿居中。谁能帮我吗?我对js不太好,所以请保持简单...

谢谢!!!

【问题讨论】:

    标签: javascript google-maps google-maps-markers


    【解决方案1】:

    您需要全局声明 map 变量。函数 changeMarkerPos 当前不能使用它。

    var map;
    function initialize() {
        var brooklyn = new googl............
    

    编辑 - 这次不会有任何区别。 setCenter() 很有用,但不是您问题的答案。

    本周早些时候我正在做类似的事情并使用了 map.setCenter();这个呢:

    function changeMarkerPos(lat, lon){
        myLatLng = new google.maps.LatLng(lat, lon);
        marker.setPosition(myLatLng);
        map.panTo(myLatLng); 
        map.setCenter(myLatLng);    
    }
    

    【讨论】:

    • 不..还是什么都没有..标记移动,地图没有....到目前为止花了 2 个小时来解决这个问题...
    • ...移动你的“var map;”从初始化函数中取出变量并像在我的 jsfiddle 中一样全局声明它:jsfiddle.net/n34_panda/cc2V3 看看是否有效。请标记为已回答
    • 太好了,只是时不时需要多一双眼睛!
    猜你喜欢
    • 1970-01-01
    • 2015-10-18
    • 1970-01-01
    • 2016-03-07
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-22
    相关资源
    最近更新 更多