如何在Google Maps API中的完全相同的坐标处渲染多个标记?

时间:2013-01-09 23:29:57

标签: google-maps google-maps-api-3 google-maps-markers pushpin overlapping-matches

我在同一条街上有多个地址,门牌号相同,但公寓号不同。谷歌地图地理编码服务(v2)并没有降低到许多地址的公寓级精度,只是为我们返回了完全相同的地理编码坐标。

所以问题在于,当我去显示它们时,无论你放大多少,都只会显示一个图钉。我的问题是;什么是在完全相同的房屋地址渲染多个图钉的好方法?我已经看到了craigslist.org如何在他们的新地图功能上创建了一个螺旋形的螺旋线,但我想知道我的其他选择是什么,因为这似乎是最好的解决方法。

想法?

2 个答案:

答案 0 :(得分:0)

我使用Google's dynamic chart icons解决了这个问题,它允许您在引脚中放置一个数字,以确定在这个确切的某个点上有多个标记。基本上,您使用一些查询参数调用他们的“图表”网址,然后他们会将您的编号图标返回给您,然后您可以将其放置/设置在该位置的现有标记中。

var markerImage = createMarkerImage(numDuplicates + 1);
existingMarker.setIcon(markerImage);

function createMarkerImage(text)
{
    var pinImage = new google.maps.MarkerImage("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=" + text + "|FF8985|000000",
    new google.maps.Size(21, 34),
    new google.maps.Point(0,0),
    new google.maps.Point(10, 34));
    return pinImage;
}

注意:此解决方案使用已弃用的Google API,但未发布结束日期。

  

“重要提示:Google Chart Tools的图片图表部分已经过了   自2012年4月20日起正式弃用。它将继续有效   根据我们的弃用政策。“


更新:
我已经放弃了上述解决方案,因为它已被弃用(并且对许多标记具有性能影响)在编号标记的相同末端效果的leiu中,但是使用以标记的形状定义多边形的坐标路径以及{ {1}}用于标记阴影。我使用自己的自定义标记的唯一原因是因为我需要创建单独的标记,每个标记都具有独特的颜色(可能还有嵌入的数字),而香草标记不支持这些标记。

答案 1 :(得分:0)

@johntrepreneur:我可以问你如何检查同一个纬度/经度是否已有标记? BTW:标记的阴影已被删除。