在Mapquest地图中堆栈地图指针/图标

时间:2014-05-12 17:18:05

标签: mapquest

我正在使用mapquest API和开源数据。

我的图标遍布世界各地,但有些图标在一起,即在伦敦有几处。

有没有办法证明某个位置有多个标记?目前它们正在消失,直到你放大一点,但没有任何迹象表明有理由放大!

任何想法都赞赏, 谢谢 戴夫

更新:由于没有任何声誉,我无法回答我自己的问题,所以这是我最终在手册中找到的答案:

我正在寻找的技术叫做POI Decluttering: http://developer.mapquest.com/web/documentation/sdk/javascript/v7.0/poi#declutter

它并不是特别漂亮,但它确实解决了这个问题。

复制此处以供参考:

/*Construct the POIs and set automatic decluttering for each.*/
var declutter1=new MQA.Poi( {lat:39.743943, lng:-105.020089} );
declutter1.setDeclutterMode(true);

var declutter2=new MQA.Poi( {lat:39.743943, lng:-105.020089} );
declutter2.setDeclutterMode(true);

var declutter3=new MQA.Poi( {lat:39.753012, lng:-105.018542} );
declutter3.setDeclutterMode(true);

/*This will add the POIs to the map in the map's default shape collection.*/
map.addShape(declutter1);
map.addShape(declutter2);
map.addShape(declutter3);

1 个答案:

答案 0 :(得分:1)

您还可以更改每个连续Poi的偏差,以便更好地控制它们的显示方式。这需要您跟踪所有重复项以及在同一位置有多少重复项。

declutter1.setBias({x:0, y:12});

对于我的应用程序,每次重复时,我只更改y偏差12。位置上的第二个Poi设置y = 12,第三个y = 24,等等。这将POI堆叠在彼此之下,但您可以自定义最适合您应用的方式。

由您决定什么是重复点。如果您只使用lat / lon,则上面的第三个点不会包含在堆栈中,因为它没有完全相同的值。