如何更新谷歌标记的位置

时间:2012-06-08 13:05:02

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

大家好我需要每隔5秒更新一次谷歌标记位置

我有这个用于在页面加载时绘制谷歌标记的JavaScript代码。

我希望能够每5秒更改一次标记的位置。

这是我的代码:

function initialize() {
  var myOptions = {
    zoom: 4,
    center: new google.maps.LatLng(-25.363882, 131.044922),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };


  var map = new google.maps.Map(document.getElementById('map_canvas'),
      myOptions);

  var image = new google.maps.MarkerImage("images/truck3.png",
        new google.maps.Size(32.0, 37.0),
        new google.maps.Point(0, 0),
        new google.maps.Point(16.0, 18.0)
    );
  var shadow = new google.maps.MarkerImage("images/shadow-truck3.png",
        new google.maps.Size(51.0, 37.0),
        new google.maps.Point(0, 0),
        new google.maps.Point(16.0, 18.0)
    );

  var marker = new google.maps.Marker({
    position: map.getCenter(),
    map: map,
    icon: image,
    shadow: shadow,
    title: 'Click to zoom'
  });

google.maps.event.addDomListener(窗口,'加载',初始化);

如果显示多个标记,我怎么能放多个点呢? 我知道这对你来说可能是微不足道的,但我对此完全陌生。

编辑:

我很抱歉,但谷歌让我感到困惑。所以我接下来要做的是。当页面加载我想要检索并且最后位置的数组和每个位置将具有它们的id,因此php数组将像数组[Lat] [Lng] [id],之后我想在每个位置放置和标记该位置并将其放在屏幕的中央。当用户点击一个标记时,它将自动缩放并开始每秒将标记位置放在中心。而且我需要一个id用于某个标记。

这是一个类似的问题,如果一些java专家可以将这些结合起来以获得我需要的东西,那就太好了

LINK ON THE SIMILAR QUESTION

3 个答案:

答案 0 :(得分:0)

此google.maps.Marker方法允许您更改现有标记的位置:

visit here setPosition(latlng:LatLng)

创建一个标记数组,循环更新它们的位置。

答案 1 :(得分:0)

您可以获得对查询的大量支持GOOGLE MAPS API V3 Documentation

有类似的功能 setCenter(latlng)以运行时间为中心,而setPosition(latlng:LatLng)函数通过这种方式更改标记中心,您可以更改标记运行时的位置。并且为了存储最后的位置,您可以使用数据库并根据您的要求进行更新。

答案 2 :(得分:0)

将此javascript函数添加到您的代码

 $(function () {
        setTimeout(function () { $('#map_canvas').load(initialize); }, 50000);
    })