如何在对象中使用Google Maps标记?

时间:2012-10-03 21:53:26

标签: javascript arrays google-maps object google-maps-markers

我有一个数组“markerGroups”定义如下:

var markerGroups = {"foo": [], "bar": [], "foobar": []};

此数组用于存储Google地图中的所有标记。如您所见,我有三个类别,我存储标记。一个标记只存在于一个类别中,并且永远不会存在于任何其他类别中。 每个标记也由唯一ID标识,例如ID可以是1422。

现在我想以这样一种方式将标记添加到该组中,例如我可以通过这样做来实现

console.log(markerGroups.foo[1422]);

即使那是该类别中唯一的标记。我还必须能够完全从类别中删除它。

我试图通过定义这样的markerGroup来实现这一目标:

var markerGroups = {"foo": {}, "bar": {}, "foobar": {}};

此行在一个函数中,标记被定义为标记,类别被传递到函数中,告诉函数存储标记的位置。

markerGroups[category][marker.ID] = marker;

除了标记现在不会出现在我的地图中之外,这种方法非常出色。

任何想法为什么或如何以更好的方式做到这一点?

1 个答案:

答案 0 :(得分:1)

标记是简单的JS对象,可以像任何JS对象一样进行操作。

如果在地图上显示标记,唯一可以控制的方法是通过它的setMap()函数。因此,请查看您的代码,看看是否为要在地图上显示的标记调用setMap(your_map)。另外请记住,为了显示标记,必须设置一些属性(例如位置)。

所以,不要担心简单的JS对象操作,只要它被正确初始化,它就不会与Marker可见性交互。

当然,这是一个理论观点,如果你已经完成了所有这些并且它仍然不起作用,你必须提供一些额外的细节和代码。