【问题标题】:How to dynamically change the centre of a google maps without erasing markers?如何在不擦除标记的情况下动态更改谷歌地图的中心?
【发布时间】:2012-09-15 07:15:17
【问题描述】:

最初,我的地图会指向用户的当前位置。我提供了一个选项,他可以从自动完成框中选择一个城市,一旦他从自动完成中选择了新位置,我将获得一个新的(纬度,经度)坐标,我想将地图聚焦到该坐标上。

根据我对 Maps API 的了解,我可以将其视为更改中心(但是,中心仅在加载地图时设置)。我想将此重点放在谷歌地图上用户选择的位置上。有人可以帮我吗。提前致谢。使用谷歌地图 js api v3。

【问题讨论】:

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


    【解决方案1】:

    您可以使用map.setCenter(LatLng) 简单地移动地图。此方法不会使用任何其他标记,也不会擦除现有标记。您还可以通过panTo(LatLng) 函数移动地图。地图初始化后,这两种方法都可以使用。

    Here is the documentation for these methods.

    【讨论】:

    • panTo()setCenter 更好,它为您提供动画。它很有用,因为客户不会像使用setCenter时那样头疼。
    【解决方案2】:

    jOnes是对的,你需要使用setCenter()

    function initialize()
    {
        var mapDiv = document.getElementById('MapDiv');
        var map;
        var address = "Vilnius, Lithuania";
        var geocoder = new google.maps.Geocoder();
        // Get LatLng information by name
        geocoder.geocode({
            "address": address
            }, function(results, status){
                    map = new google.maps.Map(mapDiv, {
                    // Center map (but check status of geocoder)
                    center: results[0].geometry.location,
                    zoom: 8,
                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                })
            });
    }
    

    【讨论】:

    • 感谢您的示例老兄- setCenter 工作;地理编码示例 +1 :)
    • 不客气 :) 地理编码器只是一个提示,以防你想使用它
    【解决方案3】:
    map.setCenter(new google.maps.LatLng(LATITUDE, LONGITUDE));
    

    map.setCenter({lat: LATITUDE, lng: LONGITUDE});
    

    此返回无值

    【讨论】:

    • 当用户单击一个按钮时,我正在调用一个函数,该按钮将使地图以他们的位置为中心。当我尝试你的方法时,我得到 map.setCenter 不是一个函数。
    猜你喜欢
    • 2019-05-24
    • 2019-11-12
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 2019-10-08
    • 2019-01-08
    • 1970-01-01
    • 2012-03-05
    相关资源
    最近更新 更多