请问Openlayers如何实现用鼠标框多个标注点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问Openlayers如何实现用鼠标框多个标注点相关的知识,希望对你有一定的参考价值。

OpenLayers new OpenLayers.Layer.Markers("Markers" )创建一图层,在此图层上面添加多个标注点,怎样实现用鼠标框选多个标注点并得到标注点的信息

参考技术A

JSON数据:

[
"name":"白银区","position":[103,37],
"name":"平川区","position":[103,38],
"name":"靖远县","position":[103,39],
"name":"景泰县","position":[103,40],
"name":"会宁县","position":[103,41]
]


添加多个标注

$.getJSON('openlayers/json_map/tmp/1.json',function(data)
//创建新标注层
Mk_2 = new OpenLayers.Layer.Markers("白银");
//设定初始化标注不可见
Mk_2.setOpacity(1);
//根据JSON服务器传回的数据创建标注点
$.each(data, function(i,n)
//创建新标注
var Mk = new OpenLayers.Marker(new OpenLayers.LonLat(n.position).transform("EPSG:4326", "EPSG:900913"));
//为标注注册事件
Mk.events.register("mousedown", Mk,function(evt) 
alert(n.name)
OpenLayers.Event.stop(evt);
);
//把标注加进标注层里
Mk_2.addMarker(Mk);
);
//把标注添加到地图上
map.addLayer(Mk_2);
)

参考技术B 有答案了吗?怎么到处都有人问,没人回答呢。

Openlayers 2 取消鼠标缩放地图的功能

需要实现的功能:

取消鼠标缩放地图,即滚动鼠标的滚轮地图没有响应事件,只能用鼠标平移地图

版本:OpenLayers 2.13.1

测试代码直接用官方例子http://dev.openlayers.org/releases/OpenLayers-2.13.1/examples/osm.html

直接上代码

原始代码:

        var map, layer;
        function init(){
            map = new OpenLayers.Map( ‘map‘);
            layer = new OpenLayers.Layer.OSM( "Simple OSM Map");
            map.addLayer(layer);
            map.setCenter(
                new OpenLayers.LonLat(-71.147, 42.472).transform(
                    new OpenLayers.Projection("EPSG:4326"),
                    map.getProjectionObject()
                ), 12
            );    
        }

修改后的代码:

        var map, layer;
        function init(){
            map = new OpenLayers.Map(‘map‘,{
                        controls: [
                            new OpenLayers.Control.Navigation({ ‘zoomWheelEnabled‘: false }),
                            new OpenLayers.Control.MousePosition(),
                            new OpenLayers.Control.Zoom()
                        ]
                    }
            );
            layer = new OpenLayers.Layer.OSM("Simple OSM Map");
            map.addLayer(layer);
            map.setCenter(
                new OpenLayers.LonLat(-71.147, 42.472).transform(
                    new OpenLayers.Projection("EPSG:4326"),
                    map.getProjectionObject()
                ), 12
            );    
        }

可见在map实例化时,将默认的controls修改一下即可

增加部分代码为:

              controls: [
                            new OpenLayers.Control.Navigation({ ‘zoomWheelEnabled‘: false }),
                            new OpenLayers.Control.MousePosition(),
                            new OpenLayers.Control.Zoom()
                        ]

  

 

以上是关于请问Openlayers如何实现用鼠标框多个标注点的主要内容,如果未能解决你的问题,请参考以下文章

请问怎么才能在腾讯地图上标记自己的位置。

OpenLayers 根据坐标动态画多边形

WORD 文档页面右侧标注去如何取消

openlayers添加标注(含聚合标注)、覆盖物、绘制路线

Openlayers 2 取消鼠标缩放地图的功能

请问c# 中如何实现在PictureBox中通过鼠标拖拽画出矩形框呢?picturebox中的MouseDown和MouseMove如何使用