在Leaflet地图上绘制多边形,避免缩放时dynamicMapLayer遮住多边形
来源:互联网 发布:君の知らない物语 编辑:程序博客网 时间:2024/05/14 08:34
做项目时需要在Leaflet地图上绘制一个多边形,在网上找了代码实现如下:
浏览器查看元素如下:
第一个SVG为绘制中国区域雄鸡时使用的,注意中国边界的粗线;
img为dynamicMapLayer图层;
第二个SVG就是画多边形时生成的;
本以为OK了,结果在缩放地图时多边形消失了
经验判断可能是被某个图层遮住了,查看元素后果然发现:
原本在第三个位置的SVG(画多边形时生成的)跑到了第二个位置,当然被img给遮住了,至于为什么元素会改变位置,猜可能是在缩放时dynamicMapLayer加载较慢导致SVG先进入到页面中;
解决方法:为class为leaftlet-zoom-animated的svg元素添加z-index属性即可;
这下无论怎么缩放都不会遮挡装有多边形的SVG元素了
实现代码如下:
var poly_points = [];//角点 var poly_line=new L.Polyline([]);//折线层 var poly;//面图层 var layerGroup=new L.layerGroup();//图层组 var testArea; map = L.map('map', { center: [45, 105], zoom: 5, doubleClickZoom :false, layers: [dynLayer, layerGroup] }); map.on('click', addClickLatlng);//单击,添加点 map.on('dblclick', showPoly);//双击,显示面function addClickLatlng(e){ //当前点 var clickLocation=[e.latlng.lat,e.latlng.lng]; poly_points.push(clickLocation); //显示折线 poly_line.addLatLng(e.latlng); layerGroup.addLayer(poly_line);} //显示矩形function showPoly(){ layerGroup.clearLayers();//清除之前的面与线,后续会加上新的封闭的面 for (var i = 0, latlngs = [], len = poly_points.length; i < len; i++) { latlngs.push(new L.LatLng(poly_points[i][0], poly_points[i][1])); } poly = new L.Polygon(latlngs); layerGroup.addLayer(poly); if($(".leaflet-zoom-animated").css("z-index") !=5) $(".leaflet-zoom-animated").css("z-index",5); //清空 poly_points=[]; poly_line=new L.Polyline([]);}
阅读全文
0 0
- 在Leaflet地图上绘制多边形,避免缩放时dynamicMapLayer遮住多边形
- Leaflet 地图中绘制多边形
- 地图上绘制多边形
- android百度地图:在地图上绘制点、线、多边形、圆形和文字
- android百度地图:在地图上绘制点、线、多边形、圆形和文字
- 在地图上画多边形Ajax查询
- 在地图上画多边形Ajax查询
- 用ArcGIS API for JavaScript在地图上绘制圆多边形
- 利用SOSO地图API在地图上画多边形
- 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能
- 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能
- Qt下加载图片,在图片上绘制多边形,移动鼠标拉伸多边形
- 根据坐标在图片上绘制多边形边框
- 射线法判断地图上点是否在多边形内
- GMap.Net开发之在地图上添加多边形
- GMap.Net开发之在地图上添加多边形
- 绘制多边形
- 绘制多边形
- MarkDown基本使用
- swift 懒加载
- 竞赛题目讲解-【NOIP2000复赛 普及组】单词接龙
- 从零开始学习音视频编程技术(33) Linux篇之Makefile
- bzoj 1293: [SCOI2009]生日礼物
- 在Leaflet地图上绘制多边形,避免缩放时dynamicMapLayer遮住多边形
- 原来iMindMap还有这样一个视图
- swift 自动布局(iOS9以后)
- 合并k个排序链表
- Swift AnyObject 类型转换
- 五. kafka-quickstart
- Android的selector和shape基本使用和color颜色列表
- Linux学习第二十四篇--连续命令的逻辑,管道符及管道命令
- RecyclerView的使用