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

时间:2011-09-27 13:52:30

标签: javascript openlayers

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

像这样(在谷歌地图中):

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

1 个答案:

答案 0 :(得分:1)

在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);

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