使用setPosition更改位置时,Google标记消失

时间:2016-08-19 12:07:04

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

我有一个简单的谷歌地图,我正在创建一个带有标记的简单地图,代码如下:

        var mapElement = document.getElementById('hr-map');
        // Create the Google Map using our element and options defined above
        var map = new google.maps.Map(mapElement, mapOptions);
        // Let's also add a marker while we're at it
        var marker = new google.maps.Marker({
            position: new google.maps.LatLng(25.098353, 55.156124),
            map: map,
            title: 'HR',
            scrollwheel: false,
            icon: 'images/res/map-marker.png'
        });

现在我想做的就是将标记从地图中心移动到中心下方的某个地方,我用Google搜索并查看以下两个链接,一个是SO问题,小提示演示更改标记位置。

FIDDLE HERE

SO THREAD

现在我使用了小提琴和SO线程中使用的相同代码行,并编写了以下代码行:

    marker.setPosition(google.maps.LatLng(25.098353, 55.156124));

但是添加上面的代码行实际上会使整个标记消失。所以现在我的代码如下所示:

        var mapElement = document.getElementById('dynamic-hr-map');
        // Create the Google Map using our element and options defined above
        var map = new google.maps.Map(mapElement, mapOptions);
        // Let's also add a marker while we're at it
        var marker = new google.maps.Marker({
            position: new google.maps.LatLng(25.098353, 55.156124),
            map: map,
            title: 'Dynamic HR',
            scrollwheel: false,
            icon: 'images/res/map-marker.png'
        });

        marker.setPosition(google.maps.LatLng(25.098353, 55.156124)); 

那么为什么我的标记首先消失了?这有什么解决方案吗?

1 个答案:

答案 0 :(得分:3)

您缺少新关键字。在使用之前,您需要创建一个新的LatLng对象实例。

    marker.setPosition(new google.maps.LatLng(25.098353, 55.156124));