我正在使用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/

10-12 05:33