mapv
Version:
a library of geography visualization
281 lines (263 loc) • 8.56 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="http://api.map.baidu.com/api?v=2.0&ak=1XjLLEhZhQNUzd93EjU5nOGQ"></script>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></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(105.403119, 38.028658), 5); // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放
//创建小狐狸
var pt = new BMap.Point(127.733142,21.226515);
var myIcon = new BMap.Icon("images/view.png", new BMap.Size(85, 124));
var marker2 = new BMap.Marker(pt,{icon:myIcon}); // 创建标注
map.addOverlay(marker2);
// 地图自定义样式
map.setMapStyle({
styleJson: [{
"featureType": "water",
"elementType": "all",
"stylers": {
"color": "#044161"
}
}, {
"featureType": "land",
"elementType": "all",
"stylers": {
"color": "#091934"
}
}, {
"featureType": "boundary",
"elementType": "geometry",
"stylers": {
"color": "#064f85"
}
}, {
"featureType": "railway",
"elementType": "all",
"stylers": {
"visibility": "off"
}
}, {
"featureType": "highway",
"elementType": "geometry",
"stylers": {
"color": "#004981"
}
}, {
"featureType": "highway",
"elementType": "geometry.fill",
"stylers": {
"color": "#005b96",
"lightness": 1
}
}, {
"featureType": "highway",
"elementType": "labels",
"stylers": {
"visibility": "on"
}
}, {
"featureType": "arterial",
"elementType": "geometry",
"stylers": {
"color": "#004981",
"lightness": -39
}
}, {
"featureType": "arterial",
"elementType": "geometry.fill",
"stylers": {
"color": "#00508b"
}
}, {
"featureType": "poi",
"elementType": "all",
"stylers": {
"visibility": "off"
}
}, {
"featureType": "green",
"elementType": "all",
"stylers": {
"color": "#056197",
"visibility": "off"
}
}, {
"featureType": "subway",
"elementType": "all",
"stylers": {
"visibility": "off"
}
}, {
"featureType": "manmade",
"elementType": "all",
"stylers": {
"visibility": "off"
}
}, {
"featureType": "local",
"elementType": "all",
"stylers": {
"visibility": "off"
}
}, {
"featureType": "arterial",
"elementType": "labels",
"stylers": {
"visibility": "off"
}
}, {
"featureType": "boundary",
"elementType": "geometry.fill",
"stylers": {
"color": "#029fd4"
}
}, {
"featureType": "building",
"elementType": "all",
"stylers": {
"color": "#1a5787"
}
}, {
"featureType": "label",
"elementType": "all",
"stylers": {
"visibility": "off"
}
}, {
"featureType": "poi",
"elementType": "labels.text.fill",
"stylers": {
"color": "#ffffff"
}
}, {
"featureType": "poi",
"elementType": "labels.text.stroke",
"stylers": {
"color": "#1e1c1c"
}
}, {
"featureType": "administrative",
"elementType": "labels",
"stylers": {
"visibility": "off"
}
},{
"featureType": "road",
"elementType": "labels",
"stylers": {
"visibility": "off"
}
}]
});
var randomCount = 1000;
var data = [];
var timeData = [];
function curive(fromPoint, endPoint, n) {
var delLng = (endPoint.lng - fromPoint.lng) / n;
var delLat = (endPoint.lat - fromPoint.lat) / n;
for (var i = 0; i < n; i++) {
var pointNLng = fromPoint.lng + delLng * i;
var pointNLat = fromPoint.lat + delLat * i;
timeData.push({
geometry: {
type: 'Point',
coordinates: [pointNLng, pointNLat]
},
count: 1,
time: i
});
}
}
// 构造数据
$.ajax({
url: 'data/qianxi-time',
success: function (rs) {
var items = rs.split('|');
var count = 20;
for (var i = 0; i < items.length; i++) {
var itemArr = items[i].split(/\n/);
for (var k = 0; k < itemArr.length; k++) {
if (!!itemArr[k]) {
var item = itemArr[k].split(/\t/);
if (item[0] === '起点城市' || item[0] === '迁出城市') {
var cityBegin = item[1];
}
if (item[0] !== '起点城市' || item[0] !== '迁出城市' && item.length > 1) {
var cityCenter1 = mapv.utilCityCenter.getCenterByCityName(item[0].replace(/市|省/, ""));
var cityCenter2 = mapv.utilCityCenter.getCenterByCityName(cityBegin.replace(/市|省/, ""));
if (cityCenter1) {
if(Math.random() > 0.7) {
curive(cityCenter2, cityCenter1, 50);
}
data.push({
geometry: {
type: 'LineString',
coordinates: [[cityCenter1.lng, cityCenter1.lat], [cityCenter2.lng, cityCenter2.lat]]
},
count: 100 * Math.random()
});
}
}
}
}
}
var dataSet = new mapv.DataSet(data);
var options = {
strokeStyle: 'rgba(55, 50, 250, 0.3)',
globalCompositeOperation: 'lighter',
shadowColor: 'rgba(55, 50, 250, 0.5)',
methods: {
click: function (item) {
}
},
gradient: {0:'rgba(55, 50, 250, 0)',1:'rgba(55, 50, 250, 1)'},
lineWidth: .2,
draw: 'intensity'
}
var mapvLineLayer = new mapv.baiduMapLayer(map, dataSet, options);
var dataSet = new mapv.DataSet(timeData);
var options = {
fillStyle: 'rgba(255, 250, 250, 0.9)',
size: .5,
animation: {
type: 'time',
stepsRange: {
start: 0,
end: 50
},
trails: 1,
duration: 5,
},
draw: 'simple'
}
var mapvTimeLayer = new mapv.baiduMapLayer(map, dataSet, options);
}
});
</script>
</body>
</html>