如果你在同一个地理位置的'伦敦'上有2个图钉,API中是否有任何东西将它们分开以便它们都可见?
我只能找到有关PreventIconCollisions的旧地图点API的文档,这是我想要的,但在新API中看不到任何对此的引用。
我正在使用JavaScript API。
答案 0 :(得分:0)
因此,如果我理解正确,您在同一位置有类似的信息,这是正确的吗?
为了显示这两种信息,您将有两个选择:
没有默认属性来设置它,在许多图钉上执行此操作会非常麻烦,但在主要想法中,您必须:检测viewchangeend事件,如果您处于某个缩放级别(或更高的缩放级别)然后你正在对它们进行去模糊(我把它称为附近的图钉)。
// Bind pushpin mouseover.
Microsoft.Maps.Events.addHandler(pin, 'mouseover', function (e) {
var currentPin = e.target;
currentPin.setOptions({ visible: false });
var currentLocation = currentPin.getLocation().clone();
var currentPoint = bmGlobals.geo.map.tryLocationToPixel(currentLocation);
if (currentPin.associatedCluster.length == 2) {
// Display the first pushpin
var pinA = createPin(currentPin.associatedCluster[0]);
var locA = bmGlobals.geo.map.tryPixelToLocation(new Microsoft.Maps.Point(currentPoint.x - pinA.getWidth(), currentPoint.y));
pinA.setLocation(locA);
bmGlobals.geo.layerClusteredPin.push(pinA);
// Display the second pushpin
var pinB = createPin(currentPin.associatedCluster[1]);
var locB = bmGlobals.geo.map.tryPixelToLocation(new Microsoft.Maps.Point(currentPoint.x + pinB.getWidth(), currentPoint.y));
pinB.setLocation(locB);
bmGlobals.geo.layerClusteredPin.push(pinB);
}
});
我将尝试编写一个关于此的bing maps模块,但事实上,你必须得到你的集群图钉(或你自己的图钉有两个相关的数据对象),然后你将不得不设置他们的位置基于客户端的渲染。
答案 1 :(得分:0)
我知道这个问题真的很旧,但是如果有人在寻找类似的东西(聚集引脚),这是一个好的开始:http://rtsinani.github.io/PinClusterer/