Skip to content

中国地图,省份名称重叠 #4379

@MShineRay

Description

@MShineRay

问题简述 (One-line summary)

中国地图,省份名称重叠
江苏省和安徽省,省份名称存在折叠,请问有没有API接口重新定位某一个省的名称显示位置?

版本及环境 (Version & Environment)

  • ECharts 版本 (ECharts version):v3.2.3
  • 浏览器类型和版本 (Browser version):所有主流浏览器
  • 操作系统类型和版本 (OS Version):Windows10

重现步骤 (Steps to reproduce)

1.echarts官网,中国地图demo【链接:http://echarts.baidu.com/demo.html#map-china】
2.echarts官网,问题交流【链接:http://gallery.echartsjs.com/editor.html?c=xHy_Iqa8ll&comment=0】

期望结果 (Expected behaviour)

省份名称显示位置可自定义,避免重叠

可能哪里有问题 (What went wrong)

ECharts配置项 (ECharts option)

option = {

}

其他信息 (Other comments)

Activity

MShineRay

MShineRay commented on Nov 2, 2016

@MShineRay
Author

找到了笨办法:直接修改china.js中
"properties":{"cp":[119.767413,33.041544],"name":"江苏","childNum":1}
cp的值,根据调试结果来看,cp应该代表x,y轴定位相关信息。修改副作用未知。。。。。。。

pissang

pissang commented on Nov 2, 2016

@pissang
Contributor

@MShineRay 这是正确的办法,也可以 echarts.getMap('china') 后修改已经加载的地图的数据

MShineRay

MShineRay commented on Nov 2, 2016

@MShineRay
Author

@pissang 非常感谢指点。大体整理了一下代码,这个应该是比较正确的方案了:

var chinaMapInfoObj = document.getElementById(‘mianid‘’);
var chinaMap = echarts.init(chinaMapInfoObj);
var chinaEchartsObj = echarts.getMap('china');
var geoJSONChina = chinaEchartsObj.geoJson;
var allDefProvince = geoJSONChina.features;
for(var i=0,len=allDefProvince.length; i<len; i++){
       var sglProvinceProperties = allDefProvince[i].properties;
       var sglProvinceName = sglProvinceProperties.name;
       switch(sglProvinceName){
              case '新疆':
                       sglProvinceProperties.cp[0]=87.617733;
                       sglProvinceProperties.cp[1]=41.792818;
                       break;
               case '青海'://def:101.778916,36.623178
                        sglProvinceProperties.cp[0]=97.617733;
                        sglProvinceProperties.cp[1]=36.623178;
                       break;
                 case '江苏'://def:118.767413,32.041544
                        sglProvinceProperties.cp[0]=119.767413;
                        sglProvinceProperties.cp[1]=33.041544;
                        break;
        }
}
option.echarts.registerMap('china', geoJSONChina, {});

相关资料:
echarts API

lijun007

lijun007 commented on Jun 7, 2017

@lijun007

我做地图下钻,很多市级地图的城市名称也是重叠的,不可能每一个市都去手动改cp的值,有没有什么办法能够解决?

llyuanq

llyuanq commented on Jun 26, 2018

@llyuanq

4.1版本的省地图中,市边界的js相关,没有了吗?

FelixAJK

FelixAJK commented on Mar 4, 2019

@FelixAJK

有没有遇到H5在IOS webview中绘制地图使页面变的卡顿,就跟播幻灯片一样,求有经验的给个解决办法

abitwhy

abitwhy commented on Jan 6, 2023

@abitwhy

@MShineRay 这是正确的办法,也可以 echarts.getMap('china') 后修改已经加载的地图的数据

直接更改导入的地图 JSON 文件似乎更优雅。 (无需重复注册地图;无需使用 getMap 接口)

import map from 'map .json'

function adjustMapLabelCoord(map) {
  map.features.forEach((feature) => {
    if('some conditions') feature.properties.cp = [/* coord pair */]
  })
}
adjustMapLabelCoord(map)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @pissang@MShineRay@lijun007@FelixAJK@llyuanq

        Issue actions

          中国地图,省份名称重叠 · Issue #4379 · apache/echarts