如何检查谷歌地图标记是否已经位于标记数组内?
即使在此markersArray.push(marker);
条件(marker in markersArray)
是假的。谷歌地图 - 如何找到标记数组中的标记?
4
A
回答
5
首先,(marker in markersArray)
是因为in
错误不会查找数组中的元素。
它寻找属性。
它为我工作的方式是
for (var i=0; i<markersArray.length; i++) {
if (markersArray[i].getPosition().equals(marker.getPosition())) {
...
这只要工作,因为你需要什么相比只是标记的座标。
我们在这里使用LatLng类的.equals运算符。
2
您应该遍历数组以检查标记。
for (var i=0; i<markersArray.length; i++) {
if (markersArray[i] === marker) {
//doSomething...
break;
}
}
-1
markersArray.indexOf(marker) > -1
+0
林不知道我可以在我的情况下使用它,因为我必须创建一个标记的实例,以便能够比较它,但如果我创建它比实例不能真正在数组中。我想我必须使用'==='运算符。 – Ash 2011-06-01 08:15:02
0
var marker = new google.maps.Marker({
icon:icon,
position: position,
map: map
});
标记有自己的ID。您可以通过
var marker_id = marker.__gm_id;
得到这个ID,然后获取地图
map.Hb.qa[marker_id];
相关问题
- 1. 谷歌地图标记infowindow
- 2. android谷歌地图标记
- 3. 谷歌地图标记DROP
- 4. 谷歌地图标记
- 5. 标记谷歌地图
- 6. 谷歌地图 - 多标记
- 7. 谷歌地图标记
- 8. 标记在谷歌地图
- 9. 谷歌地图API标记
- 10. 谷歌地图 - 多标记
- 11. 谷歌地图:getSelected标记
- 12. RxJS谷歌地图标记
- 13. 角谷歌地图标记
- 14. 谷歌地图标记
- 15. 如何查找标记谷歌地图的坐标
- 16. 谷歌地图标记为Reactjs组件
- 17. 如何启用谷歌地图标记
- 18. 将标记放置到谷歌地图
- 19. 添加ID到谷歌地图标记
- 20. 标记与标签谷歌地图
- 21. 谷歌地图中的多个标记
- 22. 谷歌地图中的多标记
- 23. 谷歌地图与数字标记
- 24. 如何找出哪个标记是从谷歌地图标记数组中点击的
- 25. 在谷歌地图中添加标记谷歌地图反应
- 26. 谷歌地图标记偏离中心
- 27. 谷歌地图不集中于标记
- 28. 从谷歌地图中删除标记
- 29. 从JS数组添加标记到谷歌地图
- 30. 添加图片到谷歌地图标记标题中安卓
@rob标记,所以如果我有,比方说,一个1000个标记在地图上,我平移地图只是一个所以所有的标记仍然应该出现,并且我被告知不要删除并再次添加标记,而是先检查它们是否已经存在,这意味着对于1000个标记中的每一个,我将不得不平均地通过数组的一半。在最坏的情况下,这可能会导致500,000次检查。仅仅删除所有1000个标记然后将它们添加回来不是不那么耗时? – Ash 2011-06-01 07:20:17
我怀疑删除并将它们添加回来会更好,因为该过程有相当多的开销。一种选择,如果你有性能问题,可以将你的标记分开存储在查找表中,这样你就不必迭代了。如果每个标记都有唯一的标识符,则可以将其用作对象中的成员名称。您可以使用其他各种方法来跟踪它们,因为您大概是在自己创建,添加和删除这些标记。 – rob 2011-06-01 07:32:28
@Ash:当地图平移时,是否将标记添加到可见区域并隐藏不可见区域中的标记? – 2011-06-01 07:50:23