mapv
Version:
a library of geography visualization
202 lines (165 loc) • 5.59 kB
HTML
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
html, body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
#map {
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div id="map"></div>
<canvas id="canvas"></canvas>
<script type="text/javascript" src="//apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src="//api.map.baidu.com/api?v=2.0&ak=1XjLLEhZhQNUzd93EjU5nOGQ"></script>
<script type="text/javascript" src="../build/mapv.js"></script>
<script type="text/javascript">
// 百度地图API功能
var map = new BMap.Map("map", {
enableMapClick: false
}); // 创建Map实例
map.centerAndZoom(new BMap.Point(120.398356, 36.091259), 13); // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放
map.setMapStyle({
styleJson: [
{
"featureType": "all",
"elementType": "all",
"stylers": {
"lightness": 61,
"saturation": -100
}
}
]
});
var boundaryCount = {
'市南区':5448,
'市北区':5582,
'四方区':4625,
'李沧区':5124,
'崂山区':3795,
'城阳区':7372,
'黄岛区':5242,
'胶州市':8431,
'即墨市':11772,
'平度市':13574,
'胶南市':8684,
'莱西市':7502,
}
var bdData = [];
for (var key in boundaryCount) {
getBoundary(key);
}
function getBoundary(cityname){
var bdary = new BMap.Boundary();
bdary.get(cityname, function(rs){ // 异步加载
var boundary = rs.boundaries[0];
if (!boundary) {
return;
} else {
console.log(cityname);
}
boundary = boundary.split(";");
var coordinates = [];
for (var i = 0; i < boundary.length; i++) {
boundary[i] = boundary[i].split(",");
coordinates.push(boundary[i]);
}
bdData.push({
geometry: {
type: 'Polygon',
coordinates: [coordinates]
},
count: parseFloat(boundaryCount[cityname])
});
bdDataSet.set(bdData);
var center = getCenter(coordinates);
textData.push(
{
geometry: {
type: 'Point',
coordinates: center
},
text: cityname
}
);
textDataSet.set(textData);
});
}
function getCenter (coordinates) {
var minx = coordinates[0][0];
var miny = coordinates[0][1];
var maxx = coordinates[0][0];
var maxy = coordinates[0][1];
for (var i = 1; i < coordinates.length; i++) {
if (coordinates[i][0] < minx) {
minx = coordinates[i][0];
}
if (coordinates[i][0] > maxx) {
maxx = coordinates[i][0];
}
if (coordinates[i][1] < miny) {
miny = coordinates[i][1];
}
if (coordinates[i][1] > maxy) {
maxy = coordinates[i][1];
}
}
return [parseFloat(minx) + (maxx - minx) / 2, parseFloat(miny) + (maxy - miny) / 2];
}
var bdOptions = {
globalAlpha: 0.3,
lineWidth: 2,
max: 13574,
gradient: {
0: 'lightblue',
1: 'red'
},
draw: 'intensity'
}
var bdDataSet = new mapv.DataSet(bdData);
new mapv.baiduMapLayer(map, bdDataSet, bdOptions);
var textOptions = {
draw: 'text',
font: '14px Arial',
fillStyle: 'yellow',
shadowColor: 'blue',
zIndex: 3,
shadowBlur: 10
}
var textData = [];
var textDataSet = new mapv.DataSet(textData);
var textMapvLayer = new mapv.baiduMapLayer(map, textDataSet, textOptions);
$.get('data/wanxiangcheng.csv', function(csvstr) {
var options = {
size: 800,
globalAlpha: 0.6,
unit: 'm',
zIndex: 2,
max: 6,
gradient: {
0.25: "rgba(0,0,255,0.6)",
0.55: "rgba(0,255,0,0.6)",
0.85: "rgba(255,255,0,0.6)",
1.0: "rgba(255,0,0,0.6)"
},
coordType: 'bd09mc',
draw: 'honeycomb'
}
var dataSet = mapv.csv.getDataSet(csvstr);
dataSet.initGeometry();
new mapv.baiduMapLayer(map, dataSet, options);
});
</script>
</body>
</html>