openlayers矢量特征获取像素位置

openlayers矢量特征获取像素位置,openlayers,Openlayers,获取OpenLayers.Feature.Vector像素坐标的最快方法是什么?我的意思是,我想得到像素(顶部,左侧)相对于已绘制特征的贴图容器的位置,如果可能的话,不需要计算,因为性能提高了 感谢和问候,Rafael。在ol3中: var geometry = feature.getGeometry(); var coordinate = geometry.getCoordinates(); var pixel = map.getPixelFromCoordinate(coordinate);

获取OpenLayers.Feature.Vector像素坐标的最快方法是什么?我的意思是,我想得到像素(顶部,左侧)相对于已绘制特征的贴图容器的位置,如果可能的话,不需要计算,因为性能提高了

感谢和问候,Rafael。

在ol3中:

var geometry = feature.getGeometry();
var coordinate = geometry.getCoordinates();
var pixel = map.getPixelFromCoordinate(coordinate);
在OL2中:

var geometry = feature.geometry;
var coordinate = new OpenLayers.LonLat(geometry.x, geometry.y);
var pixel = map.getPixelFromLonLat(coordinate);

一些先决条件:特征必须是点,否则geometry.getCoordinates()将返回一个坐标数组,您需要选择一个。另一个应该很明显,但我还是要提到:variable map是ol.map或OpenLayers.map的一个实例。

您使用的是版本2还是版本3?您是指边界框的左上角像素坐标吗?另外,您希望如何获得它,使用SelectFeature控件,在创建或其他方式时在抽屉事件上?我使用OLv2,为了性能,我希望访问绘制矢量功能的(cx,cy)像素位置。我在使用SVG。如果他想得到左上角,你也可以这样做,var bounds=geom.getBounds(),然后从bounds对象中得到左上角。我不知道如何使用bounds.left&bounds.top,因为它在缩放更改时不会更改。在最坏的情况下,我必须抛出3000-5000个特性数组。所以我在寻找最快的存取方法(CX,CY)。当你创建或修改它时,你可以将它存储为多边形的属性,然后再查找它,而不是重新计算它。“约翰巴拉萨不是一个坏主意,但是你需要考虑你多久会访问那些坐标。与仅在需要时计算坐标相比,您的建议可能会导致计算坐标的频率更高。只是说它是特定于用例的。