我用的是 jquery还有echarts
第一步:寻找你需要的地图.json文件,下载后放到目录下 留着备用(注:地点区分可以理解为是身份证号区分);
第二步:开始写代码(需要查询标点及中心点的经纬坐标)
$(function(){
created();
});
function created(){
var sanData=[
[{name: '义乌机场', value: 1}],
[{name: '义乌站', value: 2}],
[{name: '松山风景区', value: 3}],
[{name: '福田湿地公园', value: 4}],
[{name: '凌云寺', value: 5}]
];
var geoCoordMap={
'义乌机场':[119.933733,29.27913],
'义乌站':[120.049674,29.385449],
'松山风景区':[120.072383,29.137404],
'福田湿地公园':[120.145973,29.339617],
'凌云寺':[119.719277,29.107542],
};
var fromCoord='义乌机场' //中心点
var convertData = function (data) {
console.log(data);
var res = [];
for (var i = 0; i < data.length;i++) {
console.log('***',data[i]);
var dataItem = data[i];
var fromCoord= geoCoordMap[dataItem[0].name];
console.log('fromCoord',fromCoord);
var toCoord =[119.933733,29.27913]; //中心点地理坐标
if (dataItem) {
res.push([
{
coord:toCoord,//出发点
},{
coord:fromCoord,//终点
value:dataItem[0].value,
}
]);
};
}
console.log('数据的信息',res);//数据的信息
return res;
};
var series=[];
[[fromCoord,sanData]].forEach(function(item,i){
console.log('62',item);
// item[1].map(x=>{
// console.log(x);
// })
console.log('item[1]',item[1]);
series.push(
{
type: 'lines',
coordinateSystem: 'geo',
zlevel: 0,
effect: {
show: true,
period: 4, //箭头指向速度,值越小速度越快
trailLength: 0, //特效尾迹长度[0,1]值越大,尾迹越长重
symbol: 'arrow', //箭头图标
symbolSize: 12, //图标大小
color: '#fcdd6e', // 图标颜色
},
lineStyle: {
normal: {
show: true,
width: 1, //尾迹线条宽度
opacity: 1, //尾迹线条透明度
curveness: 0.1, //尾迹线条曲直度
color: '#fcdd6e', // 飞线颜色
},
color: '#fcdd6e',
},
data: convertData(item[1]),
},
{
type: 'effectScatter',
coordinateSystem: 'geo',
zlevel:-1,
rippleEffect: {
//涟漪特效
period: 4, //动画时间,值越小速度越快
brushType: 'stroke', //波纹绘制方式 stroke, fill
scale: 3, //波纹圆环最大限制,值越大波纹越大
color: '#fcdd6e',
},
label: {
normal: {
show: false,
position: 'right', //显示位置
offset: [5, 0], //偏移设置
formatter: function (params) {
//圆环显示文字
return params.data.name
},
fontSize: 13,
},
emphasis: {
show: false,
},
},
symbol: 'circle',
symbolSize: function (val) {
return 16 //圆环大小
},
itemStyle: {
normal: {
show: false,
color: '#fce182',
},
},
data: item[1].map(function (dataItem) {
console.log(dataItem);
return {
//在这里定义你所要展示的数据
// name: dataItem[0].name,
// value: chinaGeoCoordMap[dataItem[0].name].concat([dataItem[0].value]),
name: dataItem[0].name,
value: geoCoordMap[dataItem[0].name].concat([dataItem[0].value]),
}
}),
},
//中心点
{
type: 'effectScatter',
coordinateSystem: 'geo',
zlevel: 0,
rippleEffect: {
period: 4,
brushType: 'stroke',
scale: 8,
color: '#38ff85',
},
label: {
normal: {
show: false,
position: 'right',
//offset:[5, 0],
color: '#38ff85',
formatter: '{b}',
textStyle: {
color: '#38ff85',
},
},
emphasis: {
show: false,
color: '#38ff85',
},
},
symbol: 'circle',
symbolSize:29,
itemStyle: {
color: '#38ff85',
},
data: [
{
name: item[0],
value: geoCoordMap[item[0]].concat([10]),
},
],
}
)
});
initchartForjs(series);
};
//引入相应的js文件,然后就可以加载相应的地图
function initchartForjs(series) {
// console.log('成功调用',data);
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('main'));
$.get('map/json/citys/330700.json', function (geoJson){
console.log('111',geoJson); //下面的县及坐标点
var is=[];
var geoJson2={features:[]};
$(geoJson.features).each(function(i,item){
console.log(item);
// if(item.properties.name=="金东区"||item.properties.name=="义乌市"){
geoJson2.features.push(item);
// };
});
$(is).each(function(k,index){
//geoJson.features.splice(index,1);
});
echarts.registerMap('xz', geoJson2); //导入地图
var option = {
title:{
text:'义乌市',
symbolSize:45,
x:'center',
y:'center',
textStyle: {
fontSize: 24,
fontWeight: 'bolder',
color: 'black' // 主标题文字颜色
},
},
tooltip : {
trigger: 'item',
// formatter: '{b}'
},
visualMap: {
//颜色的设置 dataRange
// textStyle: { color: '#1a1e45' },
x: 'left',
y: 'bottom',
// splitList: [{ start: 0, end: 150000 }],
show: false,
// text:['高','低'],// 文本,默认为数值文本
// color: ['#1a1e45'],
},
geo:{
show:true,
map:'xz',
label:{//绘制地图
normal:{show:true},
emphasis:{show:false},
},
roam: false, //是否允许缩放
itemStyle:{
normal: {
areaColor: '#00405b', //地图背景
borderColor: '#1290cc', //是边界线
borderWidth: 2,
color:'#fff',
label:{color:'#fff',show:false}
},
emphasis: {
areaColor: '#00405b',
borderColor: '#1290cc',
label:{color:'#fff',show:true}
}
},
zlevel: -1,
data:{
name:'义乌市',
}
},
series
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
});
}