leaflet地图应用-动态标绘polygon

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);

}

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

时间: 2024-10-18 15:20:49

leaflet地图应用-动态标绘polygon的相关文章

动态标绘演示系统1.0(for OpenLayers3)

实现OpenLayers3(http://openlayers.org)版本号的动态标绘API.眼下1.0版本号,仅支持简单符号绘制. 在线体验地址:http://gispace.duapp.com/plot4ol3 演示样例代码下载: 点击进入下载页 演示样例代码例如以下: var map, plotDraw, drawOverlay, drawStyle; function init(){ // 初始化地图.底图使用openstreetmap在线地图 map = new ol.Map({ t

基于ArcGIS Flex API实现动态标绘(1.2)

动态标绘API 1.2,相较前一版本号(点击进入),该版本号新增对基本标绘符号的支持,包含: 单点.多点.折线.手绘线.多边形.手绘多边形.矩形,并提供对应的编辑功能. 例如以下图所看到的,对多点的编辑. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR0lTcGFjZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="5

基于ArcGIS Flex API实现动态标绘(1.1)

动态标绘API 1.1版本号.相较前一版本号1.0(点击进入).该版本号提供标绘符号的编辑功能. 编辑功能包含两种编辑状态:编辑控制点.对标绘符号进行旋转.八方向拉伸.平移. 编辑控制点例如以下图所看到的:   对标绘符号进行旋转.八方向拉伸.平移,例如以下图所看到的:   代码演示样例 private var plotDrawTool:PlotDrawTool; private var plotEditTool:PlotEditTool; private var lineSymbol:Simp

动态标绘演示系统1.3

动态标绘演示系统1.3,基于动态标绘API 1.3,实现标绘符号绘制.形状编辑.样式编辑. 新增标绘符号保存与打开(通过序列化与反序列化接口实现). 该版本主要实现标绘符号的保存与打开,实现方式是把标绘符号序列化成json文本,提供序列化与反序列化接口. 简单起见,示例程序中采用保存.打开json文本文件的方式. 在实际项目中,可根据具体情况选择存储方式,比如数据库. 在线体验地址:http://gispace.duapp.com/plotdemo/index.html 源码下载 点击下载 欢迎

动态标绘演示系统1.4

动态标绘演示系统1.4,基于动态标绘API 1.4.实现功能包括: 1.标绘符号绘制(PlotDrawTool): 2.标绘符号编辑(PlotEditTool): 3.标绘符号样式编辑(参见演示系统源码): 4.标绘符号文本标注(1.4新增PlotGraphic,支持文本标注): 5.标绘符号保存与打开(通过序列化接口PlotEncoder.反序列化接口PlotDecoder): 新增标绘符号文本标注 该版本主要新增标绘符号的文本标注功能,新增PlotGraphic(继承自Graphic),同步

【动态标绘演示系统】v2.0 Flex版

动态标绘演示系统v2.0主要用来满足各行业WebGIS系统中对动态标绘的需求而开发.该系统基于动态标绘API(Plot API)开发. 动态标绘API是基于ArcGIS API for Flex实现的一套功能组件.通过扩展,Plot API实现了类似ArcGIS API for Flex中DrawTool和EditTool的功能,可绘制.编辑(包括对标绘图形的旋转.缩放,对标绘图形  控制点的拖拽等)各种标绘图形,具有很强的灵活性和交互性. Plot API提供了包括箭标.旗标.区域标绘等11种

ArcGIS API for Silverlight动态标绘的实现

1.下载2个dll文件,分别是: ArcGISPlotSilverlightAPI.dll 和 Matrix.dll 其下载地址为:http://download.csdn.net/detail/taomanman/9212163 2.在Silverlight项目中添加上面2个dll引用,如下图所示: 3.核心及调用代码如下所示: <UserControl x:Class="SLPlotMap.MainPage" xmlns="http://schemas.micros

点线面如何标绘在地图上

1.在线标注含有 点 线 面 的矢量标注(KML/KMZ/SHP/DWG/DXF) 2.标注矢量导入导出(支持格式KML.KMZ.SHP.GPX(GPS测量坐标)) 3.矢量标注自动叠加到卫星图像上一起下载(矢量栅格化) 4.在AutoCAD中打开标注的矢量点.线.面及属性 启动BIGEMAP软件,点击软件左上角[编辑]按钮,如下图: 弹出可编辑对话界面,如下图: 上图中横向的是标绘用的工具栏,可以选择点.线.面.等常规标注工具,左边窗口是图层管理器,我们可以在这里添加图层,删除图层,设置图层属

cesium1.65api版本贴地贴模型标绘工具效果(附源码下载)

前言 cesium 官网的api文档介绍地址cesium官网api,里面详细的介绍 cesium 各个类的介绍,还有就是在线例子:cesium 官网在线例子,这个也是学习 cesium 的好素材. 内容概览 1.cesium1.65api版本贴地贴模型标绘工具效果2.源代码demo下载 效果图如下: 实现思路: 鼠标左键Cesium.ScreenSpaceEventType.LEFT_CLICK 鼠标移动Cesium.ScreenSpaceEventType.MOUSE_MOVE 鼠标右键Ces