leafletjs是一款优秀的开源二维地图,并提供了丰富的开发Api,下面列举一个在地图上动态标绘polygon的代码,实现起来的比较方便、简单。
具体实现代码:
//定义地图对象
map = L.map('_MainMap', {
maxZoom: 16
});
//加载OSM的开源在线地图
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <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);
}
代码比较简单,当然在标绘时也可以自定义各个实现的属性。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。