From 640d3548c8d596d4265c79540a3633b4ca069f96 Mon Sep 17 00:00:00 2001 From: pah100 Date: Wed, 12 Jul 2017 14:45:55 +0800 Subject: [PATCH] Fix #5633 (when nameMap is used, name can not be obtained in tooltip if no data exists in an area) --- src/chart/map/MapSeries.js | 2 +- src/coord/geo/GeoModel.js | 2 +- src/coord/geo/geoCreator.js | 7 ++++++- test/mapWorld.html | 1 + 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/chart/map/MapSeries.js b/src/chart/map/MapSeries.js index 5136efa92b..f21d9c0f52 100644 --- a/src/chart/map/MapSeries.js +++ b/src/chart/map/MapSeries.js @@ -82,7 +82,7 @@ define(function (require) { // Shallow clone option = zrUtil.extend({}, option); - option.data = geoCreator.getFilledRegions(option.data, mapName); + option.data = geoCreator.getFilledRegions(option.data, mapName, option.nameMap); return option; }, diff --git a/src/coord/geo/GeoModel.js b/src/coord/geo/GeoModel.js index a99febb852..2708ad5931 100644 --- a/src/coord/geo/GeoModel.js +++ b/src/coord/geo/GeoModel.js @@ -34,7 +34,7 @@ define(function (require) { var option = this.option; var self = this; - option.regions = geoCreator.getFilledRegions(option.regions, option.map); + option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap); this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) { if (regionOpt.name) { diff --git a/src/coord/geo/geoCreator.js b/src/coord/geo/geoCreator.js index 1111746a46..434583467b 100644 --- a/src/coord/geo/geoCreator.js +++ b/src/coord/geo/geoCreator.js @@ -245,11 +245,13 @@ define(function (require) { * Fill given regions array * @param {Array.} originRegionArr * @param {string} mapName + * @param {Object} [nameMap] * @return {Array} */ - getFilledRegions: function (originRegionArr, mapName) { + getFilledRegions: function (originRegionArr, mapName, nameMap) { // Not use the original var regionsArr = (originRegionArr || []).slice(); + nameMap = nameMap || {}; var map = geoCreator.getMap(mapName); var geoJson = map && map.geoJson; @@ -269,6 +271,9 @@ define(function (require) { for (var i = 0; i < features.length; i++) { var name = features[i].properties.name; if (!dataNameMap.get(name)) { + if (nameMap.hasOwnProperty(name)) { + name = nameMap[name]; + } regionsArr.push({ name: name }); diff --git a/test/mapWorld.html b/test/mapWorld.html index 9305ae4304..2233440da1 100644 --- a/test/mapWorld.html +++ b/test/mapWorld.html @@ -19,6 +19,7 @@ require([ 'echarts', 'echarts/chart/map', + 'echarts/component/tooltip', 'echarts/component/legend', 'echarts/component/geo', 'echarts/component/visualMap'