我正在使用v7 javascript Bing Maps API!
我有一个包含PushPins的EntityCollection。我想从地图的当前视口或从map.getTargetBound()中获取所有PushPins?
我有这样的东西,其中Geocode.pinLayer是EntityCollection对象,并且我已经向PushPins对象添加了id属性。不幸的是,pushPin.getVisible()仅检查图钉是否在地图上,而不是在视口中:
`var visiblePins = [];
for(var i=0; i<Geocode.pinLayer.getLength(); i+=1){
if(Geocode.pinLayer.get(i).getVisible()){
visiblePins.push(Geocode.pinLayer.get(i).id);
}
}
return visiblePins;`
:)
最佳答案
除非我误解了您的问题,否则这应该非常容易。
获取当前地图视图(端口):Map.getBounds()。您将获得一个LocationRect对象。我们称之为LocationRectViewPort
。
获取图钉的位置:Pushpin.getLocation()。您将获得一个Location对象。我们称之为PushPinLocation
。
查看PushPinLocation
是否在LocationRectViewPort
内部。使用LocationRect.contains(),例如:
if(LocationRectViewPort.contains(PushpinLocation))
{
// Do stuff
}
关于javascript - 过滤EntityCollection以仅从map.targetBounds获得可见的PushPins?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16148733/