OpenLayers-添加Marker
2013-02-19 11:49
357 查看
在OpenLayers Map添加Marker。
1.创建Marker图层
Maker由Marker图层进行管理
2. 创建Marker对象
在marker上注册一个mousedown事件,mousedown事件的响应函数为onMakerMouseDown。
3、定义Marker鼠标事件
鼠标点击后,添加一个红色的Marker。
完整代码如下
1.创建Marker图层
Maker由Marker图层进行管理
var marker_layer = new OpenLayers.Layer.Markers("markers");
2. 创建Marker对象
//创建Marker 位置 var pos = new new OpenLayers.LonLat (x, y); //创建Marker对象 var marker = new OpenLayers.Marker ( pos ); //透明度 marker.setOpacity(opacity); //注册鼠标事件 marker.events.register( 'mousedown', marker, onMakerMouseDown); //添加marker到marker layer marker_layer.addMarker(marker);
在marker上注册一个mousedown事件,mousedown事件的响应函数为onMakerMouseDown。
3、定义Marker鼠标事件
function onMakerMouseDown(evt) { alert(marker.CLASS_NAME); //弹出Marker的类名 OpenLayers.Event.stop(evt); //停止事件 }
鼠标点击后,添加一个红色的Marker。
完整代码如下
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> OpenLayer : Event Mouse </TITLE> <link rel="stylesheet" href="./OpenLayers-2.10/theme/default/style.css" type="text/css" /> <link rel="stylesheet" href="./css/style.css" type="text/css" /> <script src="./OpenLayers-2.10/lib/OpenLayers.js"></script> <script type="text/javascript"> var map = null; var wms_url = "http://127.0.0.1:8080/geoserver/wms?"; var wms_version = "1.3.0"; var layer_name = 'country'; var wms_layer = null; var marker_layer = null; var marker = null; function init() { //创建map对象, map = new OpenLayers.Map("map"); wms_layer = new OpenLayers.Layer.WMS("OpenLayers WMS", wms_url, {layers: layer_name}, {singleTile: true}); marker_layer = new OpenLayers.Layer.Markers("markers"); // 添加图层 map.addLayers([wms_layer, marker_layer]); map.addControl( new OpenLayers.Control.LayerSwitcher() ); //---------------------------------------------------------------// //注册鼠标事件 map.events.register('mousedown', map, onMakerMouseDown); // 放大到全屏 map.zoomToMaxExtent(); } function addMarker(x, y, opacity) { marker = new OpenLayers.Marker(new OpenLayers.LonLat(x, y)); //透明度 marker.setOpacity(opacity); //注册鼠标事件 marker.events.register('mousedown', marker, onMakerMouseDown); marker_layer.addMarker(marker); } /* * 鼠标点击Marker的响应函数 */ function onMakerMouseDown(evt) { //alert(evt.x); alert(marker.CLASS_NAME); OpenLayers.Event.stop(evt); } function onAddMarker() { var x = document.getElementById("X").value; var y = document.getElementById("Y").value; var opacity = document.getElementById("opacity").value; addMarker(x, y, opacity); } </script> </HEAD> <BODY onload="init()"> <div> <div>X<input type="text" id="X" value="0"> Y<input type="text" id="Y" value="0"> 透明度<input type="text" id="opacity" value="255"> <input type="button" value="Add Marker" onClick="onAddMarker();"></div> <div id="map" class="smallmap"></div> </div> </BODY> </HTML>
相关文章推荐
- OpenLayers Add Marker addPOI,添加标注
- OpenLayers 动态添加标记(Marker)和信息窗(Popup)
- 利用Geoserver的wfs BBOX范围查询及Openlayers解析GML,添加Marker
- OpenLayers 学习(五) 根据经纬度用Marker在地图上添加标记
- OpenLayers-添加Marker
- 利用Geoserver的wfs BBOX范围查询及Openlayers解析GML,添加Marker
- Android百度地图开发学习笔记(三)之添加Marker和两点测距
- 在地图上添加一个marker(标记),并注册事件
- 调用百度地图API添加点聚合时,marker标注的label标签刷新丢失问题
- 3. 定位并添加Marker
- 百度地图给多个marker添加右键菜单(删除、更新)
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- 百度地图 循环加载marker并添加多个信息窗口,解决只显示最后一个窗口信息的问题
- 关于高德地图转换经纬度为屏幕点,方便自定义需链接网络的marker且添加属性动画
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用
- 高德地图之地图篇----->定位的蓝点、添加Marker
- 使用OpenLayers3 添加地图鼠标右键菜单
- OpenLayers笔记--加载百度地图和添加比例尺
- GIS(四)——为js版搜狗地图添加边界+Marker和Brand的最终美化版
- Android 百度地图 SDK v3.0.0 (三) 添加覆盖物Marker与InfoWindow的使用