如何在OpenLayers中使用较大图像的一部分作为标记

How can I use part of a larger image as a marker in OpenLayers?

本文关键字:一部分 图像 OpenLayers      更新时间:2023-09-26

是否可以使用较大图像的一部分作为OpenLayers的标记?

像这样(在google地图中):

var icon = new google.maps.MarkerImage(
"img/marker_sprite.png", 
new google.maps.Size(26, 44), 
new google.maps.Point(0, 44)
);

在OpenLayers中向地图添加标记的基本方法是从向地图添加标记层开始的,您可以这样做:

var markers = new OpenLayers.Layer.Markers("Markers");
map.addLayer(markers);

然后你需要给这个图层添加标记,就像这样:

var position = new OpenLayers.LonLat(longitude, latitude);
position.transform(new OpenLayers.Projection("EPSG:4326",
                   map.getProjectionObject());
var icon = new OpenLayers.Icon("img/marker_sprite.png",
                               new OpenLayers.Size(26, 44));
var marker = new OpenLayers.Marker(position, icon);
markers.addMarker(marker);

不幸的是,这是不可能的,据我所知,所以在图像文件中设置标记的原点,这样你就可以只使用图像的一部分。可以,但只有当你想要的部分在角落里时,这不是很有用。