gpt4 book ai didi

bing-maps - 如何使用 Bing map 防止同一地理位置的图钉重叠?

转载 作者:行者123 更新时间:2023-12-02 22:48:37 28 4
gpt4 key购买 nike

如果您在同一地理位置有“伦敦”上的 2 个图钉,API 中是否有任何内容可以将它们分开以使它们都可见?

我只能找到有关具有 PreventIconCollisions 功能的旧 map 点 API 的文档,这就是我想要的,但在新 API 中看不到任何对此的引用。

我正在使用 JavaScript API。

最佳答案

所以,如果我理解正确的话,您在同一位置有类似的信息,这是正确的吗?

为了显示这两种信息,您有两种选择:

  1. 使用适当的方式合并文本框中的信息,以呈现此 ui 元素内的信息(例如使用您自己的选项卡式信息框)
  2. 在达到一定缩放级别时手动对点进行分簇

没有默认属性来设置它,并且在许多图钉上执行此操作确实很困惑,但在主要思想中,您必须:检测 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 map 模块,但事实上,您必须获取集群图钉(或您自己的具有两个关联数据对象的图钉),然后您必须设置它们的位置基于客户端的渲染。

关于bing-maps - 如何使用 Bing map 防止同一地理位置的图钉重叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9906120/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com