javascript - JQuery 和 Google map API 问题

标签 javascript jquery google-maps object google-maps-api-3

我目前正在开发一个网络应用程序,该应用程序每 10 秒更新一次谷歌地图标记。我从数据库获取经纬度坐标,然后将它们加载到这样的对象中:

然后我发出ajax请求

var da = JSON.parse(data);

然后循环遍历所有结果:

$.each(da, function(idx, obj) {
  var latLng = new google.maps.LatLng(obj.Lat, obj.Longitude);
  markers[obj] = new google.maps.Marker({position: latLng,map: map});
});

但稍后在代码中我尝试执行此操作时遇到问题:

markers[obj].setPosition(latLng);

它没有将标记移动到新位置,我错过了什么吗?

“markers[]”对象是全局声明的。

最佳答案

在每个循环内,markers[obj] 应该是 markers[idx]

在循环之外,改变

  • 标记[obj].setPosition(latLng);
  • 标记[idx].setPosition(latLng);

假设您在第二个循环中有该行,并像以前一样命名该循环的第一个参数idx

您的代码

$.each(da, function(idx, obj) {
  var latLng = new google.maps.LatLng(obj.Lat, obj.Longitude);
  markers[obj] = new google.maps.Marker({position: latLng,map: map});
});

......

markers[obj].setPosition(latLng);

建议更改

$.each(da, function(idx, obj) {
  var latLng = new google.maps.LatLng(obj.Lat, obj.Longitude);
  markers[idx] = new google.maps.Marker({position: latLng,map: map});
});

......

markers[idx].setPosition(latLng);

关于javascript - JQuery 和 Google map API 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27680744/

相关文章:

javascript - 使用 greasemonkey 脚本生成链接

javascript - PhotoSwipe:编辑 parseThumbnailElements 函数以解析附加标记元素

jquery - 使图像从右到左重新调整大小

ios - 在 iOS 应用程序中加载谷歌地图的高内存使用率

javascript - 如何从 Google map JavaScript 地理编码器回调返回变量?

java - 如何从数据库访问所有用户?

javascript - 通过 jQuery 添加的脚本标签在 FireBug 中不可见

javascript - Jquery选择器下一个元素

javascript - Rails 5 Bootstrap 3 模态/Ajax 不工作

javascript - jQuery 更多和更少