动态添加自定义标记以使用OpenLayers进行地图 [英] Adding custom markers dynamically to map using OpenLayers

查看:780
本文介绍了动态添加自定义标记以使用OpenLayers进行地图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想让用户在地图上添加自定义标记,并为每个标记添加描述.任何提示,任何教程的链接都将非常有用.

I would like to let users add custom markers on a map with a description for each marker. Any tips, links to any tutorials would be really useful.

推荐答案

您可以在地图上注册一个函数来单击"事件.当用户单击它时,标记会自动添加.

You can register a function to 'click' event on your map. When the user click on it, the mark is added automatically.

尝试这样的事情:

// 'map' is your map created using new OpenLayers.Map(options)

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

map.events.register("click", map, function(e) {
      //var position = this.events.getMousePosition(e);
      var position = map.getLonLatFromPixel(e.xy);
      var size = new OpenLayers.Size(21,25);
   var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
   var icon = new OpenLayers.Icon('images/mark.png', size, offset);   
   var markerslayer = map.getLayer('Markers');

   markerslayer.addMarker(new OpenLayers.Marker(position,icon));

   });

非常简单,但我认为您可以理解它:)

Pretty simple, but I think that you can understand it :)

这篇关于动态添加自定义标记以使用OpenLayers进行地图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆