BIGEMPA Js API示例中心
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>绘制</title>
<script src="https://cdn.bootcss.com/jquery/1.11.0/jquery.min.js"></script>
<link href="http://ua.bigemap.com:30081/bmsdk/bigemap.js/v2.1.0/bigemap.css" rel="stylesheet"/>
<script src="http://ua.bigemap.com:30081/bmsdk/bigemap.js/v2.1.0/bigemap.js"></script>
<link href="http://www.bigemap.com/Public/css/button.min.css" rel="stylesheet">
<!--
以下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="http://www.bigemap.com/Public/mouse_draw/Bigemap.draw.css"/>
<script src="http://www.bigemap.com/Public/js/bm.draw.min.js"></script>
</head>
<style type="text/css">
* {
padding: 0;
margin: 0;
}
html, body, #map {
width: 100%;
height: 100%;
}
#edit_line {
position: absolute;
z-index: 10;
right: 20px;
top: 23px;
display: inline-block;
width: 150px;
}
#edit_area {
position: absolute;
z-index: 10;
right: 20px;
top: 50px;
display: inline-block;
width: 150px;
}
#edit_area button {
display: inline-block;
width: 150px;
}
#edit_poly {
position: absolute;
z-index: 10;
right: 20px;
top: 50px;
display: inline-block;
width: 150px;
}
.info {
position: fixed;
top: 0;
color: #8a6d3b;
z-index: 99;
margin: 0;
background-color: #fcf8e3;
border-color: #faebcc;
left: 0;
right: 0;
text-align: center;
}
</style>
<body>
<p class="info">
右键可以停止 编辑
</p>
<div id="edit_area">
<button data-type="polyline" class="button button-tiny button-rounded button-primary">编辑线段</button>
<button data-type="polygon" class="button button-tiny button-rounded button-primary">编辑多边形</button>
<button data-type="circle" class="button button-tiny button-rounded button-primary">编辑圆</button>
</div>
<div id="map">
</div>
<script>
BM.Config.HTTP_URL = "http://ua.bigemap.com:30081/bmsdk/"
var overlay = {}, current = '';
// 在ID为map的元素中实例化一个地图,并设置地图的ID号为 bigemap.zhongkexingtu,ID号程序自动生成,无需手动配置,并设置地图的投影为百度地图 ,中心点,默认的级别和显示级别控件
var map = BM.map('map', 'bigemap.dc-tian-w-satellite', {
center: [30, 104],
zoom: 7,
zoomControl: true,
attributionControl: false
});
overlay.polyline = new BM.Polyline([
{lat: 30.325204431530345, lng: 107.60390873998405},
{lat: 29.669469569529078, lng: 107.32571404427291},
{lat: 28.667997369204706, lng: 106.05318825691938},
{lat: 28.432166294982455, lng: 104.6611174196005},
{lat: 28.40607779623456, lng: 103.55960089713336}
]).addTo(map);
overlay.polygon = new BM.Polygon([
{lat: 30.280196656341005, lng: 101.70201860368253},
{lat: 31.17443221616588, lng: 102.44943223893644},
{lat: 31.612013574947458, lng: 105.5988347902894},
{lat: 30.606585065678747, lng: 105.95238883048297},
{lat: 29.78231117982432, lng: 105.75116749852897},
{lat: 29.212533460366416, lng: 104.35137156397104},
{lat: 28.97377253153283, lng: 102.9155958071351},
{lat: 29.17605844636225, lng: 101.755267996341}
]).addTo(map);
overlay.circle=BM.circle({lat: 28.40607779623456, lng: 103.55960089713336},{radius:50000}).addTo(map);
map.on('contextmenu', function (e) {
if (!current) return;
//停止编辑。这里可以进行保存数据库的操作
switch (current) {
case 'polygon':
case 'polyline':
console.log(overlay[current].getLatLngs());
overlay[current].editing.disable();
break;
case 'circle':
console.log(overlay[current].getLatLng());
console.log(overlay[current].getRadius());
overlay[current].editing.disable();
break;
}
});
[...document.querySelectorAll('.button')].map(v=>{
v.onclick=function (){
overlay[current]&&overlay[current].editing.disable();
var c=this.dataset;
current=c['type'];
overlay[current].editing.enable();
}
});
map.on(BM.Draw.Event.EDITVERTEX,function (e){
console.log('edit');
console.log(e.poly);
}).on(BM.Draw.Event.EDITMOVE,function (e){
console.log('move');
console.log(e.poly);
}).on(BM.Draw.Event.EDITRESIZE,function (e){
console.log('resize');
console.log(e.layer);
});
</script>
</body>
</html>