leaflet动态线条_LeaFlet学习之动态绘制图形

底图使用mapbox设置样式加载的,由于mapbox我也只会简单的应用在这里就不多说了,本文主要讲的是动态图形的绘制写的比较糙,代码重复太多,仅为展示所用,可以动态绘画点,线,圆,多边形。

一、概述

主要的用的就是事件click、mousedown、mousemove、mouseup事件,Leaflet对绘图好像没有怎么封装,我们要想自己动态绘制主要通过事件自己实现,代码不难,简单易懂。

二、底图加载

var map = L.map('map').setView([51.505, -0.09], 13);

var selectValue = null;

L.tileLayer('https://api.mapbox.com/styles/v1/limogu/cjjjp59s122412rqrk83bafma/tiles/256/{z}/{x}/{y}?access_token=pk.eyJ1IjoibGltb2d1IiwiYSI6ImNqampva3g1ZjFtZGQzcXFzb2hxaTJ6bGwifQ.pQ4dC_uJrE2-QhBO972B5A', {

attribution: '© OpenStreetMap contributors'

}).addTo(map);

三、绘制图形函数封装

//点绘画

function DrawPoint() {

map.on('click', function (e) {

L.circle(e.latlng, { radius: 100, color: 'red', fillColor: 'red', fillOpacity: 1 }).addTo(map);

})

}

//圆绘画

function DrawCircle() {

var r = 0

var i = null

var tempCircle = new L.circle()

map.dragging.disable();//将mousemove事件移动地图禁用

map.on('mousedown', onmouseDown);

map.on('mouseup', onmouseUp);

map.on('mousemove', onMove)

function onmouseDown(e) {

i = e.latlng

//确定圆心

}

function onMove(e) {

if (i) {

r = L.latLng(e.latlng).distanceTo(i)

tempCircle.setLatLng(i)

tempCircle.setRadius(r)

tempCircle.setStyle({ color: '#ff0000', fillColor: '#ff0000', fillOpacity: 1 })

map.addLayer(tempCircle)

}

}

function onmouse

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值