UNPKG

mapv

Version:

a library of geography visualization

276 lines (251 loc) 8.31 kB
<!DOCTYPE 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="//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(108.154518,36.643346), 5); // 初始化地图,设置中心点坐标和地图级别 map.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放 // 地图自定义样式 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 = 500; var node_data = { "0":{"x":108.154518, "y":36.643346}, "1":{"x":121.485124, "y":31.235317}, }; var edge_data = [ {"source":"1", "target":"0"} ] var citys = ["北京","天津","上海","重庆","石家庄","太原","呼和浩特","哈尔滨","长春","沈阳","济南","南京","合肥","杭州","南昌","福州","郑州","武汉","长沙","广州","南宁","西安","银川","兰州","西宁","乌鲁木齐","成都","贵阳","昆明","拉萨","海口"]; // 构造数据 for (var i = 1; i < randomCount; i++) { var cityCenter = mapv.utilCityCenter.getCenterByCityName(citys[parseInt(Math.random() * citys.length)]); node_data[i] = { x: cityCenter.lng - 5 + Math.random() * 10, y: cityCenter.lat - 5 + Math.random() * 10, } edge_data.push( {"source": ~~(i * Math.random()), "target": '0'} ); } var fbundling = mapv.utilForceEdgeBundling() .nodes(node_data) .edges(edge_data); var results = fbundling(); var data = []; var timeData = []; for (var i = 0; i < results.length; i++) { var line = results[i]; var coordinates = []; for (var j = 0; j < line.length; j++) { coordinates.push([line[j].x, line[j].y]); timeData.push({ geometry: { type: 'Point', coordinates: [line[j].x, line[j].y] }, count: 1, time: j }); } data.push({ geometry: { type: 'LineString', coordinates: coordinates } }); } var dataSet = new mapv.DataSet(data); var options = { strokeStyle: 'rgba(55, 50, 250, 0.3)', globalCompositeOperation: 'lighter', shadowColor: 'rgba(55, 50, 250, 0.5)', shadowBlur: 10, methods: { click: function (item) { } }, lineWidth: 1.0, draw: 'simple' } var mapvLayer = new mapv.baiduMapLayer(map, dataSet, options); var dataSet = new mapv.DataSet(timeData); var options = { fillStyle: 'rgba(255, 250, 250, 0.9)', globalCompositeOperation: 'lighter', size: 1.5, animation: { type: 'time', stepsRange: { start: 0, end: 100 }, trails: 1, duration: 5, }, draw: 'simple' } var mapvLayer = new mapv.baiduMapLayer(map, dataSet, options); </script> </body> </html>