1

我有一个这样定义的数组“markerGroups”:

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

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

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

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

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

我试图通过定义这样的markerGroups来实现这一点:

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

这一行在一个函数中,其中标记被定义为标记,并且类别被传递到函数中,告诉函数将标记存储在哪里。

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

这很好用,除了标记现在不会出现在我的地图中。

任何想法为什么或如何以更好的方式完成?

4

1 回答 1

2

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

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

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

当然,这是理论上的观点,如果你做了这一切,仍然不行,你必须提供一些额外的细节和代码。

于 2012-10-04T08:35:32.903 回答