BIGEMPA Js API示例中心
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta
name="viewport"
content="initial-scale=1,maximum-scale=1,user-scalable=no"
/>
<!--
以下CSS地址请在安装软件了替换成本地的地址
CSS地址请使用:
http://localhost:9000/bigemap.js/v2.1.0/bigemap.css
软件下载地址 http://www.bigemap.com/reader/download/detail201802017.html
-->
<link href="http://ua.bigemap.com:30081/bmsdk/bigemap.js/v2.1.0/bigemap.css" rel="stylesheet"/>
<!--
JS地址请使用:
http://localhost:9000/bigemap.js/v2.1.0/bigemap.js
-->
<script src="http://ua.bigemap.com:30081/bmsdk/bigemap.js/v2.1.0/bigemap.js"></script>
<script src="/offline_data/newjunbiao/bm-plot.min.js"></script>
<script src="/offline_data/newjunbiao/turf.min.js"></script>
<style>
body {
margin: 0;
padding: 0;
}
#map {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
</style>
<title>Google Map Streets</title>
</head>
<body>
<div id="map"></div>
<script>
// 软件配置信息地址,软件安装完成之后使用本地地址,如:http://localhost:9000
BM.Config.HTTP_URL = "http://ua.bigemap.com:30081/bmsdk/"
// 在ID为map的元素中实例化一个地图,并设置地图的ID号,ID号程序自动生成,无需手动配置 ,中心点,默认的级别和显示级别控件
var map = BM.map("map",null, {
center: [0, 0],
zoom: 3,
zoomControl: true,
attributionControl: false,
preferCanvas: true,
minZoom: 3,
// 设置地图的最大放大级别
maxZoom:24,
});
let m1 = BM.tileLayer("bigemap.dc-tian-w-satellite").addTo(map)
m1.on("loading",(e)=>{
Object.assign(m1.options,{
maxZoom:24,
// 设置图层超过配置指定的级别后就进行地图图片的放大
maxNativeZoom:18
})
})
// 用于保存文字的对象
let layer = new BM.Plot.SvgLayer({
// 配置SvgLayer属于的pane层
pane: "tooltipPane",
// 聚合配置
cluster: {
// 是否开启聚合
enable: true,
// 聚合半径,像素距离
radius: 50,
// 设置超过多少级别,就不进行聚合
disableZoom:20,
},
});
layer.addTo(map);
let group = BM.featureGroup();
//发请求获取土地数据
fetch("/offline_data/newjunbiao/tudi.geojson")
.then((res) => {
return res.json();
})
.then((res) => {
console.log(res);
let fs = res.features;
fs.forEach((v, i) => {
// console.log("vvvv", v);
let pos = v.geometry.coordinates[0];
let polygonPosArr = pos.slice(0).map((vv) => {
return [vv[1], vv[0]];
});
pos.push(pos[0]);
// 计算多边形的质心
let center = turf.centerOfMass(turf.polygon([pos]));
// 获取质心坐标
let mass = center.geometry.coordinates;
// 创建文字标签对象
let text = new BM.Plot.TextOverlay(
`${v.properties
.name}`,
BM.latLng(mass[1], mass[0]),{
color:"red",
// backgroundColor:"white",
font:"16px 楷体",
}
);
// 将文字添加到layer中
layer.addLayer(text)
let f1 = BM.polygon(polygonPosArr, {}).addTo(map);
group.addLayer(f1);
});
map.fitBounds(group.getBounds())
});
</script>
</body>
</html>