echarts地图根据地块名称获取地块的中心坐标。实现在中心位置放置标记。
需要放置数据的地块名称的数据格式:
mapData: [
{name: '江苏省', value: 500},
{name: '上海市', value: 10}
],
计算中心代码:
// this.geoData是中国地图的geojson格式数据// this.mapData是需要计算中心点的省份名称数据for (let item of this.mapData) {//从地图数据中拿到坐标for ( let area of this.geoData.features){if (item.name === area.properties.name){let coordinates;// 判断是否是多块的地图if (area.geometry.type === 'MultiPolygon') {coordinates = area.geometry.coordinates[0][0]} else {coordinates = area.geometry.coordinates[0]}//计算中心点let x = 0, y = 0, count = 0;for (let i = 0; i < coordinates.length; i++) {x += coordinates[i][0];y += coordinates[i][1];count++;}this.pointData.push({name: item.name,value: [x / count, y / count],data: item.value})// this.pointData.push({// name: item.name,// value: area.properties.center,// data: item.value// })}}}