• OpenLayers添加Marker


    在OpenLayers Map添加Marker。

    1.创建Marker图层

    Maker由Marker图层进行管理

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

    2. 创建Marker对象

     1 //创建Marker 位置
     2 var pos = new new OpenLayers.LonLat (x, y);
     3 //创建Marker对象
     4 var marker = new OpenLayers.Marker ( pos );
     5 //透明度
     6 marker.setOpacity(opacity);
     7 //注册鼠标事件
     8 marker.events.register( 'mousedown',  marker,  onMakerMouseDown);
     9 //添加marker到marker layer
    10 marker_layer.addMarker(marker);

    在marker上注册一个mousedown事件,mousedown事件的响应函数为onMakerMouseDown。

    3、定义Marker鼠标事件

    function onMakerMouseDown(evt)
    {
        alert(marker.CLASS_NAME);    //弹出Marker的类名
        OpenLayers.Event.stop(evt);  //停止事件
    }

    鼠标点击后,添加一个红色的Marker。

    完整代码如下

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
     2 <HTML>
     3  <HEAD>
     4   <TITLE> OpenLayer : Event Mouse </TITLE>
     5   <link rel="stylesheet" href="./OpenLayers-2.10/theme/default/style.css" type="text/css" />
     6   <link rel="stylesheet" href="./css/style.css" type="text/css" />
     7   <script src="./OpenLayers-2.10/lib/OpenLayers.js"></script>
     8   <script  type="text/javascript">
     9     
    10     var map = null;
    11     var wms_url = "http://127.0.0.1:8080/geoserver/wms?";
    12     var wms_version = "1.3.0";
    13     var layer_name = 'country';
    14 
    15     var wms_layer = null;
    16     var marker_layer = null;
    17 
    18     var marker = null;
    19 
    20     function init()
    21     {
    22         //创建map对象,
    23         map = new OpenLayers.Map("map");
    24         wms_layer = new OpenLayers.Layer.WMS("OpenLayers WMS",
    25                                              wms_url,
    26                                              {layers: layer_name},
    27                                              {singleTile: true});
    28 
    29         marker_layer = new OpenLayers.Layer.Markers("markers");
    30 
    31         // 添加图层
    32         map.addLayers([wms_layer, marker_layer]);        
    33         map.addControl( new OpenLayers.Control.LayerSwitcher() );
    34         //---------------------------------------------------------------//
    35         //注册鼠标事件
    36         map.events.register('mousedown', map, onMakerMouseDown);
    37 
    38         // 放大到全屏
    39         map.zoomToMaxExtent();
    40     }
    41 
    42     function addMarker(x, y, opacity) 
    43     {
    44 
    45         marker = new OpenLayers.Marker(new OpenLayers.LonLat(x, y));
    46         //透明度
    47         marker.setOpacity(opacity);
    48         //注册鼠标事件
    49         marker.events.register('mousedown', marker, onMakerMouseDown);
    50         marker_layer.addMarker(marker);
    51     }
    52 
    53     /*
    54      * 鼠标点击Marker的响应函数
    55      */
    56     function onMakerMouseDown(evt)
    57     {
    58         //alert(evt.x);
    59         alert(marker.CLASS_NAME);
    60         OpenLayers.Event.stop(evt);
    61     }
    62 
    63     function onAddMarker()
    64     {
    65         var x = document.getElementById("X").value;
    66         var y = document.getElementById("Y").value;
    67         var opacity = document.getElementById("opacity").value;
    68 
    69         addMarker(x, y, opacity);
    70     }
    71 
    72   </script>
    73 
    74  </HEAD>
    75 
    76  <BODY onload="init()">
    77     <div>
    78       <div>X<input type="text" id="X" value="0">
    79            Y<input type="text" id="Y" value="0">
    80            透明度<input type="text" id="opacity" value="255">
    81            <input type="button" value="Add Marker" onClick="onAddMarker();"></div>
    82       <div id="map" class="smallmap"></div>
    83     </div>
    84  </BODY>
    85 </HTML>
  • 相关阅读:
    并查集-B
    ->的用法
    PTA-1042 字符统计
    PAT 1040有几个PAT
    assembly x86(nasm)修改后的日常
    python接口自动化之操作常用数据库mysql、oracle
    os模块常用方法
    python 多线程编程并不能真正利用多核的CPU
    连接mysql数据库
    python之用yagmail模块发送邮件
  • 原文地址:https://www.cnblogs.com/marsprj/p/2915918.html
Copyright © 2020-2023  润新知