温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

leaflet地图应用-动态标绘polygon

发布时间:2020-06-10 22:07:47 来源:网络 阅读:2341 作者:speciallst 栏目:开发技术

  leafletjs是一款优秀的开源二维地图,并提供了丰富的开发Api,下面列举一个在地图上动态标绘polygon的代码,实现起来的比较方便、简单。

  具体实现代码:

 //定义地图对象

 map = L.map('_MainMap', {

                    maxZoom: 16

                });

 //加载OSM的开源在线地图

 L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {

                    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'

                }).addTo(map);


 //点击按钮开始进行标绘:

 $(document).ready(function () {

            $("#_createBtn").click(function (e) {

               //注册地图的左键点击事件和双击事件

                map.on('click', MapLeftClick);

                map.on("dblclick", MapDoubleClick);

               //创建一个空的polygon,设置简单属性

                _polygon = L.polygon(_pointArr, {

                    color: 'red',

                    fillColor: '#f03',

                    fillOpacity: 0.5

                });

                //将polygon加载到地图上

                _polygon.addTo(map);

            });

        });

        var _polygon = null;

        var _pointArr = new Array();

       //双击事件结束标绘polygon

        function MapDoubleClick(e)

        {

            map.off('click', MapLeftClick);

            map.off("dblclick", MapDoubleClick);

             

        }

       //左键点击事件修改polygon的点

        function MapLeftClick(e) {

       //在地图上标注每个点的位置

            L.circleMarker(e.latlng, {

                radius: 2,

                color: 'red'

            }).addTo(map);

       //给polygon上增加点

            _polygon.addLatLng(e.latlng);

        }

     代码比较简单,当然在标绘时也可以自定义各个实现的属性。


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI