Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在对象中使用谷歌地图标记?_Javascript_Arrays_Google Maps_Object_Google Maps Markers - Fatal编程技术网

Javascript 如何在对象中使用谷歌地图标记?

Javascript 如何在对象中使用谷歌地图标记?,javascript,arrays,google-maps,object,google-maps-markers,Javascript,Arrays,Google Maps,Object,Google Maps Markers,我有一个数组“markerGroups”,定义如下: var markerGroups = {"foo": [], "bar": [], "foobar": []}; var markerGroups = {"foo": {}, "bar": {}, "foobar": {}}; 此数组用于存储Google地图中的所有标记。如你所见,我有三个类别来存储标记。一个标记将只存在于一个类别中,而不会存在于任何其他类别中。 每个标记也由唯一的ID标识,例如,ID可以是1422 现在我想将标记添加到这

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

var markerGroups = {"foo": [], "bar": [], "foobar": []};
var markerGroups = {"foo": {}, "bar": {}, "foobar": {}};
此数组用于存储Google地图中的所有标记。如你所见,我有三个类别来存储标记。一个标记将只存在于一个类别中,而不会存在于任何其他类别中。 每个标记也由唯一的ID标识,例如,ID可以是1422

现在我想将标记添加到这个组中,这样我就可以通过执行以下操作来达到它

console.log(markerGroups.foo[1422]);
即使这是该类别中唯一的标记。我还必须能够将其从类别中完全删除

我试图通过如下定义标记组来实现这一点:

var markerGroups = {"foo": [], "bar": [], "foobar": []};
var markerGroups = {"foo": {}, "bar": {}, "foobar": {}};
这一行位于一个函数中,其中标记被定义为marker,类别被传递到函数中,告诉函数在哪里存储标记

markerGroups[category][marker.ID] = marker;
这非常有效,除了标记现在不会出现在我的地图上


你知道为什么或者如何更好地完成吗?

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

控制标记是否显示在地图上的唯一方法是通过其setMap()函数。因此,请检查您的代码,并查看您是否调用setMap(您的_映射)来获取要在映射上显示的标记。还要记住,为了显示标记,必须设置一些属性(例如位置)

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


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

您没有提供足够的细节来说明为什么
markerGroups[category][marker.ID]=marker不会显示在地图上。没有任何区别会阻止它工作。我忽略了我有一个markerclusterer(这里的问题实际上是它),因为我认为这个问题与我试图使用对象而不是“干净”数组有关。你的回答引导我走向正确的方向,也让我相信物体应该工作得很好。谢谢