BIGEMPA Js API示例中心
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>绘制</title>
<link href='http://www.bigemap.com:9000/bigemap.js/v2.1.0/bigemap.css' rel='stylesheet' />
<script src='http://www.bigemap.com:9000/bigemap.js/v2.1.0/bigemap.js'></script>
<!--
以下CSS地址请在安装软件了替换成本地的地址
CSS地址请使用:
http://localhost:9000/bigemap.js/v2.1.0/bigemap.css
JS地址请使用:
http://localhost:9000/bigemap.js/v2.1.0/bigemap.js
软件下载地址 http://www.bigemap.com/reader/download/detail201802017.html
-->
<!--<link href='http://www.bigemap.com:9000/bigemap.js/v2.1.0/bigemap.css' rel='stylesheet' />-->
<!--<script src='http://www.bigemap.com:9000/bigemap.js/v2.1.0/bigemap.js'></script>-->
<!--引入鼠标绘制的JS+CSS-->
<!--对应下面的CSS+JS的下载地址 请直接访问 http://bigemap.com/Public/mouse_draw/mouse_draw.zip 来下载-->
<link rel="stylesheet" href="/Public/mouse_draw/Bigemap.draw.css"/>
<script src="/Public/js/bm.draw.min.js"></script>
<link href="http://www.bigemap.com/Public/css/button.min.css" rel="stylesheet">
</head>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
html,
body,
#map {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
height: 100vh;
}
.tool {
position: absolute;
z-index: 10;
right: 20px;
top: 20px;
display: inline-block;
width: 150px;
}
</style>
<body>
<div class="tool">
<button id="start" class="button button-tiny button-rounded button-primary">绘制多边形</button>
<button id="edit" class="button button-tiny button-rounded button-primary">编辑多边形</button>
<button id="delete" class="button button-tiny button-rounded button-primary">删除多边形</button>
</div>
<div id="map">
</div>
<script>
BM.Config.HTTP_URL = 'http://www.bigemap.com:9000';
var map = BM.map('map', 'bigemap.zhongkexingtu', {
center: [30.4, 104.5],
zoom: 7,
zoomControl: true,
attributionControl: false
});
//创建一个图形覆盖物的集合来保存点线面
var drawnItems = new BM.FeatureGroup();
//添加在地图上
map.addLayer(drawnItems);
//设置一个变量来保存当前的绘制对象
var draw;
//定义状态
var drawing = false, edit = false, deletee = false, tempLayer = null;;
//编辑编辑完成事件
map.on(BM.Draw.Event.EDITSTOP, function (e) {
console.log(88, e);
});
//监听绘画完成事件
map.on(BM.Draw.Event.CREATED, function (e) {
var layer = e.layer;
console.log(74, e.layer);
e.layer.on('click', () => {
if (edit) {
if (tempLayer) {
tempLayer.editing.disable();
}
tempLayer = e.layer;
e.layer.editing.enable();
map.once('contextmenu', () => {
edit = false;
tempLayer.editing.disable();
// tempLayer = null;
});
} else if (deletee) {
drawnItems.removeLayer(e.layer);
}
})
drawnItems.addLayer(layer);
});
document.querySelector('#start').onclick = function () {
if (!draw) {
draw = new BM.Draw.Polygon(map, {
showArea: false,
allowIntersection: false,
drawError: {
color: '#b00b00',
message: '不能绘制交叉的多边形!'
},
shapeOptions: {
color: '#bada55'
},
// beforeAdd: function (latlng, e) {
// console.log(latlng, e, 93);
// return true
// }
});
}
draw.enable();
}
document.querySelector('#edit').onclick = function () {
draw = false, edit = true, deletee = false;
}
document.querySelector('#delete').onclick = function () {
draw = false, edit = false, deletee = true;
}
</script>
</body>
</html>