diff --git a/echarts_mavenweb/.classpath b/echarts_mavenweb/.classpath index 2784a1b..f0838f3 100644 --- a/echarts_mavenweb/.classpath +++ b/echarts_mavenweb/.classpath @@ -1,32 +1,37 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/echarts_mavenweb/.project b/echarts_mavenweb/.project index a38ef65..1e9b5cb 100644 --- a/echarts_mavenweb/.project +++ b/echarts_mavenweb/.project @@ -1,42 +1,47 @@ - - - echarts_mavenweb - - - - - - org.eclipse.wst.jsdt.core.javascriptValidator - - - - - org.eclipse.jdt.core.javabuilder - - - - - org.eclipse.wst.common.project.facet.core.builder - - - - - org.eclipse.wst.validation.validationbuilder - - - - - org.eclipse.m2e.core.maven2Builder - - - - - - org.eclipse.jem.workbench.JavaEMFNature - org.eclipse.wst.common.modulecore.ModuleCoreNature - org.eclipse.jdt.core.javanature - org.eclipse.m2e.core.maven2Nature - org.eclipse.wst.common.project.facet.core.nature - org.eclipse.wst.jsdt.core.jsNature - - + + + echarts_mavenweb + + + + + + org.eclipse.wst.jsdt.core.javascriptValidator + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + de.loskutov.FileSync.FSBuilder + + + + + + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.jsdt.core.jsNature + + diff --git a/echarts_mavenweb/.settings/de.loskutov.FileSync.prefs b/echarts_mavenweb/.settings/de.loskutov.FileSync.prefs new file mode 100644 index 0000000..e6369f1 --- /dev/null +++ b/echarts_mavenweb/.settings/de.loskutov.FileSync.prefs @@ -0,0 +1,7 @@ +WARNING=DO NOT MODIFY THIS FILE IF YOU DON'T UNDERSTAND +defaultDestination=D\:/AndroidDev/failurereporter/assets/www +defaultVariables= +eclipse.preferences.version=1 +includeTeamPrivateFiles=false +map|0=src/main/webapp|,|,|META-INF/;WEB-INF/|, +useCurrentDateForDestinationFiles=false diff --git a/echarts_mavenweb/.settings/org.eclipse.core.resources.prefs b/echarts_mavenweb/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..3f1fe53 --- /dev/null +++ b/echarts_mavenweb/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/webapp/js/detailDatas_200.js=UTF-8 +encoding//src/main/webapp/js/failure.detail.view.js=UTF-8 +encoding//src/main/webapp/js/summaryDatas_200.js=UTF-8 diff --git a/echarts_mavenweb/.settings/org.eclipse.jdt.core.prefs b/echarts_mavenweb/.settings/org.eclipse.jdt.core.prefs index 45a6e0e..443e085 100644 --- a/echarts_mavenweb/.settings/org.eclipse.jdt.core.prefs +++ b/echarts_mavenweb/.settings/org.eclipse.jdt.core.prefs @@ -1,8 +1,8 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 -org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning -org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/echarts_mavenweb/pom.xml b/echarts_mavenweb/pom.xml index da43786..6f61365 100644 --- a/echarts_mavenweb/pom.xml +++ b/echarts_mavenweb/pom.xml @@ -39,12 +39,28 @@ com.fasterxml.jackson.core jackson-databind 2.6.1 + + + commons-httpclient + commons-httpclient + 3.1 + + + org.json + json + 20140107 + + + log4j + log4j + 1.2.17 - org.hibernate - hibernate-core - 5.0.2.Final + net.java.dev.jna + jna + 4.1.0 + echarts_mavenweb diff --git a/echarts_mavenweb/src/main/.gitignore b/echarts_mavenweb/src/main/.gitignore new file mode 100644 index 0000000..3089269 --- /dev/null +++ b/echarts_mavenweb/src/main/.gitignore @@ -0,0 +1 @@ +/webapp.rar diff --git a/echarts_mavenweb/src/main/java/com/echarts/controllers/FailureDetailController.java b/echarts_mavenweb/src/main/java/com/echarts/controllers/FailureDetailController.java new file mode 100644 index 0000000..0258334 --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/controllers/FailureDetailController.java @@ -0,0 +1,94 @@ +package com.echarts.controllers; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.PostMethod; +import org.json.JSONObject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import com.echarts.utils.MaConfig; +import com.echarts.utils.MaRequestBuilder; +import com.echarts.utils.ServiceMapperConfig; + +@Controller +public class FailureDetailController { + private static final String BEGIN_TIME_OF_ONE_MONTH = "01 00:00:00"; + private static final String LAST_TIME_OF_ONE_MONTH = "31 23:59:59"; + + @RequestMapping("/failureDetail.jsonp") + public JSONObject loadFailureDetail( + @RequestParam String user, + @RequestParam String password, + @RequestParam String groupId, + @RequestParam String userId, + @RequestParam String token, + @RequestParam String startMonth, + @RequestParam String endMonth, + @RequestParam String summaryType, + @RequestParam String id) throws Exception { + + // + Map parameters = new HashMap(); + parameters.put("userid", userId); + parameters.put("groupid", groupId); + parameters.put("pk_org", id); + parameters.put("bmonth", beginTimeOf(startMonth)); + parameters.put("emonth", lastTimeOf(endMonth)); + + String action = ServiceMapperConfig.mappedDetailService(summaryType); + MaRequestBuilder builder = new MaRequestBuilder(); + builder.commonService() + .actionName(action) + .parameters(parameters) + .user(user) + .password(password) + .token(token) + .build(); + + HttpClient client = new HttpClient(); + String url = MaConfig.getConfig().url; + PostMethod post = new PostMethod(url); + post.setQueryString(builder.getRequest()); + + int status = client.executeMethod(post); + if(status != HttpStatus.SC_OK){ + return null; + } + + String responseString = post.getResponseBodyAsString(); + //responseString = new String(out.toByteArray(), "UTF-8"); + System.out.println(responseString); + JSONObject responseJson = new JSONObject(responseString); + JSONObject datasJson = responseJson.getJSONObject("data").getJSONObject("resultctx"); + return datasJson; + /* JSONArray failureTypeDetailsJson = datasJosn.getJSONArray("failureType"); + JSONArray failureReasonDetailsJson = datasJosn.getJSONArray("failureReason"); + JSONArray failureSymptomDetailsJson = datasJosn.getJSONArray("failureSymptom"); + + List summaries = new ArrayList(); + for (int i = 0; i < summariesJson.length(); i++) { + JSONObject oneSummaryJson = summariesJson.getJSONObject(i); + FailureSummary oneSummary = new FailureSummary(); + oneSummary.setId(oneSummaryJson.getString("id")); + oneSummary.setName(oneSummaryJson.getString("name")); + oneSummary.setHaltedTimes(oneSummaryJson.getString("haltedTimes")); + oneSummary.setHaltedHours(oneSummaryJson.getString("haltedHours")); + summaries.add(oneSummary); + } + + return summaries;*/ + } + + private String beginTimeOf(String month) { + return month + "-" + BEGIN_TIME_OF_ONE_MONTH; + } + + private String lastTimeOf(String month) { + return month + "-" + LAST_TIME_OF_ONE_MONTH; + } +} diff --git a/echarts_mavenweb/src/main/java/com/echarts/controllers/FailureSummaryController.java b/echarts_mavenweb/src/main/java/com/echarts/controllers/FailureSummaryController.java new file mode 100644 index 0000000..3730582 --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/controllers/FailureSummaryController.java @@ -0,0 +1,94 @@ +package com.echarts.controllers; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.PostMethod; +import org.json.JSONObject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import com.echarts.utils.MaConfig; +import com.echarts.utils.MaRequestBuilder; +import com.echarts.utils.ServiceMapperConfig; + +@Controller +public class FailureSummaryController { + private static final String BEGIN_TIME_OF_ONE_MONTH = "01 00:00:00"; + private static final String LAST_TIME_OF_ONE_MONTH = "31 23:59:59"; + + @RequestMapping("/failureSummary.jsonp") + public JSONObject loadFailureSummary( + @RequestParam String user, + @RequestParam String password, + @RequestParam String groupId, + @RequestParam String userId, + @RequestParam String token, + @RequestParam String startMonth, + @RequestParam String endMonth, + @RequestParam String summaryType) throws Exception { + + // + Map parameters = new HashMap(); + parameters.put("userid", userId); + parameters.put("groupid", groupId); + parameters.put("bmonth", beginTimeOf(startMonth)); + parameters.put("emonth", lastTimeOf(endMonth)); + + String action = ServiceMapperConfig.mappedSummaryService(summaryType); + MaRequestBuilder builder = new MaRequestBuilder(); + builder.commonService() + .actionName(action) + .parameters(parameters) + .user(user) + .password(password) + .token(token) + .build(); + + HttpClient client = new HttpClient(); + String url = MaConfig.getConfig().url; + PostMethod post = new PostMethod(url); + post.setQueryString(builder.getRequest()); + + int status = client.executeMethod(post); + if(status != HttpStatus.SC_OK){ + return null; + } + + String responseString = post.getResponseBodyAsString(); + //responseString = new String(out.toByteArray(), "UTF-8"); + System.out.println(responseString); + JSONObject responseJson = new JSONObject(responseString); + + JSONObject summariesJson = responseJson + .getJSONObject("data") + .getJSONObject("resultctx"); + //.getJSONArray("data"); + + return summariesJson; + /* + List summaries = new ArrayList(); + for (int i = 0; i < summariesJson.length(); i++) { + JSONObject oneSummaryJson = summariesJson.getJSONObject(i); + FailureSummary oneSummary = new FailureSummary(); + oneSummary.setId(oneSummaryJson.getString("id")); + oneSummary.setName(oneSummaryJson.getString("name")); + oneSummary.setHaltedTimes(oneSummaryJson.getString("haltedTimes")); + oneSummary.setHaltedHours(oneSummaryJson.getString("haltedHours")); + summaries.add(oneSummary); + } + + return summaries;*/ + } + + private String beginTimeOf(String month) { + return month + "-" + BEGIN_TIME_OF_ONE_MONTH; + } + + private String lastTimeOf(String month) { + return month + "-" + LAST_TIME_OF_ONE_MONTH; + } +} diff --git a/echarts_mavenweb/src/main/java/com/echarts/controllers/LoginController.java b/echarts_mavenweb/src/main/java/com/echarts/controllers/LoginController.java new file mode 100644 index 0000000..ff13ca6 --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/controllers/LoginController.java @@ -0,0 +1,79 @@ +package com.echarts.controllers; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.PostMethod; +import org.json.JSONObject; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import com.echarts.models.LoginContext; +import com.echarts.utils.MaConfig; +import com.echarts.utils.MaRequestBuilder; + +@Controller +public class LoginController { + private final String SERVICE_ID = "ncLoginService"; + private final String ACTION_NAME = "umLogin"; + private final String APP_ID = "A04500.nc.yonyou.com"; + private final String FUN_CODE = "A04500"; + + @RequestMapping("/login.jsonp") + public JSONObject login(@RequestParam String user, @RequestParam String password) throws Exception { + HttpClient client = new HttpClient(); + + String url = MaConfig.getConfig().url; + PostMethod post = new PostMethod(url); + + MaRequestBuilder builder = new MaRequestBuilder(); + builder.loginService() + .actionName("umLogin") + .user(user) + .password(password) + .build(); + + post.setQueryString(builder.getRequest()); + + int status = client.executeMethod(post); + if(status != HttpStatus.SC_OK){ + return null; + } + + String responseString = getResponse(post); + System.out.println(responseString); + JSONObject responseJson = new JSONObject(responseString); + JSONObject loginContext = responseJson.getJSONObject("data").getJSONObject("resultctx"); + /*String token = retContext.getString("token"); + String userId = retContext.getString("userid"); + String groupId = retContext.getString("groupid"); + + + + LoginContext context = new LoginContext(); + context.setToken(token); + context.setGroupId(groupId); + context.setUserId(userId);*/ + return loginContext; + } + + private String getResponse(PostMethod post) throws IOException, UnsupportedEncodingException { + InputStream in = post.getResponseBodyAsStream(); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + int len = -1; + while((len = in.read()) != -1){ + out.write(len); + } + String retStr = new String(out.toByteArray(), "UTF-8"); + return retStr; + } + + private String buildHost(String host, String port) { + return "http://" + host + ":" + port + "/umserver/core/"; + } +} diff --git a/echarts_mavenweb/src/main/java/com/echarts/models/FailureDetail.java b/echarts_mavenweb/src/main/java/com/echarts/models/FailureDetail.java new file mode 100644 index 0000000..8379c9b --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/models/FailureDetail.java @@ -0,0 +1,28 @@ +package com.echarts.models; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class FailureDetail { + @JsonProperty("name") + private String name; + + @JsonProperty("value") + private String value; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + +} diff --git a/echarts_mavenweb/src/main/java/com/echarts/models/FailureSummary.java b/echarts_mavenweb/src/main/java/com/echarts/models/FailureSummary.java new file mode 100644 index 0000000..1cd2115 --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/models/FailureSummary.java @@ -0,0 +1,51 @@ +package com.echarts.models; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class FailureSummary { + @JsonProperty("id") + private String id; + + @JsonProperty("name") + private String name; + + @JsonProperty("haltedTimes") + private String haltedTimes; + + @JsonProperty("haltedHours") + private String haltedHours; + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getHaltedTimes() { + return haltedTimes; + } + + public void setHaltedTimes(String haltedTimes) { + this.haltedTimes = haltedTimes; + } + + public String getHaltedHours() { + return haltedHours; + } + + public void setHaltedHours(String haltedHours) { + this.haltedHours = haltedHours; + } + +} diff --git a/echarts_mavenweb/src/main/java/com/echarts/models/LoginContext.java b/echarts_mavenweb/src/main/java/com/echarts/models/LoginContext.java new file mode 100644 index 0000000..0df0f61 --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/models/LoginContext.java @@ -0,0 +1,42 @@ +package com.echarts.models; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonAutoDetect +public class LoginContext { + @JsonProperty("token") + private String token; + + @JsonProperty("groupId") + private String groupId; + + @JsonProperty("userId") + private String userId; + + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public String getGroupId() { + return groupId; + } + + public void setGroupId(String groupId) { + this.groupId = groupId; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } + +} diff --git a/echarts_mavenweb/src/main/java/com/echarts/test/ClassLoaderTest.java b/echarts_mavenweb/src/main/java/com/echarts/test/ClassLoaderTest.java new file mode 100644 index 0000000..3d7f48a --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/test/ClassLoaderTest.java @@ -0,0 +1,72 @@ +package com.echarts.test; + +import java.net.URL; +import java.net.URLClassLoader; + +import javax.xml.parsers.DocumentBuilderFactory; + +import org.springframework.web.servlet.DispatcherServlet; + +public class ClassLoaderTest { + + public static void main(String[] args) throws Exception { + // TODO Auto-generated method stub + + Super parent = new Super(); + parent.setI(10); + + + ClassLoader app = ClassLoaderTest.class.getClassLoader(); + System.out.println(app); + System.out.println(app.getClass().getClassLoader()); + + ClassLoader ext = app.getParent(); + System.out.println(ext); + System.out.println(ext.getClass().getClassLoader()); + + URL url = new URL("file:/D:/spring-webmvc-4.0.0.RELEASE-sources.jar"); + URLClassLoader urlLoader = new URLClassLoader(new URL[]{url}); + System.out.println("url: " + url.getClass().getClassLoader()); + System.out.println("urlLoader : " + urlLoader); + System.out.println("urlLoader parent : " + urlLoader.getParent()); + + Class dispatcherClass = urlLoader.loadClass("org.springframework.web.servlet.DispatcherServlet"); + DispatcherServlet dispatcher = (DispatcherServlet) dispatcherClass.newInstance(); + System.out.println("dispatcherClass : " + dispatcherClass.getClassLoader()); + System.out.println("dispatcher : " + dispatcher.getClass().getClassLoader()); + + URL url2 = new URL("file:/D:/4.0.0.RELEASE/spring-webmvc-4.0.0.RELEASE-sources.jar"); + URLClassLoader urlLoader2 = new URLClassLoader(new URL[]{url2}); + Class dispatcherClass2 = urlLoader2.loadClass("org.springframework.web.servlet.DispatcherServlet"); + DispatcherServlet dispatcher2 = (DispatcherServlet) dispatcherClass2.newInstance(); + System.out.println("dispatcherClass2 : " + dispatcherClass2.getClassLoader()); + System.out.println("dispatcher2 : " + dispatcher2.getClass().getClassLoader()); + System.out.println(dispatcherClass.equals(dispatcherClass2)); + + System.out.println("DocumentFactory : " + DocumentBuilderFactory.class.getClassLoader()); + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + System.out.println("factoryImpl : " + factory + "; loader : " + factory.getClass().getClassLoader()); + } + +} + +class Super { + private int i; + private String s; + + public int getI() { + return i; + } + public void setI(int i) { + this.i = i; + } + public String getS() { + return s; + } + public void setS(String s) { + this.s = s; + } + + + +} diff --git a/echarts_mavenweb/src/main/java/com/echarts/test/MAServerTest.java b/echarts_mavenweb/src/main/java/com/echarts/test/MAServerTest.java new file mode 100644 index 0000000..e2ce18a --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/test/MAServerTest.java @@ -0,0 +1,95 @@ +package com.echarts.test; + +import java.io.ByteArrayOutputStream; +import java.io.InputStream; + +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.methods.PostMethod; +import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity; +import org.apache.commons.httpclient.methods.multipart.Part; +import org.apache.commons.httpclient.methods.multipart.StringPart; +import org.json.JSONObject; + +import com.yonyou.uap.um.security.UMProtocolManager; + +import junit.framework.TestCase; + + +public class MAServerTest extends TestCase { + + private HttpClient client = null; + private PostMethod post = null; + + protected void setUp() throws Exception { + client = new HttpClient(); + post = new PostMethod("http://10.1.73.49:80/umserver/core"); + } + + public void test(){ + try { + JSONObject dataJson = new JSONObject(); + //appcontext + JSONObject appcontext = new JSONObject(); + appcontext.put("appid", "A04500.nc.yonyou.com"); + appcontext.put("user", "songyp"); + appcontext.put("pass", "yonyou1"); + //appcontext.put("token", "00000150d08bc7a139423538363245303345333236313338333342394430334541443730333343442e7365727665723293e21333b73280c9523745445598d5044c4ef625614f25e5f5ad8200000150d08bc7a1"); + dataJson.put("appcontext", appcontext); + //servicecontext + JSONObject servicecontext = new JSONObject(); + servicecontext.put("action", "querySummaryList"); + servicecontext.put("actionid", "querySummaryList"); + servicecontext.put("callback", "nothing"); + servicecontext.put("actionname", "querySummaryList"); + servicecontext.put("funcode", "A04500"); + servicecontext.put("viewid", "nc.mob.ui.am.controller.NCAMFailureAnalyzeController"); + JSONObject params = new JSONObject(); + params.put("bmonth","2014-01-01 00:00:00"); + params.put("emonth","2015-11-31 23:59:59"); + servicecontext.put("params", params); + dataJson.put("servicecontext", servicecontext); + //deviceinfo + JSONObject deviceinfo = new JSONObject(); + deviceinfo.put("devid", "1ca8a699000519126075"); + deviceinfo.put("style", "android"); + deviceinfo.put("versionname", "1.0.0");//android + deviceinfo.put("", "android"); + deviceinfo.put("appverion", "1.0.0");//ios + + dataJson.put("deviceinfo", deviceinfo); + //serviceid + String serviceid = "umCommonService"; + dataJson.put("serviceid", serviceid); + + String dataStr = dataJson.toString(); + + String tpStr = "none";//none + StringPart tp = new StringPart("tp", tpStr); + + //dataStr = UMProtocolManager.getEncryption(tpStr).decode(dataStr); + StringPart data = new StringPart("data", dataStr); + + Part[] parts = new Part[]{tp,data}; + post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams())); + int status = client.executeMethod(post); + if(status == HttpStatus.SC_OK){ + InputStream in = post.getResponseBodyAsStream(); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + int len = -1; + while((len = in.read()) != -1){ + out.write(len); + } + String retStr = new String(out.toByteArray()); + System.out.println(retStr); + JSONObject retJson = new JSONObject(retStr); + assertEquals("1", retJson.getJSONObject("data").getString("code")); + } + } catch (Exception e) { + fail(e.getMessage()); + } + } + + +} + diff --git a/echarts_mavenweb/src/main/java/com/echarts/test/MaConfigTest.java b/echarts_mavenweb/src/main/java/com/echarts/test/MaConfigTest.java new file mode 100644 index 0000000..8d80317 --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/test/MaConfigTest.java @@ -0,0 +1,15 @@ +package com.echarts.test; + +import java.io.IOException; + +import com.echarts.utils.MaConfig; + +public class MaConfigTest { + + public static void main(String[] args) throws IOException { + // TODO Auto-generated method stub + MaConfig config = MaConfig.getConfig(); + System.out.println(config.url); + } + +} diff --git a/echarts_mavenweb/src/main/java/com/echarts/test/NCLoginTestCase.java b/echarts_mavenweb/src/main/java/com/echarts/test/NCLoginTestCase.java new file mode 100644 index 0000000..7d1944c --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/test/NCLoginTestCase.java @@ -0,0 +1,87 @@ +package com.echarts.test; + +import java.io.ByteArrayOutputStream; +import java.io.InputStream; +import org.apache.commons.httpclient.HttpClient; +import org.apache.commons.httpclient.HttpStatus; +import org.apache.commons.httpclient.NameValuePair; +import org.apache.commons.httpclient.methods.PostMethod; +import org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity; +import org.apache.commons.httpclient.methods.multipart.Part; +import org.apache.commons.httpclient.methods.multipart.StringPart; +import org.json.JSONObject; + + + +import junit.framework.TestCase; + +public class NCLoginTestCase extends TestCase { + + private HttpClient client = null; + private PostMethod post = null; + + protected void setUp() throws Exception { + client = new HttpClient(); + post = new PostMethod("http://10.1.72.79:80/umserver/core"); + } + + protected void tearDown() throws Exception { + super.tearDown(); + } + + public void testNCLogin(){ + try { + JSONObject dataJson = new JSONObject(); + //appcontext + JSONObject appcontext = new JSONObject(); + appcontext.put("appid", "A04500.nc.yonyou.com"); + appcontext.put("user", "zhoud"); + appcontext.put("pass", "yonyou1"); + dataJson.put("appcontext", appcontext); + //servicecontext + JSONObject servicecontext = new JSONObject(); + servicecontext.put("action", "umLogin"); + servicecontext.put("actionid", "umLogin"); + servicecontext.put("callback", ""); + servicecontext.put("actionname", "umLogin"); + servicecontext.put("funcode", "A04500"); + dataJson.put("servicecontext", servicecontext); + //deviceinfo + JSONObject deviceinfo = new JSONObject(); + deviceinfo.put("devid", "39769b68352204061039923"); + deviceinfo.put("style", "android"); + deviceinfo.put("versionname", "1.0.0.0"); + dataJson.put("deviceinfo", deviceinfo); + //serviceid + String serviceid = "ncLoginService"; + dataJson.put("serviceid", serviceid); + + String dataStr = dataJson.toString(); + NameValuePair[] pair = new NameValuePair[]{ + new NameValuePair("tp", "none"), + new NameValuePair("data", dataStr) + }; + post.setQueryString(pair); + int status = client.executeMethod(post); + if(status == HttpStatus.SC_OK){ + byte[] response = post.getResponseBody(); + String res = new String(response); + InputStream in = post.getResponseBodyAsStream(); + ByteArrayOutputStream out = new ByteArrayOutputStream(); + int len = -1; + while((len = in.read()) != -1){ + out.write(len); + } + String retStr = new String(out.toByteArray()); + System.out.println(retStr); + JSONObject retJson = new JSONObject(retStr); + assertEquals("1", retJson.getJSONObject("data").getString("code")); + } + } catch (Exception e) { + fail(e.getMessage()); + } + } + +} + + diff --git a/echarts_mavenweb/src/main/java/com/echarts/test/SummaryDataCreator.java b/echarts_mavenweb/src/main/java/com/echarts/test/SummaryDataCreator.java new file mode 100644 index 0000000..bc6219e --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/test/SummaryDataCreator.java @@ -0,0 +1,154 @@ +package com.echarts.test; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.util.Random; + +import org.json.JSONArray; +import org.json.JSONObject; + +public class SummaryDataCreator { + private static final String[] types = new String[] { + "failureOrg", "failureType", "failureReason", "failureSymptom" + }; + private static final String JS_FILE_EXTENSION = "js"; + private static final String JSON_FILE_EXTENSION = "json"; + + private static int DETAILS_COUNT = 6; + private static int SUMMARIES_COUNT = 200; + + public static JSONObject createSummaries( String summaryType ) throws IOException { + String name = mappedTypeName(summaryType); + JSONArray summariesJson = new JSONArray(); + Random random = new Random(100); + for (int i = 1; i < SUMMARIES_COUNT + 1; i++) { + JSONObject oneSummary = new JSONObject(); + oneSummary.put("id", i); + oneSummary.put("name", name + " #" + i); + oneSummary.put("haltedTimes", random.nextInt(100)); + oneSummary.put("haltedHours", random.nextInt(200)); + summariesJson.put(oneSummary); + } + + JSONObject result = new JSONObject(); + result.put("data", summariesJson); + + return result; + + } + + // + public static JSONObject createDetails ( String summaryType ) { + JSONObject result = new JSONObject(); + for (int i = 1; i < SUMMARIES_COUNT + 1; i++) { + JSONObject oneDetail = createDetail( summaryType ); + result.put(String.valueOf(i), oneDetail); + } + return result; + } + public static JSONObject createDetail ( String summaryType, String id) { + JSONObject result = new JSONObject(); + JSONObject oneDetail = createDetail( summaryType ); + + return result; + } + + private static JSONObject createDetail ( String summaryType ) { + JSONObject typeDetails = new JSONObject(); + for (String type : types) { + if (summaryType.equals(type)) { + continue; + } + + JSONArray oneTypeDetail = nameAndValuesFor( type ); + typeDetails.put(type, oneTypeDetail); + } + + return typeDetails; + } + private static JSONArray nameAndValuesFor( String type ) { + Random random = new Random(); + String name = mappedTypeName(type); + JSONArray details = new JSONArray(); + for ( int i = 1; i < DETAILS_COUNT + 1; i++ ) { + JSONObject oneDetail = new JSONObject(); + oneDetail.put("name", name + " #" + i); + oneDetail.put("value", random.nextInt(100)); + details.put(oneDetail); + } + + return details; + } + + // JS + public static String createJsVariableData(String summaryType, boolean summaried ) throws IOException { + + JSONObject datasJson = ( summaried ) ? createSummaries( summaryType ) : createDetails(summaryType); + + String postfixedName = ( summaried ) ? "Summaries" : "Details"; + String first = summaryType.substring(0, 1); + String typeName = summaryType.replaceFirst(first, first.toUpperCase()); + String variableName = "pseudo" + typeName + postfixedName; + + String variableString = "var " + variableName + " = " + datasJson.toString() + ";"; + + return variableString; + } + + public static void createEachFileForOneType(String summaryType, String fileExtension, boolean summaried) throws IOException { + String postfixedName = ( summaried ) ? "Summaries" : "Details"; + File file = new File( summaryType + postfixedName + "_" + SUMMARIES_COUNT + "." + fileExtension); + System.out.println(file.getAbsolutePath()); + FileWriter writer = new FileWriter(file); + writer.write(createJsVariableData( summaryType, summaried )); + writer.close(); + } + + public static void createOneFileForAllTypes( String fileExtension, boolean summaried) throws IOException { + StringBuilder builder = new StringBuilder(); + for (String type : types) { + builder.append( createJsVariableData( type, summaried ) + "\n" ); + } + String prefixedName = ( summaried ) ? "summaryDatas" : "detailDatas"; + File file = new File( prefixedName + "_" + SUMMARIES_COUNT + "." + fileExtension ); + FileWriter writer = new FileWriter(file); + writer.write(builder.toString()); + writer.close(); + } + + public static void main(String[] args) throws IOException { + int count = 2000; + for (String type : types) { + createEachFileForOneType(type, JS_FILE_EXTENSION, true); + createEachFileForOneType(type, JS_FILE_EXTENSION, false); + } + + createOneFileForAllTypes(JS_FILE_EXTENSION, true); + createOneFileForAllTypes(JS_FILE_EXTENSION, false); + + + } + + private static String mappedTypeName( String type ) { + String name; + switch ( type ) { + case "failureOrg" : + name = "֯"; + break; + case "failureType" : + name = ""; + break; + case "failureReason" : + name = "ԭ"; + break; + case "failureSymptom" : + name = ""; + break; + default : + name = ""; + } + return name; + + } +} diff --git a/echarts_mavenweb/src/main/java/com/echarts/utils/MaConfig.java b/echarts_mavenweb/src/main/java/com/echarts/utils/MaConfig.java new file mode 100644 index 0000000..dbadad9 --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/utils/MaConfig.java @@ -0,0 +1,37 @@ +package com.echarts.utils; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.net.URI; +import java.util.Properties; + +public class MaConfig { + public String url, appId, funCode, viewId; + private static MaConfig instance; + + private MaConfig() { + } + + public static MaConfig getConfig() throws IOException { + if (instance == null) { + instance = createConfig(); + } + return instance; + } + + private static MaConfig createConfig() throws IOException { + final Properties p = new Properties(); + p.load(MaConfig.class.getResourceAsStream("/ma.properties")); + + final MaConfig c = new MaConfig(); + + //c.url = URI.create(p.getProperty("ma.server.url")); + c.url = p.getProperty("ma.server.url"); + c.appId = p.getProperty("ma.server.appid"); + c.funCode = p.getProperty("ma.server.funcode"); + c.viewId = p.getProperty("ma.server.viewid"); + + return c; + } +} diff --git a/echarts_mavenweb/src/main/java/com/echarts/utils/MaRequestBuilder.java b/echarts_mavenweb/src/main/java/com/echarts/utils/MaRequestBuilder.java new file mode 100644 index 0000000..6246608 --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/utils/MaRequestBuilder.java @@ -0,0 +1,143 @@ +package com.echarts.utils; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +import org.apache.commons.httpclient.NameValuePair; +import org.apache.commons.httpclient.util.EncodingUtil; +import org.json.JSONObject; + +public class MaRequestBuilder { + private final String MA_COMMON_SERVICE_ID = "umCommonService"; + private final String MA_LOGIN_SERVICE_ID = "ncLoginService"; + + private String serviceId; + + private String appId; + private String funCode; + private String viewId; + private String actionName; + private Map parameters = new HashMap(); + + private String user; + private String password; + private String token; + + + // Ma + private JSONObject data = new JSONObject(); + // MaϢ + private NameValuePair[] request; + + public MaRequestBuilder() throws IOException { + this(MaConfig.getConfig()); + } + + private MaRequestBuilder(MaConfig config) { + this.appId = config.appId; + this.viewId = config.viewId; + this.funCode = config.funCode; + } + + public MaRequestBuilder commonService() { + this.serviceId = MA_COMMON_SERVICE_ID; + return this; + } + + public MaRequestBuilder loginService() { + this.serviceId = MA_LOGIN_SERVICE_ID; + return this; + } + + public MaRequestBuilder actionName(String actionName) { + this.actionName = actionName; + return this; + } + + public MaRequestBuilder user(String user) { + this.user = user; + return this; + } + + public MaRequestBuilder password(String password) { + this.password = password; + return this; + } + + public MaRequestBuilder token(String token) { + this.token = token; + return this; + } + + public MaRequestBuilder parameters(Map parameters) { + this.parameters = parameters; + return this; + } + + public void build() { + buildData(); + buildRequest(); + } + + private void buildRequest() { + NameValuePair[] paras = new NameValuePair[] { + new NameValuePair("tp", "none"), + new NameValuePair("data", data.toString()) + }; + + this.request = paras; + } + + private void buildData() { + buildAppContext(); + buildServiceContext(); + buildDeviceInfo(); + buildServiceId(); + } + + private void buildServiceId() { + data.put("serviceid", serviceId); + } + + private void buildDeviceInfo() { + JSONObject deviceinfo = new JSONObject(); + deviceinfo.put("devid", "39769b68352204061039923"); + deviceinfo.put("style", "android"); + deviceinfo.put("versionname", "1.0.0.0"); + + data.put("deviceinfo", deviceinfo); + } + + private void buildServiceContext() { + JSONObject servicecontext = new JSONObject(); + servicecontext.put("funcode", funCode); + servicecontext.put("viewid", viewId); + + servicecontext.put("action", actionName); + servicecontext.put("actionid", actionName); + servicecontext.put("actionname", actionName); + + JSONObject params = new JSONObject(parameters); + servicecontext.put("params", params); + + servicecontext.put("callback", ""); + + data.put("servicecontext", servicecontext); + } + + + private void buildAppContext() { + JSONObject appcontext = new JSONObject(); + appcontext.put("appid", appId); + appcontext.put("user", user); + appcontext.put("pass", password); + appcontext.put("token", token); + + data.put("appcontext", appcontext); + } + + public NameValuePair[] getRequest() { + return this.request; + } +} diff --git a/echarts_mavenweb/src/main/java/com/echarts/utils/ServiceMapperConfig.java b/echarts_mavenweb/src/main/java/com/echarts/utils/ServiceMapperConfig.java new file mode 100644 index 0000000..15b638c --- /dev/null +++ b/echarts_mavenweb/src/main/java/com/echarts/utils/ServiceMapperConfig.java @@ -0,0 +1,42 @@ +package com.echarts.utils; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; + +public class ServiceMapperConfig { + private static Map summaryServicesMapper = new HashMap(); + private static Map detailServicesMapper = new HashMap(); + private static final String[] types = + new String[] { "failureOrg", "failureType", "failureSymptom", "failureReason" }; + + static { + try { + initConfig(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + private static void initConfig() throws IOException { + Properties p = new Properties(); + p.load(ServiceMapperConfig.class.getResourceAsStream("/service.properties")); + + for ( String type : types) { + String summaryKey = "summary.list." + type; + summaryServicesMapper.put(type, p.getProperty(summaryKey)); + String detailKey = "detail.card." + type; + detailServicesMapper.put(type, p.getProperty(detailKey)); + } + } + + public static String mappedSummaryService( String type ) { + return summaryServicesMapper.get(type); + } + + public static String mappedDetailService( String type ) { + return detailServicesMapper.get(type); + } +} diff --git a/echarts_mavenweb/src/main/java/com/echarts/views/MappingJackson2JsonpView.java b/echarts_mavenweb/src/main/java/com/echarts/views/MappingJackson2JsonpView.java index b637a6f..3260ee9 100644 --- a/echarts_mavenweb/src/main/java/com/echarts/views/MappingJackson2JsonpView.java +++ b/echarts_mavenweb/src/main/java/com/echarts/views/MappingJackson2JsonpView.java @@ -1,59 +1,70 @@ -package com.echarts.views; - -import java.io.OutputStream; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.util.CollectionUtils; -import org.springframework.validation.BindingResult; -import org.springframework.web.servlet.view.json.MappingJackson2JsonView; - -public class MappingJackson2JsonpView extends MappingJackson2JsonView { - /** - * Default content type. Overridable as bean property. - */ - public static final String DEFAULT_CONTENT_TYPE = "application/javascript"; - - public MappingJackson2JsonpView() { - super(); - } - - @Override - public String getContentType() { - return DEFAULT_CONTENT_TYPE; - } - - @Override - public void render(Map model, HttpServletRequest request, HttpServletResponse response) throws Exception { - if( "GET".equals(request.getMethod().toUpperCase()) ) { - Map params = request.getParameterMap(); - if ( params.containsKey("callback") ) { - OutputStream out = response.getOutputStream(); - out.write((params.get("callback")[0] + "(").getBytes()); - super.render(model, request, response); - out.write((")").getBytes()); - response.setContentType("application/javascript"); - } else { - super.render(model, request, response); - } - } else { - super.render(model, request, response); - } - } - - @Override - protected Object filterModel(Map model) { - Set result = new HashSet(model.size()); - Set renderedAttributes = (!CollectionUtils.isEmpty(getModelKeys()) ? getModelKeys() : model.keySet()); - for (Map.Entry entry : model.entrySet()) { - if (!(entry.getValue() instanceof BindingResult) && renderedAttributes.contains(entry.getKey())) { - result.add(entry.getValue()); - } - } - return result; - } -} +package com.echarts.views; + +import java.io.OutputStream; +import java.util.HashSet; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.util.CollectionUtils; +import org.springframework.validation.BindingResult; +import org.springframework.web.servlet.view.json.MappingJackson2JsonView; + +public class MappingJackson2JsonpView extends MappingJackson2JsonView { + /** + * Default content type. Overridable as bean property. + */ + public static final String DEFAULT_CONTENT_TYPE = "application/javascript"; + + public MappingJackson2JsonpView() { + super(); + } + + @Override + public String getContentType() { + return DEFAULT_CONTENT_TYPE; + } + + @Override + public void render(Map model, HttpServletRequest request, HttpServletResponse response) throws Exception { + if( "GET".equals(request.getMethod().toUpperCase()) ) { + Map params = request.getParameterMap(); + if ( params.containsKey("callback") ) { + OutputStream out = response.getOutputStream(); + String responseJsonp = params.get("callback")[0] + "("; + + Set renderedAttributes = (!CollectionUtils.isEmpty(getModelKeys()) ? getModelKeys() : model.keySet()); + for (Entry entry : model.entrySet()) { + if (!(entry.getValue() instanceof BindingResult) && renderedAttributes.contains(entry.getKey())) { + responseJsonp += entry.getValue().toString(); + } + } + responseJsonp += ")"; + + //out.write(model.toString().getBytes()); + //super.render(model, request, response); + out.write(responseJsonp.getBytes("UTF-8")); + response.setContentType("application/javascript"); + } else { + super.render(model, request, response); + } + } else { + super.render(model, request, response); + } + } + + @Override + protected Object filterModel(Map model) { + Set result = new HashSet(model.size()); + Set renderedAttributes = (!CollectionUtils.isEmpty(getModelKeys()) ? getModelKeys() : model.keySet()); + for (Map.Entry entry : model.entrySet()) { + if (!(entry.getValue() instanceof BindingResult) && renderedAttributes.contains(entry.getKey())) { + result.add(entry.getValue()); + } + } + return result; + } +} diff --git a/echarts_mavenweb/src/main/resources/ma.properties b/echarts_mavenweb/src/main/resources/ma.properties new file mode 100644 index 0000000..46ad5b7 --- /dev/null +++ b/echarts_mavenweb/src/main/resources/ma.properties @@ -0,0 +1,4 @@ +ma.server.url=http://10.1.73.49:80/umserver/core +ma.server.appid=A04500.nc.yonyou.com +ma.server.funcode=A04500 +ma.server.viewid=nc.mob.ui.am.controller.NCAMFailureAnalyzeController diff --git a/echarts_mavenweb/src/main/resources/service.properties b/echarts_mavenweb/src/main/resources/service.properties new file mode 100644 index 0000000..1a3aea5 --- /dev/null +++ b/echarts_mavenweb/src/main/resources/service.properties @@ -0,0 +1,15 @@ +summary.list.failureOrg=querySummaryList +summary.list.failureType=queryFailureTypeList +summary.list.failureSymptom=queryFailureSymptomList +summary.list.failureReason=queryFailureReasonList + +detail.card.failureOrg=querySummaryCard +detail.card.failureType=queryFailureTypeCard +detail.card.failureSymptom=queryFailureSymptomCard +detail.card.failureReason=queryFailureReasonCard + + + + + + diff --git a/echarts_mavenweb/src/main/webapp/WEB-INF/spring-servlet.xml b/echarts_mavenweb/src/main/webapp/WEB-INF/spring-servlet.xml index c414624..789b619 100644 --- a/echarts_mavenweb/src/main/webapp/WEB-INF/spring-servlet.xml +++ b/echarts_mavenweb/src/main/webapp/WEB-INF/spring-servlet.xml @@ -21,7 +21,9 @@ - + + + diff --git a/echarts_mavenweb/src/main/webapp/css/dataTables.bootstrap.css b/echarts_mavenweb/src/main/webapp/css/dataTables.bootstrap.css new file mode 100644 index 0000000..f636453 --- /dev/null +++ b/echarts_mavenweb/src/main/webapp/css/dataTables.bootstrap.css @@ -0,0 +1,165 @@ +table.dataTable { + clear: both; + margin-top: 6px !important; + margin-bottom: 6px !important; + max-width: none !important; +} +table.dataTable td, +table.dataTable th { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} +table.dataTable.nowrap th, +table.dataTable.nowrap td { + white-space: nowrap; +} + +div.dataTables_wrapper div.dataTables_length label { + font-weight: normal; + text-align: left; + white-space: nowrap; +} +div.dataTables_wrapper div.dataTables_length select { + width: 75px; + display: inline-block; + height : 60px; + border-color : #0099CC; + margin-top : 2px; + color : red; +} +div.dataTables_wrapper div.dataTables_filter { + text-align: right; +} +div.dataTables_wrapper div.dataTables_filter label { + font-weight: normal; + white-space: nowrap; + text-align: left; +} +div.dataTables_wrapper div.dataTables_filter input { + margin-left: 0.5em; + display: inline-block; + width: auto; +} +div.dataTables_wrapper div.dataTables_info { + padding-top: 8px; + white-space: nowrap; +} +div.dataTables_wrapper div.dataTables_paginate { + margin: 0; + white-space: nowrap; + text-align: left; +} +div.dataTables_wrapper div.dataTables_paginate ul.pagination { + margin: 2px 0; + white-space: nowrap; +} + +table.dataTable thead > tr > th, +table.dataTable thead > tr > td { + padding-right: 30px; +} +table.dataTable thead > tr > th:active, +table.dataTable thead > tr > td:active { + outline: none; +} +table.dataTable thead .sorting, +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc, +table.dataTable thead .sorting_asc_disabled, +table.dataTable thead .sorting_desc_disabled { + cursor: pointer; + position: relative; +} +table.dataTable thead .sorting:after, +table.dataTable thead .sorting_asc:after, +table.dataTable thead .sorting_desc:after, +table.dataTable thead .sorting_asc_disabled:after, +table.dataTable thead .sorting_desc_disabled:after { + position: absolute; + bottom: 8px; + right: 8px; + display: block; + font-family: 'Glyphicons Halflings'; + opacity: 0.5; +} +table.dataTable thead .sorting:after { + opacity: 0.2; + content: "\e150"; + /* sort */ +} +table.dataTable thead .sorting_asc:after { + content: "\e155"; + /* sort-by-attributes */ +} +table.dataTable thead .sorting_desc:after { + content: "\e156"; + /* sort-by-attributes-alt */ +} +table.dataTable thead .sorting_asc_disabled:after, +table.dataTable thead .sorting_desc_disabled:after { + color: #eee; +} + +div.dataTables_scrollHead table.dataTable { + margin-bottom: 0 !important; +} + +div.dataTables_scrollBody table { + border-top: none; + margin-top: 0 !important; + margin-bottom: 0 !important; +} +div.dataTables_scrollBody table thead .sorting:after, +div.dataTables_scrollBody table thead .sorting_asc:after, +div.dataTables_scrollBody table thead .sorting_desc:after { + display: none; +} +div.dataTables_scrollBody table tbody tr:first-child th, +div.dataTables_scrollBody table tbody tr:first-child td { + border-top: none; +} + +div.dataTables_scrollFoot table { + margin-top: 0 !important; + border-top: none; +} + +@media screen and (max-width: 767px) { + div.dataTables_wrapper div.dataTables_length, + div.dataTables_wrapper div.dataTables_filter, + div.dataTables_wrapper div.dataTables_info, + div.dataTables_wrapper div.dataTables_paginate { + text-align: center; + } +} +table.dataTable.table-condensed > thead > tr > th { + padding-right: 20px; +} +table.dataTable.table-condensed .sorting:after, +table.dataTable.table-condensed .sorting_asc:after, +table.dataTable.table-condensed .sorting_desc:after { + top: 6px; + right: 6px; +} + +table.table-bordered.dataTable { + border-collapse: separate !important; +} +table.table-bordered.dataTable th, +table.table-bordered.dataTable td { + border-left-width: 0; +} +table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child, +table.table-bordered.dataTable td:last-child, +table.table-bordered.dataTable td:last-child { + border-right-width: 0; +} +table.table-bordered.dataTable tbody th, +table.table-bordered.dataTable tbody td { + border-bottom-width: 0; +} + +div.dataTables_scrollHead table.table-bordered { + border-bottom-width: 0; +} diff --git a/echarts_mavenweb/src/main/webapp/css/dataTables.bootstrap.min.css b/echarts_mavenweb/src/main/webapp/css/dataTables.bootstrap.min.css new file mode 100644 index 0000000..f473ba1 --- /dev/null +++ b/echarts_mavenweb/src/main/webapp/css/dataTables.bootstrap.min.css @@ -0,0 +1 @@ +table.dataTable{clear:both;margin-top:6px !important;margin-bottom:6px !important;max-width:none !important}table.dataTable td,table.dataTable th{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}div.dataTables_wrapper div.dataTables_length label{font-weight:normal;text-align:left;white-space:nowrap}div.dataTables_wrapper div.dataTables_length select{width:75px;display:inline-block}div.dataTables_wrapper div.dataTables_filter{text-align:right}div.dataTables_wrapper div.dataTables_filter label{font-weight:normal;white-space:nowrap;text-align:left}div.dataTables_wrapper div.dataTables_filter input{margin-left:0.5em;display:inline-block;width:auto}div.dataTables_wrapper div.dataTables_info{padding-top:8px;white-space:nowrap}div.dataTables_wrapper div.dataTables_paginate{margin:0;white-space:nowrap;text-align:right}div.dataTables_wrapper div.dataTables_paginate ul.pagination{margin:2px 0;white-space:nowrap}table.dataTable thead>tr>th,table.dataTable thead>tr>td{padding-right:30px}table.dataTable thead>tr>th:active,table.dataTable thead>tr>td:active{outline:none}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{cursor:pointer;position:relative}table.dataTable thead .sorting:after,table.dataTable thead .sorting_asc:after,table.dataTable thead .sorting_desc:after,table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{position:absolute;bottom:8px;right:8px;display:block;font-family:'Glyphicons Halflings';opacity:0.5}table.dataTable thead .sorting:after{opacity:0.2;content:"\e150"}table.dataTable thead .sorting_asc:after{content:"\e155"}table.dataTable thead .sorting_desc:after{content:"\e156"}table.dataTable thead .sorting_asc_disabled:after,table.dataTable thead .sorting_desc_disabled:after{color:#eee}div.dataTables_scrollHead table.dataTable{margin-bottom:0 !important}div.dataTables_scrollBody table{border-top:none;margin-top:0 !important;margin-bottom:0 !important}div.dataTables_scrollBody table thead .sorting:after,div.dataTables_scrollBody table thead .sorting_asc:after,div.dataTables_scrollBody table thead .sorting_desc:after{display:none}div.dataTables_scrollBody table tbody tr:first-child th,div.dataTables_scrollBody table tbody tr:first-child td{border-top:none}div.dataTables_scrollFoot table{margin-top:0 !important;border-top:none}@media screen and (max-width: 767px){div.dataTables_wrapper div.dataTables_length,div.dataTables_wrapper div.dataTables_filter,div.dataTables_wrapper div.dataTables_info,div.dataTables_wrapper div.dataTables_paginate{text-align:center}}table.dataTable.table-condensed>thead>tr>th{padding-right:20px}table.dataTable.table-condensed .sorting:after,table.dataTable.table-condensed .sorting_asc:after,table.dataTable.table-condensed .sorting_desc:after{top:6px;right:6px}table.table-bordered.dataTable{border-collapse:separate !important}table.table-bordered.dataTable th,table.table-bordered.dataTable td{border-left-width:0}table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable th:last-child,table.table-bordered.dataTable td:last-child,table.table-bordered.dataTable td:last-child{border-right-width:0}table.table-bordered.dataTable tbody th,table.table-bordered.dataTable tbody td{border-bottom-width:0}div.dataTables_scrollHead table.table-bordered{border-bottom-width:0} diff --git a/echarts_mavenweb/src/main/webapp/css/failure.css b/echarts_mavenweb/src/main/webapp/css/failure.css new file mode 100644 index 0000000..f810cea --- /dev/null +++ b/echarts_mavenweb/src/main/webapp/css/failure.css @@ -0,0 +1,241 @@ +/* GLOBAL STYLES +-------------------------------------------------- */ +body { + font-family : Microsoft YaHei; + padding-bottom : 50px; + color : #1a1a1a; +} + +.separator-wrapper { + padding-top : 20px; + padding-bottom: 20px; +} + +.separator { + border-color: black; +} + +/* CUSTOMIZE THE LOGIN +-------------------------------------------------- */ +.login { +} +.login-wrapper { + +} + +.login .login-item { + font-size : 30px; + font-weight : blod; +} +.login .login-item .login-item-glyphicon { + line-height : 60px; +} +.login .login-item .login-item-value { + height : 60px; + border-style : none; +} + +.login .login-submit .login-submit-action { + font-size : 40px; + font-weight : blod; +} + +/* CUSTOMIZE THE HEAD +-------------------------------------------------- */ +.head-wrapper { + z-index : 15; + background : white; + padding-top : 20px; + padding-bottom: 20px; + filter:alpha(opacity=100); + -moz-opacity:1.0; + -khtml-opacity: 1.0; + opacity: 1.0; +} + +.head-inner { +} + +.head-inner .head-items { + font-weight : blod; + font-size : 50px; + text-align : center; +} + +.head-inner .head-items .head-back { + color : red; +} + +.head-inner .head-items .head-captial { + color : black; +} + +/* CUSTOMIZE THE NAVBAR +-------------------------------------------------- */ + +.navbar-wrapper { + background : white; +} + +.navbar .navbar-static-top { + +} + +.navbar.navbar-static-top .button-item { + color : black; + font-size : 50px; + border-color: red; + border-left-width : 1px; + border-right-width : 1px; +} + +.navbar.navbar-static-top .button-item:hover, +.navbar.navbar-static-top .button-item.hover{ + background : red; + color : white; +} + + +/* CUSTOMIZE THE DATE +-------------------------------------------------- */ +.date-wrapper { +} + +.date-inner .date-selector { + padding-top : 5px; + padding-bottom: 5px; +} + +.date-inner .date-selector .date-name { + height : 50px; + font-size : 40px; + font-weight : blod; + color : #8a888d; +} + +.date-inner .date-selector .date-value { + height : 50px; + font-size : 40px; + font-weight : blod; + border-style: none; +} + +.date-inner .date-submit { + padding-top : 15px; + padding-bottom : 15px; +} + +.date-inner .date-submit-action { + height : 80px; + font-size : 50px; + color : white; + background : red; + border-color: red; +} + +/* CUSTOMIZE THE TABLE +-------------------------------------------------- */ +.table-info { + z-index : 3; +} + +.table-info-tablewrapper { + +} +.table-info .table-info-head { + font-size : 35px; + font-weight : blod; + color : #888888; +} + +.table-info .table-info-column-1 { + width : 44%; +} + +.table-info .table-info-column-2 { + width : 28%; +} +.table-info .table-info-column-3 { + width : 28%; +} + +.table-info .table-info-body { + font-size : 45px; + font-weight : blod; +} + +/* 分页控件 */ +.table-info .table-info-pagination { + font-size : 35px; + font-weight : blod; +} + +/* 每页显示数据长度的控件 控件文本样式 */ +.table-info div.dataTables_wrapper .dataTables_length .input-sm { + font-size: 30px; +} +/* 控件边框样式 */ +.table-info div.dataTables_wrapper div.dataTables_length select { + width: 100%; + display: inline-block; + height: 60px; + border-color: #0099CC; + margin-top: 2px; + color: red; +} +/* 数据个数等信息 */ +.table-info .table-info-information { + font-size : 35px; + font-weight : blod; +} + +table.dataTable.no-footer { + border-bottom: 10px solid; +} + +/* CUSTOMIZE THE DETAIL-INFO +-------------------------------------------------- */ +.detail-info { + +} + +.detail-info-values-wrapper { + background : #3399CC; + padding-top : 10px; + padding-bottom: 10px; +} + +.detail-info .detail-info-values { + color : white; + font-size : 40px; + font-weight : blod; + text-align : center; +} + +.detail-info-name-wrapper { + padding-top : 20px; + padding-bottom: 20px; +} + +.detail-info .detail-info-name { + color : black; + font-size : 40px; + font-weight : blod; + text-align : center; +} + +/* CUSTOMIZE THE CHARTS +-------------------------------------------------- */ +.charts .charts-separator { + height : 15px; + background : #EEEEEE; + margin-top : 15px; + margin-bottom : 15px; +} + +.charts .charts-item { + height : 600px; + margin-left : auto; + margin-right: auto; +} + diff --git a/echarts_mavenweb/src/main/webapp/css/jquery.dataTables.css b/echarts_mavenweb/src/main/webapp/css/jquery.dataTables.css new file mode 100644 index 0000000..ad27430 --- /dev/null +++ b/echarts_mavenweb/src/main/webapp/css/jquery.dataTables.css @@ -0,0 +1,452 @@ +/* + * Table styles + */ +table.dataTable { + width: 100%; + margin: 0 auto; + clear: both; + border-collapse: separate; + border-spacing: 0; + /* + * Header and footer styles + */ + /* + * Body styles + */ +} +table.dataTable thead th, +table.dataTable tfoot th { + font-weight: bold; +} +table.dataTable thead th, +table.dataTable thead td { + padding: 10px 18px; + border-bottom: 1px solid #111; +} +table.dataTable thead th:active, +table.dataTable thead td:active { + outline: none; +} +table.dataTable tfoot th, +table.dataTable tfoot td { + padding: 10px 18px 6px 18px; + border-top: 1px solid #111; +} +table.dataTable thead .sorting, +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc { + cursor: pointer; + *cursor: hand; +} +table.dataTable thead .sorting, +table.dataTable thead .sorting_asc, +table.dataTable thead .sorting_desc, +table.dataTable thead .sorting_asc_disabled, +table.dataTable thead .sorting_desc_disabled { + background-repeat: no-repeat; + background-position: center right; +} +table.dataTable thead .sorting { + background-image: url("../images/sort_both.png"); +} +table.dataTable thead .sorting_asc { + background-image: url("../images/sort_asc.png"); +} +table.dataTable thead .sorting_desc { + background-image: url("../images/sort_desc.png"); +} +table.dataTable thead .sorting_asc_disabled { + background-image: url("../images/sort_asc_disabled.png"); +} +table.dataTable thead .sorting_desc_disabled { + background-image: url("../images/sort_desc_disabled.png"); +} +table.dataTable tbody tr { + background-color: #ffffff; +} +table.dataTable tbody tr.selected { + background-color: #B0BED9; +} +table.dataTable tbody th, +table.dataTable tbody td { + padding: 8px 10px; +} +table.dataTable.row-border tbody th, table.dataTable.row-border tbody td, table.dataTable.display tbody th, table.dataTable.display tbody td { + border-top: 1px solid #ddd; +} +table.dataTable.row-border tbody tr:first-child th, +table.dataTable.row-border tbody tr:first-child td, table.dataTable.display tbody tr:first-child th, +table.dataTable.display tbody tr:first-child td { + border-top: none; +} +table.dataTable.cell-border tbody th, table.dataTable.cell-border tbody td { + border-top: 1px solid #ddd; + border-right: 1px solid #ddd; +} +table.dataTable.cell-border tbody tr th:first-child, +table.dataTable.cell-border tbody tr td:first-child { + border-left: 1px solid #ddd; +} +table.dataTable.cell-border tbody tr:first-child th, +table.dataTable.cell-border tbody tr:first-child td { + border-top: none; +} +table.dataTable.stripe tbody tr.odd, table.dataTable.display tbody tr.odd { + background-color: #f9f9f9; +} +table.dataTable.stripe tbody tr.odd.selected, table.dataTable.display tbody tr.odd.selected { + background-color: #acbad4; +} +table.dataTable.hover tbody tr:hover, table.dataTable.display tbody tr:hover { + background-color: #f6f6f6; +} +table.dataTable.hover tbody tr:hover.selected, table.dataTable.display tbody tr:hover.selected { + background-color: #aab7d1; +} +table.dataTable.order-column tbody tr > .sorting_1, +table.dataTable.order-column tbody tr > .sorting_2, +table.dataTable.order-column tbody tr > .sorting_3, table.dataTable.display tbody tr > .sorting_1, +table.dataTable.display tbody tr > .sorting_2, +table.dataTable.display tbody tr > .sorting_3 { + background-color: #fafafa; +} +table.dataTable.order-column tbody tr.selected > .sorting_1, +table.dataTable.order-column tbody tr.selected > .sorting_2, +table.dataTable.order-column tbody tr.selected > .sorting_3, table.dataTable.display tbody tr.selected > .sorting_1, +table.dataTable.display tbody tr.selected > .sorting_2, +table.dataTable.display tbody tr.selected > .sorting_3 { + background-color: #acbad5; +} +table.dataTable.display tbody tr.odd > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 { + background-color: #f1f1f1; +} +table.dataTable.display tbody tr.odd > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 { + background-color: #f3f3f3; +} +table.dataTable.display tbody tr.odd > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 { + background-color: whitesmoke; +} +table.dataTable.display tbody tr.odd.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 { + background-color: #a6b4cd; +} +table.dataTable.display tbody tr.odd.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 { + background-color: #a8b5cf; +} +table.dataTable.display tbody tr.odd.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 { + background-color: #a9b7d1; +} +table.dataTable.display tbody tr.even > .sorting_1, table.dataTable.order-column.stripe tbody tr.even > .sorting_1 { + background-color: #fafafa; +} +table.dataTable.display tbody tr.even > .sorting_2, table.dataTable.order-column.stripe tbody tr.even > .sorting_2 { + background-color: #fcfcfc; +} +table.dataTable.display tbody tr.even > .sorting_3, table.dataTable.order-column.stripe tbody tr.even > .sorting_3 { + background-color: #fefefe; +} +table.dataTable.display tbody tr.even.selected > .sorting_1, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 { + background-color: #acbad5; +} +table.dataTable.display tbody tr.even.selected > .sorting_2, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 { + background-color: #aebcd6; +} +table.dataTable.display tbody tr.even.selected > .sorting_3, table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 { + background-color: #afbdd8; +} +table.dataTable.display tbody tr:hover > .sorting_1, table.dataTable.order-column.hover tbody tr:hover > .sorting_1 { + background-color: #eaeaea; +} +table.dataTable.display tbody tr:hover > .sorting_2, table.dataTable.order-column.hover tbody tr:hover > .sorting_2 { + background-color: #ececec; +} +table.dataTable.display tbody tr:hover > .sorting_3, table.dataTable.order-column.hover tbody tr:hover > .sorting_3 { + background-color: #efefef; +} +table.dataTable.display tbody tr:hover.selected > .sorting_1, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1 { + background-color: #a2aec7; +} +table.dataTable.display tbody tr:hover.selected > .sorting_2, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2 { + background-color: #a3b0c9; +} +table.dataTable.display tbody tr:hover.selected > .sorting_3, table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3 { + background-color: #a5b2cb; +} +table.dataTable.no-footer { + border-bottom: 1px solid #111; +} +table.dataTable.nowrap th, table.dataTable.nowrap td { + white-space: nowrap; +} +table.dataTable.compact thead th, +table.dataTable.compact thead td { + padding: 4px 17px 4px 4px; +} +table.dataTable.compact tfoot th, +table.dataTable.compact tfoot td { + padding: 4px; +} +table.dataTable.compact tbody th, +table.dataTable.compact tbody td { + padding: 4px; +} +table.dataTable th.dt-left, +table.dataTable td.dt-left { + text-align: left; +} +table.dataTable th.dt-center, +table.dataTable td.dt-center, +table.dataTable td.dataTables_empty { + text-align: center; +} +table.dataTable th.dt-right, +table.dataTable td.dt-right { + text-align: right; +} +table.dataTable th.dt-justify, +table.dataTable td.dt-justify { + text-align: justify; +} +table.dataTable th.dt-nowrap, +table.dataTable td.dt-nowrap { + white-space: nowrap; +} +table.dataTable thead th.dt-head-left, +table.dataTable thead td.dt-head-left, +table.dataTable tfoot th.dt-head-left, +table.dataTable tfoot td.dt-head-left { + text-align: left; +} +table.dataTable thead th.dt-head-center, +table.dataTable thead td.dt-head-center, +table.dataTable tfoot th.dt-head-center, +table.dataTable tfoot td.dt-head-center { + text-align: center; +} +table.dataTable thead th.dt-head-right, +table.dataTable thead td.dt-head-right, +table.dataTable tfoot th.dt-head-right, +table.dataTable tfoot td.dt-head-right { + text-align: right; +} +table.dataTable thead th.dt-head-justify, +table.dataTable thead td.dt-head-justify, +table.dataTable tfoot th.dt-head-justify, +table.dataTable tfoot td.dt-head-justify { + text-align: justify; +} +table.dataTable thead th.dt-head-nowrap, +table.dataTable thead td.dt-head-nowrap, +table.dataTable tfoot th.dt-head-nowrap, +table.dataTable tfoot td.dt-head-nowrap { + white-space: nowrap; +} +table.dataTable tbody th.dt-body-left, +table.dataTable tbody td.dt-body-left { + text-align: left; +} +table.dataTable tbody th.dt-body-center, +table.dataTable tbody td.dt-body-center { + text-align: center; +} +table.dataTable tbody th.dt-body-right, +table.dataTable tbody td.dt-body-right { + text-align: right; +} +table.dataTable tbody th.dt-body-justify, +table.dataTable tbody td.dt-body-justify { + text-align: justify; +} +table.dataTable tbody th.dt-body-nowrap, +table.dataTable tbody td.dt-body-nowrap { + white-space: nowrap; +} + +table.dataTable, +table.dataTable th, +table.dataTable td { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +/* + * Control feature layout + */ +.dataTables_wrapper { + position: relative; + clear: both; + *zoom: 1; + zoom: 1; +} +.dataTables_wrapper .dataTables_length { + float: right; + padding-top: 0.25em; +} +.dataTables_wrapper .dataTables_filter { + float: right; + text-align: right; +} +.dataTables_wrapper .dataTables_filter input { + margin-left: 0.5em; +} +.dataTables_wrapper .dataTables_info { + clear: both; + float: right; + padding-top: 0.755em; +} +.dataTables_wrapper .dataTables_paginate { + float: left; + text-align: right; + padding-top: 0.25em; +} +.dataTables_wrapper .dataTables_paginate .paginate_button { + box-sizing: border-box; + display: inline-block; + min-width: 1.5em; + padding: 1px 1px; + margin-left: 2px; + text-align: center; + text-decoration: none !important; + cursor: pointer; + *cursor: hand; + color: #333 !important; + border: 1px solid transparent; + border-radius: 2px; +} + +.dataTables_wrapper .dataTables_paginate .paginate_button.current, .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover { + color: #333 !important; + border: 1px solid #979797; + background-color: white; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #dcdcdc)); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, white 0%, #dcdcdc 100%); + /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, white 0%, #dcdcdc 100%); + /* FF3.6+ */ + background: -ms-linear-gradient(top, white 0%, #dcdcdc 100%); + /* IE10+ */ + background: -o-linear-gradient(top, white 0%, #dcdcdc 100%); + /* Opera 11.10+ */ + background: linear-gradient(to bottom, white 0%, #dcdcdc 100%); + /* W3C */ +} +.dataTables_wrapper .dataTables_paginate .paginate_button.disabled, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover, .dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active { + cursor: default; + color: #666 !important; + border: 1px solid transparent; + background: transparent; + box-shadow: none; +} +.dataTables_wrapper .dataTables_paginate .paginate_button:hover { + color: white !important; + border: 1px solid #111; + background-color: #585858; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111)); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #585858 0%, #111 100%); + /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #585858 0%, #111 100%); + /* FF3.6+ */ + background: -ms-linear-gradient(top, #585858 0%, #111 100%); + /* IE10+ */ + background: -o-linear-gradient(top, #585858 0%, #111 100%); + /* Opera 11.10+ */ + background: linear-gradient(to bottom, #585858 0%, #111 100%); + /* W3C */ +} +.dataTables_wrapper .dataTables_paginate .paginate_button:active { + outline: none; + background-color: #2b2b2b; + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c)); + /* Chrome,Safari4+ */ + background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); + /* Chrome10+,Safari5.1+ */ + background: -moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); + /* FF3.6+ */ + background: -ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); + /* IE10+ */ + background: -o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%); + /* Opera 11.10+ */ + background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%); + /* W3C */ + box-shadow: inset 0 0 3px #111; +} +.dataTables_wrapper .dataTables_paginate .ellipsis { + padding: 0 1em; +} +.dataTables_wrapper .dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 100%; + height: 40px; + margin-left: -50%; + margin-top: -25px; + padding-top: 20px; + text-align: center; + font-size: 1.2em; + background-color: white; + background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0))); + background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); + background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); + background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); + background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); + background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%); +} +.dataTables_wrapper .dataTables_length, +.dataTables_wrapper .dataTables_filter, +.dataTables_wrapper .dataTables_info, +.dataTables_wrapper .dataTables_processing, +.dataTables_wrapper .dataTables_paginate { + color: #333; +} +.dataTables_wrapper .dataTables_scroll { + clear: both; +} +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody { + *margin-top: -1px; + -webkit-overflow-scrolling: touch; +} +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th > div.dataTables_sizing, +.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td > div.dataTables_sizing { + height: 0; + overflow: hidden; + margin: 0 !important; + padding: 0 !important; +} +.dataTables_wrapper.no-footer .dataTables_scrollBody { + border-bottom: 1px solid #111; +} +.dataTables_wrapper.no-footer div.dataTables_scrollHead table, +.dataTables_wrapper.no-footer div.dataTables_scrollBody table { + border-bottom: none; +} +.dataTables_wrapper:after { + visibility: hidden; + display: block; + content: ""; + clear: both; + height: 0; +} + +@media screen and (max-width: 767px) { + .dataTables_wrapper .dataTables_info, + .dataTables_wrapper .dataTables_paginate { + float: none; + text-align: left; + } + .dataTables_wrapper .dataTables_paginate { + margin-top: 0.5em; + } +} +@media screen and (max-width: 640px) { + .dataTables_wrapper .dataTables_length, + .dataTables_wrapper .dataTables_filter { + float: none; + text-align: center; + } + .dataTables_wrapper .dataTables_filter { + margin-top: 0.5em; + } +} diff --git a/echarts_mavenweb/src/main/webapp/css/jquery.dataTables.min.css b/echarts_mavenweb/src/main/webapp/css/jquery.dataTables.min.css new file mode 100644 index 0000000..e6b3680 --- /dev/null +++ b/echarts_mavenweb/src/main/webapp/css/jquery.dataTables.min.css @@ -0,0 +1 @@ +table.dataTable{width:100%;margin:0 auto;clear:both;border-collapse:separate;border-spacing:0}table.dataTable thead th,table.dataTable tfoot th{font-weight:bold}table.dataTable thead th,table.dataTable thead td{padding:10px 18px;border-bottom:1px solid #111}table.dataTable thead th:active,table.dataTable thead td:active{outline:none}table.dataTable tfoot th,table.dataTable tfoot td{padding:10px 18px 6px 18px;border-top:1px solid #111}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc{cursor:pointer;*cursor:hand}table.dataTable thead .sorting,table.dataTable thead .sorting_asc,table.dataTable thead .sorting_desc,table.dataTable thead .sorting_asc_disabled,table.dataTable thead .sorting_desc_disabled{background-repeat:no-repeat;background-position:center right}table.dataTable thead .sorting{background-image:url("../images/sort_both.png")}table.dataTable thead .sorting_asc{background-image:url("../images/sort_asc.png")}table.dataTable thead .sorting_desc{background-image:url("../images/sort_desc.png")}table.dataTable thead .sorting_asc_disabled{background-image:url("../images/sort_asc_disabled.png")}table.dataTable thead .sorting_desc_disabled{background-image:url("../images/sort_desc_disabled.png")}table.dataTable tbody tr{background-color:#ffffff}table.dataTable tbody tr.selected{background-color:#B0BED9}table.dataTable tbody th,table.dataTable tbody td{padding:8px 10px}table.dataTable.row-border tbody th,table.dataTable.row-border tbody td,table.dataTable.display tbody th,table.dataTable.display tbody td{border-top:1px solid #ddd}table.dataTable.row-border tbody tr:first-child th,table.dataTable.row-border tbody tr:first-child td,table.dataTable.display tbody tr:first-child th,table.dataTable.display tbody tr:first-child td{border-top:none}table.dataTable.cell-border tbody th,table.dataTable.cell-border tbody td{border-top:1px solid #ddd;border-right:1px solid #ddd}table.dataTable.cell-border tbody tr th:first-child,table.dataTable.cell-border tbody tr td:first-child{border-left:1px solid #ddd}table.dataTable.cell-border tbody tr:first-child th,table.dataTable.cell-border tbody tr:first-child td{border-top:none}table.dataTable.stripe tbody tr.odd,table.dataTable.display tbody tr.odd{background-color:#f9f9f9}table.dataTable.stripe tbody tr.odd.selected,table.dataTable.display tbody tr.odd.selected{background-color:#acbad4}table.dataTable.hover tbody tr:hover,table.dataTable.display tbody tr:hover{background-color:#f6f6f6}table.dataTable.hover tbody tr:hover.selected,table.dataTable.display tbody tr:hover.selected{background-color:#aab7d1}table.dataTable.order-column tbody tr>.sorting_1,table.dataTable.order-column tbody tr>.sorting_2,table.dataTable.order-column tbody tr>.sorting_3,table.dataTable.display tbody tr>.sorting_1,table.dataTable.display tbody tr>.sorting_2,table.dataTable.display tbody tr>.sorting_3{background-color:#fafafa}table.dataTable.order-column tbody tr.selected>.sorting_1,table.dataTable.order-column tbody tr.selected>.sorting_2,table.dataTable.order-column tbody tr.selected>.sorting_3,table.dataTable.display tbody tr.selected>.sorting_1,table.dataTable.display tbody tr.selected>.sorting_2,table.dataTable.display tbody tr.selected>.sorting_3{background-color:#acbad5}table.dataTable.display tbody tr.odd>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd>.sorting_1{background-color:#f1f1f1}table.dataTable.display tbody tr.odd>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd>.sorting_2{background-color:#f3f3f3}table.dataTable.display tbody tr.odd>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd>.sorting_3{background-color:whitesmoke}table.dataTable.display tbody tr.odd.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1{background-color:#a6b4cd}table.dataTable.display tbody tr.odd.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2{background-color:#a8b5cf}table.dataTable.display tbody tr.odd.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3{background-color:#a9b7d1}table.dataTable.display tbody tr.even>.sorting_1,table.dataTable.order-column.stripe tbody tr.even>.sorting_1{background-color:#fafafa}table.dataTable.display tbody tr.even>.sorting_2,table.dataTable.order-column.stripe tbody tr.even>.sorting_2{background-color:#fcfcfc}table.dataTable.display tbody tr.even>.sorting_3,table.dataTable.order-column.stripe tbody tr.even>.sorting_3{background-color:#fefefe}table.dataTable.display tbody tr.even.selected>.sorting_1,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1{background-color:#acbad5}table.dataTable.display tbody tr.even.selected>.sorting_2,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2{background-color:#aebcd6}table.dataTable.display tbody tr.even.selected>.sorting_3,table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3{background-color:#afbdd8}table.dataTable.display tbody tr:hover>.sorting_1,table.dataTable.order-column.hover tbody tr:hover>.sorting_1{background-color:#eaeaea}table.dataTable.display tbody tr:hover>.sorting_2,table.dataTable.order-column.hover tbody tr:hover>.sorting_2{background-color:#ececec}table.dataTable.display tbody tr:hover>.sorting_3,table.dataTable.order-column.hover tbody tr:hover>.sorting_3{background-color:#efefef}table.dataTable.display tbody tr:hover.selected>.sorting_1,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1{background-color:#a2aec7}table.dataTable.display tbody tr:hover.selected>.sorting_2,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2{background-color:#a3b0c9}table.dataTable.display tbody tr:hover.selected>.sorting_3,table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3{background-color:#a5b2cb}table.dataTable.no-footer{border-bottom:1px solid #111}table.dataTable.nowrap th,table.dataTable.nowrap td{white-space:nowrap}table.dataTable.compact thead th,table.dataTable.compact thead td{padding:4px 17px 4px 4px}table.dataTable.compact tfoot th,table.dataTable.compact tfoot td{padding:4px}table.dataTable.compact tbody th,table.dataTable.compact tbody td{padding:4px}table.dataTable th.dt-left,table.dataTable td.dt-left{text-align:left}table.dataTable th.dt-center,table.dataTable td.dt-center,table.dataTable td.dataTables_empty{text-align:center}table.dataTable th.dt-right,table.dataTable td.dt-right{text-align:right}table.dataTable th.dt-justify,table.dataTable td.dt-justify{text-align:justify}table.dataTable th.dt-nowrap,table.dataTable td.dt-nowrap{white-space:nowrap}table.dataTable thead th.dt-head-left,table.dataTable thead td.dt-head-left,table.dataTable tfoot th.dt-head-left,table.dataTable tfoot td.dt-head-left{text-align:left}table.dataTable thead th.dt-head-center,table.dataTable thead td.dt-head-center,table.dataTable tfoot th.dt-head-center,table.dataTable tfoot td.dt-head-center{text-align:center}table.dataTable thead th.dt-head-right,table.dataTable thead td.dt-head-right,table.dataTable tfoot th.dt-head-right,table.dataTable tfoot td.dt-head-right{text-align:right}table.dataTable thead th.dt-head-justify,table.dataTable thead td.dt-head-justify,table.dataTable tfoot th.dt-head-justify,table.dataTable tfoot td.dt-head-justify{text-align:justify}table.dataTable thead th.dt-head-nowrap,table.dataTable thead td.dt-head-nowrap,table.dataTable tfoot th.dt-head-nowrap,table.dataTable tfoot td.dt-head-nowrap{white-space:nowrap}table.dataTable tbody th.dt-body-left,table.dataTable tbody td.dt-body-left{text-align:left}table.dataTable tbody th.dt-body-center,table.dataTable tbody td.dt-body-center{text-align:center}table.dataTable tbody th.dt-body-right,table.dataTable tbody td.dt-body-right{text-align:right}table.dataTable tbody th.dt-body-justify,table.dataTable tbody td.dt-body-justify{text-align:justify}table.dataTable tbody th.dt-body-nowrap,table.dataTable tbody td.dt-body-nowrap{white-space:nowrap}table.dataTable,table.dataTable th,table.dataTable td{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.dataTables_wrapper{position:relative;clear:both;*zoom:1;zoom:1}.dataTables_wrapper .dataTables_length{float:left}.dataTables_wrapper .dataTables_filter{float:right;text-align:right}.dataTables_wrapper .dataTables_filter input{margin-left:0.5em}.dataTables_wrapper .dataTables_info{clear:both;float:left;padding-top:0.755em}.dataTables_wrapper .dataTables_paginate{float:right;text-align:right;padding-top:0.25em}.dataTables_wrapper .dataTables_paginate .paginate_button{box-sizing:border-box;display:inline-block;min-width:1.5em;padding:0.5em 1em;margin-left:2px;text-align:center;text-decoration:none !important;cursor:pointer;*cursor:hand;color:#333 !important;border:1px solid transparent;border-radius:2px}.dataTables_wrapper .dataTables_paginate .paginate_button.current,.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover{color:#333 !important;border:1px solid #979797;background-color:white;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));background:-webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:-o-linear-gradient(top, #fff 0%, #dcdcdc 100%);background:linear-gradient(to bottom, #fff 0%, #dcdcdc 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active{cursor:default;color:#666 !important;border:1px solid transparent;background:transparent;box-shadow:none}.dataTables_wrapper .dataTables_paginate .paginate_button:hover{color:white !important;border:1px solid #111;background-color:#585858;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));background:-webkit-linear-gradient(top, #585858 0%, #111 100%);background:-moz-linear-gradient(top, #585858 0%, #111 100%);background:-ms-linear-gradient(top, #585858 0%, #111 100%);background:-o-linear-gradient(top, #585858 0%, #111 100%);background:linear-gradient(to bottom, #585858 0%, #111 100%)}.dataTables_wrapper .dataTables_paginate .paginate_button:active{outline:none;background-color:#2b2b2b;background:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));background:-webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:-o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);background:linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);box-shadow:inset 0 0 3px #111}.dataTables_wrapper .dataTables_paginate .ellipsis{padding:0 1em}.dataTables_wrapper .dataTables_processing{position:absolute;top:50%;left:50%;width:100%;height:40px;margin-left:-50%;margin-top:-25px;padding-top:20px;text-align:center;font-size:1.2em;background-color:white;background:-webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255,255,255,0)), color-stop(25%, rgba(255,255,255,0.9)), color-stop(75%, rgba(255,255,255,0.9)), color-stop(100%, rgba(255,255,255,0)));background:-webkit-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-moz-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-ms-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:-o-linear-gradient(left, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%);background:linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.9) 25%, rgba(255,255,255,0.9) 75%, rgba(255,255,255,0) 100%)}.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter,.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_processing,.dataTables_wrapper .dataTables_paginate{color:#333}.dataTables_wrapper .dataTables_scroll{clear:both}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody{*margin-top:-1px;-webkit-overflow-scrolling:touch}.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th>div.dataTables_sizing,.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td>div.dataTables_sizing{height:0;overflow:hidden;margin:0 !important;padding:0 !important}.dataTables_wrapper.no-footer .dataTables_scrollBody{border-bottom:1px solid #111}.dataTables_wrapper.no-footer div.dataTables_scrollHead table,.dataTables_wrapper.no-footer div.dataTables_scrollBody table{border-bottom:none}.dataTables_wrapper:after{visibility:hidden;display:block;content:"";clear:both;height:0}@media screen and (max-width: 767px){.dataTables_wrapper .dataTables_info,.dataTables_wrapper .dataTables_paginate{float:none;text-align:center}.dataTables_wrapper .dataTables_paginate{margin-top:0.5em}}@media screen and (max-width: 640px){.dataTables_wrapper .dataTables_length,.dataTables_wrapper .dataTables_filter{float:none;text-align:center}.dataTables_wrapper .dataTables_filter{margin-top:0.5em}} diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.editorconfig b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.editorconfig deleted file mode 100644 index be222b1..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.editorconfig +++ /dev/null @@ -1,38 +0,0 @@ -root = true - -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[**.js] -indent_style = space -indent_size = 4 - -[**.css] -indent_style = space -indent_size = 4 - -[**.less] -indent_style = space -indent_size = 4 - -[**.styl] -indent_style = space -indent_size = 4 - -[**.html] -indent_style = space -indent_size = 4 - -[**.tpl] -indent_style = space -indent_size = 4 - -[**.json] -indent_style = space -indent_size = 4 - -[*.md] -trim_trailing_whitespace = false diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.gitignore b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.gitignore deleted file mode 100644 index eecce48..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.gitignore +++ /dev/null @@ -1,165 +0,0 @@ -################# -## Eclipse -################# - -*.pydevproject -.project -.metadata -bin/ -tmp/ -*.tmp -*.bak -*.swp -*~.nib -.svn -local.properties -.classpath -.settings/ -.loadpath - -# External tool builders -.externalToolBuilders/ - -# Locally stored "Eclipse launch configurations" -*.launch - -# CDT-specific -.cproject - -# PDT-specific -.buildpath - - -################# -## Visual Studio -################# - -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. - -# User-specific files -*.suo -*.user -*.sln.docstates - -# Build results -[Dd]ebug/ -[Rr]elease/ -*_i.c -*_p.c -*.ilk -*.meta -*.obj -*.pch -*.pdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.vspscc -.builds -*.dotCover - -## TODO: If you have NuGet Package Restore enabled, uncomment this -#packages/ - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opensdf -*.sdf - -# Visual Studio profiler -*.psess -*.vsp - -# ReSharper is a .NET coding add-in -_ReSharper* - -# Installshield output folder -[Ee]xpress - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish - -# Others -[Bb]in -[Oo]bj -sql -TestResults -*.Cache -ClientBin -stylecop.* -~$* -*.dbmdl -Generated_Code #added for RIA/Silverlight projects - -# Backup & report files from converting an old project file to a newer -# Visual Studio version. Backup files are not needed, because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML - - - -############ -## Windows -############ - -# Windows image file caches -Thumbs.db - -# Folder config file -Desktop.ini - - -############# -## Python -############# - -*.py[co] - -# Packages -*.egg -*.egg-info -# dist -eggs -parts -bin -var -sdist -develop-eggs -.installed.cfg - -# Installer logs -pip-log.txt - -# Unit test / coverage reports -.coverage -.tox - -#Translations -*.mo - -#Mr Developer -.mr.developer.cfg - -# Mac crap -.DS_Store - -node_modules diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.jshintignore b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.jshintignore deleted file mode 100644 index 7b4a05f..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.jshintignore +++ /dev/null @@ -1,2 +0,0 @@ -src/util/mapData/geoJson/* -src/util/mapData/rawData/geoJson/* \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.jshintrc b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.jshintrc deleted file mode 100644 index af46854..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.jshintrc +++ /dev/null @@ -1,71 +0,0 @@ -{ - "bitwise": false, - "camelcase": true, - "curly": true, - "es3": true, - "eqeqeq": false, - "forin": false, - "immed": true, - "latedef": false, - "newcap": true, - "noarg": false, - "noempty": true, - "nonew": true, - "plusplus": false, - "quotmark": "single", - "regexp": false, - "undef": true, - "unused": "vars", - "strict": false, - "trailing": false, - "maxparams": 20, - "maxdepth": 6, - "maxlen": 120, - - "asi": false, - "boss": false, - "debug": false, - "eqnull": true, - "esnext": false, - "evil": true, - "expr": true, - "funcscope": false, - "globalstrict": false, - "iterator": false, - "lastsemic": false, - "laxbreak": true, - "laxcomma": false, - "loopfunc": false, - "multistr": false, - "onecase": false, - "proto": false, - "regexdash": false, - "scripturl": false, - "smarttabs": false, - "shadow": true, - "sub": true, - "supernew": false, - "validthis": true, - - "browser": true, - "couch": false, - "devel": true, - "dojo": false, - "jquery": true, - "mootools": false, - "node": false, - "nonstandard": false, - "prototypejs": false, - "rhino": false, - "wsh": false, - - "nomen": false, - "onevar": false, - "passfail": false, - "white": false, - - "predef": [ - "define", - "require" - ] -} \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.npmignore b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.npmignore deleted file mode 100644 index 5d1eb96..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -/build -/doc -/index.html - -npm-debug.log - - diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/LICENSE.txt b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/LICENSE.txt deleted file mode 100644 index 9723a0c..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/LICENSE.txt +++ /dev/null @@ -1,28 +0,0 @@ -Copyright (c) 2013, Baidu Inc. -All rights reserved. - -Redistribution and use of this software in source and binary forms, with or -without modification, are permitted provided that the following conditions -are met: - -Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -Neither the name of Baidu Inc. nor the names of its contributors may be used -to endorse or promote products derived from this software without specific -prior written permission of Baidu Inc. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/README.md b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/README.md deleted file mode 100644 index 986cb76..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/README.md +++ /dev/null @@ -1,148 +0,0 @@ -ECharts -======= -百度 (中文) : http://echarts.baidu.com - -在线视频教程:http://study.163.com/course/courseMain.htm?courseId=1016007 - -Why ECharts (中文) : http://echarts.baidu.com/doc/slide/whyEcharts.html - -Github pages (English) : http://ecomfe.github.io/echarts/index-en.html - -Why ECharts (English) : http://ecomfe.github.io/echarts/doc/slide/whyEcharts-en.html - - -基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。创新的拖拽重计算、数据视图、值域漫游等特性大大增强了用户体验,赋予了用户对数据进行挖掘、整合的能力。 - -**———— 大数据时代,重新定义数据图表的时候到了** - -LICENSE: -https://github.com/ecomfe/echarts/blob/master/LICENSE.txt - -Architecture ------------- -ECharts (Enterprise Charts 商业产品图表库) - -提供商业产品常用图表库,底层基于ZRender,创建了坐标系,图例,提示,工具箱等基础组件,并在此上构建出折线图(区域图)、柱状图(条状图)、散点图(气泡图)、饼图(环形图)、K线图、地图、和弦图以及力导向布局图,同时支持任意维度的堆积和多图表混合展现。 - - - -(IE8- supported by excanvas ) - -![ECharts Architecture](doc/asset/img/architecture.png) - -特色 - -我们诚挚邀请你翻阅这份在线文档 《 Why ECharts ? 》 你可以从中更直观的体验到ECharts的特性以及快速浏览到所有图表类型。 - -*文档中展现的个别特性在IE8-中并没有得到支持,所以建议使用IE9+、chrome、safari、firefox或opear等高级浏览器阅读这份文档。 - ----- -### 混搭 -混搭的图表会更具表现力也更有趣味,ECharts提供的图表(共9类14种)支持任意混搭: - -折线图(区域图)、柱状图(条状图)、散点图(气泡图)、K线图、 -饼图(环形图)、雷达图、地图、和弦图、力导布局图。 - -混搭情况下一个标准图表:包含唯一图例、工具箱、数据区域缩放、值域漫游模块,一个直角坐标系(可包含一条或多条类目轴线,一条或多条值轴线,最多上下左右四条) - -![ECharts 混搭](doc/asset/img/mix.jpg) - -### 拖拽重计算 -拖拽重计算特性(专利)带来了数据统计图表从未有过的用户体验,允许用户对统计数据进行有效的提取、整合,甚至在多个图表间交换数据,赋予了用户对数据进行挖掘、整合的能力。 - -![ECharts 拖拽重计算](doc/asset/img/draggable.gif) - -### 数据视图 -如果你所呈现的数据足够让用户所关心,那么他们将不满足于查看可视化的图表,要去逐一迎合他们下载保存,数据分享,加工整合已有数据等等需求? - -或许你只要给予一个“,”分隔的数据文本他们就懂了,这就是ECharts的数据视图!当然,你可以重载数据视图的输出方法,用你独特的方式去呈现数据。 - -如果你的用户足够的高端,你甚至可以打开数据视图的编辑功能,跟拖拽重计算相比,这可是批量的数据修改! - -![ECharts 数据视图](doc/asset/img/dataView.gif) - -### 动态类型切换 -很多图表类型本身所表现的能力是相似的,但由于数据差异、表现需求和个人喜好的不同导致最终图表所呈现的张力又大不一样,比如折线图和柱状图的选择,系列数据是堆叠还是平铺总是让人头疼。 - -ECharts提供了动态类型切换,让用户随心所欲的切换到他所需要的图表类型和堆叠状态。 - -![ECharts 动态类型切换](doc/asset/img/magicType.gif) - -### 图例开关 -多系列数据的同时展现呈现出丰富内容,但如何让用户切换到他所关心的个别系列上? - -ECharts提供了方便快捷的多维度图例开关,可以随时切换到你所关心的数据系列。 - -![ECharts 图例开关](doc/asset/img/legendSelected.gif) - -### 数据区域选择 -数据可以是无限的,但显示空间总是有限的,数据区域选择组件提供了大数据量中漫游的能力,让用户选择并呈现他所关心的数据区域。 - -配合随动的均值(极值)标线,标注展现强大的数据剖析能力。 - -![ECharts 数据区域选择](doc/asset/img/datazoom.gif) - -### 多图联动 -多系列数据在同一个直角系内同时展现有时候会产生混乱,但他们又存在极强的关联意义不可分离? - -ECharts提供了多图联动的能力(connect),能做的可不仅仅是鼠标划过的详情显示,连接的多个图表会共享组件事件并且实现了保存图片时的自动拼接。 - -![ECharts 数据区域选择](doc/asset/img/connect.gif) - -### 值域漫游 -基于坐标的图表(如地图、散点图)通过色彩变化表现数值的大小能直观形象的展示数据分布。 - -但如何聚焦到我所关心的数值上?我们创造了称为值域漫游的功能,让你可以轻松进行数值筛选。 - -![ECharts 数据区域选择](doc/asset/img/dataRange.gif) - -### 炫光特效 -我们知道,很多时候我们需要一些吸引眼球的能力。 - -ECharts支持标注标线的炫光特效,特别用在地图上轻松实现百度迁徙数据可视化特效 - -![ECharts 数据区域选择](doc/asset/img/effect.gif) - -### 大规模散点图 -如何展现成千上百万的离散数据从而找出他们的分布和聚类?貌似除了用专业的统计工具(如MATLAB)外别无选择? - -不,ECharts发明了基于像素的大规模散点图(专利),一个900 x 400的散点区域就能够毫不重复的呈现36万组数据,这对于常规的应用,用现代浏览器就足以轻松展现百万级的散点数据! - -![ECharts 数据区域选择](doc/asset/img/scatter.gif) - -### 动态数据添加 -如果你需要展示有实时变化的数据,相信这个动态接口会对你很有帮助。 - -![ECharts 标线辅助](doc/asset/img/dynamic1.gif) - -### 标线辅助 -趋势线?平均线?未来走势?修正值?有需求用户自然知道用意~ - -提供标线辅助在K线图中可是必要的功能!是的,K线图我们正在开发中~ - -![ECharts 标线辅助](doc/asset/img/mark.gif) - -### 多维度堆积 -支持多系列,多维度的数据堆积,配合自动伸缩的图形实体和直角坐标系,能呈现出更有内涵的统计图表~ - -![ECharts 多维度堆积](doc/asset/img/multiStack.png) - -### 子区域地图模式 -地图类型支持world,china及全国34个省市自治区。同时支持子区域模式,通过主地图类型扩展出所包含的子区域地图,轻易输出全球176个国家地区和全国600多个省市区域简图。 - -![ECharts 个性化定制](doc/asset/img/subMapType.png) - -### GeoJson地图扩展 -内置地图由标准GeoJson地理数据并经过高效的压缩算法压缩生成的地图数据(大小仅为标准geoJson的30%左右)驱动而来。如果内置地图类型或数据如果并未满足你的项目需要,可通过简单动态注册产生你所需要的新类型。 - -![ECharts 个性化定制](doc/asset/img/example/map7.png) - -### 个性化定制 -500+个可配置选项结合多级控制设计满足高度定制的个性化需求。 - -![ECharts 个性化定制](doc/asset/img/custom.png) - -### 事件交互 -可以捕获的用户交互和数据变化事件实现图表与外界的联动。try this » - -![ECharts 个性化定制](doc/asset/img/example/mix3.png) diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/bower.json b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/bower.json deleted file mode 100644 index a76a1ee..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/bower.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "echarts", - "version": "2.2.7", - "homepage": "http://echarts.baidu.com", - "repository": "git://github.com/ecomfe/echarts", - "authors": [ - { "name": "Kener", "email": "kener.linfeng@gmail.com" }, - { "name": "Pissang", "email": "shenyi.914@gmail.com" }, - { "name": "Erik", "email": "errorrik@gmail.com" }, - { "name": "Yangji", "email": "511415343@qq.com" } - ], - "description": "Enterprise Charts 【Baidu Hi : 1379172 | Email : echarts@baidu.com】", - "main": ["build/dist/echarts.js"], - "keywords": [ - "baidu", - "echarts", - "canvas", - "data visualization" - ], - "license": "BSD", - "ignore": [ - "**/.*", - "node_modules", - "bower_components", - "test", - "doc" - ] -} diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/chord.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/chord.js deleted file mode 100644 index 20708d1..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/chord.js +++ /dev/null @@ -1 +0,0 @@ -define("echarts/chart/chord",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Sector","../util/shape/Ribbon","../util/shape/Icon","zrender/shape/BezierCurve","../config","../util/ecData","zrender/tool/util","zrender/tool/vector","../data/Graph","../layout/Chord","../chart"],function(e){"use strict";function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.scaleLineLength=4,this.scaleUnitAngle=4,this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Sector"),r=e("../util/shape/Ribbon"),s=e("../util/shape/Icon"),l=e("zrender/shape/BezierCurve"),h=e("../config");h.chord={zlevel:0,z:2,clickable:!0,radius:["65%","75%"],center:["50%","50%"],padding:2,sort:"none",sortSub:"none",startAngle:90,clockWise:!0,ribbonType:!0,minRadius:10,maxRadius:20,symbol:"circle",showScale:!1,showScaleText:!1,itemStyle:{normal:{borderWidth:0,borderColor:"#000",label:{show:!0,rotate:!1,distance:5},chordStyle:{width:1,color:"black",borderWidth:1,borderColor:"#999",opacity:.5}},emphasis:{borderWidth:0,borderColor:"#000",chordStyle:{width:1,color:"black",borderWidth:1,borderColor:"#999"}}}};var d=e("../util/ecData"),c=e("zrender/tool/util"),p=e("zrender/tool/vector"),m=e("../data/Graph"),u=e("../layout/Chord");return t.prototype={type:h.CHART_TYPE_CHORD,_init:function(){var e=this.series;this.selectedMap={};for(var t={},i={},n=0,a=e.length;a>n;n++)if(e[n].type===this.type){var o=this.isSelected(e[n].name);this.selectedMap[e[n].name]=o,o&&this.buildMark(n),this.reformOption(e[n]),t[e[n].name]=e[n]}for(var n=0,a=e.length;a>n;n++)if(e[n].type===this.type)if(e[n].insertToSerie){var r=t[e[n].insertToSerie];e[n]._referenceSerie=r}else i[e[n].name]=[e[n]];for(var n=0,a=e.length;a>n;n++)if(e[n].type===this.type&&e[n].insertToSerie){for(var s=e[n]._referenceSerie;s&&s._referenceSerie;)s=s._referenceSerie;i[s.name]&&this.selectedMap[e[n].name]&&i[s.name].push(e[n])}for(var l in i)this._buildChords(i[l]);this.addShapeList()},_getNodeCategory:function(e,t){return e.categories&&e.categories[t.category||0]},_getNodeQueryTarget:function(e,t){var i=this._getNodeCategory(e,t);return[t,i,e]},_getEdgeQueryTarget:function(e,t,i){return i=i||"normal",[t.itemStyle&&t.itemStyle[i],e.itemStyle[i].chordStyle]},_buildChords:function(e){for(var t=[],i=e[0],n=function(e){return e.layout.size>0},a=function(e){return function(t){return e.getEdge(t.node2,t.node1)}},o=0;oa;a++){var r=n[a];if(r&&!r.ignore){var s=this._getNodeCategory(t,r),l=s?s.name:r.name;if(this.selectedMap[l]=this.isSelected(l),this.selectedMap[l]){var h=i.addNode(r.name,r);h.rawIndex=a}}}for(var a=0,o=e.links.length;o>a;a++){var d=e.links[a],c=d.source,p=d.target;"number"==typeof c&&(c=n[c],c&&(c=c.name)),"number"==typeof p&&(p=n[p],p&&(p=p.name));var u=i.addEdge(c,p,d);u&&(u.rawIndex=a)}return i.eachNode(function(e){var i=e.data.value;if(null==i)if(i=0,t.ribbonType)for(var n=0;n0&&(u.style.brushType="both"),u.highlightStyle.lineWidth>0&&(u.highlightStyle.brushType="both"),d.pack(u,e,t,i.data,i.rawIndex,i.id,i.category),this.shapeList.push(u),i.shape=u},this)},_buildNodeIcons:function(e,t,i,n){var a=this.parseCenter(this.zr,n.center),o=this.parseRadius(this.zr,n.radius),r=o[1];i.eachNode(function(i){var o=i.layout.startAngle,l=i.layout.endAngle,h=(o+l)/2,c=r*Math.cos(h),p=r*Math.sin(h),m=this._getNodeQueryTarget(n,i.data),u=this._getNodeCategory(n,i.data),g=this.deepQuery(m,"itemStyle.normal.color");g||(g=this.getColor(u?u.name:i.id));var V=new s({zlevel:e.zlevel,z:e.z+1,style:{x:-i.layout.size,y:-i.layout.size,width:2*i.layout.size,height:2*i.layout.size,iconType:this.deepQuery(m,"symbol"),color:g,brushType:"both",lineWidth:this.deepQuery(m,"itemStyle.normal.borderWidth"),strokeColor:this.deepQuery(m,"itemStyle.normal.borderColor")},highlightStyle:{color:this.deepQuery(m,"itemStyle.emphasis.color"),lineWidth:this.deepQuery(m,"itemStyle.emphasis.borderWidth"),strokeColor:this.deepQuery(m,"itemStyle.emphasis.borderColor")},clickable:n.clickable,position:[c+a[0],p+a[1]]});d.pack(V,e,t,i.data,i.rawIndex,i.id,i.category),this.shapeList.push(V),i.shape=V},this)},_buildLabels:function(e,t,i,a){var o=this.query(a,"itemStyle.normal.label.rotate"),r=this.query(a,"itemStyle.normal.label.distance"),s=this.parseCenter(this.zr,a.center),l=this.parseRadius(this.zr,a.radius),h=a.clockWise,d=h?1:-1;i.eachNode(function(t){var i=t.layout.startAngle/Math.PI*180*d,h=t.layout.endAngle/Math.PI*180*d,c=(i*-d+h*-d)/2;c%=360,0>c&&(c+=360);var m=90>=c||c>=270;c=c*Math.PI/180;var u=[Math.cos(c),-Math.sin(c)],g=0;g=a.ribbonType?a.showScaleText?35+r:r:r+t.layout.size;var V=p.scale([],u,l[1]+g);p.add(V,V,s);var y={zlevel:e.zlevel,z:e.z+1,hoverable:!1,style:{text:null==t.data.label?t.id:t.data.label,textAlign:m?"left":"right"}};o?(y.rotation=m?c:Math.PI+c,y.style.x=m?l[1]+g:-l[1]-g,y.style.y=0,y.position=s.slice()):(y.style.x=V[0],y.style.y=V[1]),y.style.color=this.deepQuery([t.data,a],"itemStyle.normal.label.textStyle.color")||"#000000",y.style.textFont=this.getFont(this.deepQuery([t.data,a],"itemStyle.normal.label.textStyle")),y=new n(y),this.shapeList.push(y),t.labelShape=y},this)},_buildRibbons:function(e,t,i,n){var a=e[t],o=this.parseCenter(this.zr,n.center),s=this.parseRadius(this.zr,n.radius);i.eachEdge(function(l,h){var c,p=i.getEdge(l.node2,l.node1);if(p&&!l.shape){if(p.shape)return void(l.shape=p.shape);var m=l.layout.startAngle/Math.PI*180,u=l.layout.endAngle/Math.PI*180,g=p.layout.startAngle/Math.PI*180,V=p.layout.endAngle/Math.PI*180;c=this.getColor(1===e.length?l.layout.weight<=p.layout.weight?l.node1.id:l.node2.id:a.name);var y,f,U=this._getEdgeQueryTarget(a,l.data),_=this._getEdgeQueryTarget(a,l.data,"emphasis"),b=new r({zlevel:a.zlevel,z:a.z,style:{x:o[0],y:o[1],r:s[0],source0:m,source1:u,target0:g,target1:V,brushType:"both",opacity:this.deepQuery(U,"opacity"),color:c,lineWidth:this.deepQuery(U,"borderWidth"),strokeColor:this.deepQuery(U,"borderColor"),clockWise:n.clockWise},clickable:n.clickable,highlightStyle:{brushType:"both",opacity:this.deepQuery(_,"opacity"),lineWidth:this.deepQuery(_,"borderWidth"),strokeColor:this.deepQuery(_,"borderColor")}});l.layout.weight<=p.layout.weight?(y=p.node1,f=p.node2):(y=l.node1,f=l.node2),d.pack(b,a,t,l.data,null==l.rawIndex?h:l.rawIndex,l.data.name||y.id+"-"+f.id,y.id,f.id),this.shapeList.push(b),l.shape=b}},this)},_buildEdgeCurves:function(e,t,i,n,a){var o=e[t],r=this.parseCenter(this.zr,n.center);i.eachEdge(function(e,i){var n=a.getNodeById(e.node1.id),s=a.getNodeById(e.node2.id),h=n.shape,c=s.shape,p=this._getEdgeQueryTarget(o,e.data),m=this._getEdgeQueryTarget(o,e.data,"emphasis"),u=new l({zlevel:o.zlevel,z:o.z,style:{xStart:h.position[0],yStart:h.position[1],xEnd:c.position[0],yEnd:c.position[1],cpX1:r[0],cpY1:r[1],lineWidth:this.deepQuery(p,"width"),strokeColor:this.deepQuery(p,"color"),opacity:this.deepQuery(p,"opacity")},highlightStyle:{lineWidth:this.deepQuery(m,"width"),strokeColor:this.deepQuery(m,"color"),opacity:this.deepQuery(m,"opacity")}});d.pack(u,o,t,e.data,null==e.rawIndex?i:e.rawIndex,e.data.name||e.node1.id+"-"+e.node2.id,e.node1.id,e.node2.id),this.shapeList.push(u),e.shape=u},this)},_buildScales:function(e,t,i){var o,r,s=e.clockWise,l=this.parseCenter(this.zr,e.center),h=this.parseRadius(this.zr,e.radius),d=s?1:-1,c=0,m=-(1/0);e.showScaleText&&(i.eachNode(function(e){var t=e.data.value;t>m&&(m=t),c+=t}),m>1e10?(o="b",r=1e-9):m>1e7?(o="m",r=1e-6):m>1e4?(o="k",r=.001):(o="",r=1));var u=c/(360-e.padding);i.eachNode(function(t){for(var i=t.layout.startAngle/Math.PI*180,c=t.layout.endAngle/Math.PI*180,m=i;;){if(s&&m>c||!s&&c>m)break;var g=m/180*Math.PI,V=[Math.cos(g),Math.sin(g)],y=p.scale([],V,h[1]+1);p.add(y,y,l);var f=p.scale([],V,h[1]+this.scaleLineLength);p.add(f,f,l);var U=new a({zlevel:e.zlevel,z:e.z-1,hoverable:!1,style:{xStart:y[0],yStart:y[1],xEnd:f[0],yEnd:f[1],lineCap:"round",brushType:"stroke",strokeColor:"#666",lineWidth:1}});this.shapeList.push(U),m+=d*this.scaleUnitAngle}if(e.showScaleText)for(var _=i,b=5*u*this.scaleUnitAngle,x=0;;){if(s&&_>c||!s&&c>_)break;var g=_;g%=360,0>g&&(g+=360);var k=90>=g||g>=270,v=new n({zlevel:e.zlevel,z:e.z-1,hoverable:!1,style:{x:k?h[1]+this.scaleLineLength+4:-h[1]-this.scaleLineLength-4,y:0,text:Math.round(10*x)/10+o,textAlign:k?"left":"right"},position:l.slice(),rotation:k?[-g/180*Math.PI,0,0]:[-(g+180)/180*Math.PI,0,0]});this.shapeList.push(v),x+=b*r,_+=d*this.scaleUnitAngle*5}},this)},refresh:function(e){if(e&&(this.option=e,this.series=e.series),this.legend=this.component.legend,this.legend)this.getColor=function(e){return this.legend.getColor(e)},this.isSelected=function(e){return this.legend.isSelected(e)};else{var t={},i=0;this.getColor=function(e){return t[e]?t[e]:(t[e]||(t[e]=this.zr.getColor(i++)),t[e])},this.isSelected=function(){return!0}}this.backupShapeList(),this._init()},reformOption:function(e){var t=c.merge;e=t(t(e||{},this.ecTheme.chord),h.chord),e.itemStyle.normal.label.textStyle=this.getTextStyle(e.itemStyle.normal.label.textStyle),this.z=e.z,this.zlevel=e.zlevel}},c.inherits(t,i),e("../chart").define("chord",t),t}),define("echarts/util/shape/Ribbon",["require","zrender/shape/Base","zrender/shape/util/PathProxy","zrender/tool/util","zrender/tool/area"],function(e){function t(e){i.call(this,e),this._pathProxy=new n}var i=e("zrender/shape/Base"),n=e("zrender/shape/util/PathProxy"),a=e("zrender/tool/util"),o=e("zrender/tool/area");return t.prototype={type:"ribbon",buildPath:function(e,t){var i=t.clockWise||!1,n=this._pathProxy;n.begin(e);var a=t.x,o=t.y,r=t.r,s=t.source0/180*Math.PI,l=t.source1/180*Math.PI,h=t.target0/180*Math.PI,d=t.target1/180*Math.PI,c=a+Math.cos(s)*r,p=o+Math.sin(s)*r,m=a+Math.cos(l)*r,u=o+Math.sin(l)*r,g=a+Math.cos(h)*r,V=o+Math.sin(h)*r,y=a+Math.cos(d)*r,f=o+Math.sin(d)*r;n.moveTo(c,p),n.arc(a,o,t.r,s,l,!i),n.bezierCurveTo(.7*(a-m)+m,.7*(o-u)+u,.7*(a-g)+g,.7*(o-V)+V,g,V),(t.source0!==t.target0||t.source1!==t.target1)&&(n.arc(a,o,t.r,h,d,!i),n.bezierCurveTo(.7*(a-y)+y,.7*(o-f)+f,.7*(a-c)+c,.7*(o-p)+p,c,p))},getRect:function(e){return e.__rect?e.__rect:(this._pathProxy.isEmpty()||this.buildPath(null,e),this._pathProxy.fastBoundingRect())},isCover:function(e,t){var i=this.getRect(this.style);return e>=i.x&&e<=i.x+i.width&&t>=i.y&&t<=i.y+i.height?o.isInsidePath(this._pathProxy.pathCommands,0,"fill",e,t):void 0}},a.inherits(t,i),t}),define("echarts/data/Graph",["require","zrender/tool/util"],function(e){var t=e("zrender/tool/util"),i=function(e){this._directed=e||!1,this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={}};i.prototype.isDirected=function(){return this._directed},i.prototype.addNode=function(e,t){if(this._nodesMap[e])return this._nodesMap[e];var n=new i.Node(e,t);return this.nodes.push(n),this._nodesMap[e]=n,n},i.prototype.getNodeById=function(e){return this._nodesMap[e]},i.prototype.addEdge=function(e,t,n){if("string"==typeof e&&(e=this._nodesMap[e]),"string"==typeof t&&(t=this._nodesMap[t]),e&&t){var a=e.id+"-"+t.id;if(this._edgesMap[a])return this._edgesMap[a];var o=new i.Edge(e,t,n);return this._directed&&(e.outEdges.push(o),t.inEdges.push(o)),e.edges.push(o),e!==t&&t.edges.push(o),this.edges.push(o),this._edgesMap[a]=o,o}},i.prototype.removeEdge=function(e){var i=e.node1,n=e.node2,a=i.id+"-"+n.id;this._directed&&(i.outEdges.splice(t.indexOf(i.outEdges,e),1),n.inEdges.splice(t.indexOf(n.inEdges,e),1)),i.edges.splice(t.indexOf(i.edges,e),1),i!==n&&n.edges.splice(t.indexOf(n.edges,e),1),delete this._edgesMap[a],this.edges.splice(t.indexOf(this.edges,e),1)},i.prototype.getEdge=function(e,t){return"string"!=typeof e&&(e=e.id),"string"!=typeof t&&(t=t.id),this._directed?this._edgesMap[e+"-"+t]:this._edgesMap[e+"-"+t]||this._edgesMap[t+"-"+e]},i.prototype.removeNode=function(e){if("string"!=typeof e||(e=this._nodesMap[e])){delete this._nodesMap[e.id],this.nodes.splice(t.indexOf(this.nodes,e),1);for(var i=0;in;)e.call(t,this.nodes[n],n)?n++:(this.removeNode(this.nodes[n]),i--)},i.prototype.filterEdge=function(e,t){for(var i=this.edges.length,n=0;i>n;)e.call(t,this.edges[n],n)?n++:(this.removeEdge(this.edges[n]),i--)},i.prototype.eachNode=function(e,t){for(var i=this.nodes.length,n=0;i>n;n++)this.nodes[n]&&e.call(t,this.nodes[n],n)},i.prototype.eachEdge=function(e,t){for(var i=this.edges.length,n=0;i>n;n++)this.edges[n]&&e.call(t,this.edges[n],n)},i.prototype.clear=function(){this.nodes.length=0,this.edges.length=0,this._nodesMap={},this._edgesMap={}},i.prototype.breadthFirstTraverse=function(e,t,i,n){if("string"==typeof t&&(t=this._nodesMap[t]),t){var a="edges";"out"===i?a="outEdges":"in"===i&&(a="inEdges");for(var o=0;or;r++){var s=o.addNode(e[r].id,e[r]);s.data.value=0,n&&(s.data.outValue=s.data.inValue=0)}for(var r=0;a>r;r++)for(var l=0;a>l;l++){var h=t[r][l];n&&(o.nodes[r].data.outValue+=h,o.nodes[l].data.inValue+=h),o.nodes[r].data.value+=h,o.nodes[l].data.value+=h}for(var r=0;a>r;r++)for(var l=r;a>l;l++){var h=t[r][l];if(0!==h){var d=o.nodes[r],c=o.nodes[l],p=o.addEdge(d,c,{});if(p.data.weight=h,r!==l&&n&&t[l][r]){var m=o.addEdge(c,d,{});m.data.weight=t[l][r]}}}return o}},i}),define("echarts/layout/Chord",["require"],function(){var e=function(e){e=e||{},this.sort=e.sort||null,this.sortSub=e.sortSub||null,this.padding=.05,this.startAngle=e.startAngle||0,this.clockWise=null==e.clockWise?!1:e.clockWise,this.center=e.center||[0,0],this.directed=!0};e.prototype.run=function(e){e instanceof Array||(e=[e]);var n=e.length;if(n){for(var a=e[0],o=a.nodes.length,r=[],s=0,l=0;o>l;l++){var h=a.nodes[l],d={size:0,subGroups:[],node:h};r.push(d);for(var c=0,p=0;pl;l++){var d=r[l];d.node.layout.startAngle=_,d.node.layout.endAngle=_+b*d.size*U,d.node.layout.subGroups=[];for(var V=0;Vn;n++)if(i[n].type===this.type){e=this.component.xAxis.getAxis(i[n].xAxisIndex||0);for(var o=0,r=i[n].data.length;r>o;o++){t=i[n].data[o].evolution;for(var l=0,h=t.length;h>l;l++)t[l].timeScale=e.getCoord(s.getNewDate(t[l].time)-0),t[l].valueScale=Math.pow(t[l].value,.8)}}this._intervalX=Math.round(this.component.grid.getWidth()/40)},_drawEventRiver:function(){for(var e=this.series,t=0;ta)){for(var o=[],r=[],s=0;a>s;s++)o.push(n[s].timeScale),r.push(n[s].valueScale);var l=[];l.push([o[0],i]);var s=0;for(s=0;a-1>s;s++)l.push([(o[s]+o[s+1])/2,r[s]/-2+i]);for(l.push([(o[s]+(o[s]+t))/2,r[s]/-2+i]),l.push([o[s]+t,i]),l.push([(o[s]+(o[s]+t))/2,r[s]/2+i]),s=a-1;s>0;s--)l.push([(o[s]+o[s-1])/2,r[s-1]/2+i]);return l}},ondragend:function(e,t){this.isDragend&&e.target&&(t.dragOut=!0,t.dragIn=!0,t.needRefresh=!1,this.isDragend=!1)},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},l.inherits(t,i),e("../chart").define("eventRiver",t),t}),define("echarts/layout/eventRiver",["require"],function(){function e(e,i,o){function r(e,t){var i=e.importance,n=t.importance;return i>n?-1:n>i?1:0}for(var s=4,l=0;l=e)return[0];for(var t=[];e--;)t.push(0);return t}(),u=c.slice(0),y=[],g=0,b=0,l=0;l.5?.5:1,r=t.y,s=(t.height-n)/i,l=0,h=e.length;h>l;l++){var m=e[l];m.y=r+s*m.y+m._offset*o,delete m.time,delete m.value,delete m.xpx,delete m.ypx,delete m._offset;for(var V=m.evolution,U=0,d=V.length;d>U;U++)V[U].valueScale*=s}}function i(e,t,i,n){if(e===i)throw new Error("x0 is equal with x1!!!");if(t===n)return function(){return t};var a=(t-n)/(e-i),o=(n*e-t*i)/(e-i);return function(e){return a*e+o}}function n(e,t,n){var a=~~t,o=e.time.length;e.xpx=[],e.ypx=[];for(var r,s=0,l=0,h=0,m=0,V=0;o>s;s++){l=~~e.time[s],m=e.value[s]/2,s===o-1?(h=l+a,V=0):(h=~~e.time[s+1],V=e.value[s+1]/2),r=i(l,m,h,V);for(var U=l;h>U;U++)e.xpx.push(U-n),e.ypx.push(r(U))}e.xpx.push(h-n),e.ypx.push(V)}function a(e,t,i){for(var n,a=0,o=t.xpx.length,r=0;o>r;r++)n=i(t,r),a=Math.max(a,n+e[t.xpx[r]]);for(r=0;o>r;r++)n=i(t,r),e[t.xpx[r]]=a+n;return a}return e}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/force.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/force.js deleted file mode 100644 index 4462864..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/force.js +++ /dev/null @@ -1 +0,0 @@ -define("echarts/chart/force",["require","./base","../data/Graph","../layout/Force","zrender/shape/Line","zrender/shape/BezierCurve","zrender/shape/Image","../util/shape/Icon","../config","../util/ecData","zrender/tool/util","zrender/config","zrender/tool/vector","../chart"],function(e){"use strict";function t(e,t,o,h,d){var c=this;r.call(this,e,t,o,h,d),this.__nodePositionMap={},this._graph=new s(!0),this._layout=new l,this._layout.onupdate=function(){c._step()},this._steps=1,this.ondragstart=function(){i.apply(c,arguments)},this.ondragend=function(){a.apply(c,arguments)},this.ondrop=function(){},this.shapeHandler.ondragstart=function(){c.isDragstart=!0},this.onmousemove=function(){n.apply(c,arguments)},this.refresh(h)}function i(e){if(this.isDragstart&&e.target){var t=e.target;t.fixed=!0,this.isDragstart=!1,this.zr.on(y.EVENT.MOUSEMOVE,this.onmousemove)}}function n(){this._layout.temperature=.8,this._step()}function a(e,t){if(this.isDragend&&e.target){var i=e.target;i.fixed=!1,t.dragIn=!0,t.needRefresh=!1,this.isDragend=!1,this.zr.un(y.EVENT.MOUSEMOVE,this.onmousemove)}}function o(e,t,i){var n=f.create();return n[0]=(Math.random()-.5)*i+e,n[1]=(Math.random()-.5)*i+t,n}var r=e("./base"),s=e("../data/Graph"),l=e("../layout/Force"),h=e("zrender/shape/Line"),d=e("zrender/shape/BezierCurve"),c=e("zrender/shape/Image"),p=e("../util/shape/Icon"),m=e("../config");m.force={zlevel:1,z:2,center:["50%","50%"],size:"100%",preventOverlap:!1,coolDown:.99,minRadius:10,maxRadius:20,ratioScaling:!1,large:!1,useWorker:!1,steps:1,scaling:1,gravity:1,symbol:"circle",symbolSize:0,linkSymbol:null,linkSymbolSize:[10,15],draggable:!0,clickable:!0,roam:!1,itemStyle:{normal:{label:{show:!1,position:"inside"},nodeStyle:{brushType:"both",borderColor:"#5182ab",borderWidth:1},linkStyle:{color:"#5182ab",width:1,type:"line"}},emphasis:{label:{show:!1},nodeStyle:{},linkStyle:{opacity:0}}}};var u=e("../util/ecData"),g=e("zrender/tool/util"),y=e("zrender/config"),f=e("zrender/tool/vector");return t.prototype={constructor:t,type:m.CHART_TYPE_FORCE,_init:function(){this.selectedMap={};var e,t=this.component.legend,i=this.series;this.clear();for(var n=0,a=i.length;a>n;n++){var o=i[n];if(o.type===m.CHART_TYPE_FORCE){if(i[n]=this.reformOption(i[n]),e=i[n].name||"",this.selectedMap[e]=t?t.isSelected(e):!0,!this.selectedMap[e])continue;this.buildMark(n),this._initSerie(o,n);break}}this.animationEffect()},_getNodeCategory:function(e,t){return e.categories&&e.categories[t.category||0]},_getNodeQueryTarget:function(e,t,i){i=i||"normal";var n=this._getNodeCategory(e,t)||{};return[t.itemStyle&&t.itemStyle[i],n&&n.itemStyle&&n.itemStyle[i],e.itemStyle[i].nodeStyle]},_getEdgeQueryTarget:function(e,t,i){return i=i||"normal",[t.itemStyle&&t.itemStyle[i],e.itemStyle[i].linkStyle]},_initSerie:function(e,t){this._temperature=1,e.matrix?this._graph=this._getSerieGraphFromDataMatrix(e):e.links&&(this._graph=this._getSerieGraphFromNodeLinks(e)),this._buildLinkShapes(e,t),this._buildNodeShapes(e,t);var i=e.roam===!0||"move"===e.roam,n=e.roam===!0||"scale"===e.roam;this.zr.modLayer(this.getZlevelBase(),{panable:i,zoomable:n}),(this.query("markPoint.effect.show")||this.query("markLine.effect.show"))&&this.zr.modLayer(m.EFFECT_ZLEVEL,{panable:i,zoomable:n}),this._initLayout(e),this._step()},_getSerieGraphFromDataMatrix:function(e){for(var t=[],i=0,n=[],a=0;an;n++){var o=i[n];if(o&&!o.ignore){var r=this._getNodeCategory(e,o),l=r?r.name:o.name;if(this.selectedMap[l]=this.isSelected(l),this.selectedMap[l]){var h=t.addNode(o.name,o);h.rawIndex=n}}}for(var n=0,a=e.links.length;a>n;n++){var d=e.links[n],c=d.source,p=d.target;"number"==typeof c&&(c=i[c],c&&(c=c.name)),"number"==typeof p&&(p=i[p],p&&(p=p.name));var m=t.addEdge(c,p,d);m&&(m.rawIndex=n)}return t.eachNode(function(e){var t=e.data.value;if(null==t){t=0;for(var i=0;ih;h++){var d=t.nodes[h];l=Math.max(d.layout.size,l),s=Math.min(d.layout.size,s)}for(var c=l-s,h=0;i>h;h++){var d=t.nodes[h];c>0?(d.layout.size=(d.layout.size-s)*(a-n)/c+n,d.layout.mass=d.layout.size/a):(d.layout.size=(a-n)/2,d.layout.mass=.5)}for(var h=0;i>h;h++){var d=t.nodes[h];if("undefined"!=typeof this.__nodePositionMap[d.id])d.layout.position=f.create(),f.copy(d.layout.position,this.__nodePositionMap[d.id]);else if("undefined"!=typeof d.data.initial)d.layout.position=f.create(),f.copy(d.layout.position,d.data.initial);else{var p=this._layout.center,m=Math.min(this._layout.width,this._layout.height);d.layout.position=o(p[0],p[1],.8*m)}var u=d.shape.style,g=d.layout.size;u.width=u.width||2*g,u.height=u.height||2*g,u.x=-u.width/2,u.y=-u.height/2,f.copy(d.shape.position,d.layout.position)}i=t.edges.length,l=-(1/0);for(var h=0;i>h;h++){var y=t.edges[h];y.layout.weight>l&&(l=y.layout.weight)}for(var h=0;i>h;h++){var y=t.edges[h];y.layout.weight/=l}this._layout.init(t,e.useWorker)},_buildNodeShapes:function(e,t){var i=this._graph,n=this.query(e,"categories");i.eachNode(function(i){var a=this._getNodeCategory(e,i.data),o=[i.data,a,e],r=this._getNodeQueryTarget(e,i.data),s=this._getNodeQueryTarget(e,i.data,"emphasis"),l=new p({style:{x:0,y:0,color:this.deepQuery(r,"color"),brushType:"both",strokeColor:this.deepQuery(r,"strokeColor")||this.deepQuery(r,"borderColor"),lineWidth:this.deepQuery(r,"lineWidth")||this.deepQuery(r,"borderWidth")},highlightStyle:{color:this.deepQuery(s,"color"),strokeColor:this.deepQuery(s,"strokeColor")||this.deepQuery(s,"borderColor"),lineWidth:this.deepQuery(s,"lineWidth")||this.deepQuery(s,"borderWidth")},clickable:e.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()});l.style.color||(l.style.color=this.getColor(a?a.name:i.id)),l.style.iconType=this.deepQuery(o,"symbol");var h=this.deepQuery(o,"symbolSize")||0;"number"==typeof h&&(h=[h,h]),l.style.width=2*h[0],l.style.height=2*h[1],l.style.iconType.match("image")&&(l.style.image=l.style.iconType.replace(new RegExp("^image:\\/\\/"),""),l=new c({style:l.style,highlightStyle:l.highlightStyle,clickable:l.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()})),this.deepQuery(o,"itemStyle.normal.label.show")&&(l.style.text=null==i.data.label?i.id:i.data.label,l.style.textPosition=this.deepQuery(o,"itemStyle.normal.label.position"),l.style.textColor=this.deepQuery(o,"itemStyle.normal.label.textStyle.color"),l.style.textFont=this.getFont(this.deepQuery(o,"itemStyle.normal.label.textStyle")||{})),this.deepQuery(o,"itemStyle.emphasis.label.show")&&(l.highlightStyle.textPosition=this.deepQuery(o,"itemStyle.emphasis.label.position"),l.highlightStyle.textColor=this.deepQuery(o,"itemStyle.emphasis.label.textStyle.color"),l.highlightStyle.textFont=this.getFont(this.deepQuery(o,"itemStyle.emphasis.label.textStyle")||{})),this.deepQuery(o,"draggable")&&(this.setCalculable(l),l.dragEnableTime=0,l.draggable=!0,l.ondragstart=this.shapeHandler.ondragstart,l.ondragover=null);var d="";if("undefined"!=typeof i.category){var a=n[i.category];d=a&&a.name||""}u.pack(l,e,t,i.data,i.rawIndex,i.data.name||"",i.category),this.shapeList.push(l),this.zr.addShape(l),i.shape=l},this)},_buildLinkShapes:function(e,t){for(var i=this._graph,n=i.edges.length,a=0;n>a;a++){var o=i.edges[a],r=o.data,s=o.node1,l=o.node2,c=i.getEdge(l,s),m=this._getEdgeQueryTarget(e,r),y=this.deepQuery(m,"type");e.linkSymbol&&"none"!==e.linkSymbol&&(y="line");var f="line"===y?h:d,V=new f({style:{xStart:0,yStart:0,xEnd:0,yEnd:0},clickable:this.query(e,"clickable"),highlightStyle:{},zlevel:this.getZlevelBase(),z:this.getZBase()});if(c&&c.shape&&(V.style.offset=4,c.shape.style.offset=4),g.merge(V.style,this.query(e,"itemStyle.normal.linkStyle"),!0),g.merge(V.highlightStyle,this.query(e,"itemStyle.emphasis.linkStyle"),!0),"undefined"!=typeof r.itemStyle&&(r.itemStyle.normal&&g.merge(V.style,r.itemStyle.normal,!0),r.itemStyle.emphasis&&g.merge(V.highlightStyle,r.itemStyle.emphasis,!0)),V.style.lineWidth=V.style.lineWidth||V.style.width,V.style.strokeColor=V.style.strokeColor||V.style.color,V.highlightStyle.lineWidth=V.highlightStyle.lineWidth||V.highlightStyle.width,V.highlightStyle.strokeColor=V.highlightStyle.strokeColor||V.highlightStyle.color,u.pack(V,e,t,o.data,null==o.rawIndex?a:o.rawIndex,o.data.name||s.id+" - "+l.id,s.id,l.id),this.shapeList.push(V),this.zr.addShape(V),o.shape=V,e.linkSymbol&&"none"!==e.linkSymbol){var U=new p({style:{x:-5,y:0,width:e.linkSymbolSize[0],height:e.linkSymbolSize[1],iconType:e.linkSymbol,brushType:"fill",color:V.style.strokeColor},highlightStyle:{brushType:"fill"},position:[0,0],rotation:0,zlevel:this.getZlevelBase(),z:this.getZBase()});V._symbolShape=U,this.shapeList.push(U),this.zr.addShape(U)}}},_updateLinkShapes:function(){for(var e=f.create(),t=f.create(),i=f.create(),n=f.create(),a=this._graph.edges,o=0,r=a.length;r>o;o++){var s=a[o],l=s.node1.shape,h=s.node2.shape;f.copy(i,l.position),f.copy(n,h.position);var d=s.shape.style;if(f.sub(e,i,n),f.normalize(e,e),d.offset?(t[0]=e[1],t[1]=-e[0],f.scaleAndAdd(i,i,t,d.offset),f.scaleAndAdd(n,n,t,d.offset)):"bezier-curve"===s.shape.type&&(d.cpX1=(i[0]+n[0])/2-(n[1]-i[1])/4,d.cpY1=(i[1]+n[1])/2-(i[0]-n[0])/4),d.xStart=i[0],d.yStart=i[1],d.xEnd=n[0],d.yEnd=n[1],s.shape.modSelf(),s.shape._symbolShape){var c=s.shape._symbolShape;f.copy(c.position,n),f.scaleAndAdd(c.position,c.position,e,h.style.width/2+2);var p=Math.atan2(e[1],e[0]);c.rotation=Math.PI/2-p,c.modSelf()}}},_syncNodePositions:function(){for(var e=this._graph,t=0;t.01?this._layout.step(this._steps):this.messageCenter.dispatch(m.EVENT.FORCE_LAYOUT_END,{},{},this.myChart)},refresh:function(e){if(e&&(this.option=e,this.series=this.option.series),this.legend=this.component.legend,this.legend)this.getColor=function(e){return this.legend.getColor(e)},this.isSelected=function(e){return this.legend.isSelected(e)};else{var t={},i=0;this.getColor=function(e){return t[e]?t[e]:(t[e]||(t[e]=this.zr.getColor(i++)),t[e])},this.isSelected=function(){return!0}}this._init()},dispose:function(){this.clear(),this.shapeList=null,this.effectList=null,this._layout.dispose(),this._layout=null,this.__nodePositionMap={}},getPosition:function(){var e=[];return this._graph.eachNode(function(t){t.layout&&e.push({name:t.data.name,position:Array.prototype.slice.call(t.layout.position)})}),e}},g.inherits(t,r),e("../chart").define("force",t),t}),define("echarts/data/Graph",["require","zrender/tool/util"],function(e){var t=e("zrender/tool/util"),i=function(e){this._directed=e||!1,this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={}};i.prototype.isDirected=function(){return this._directed},i.prototype.addNode=function(e,t){if(this._nodesMap[e])return this._nodesMap[e];var n=new i.Node(e,t);return this.nodes.push(n),this._nodesMap[e]=n,n},i.prototype.getNodeById=function(e){return this._nodesMap[e]},i.prototype.addEdge=function(e,t,n){if("string"==typeof e&&(e=this._nodesMap[e]),"string"==typeof t&&(t=this._nodesMap[t]),e&&t){var a=e.id+"-"+t.id;if(this._edgesMap[a])return this._edgesMap[a];var o=new i.Edge(e,t,n);return this._directed&&(e.outEdges.push(o),t.inEdges.push(o)),e.edges.push(o),e!==t&&t.edges.push(o),this.edges.push(o),this._edgesMap[a]=o,o}},i.prototype.removeEdge=function(e){var i=e.node1,n=e.node2,a=i.id+"-"+n.id;this._directed&&(i.outEdges.splice(t.indexOf(i.outEdges,e),1),n.inEdges.splice(t.indexOf(n.inEdges,e),1)),i.edges.splice(t.indexOf(i.edges,e),1),i!==n&&n.edges.splice(t.indexOf(n.edges,e),1),delete this._edgesMap[a],this.edges.splice(t.indexOf(this.edges,e),1)},i.prototype.getEdge=function(e,t){return"string"!=typeof e&&(e=e.id),"string"!=typeof t&&(t=t.id),this._directed?this._edgesMap[e+"-"+t]:this._edgesMap[e+"-"+t]||this._edgesMap[t+"-"+e]},i.prototype.removeNode=function(e){if("string"!=typeof e||(e=this._nodesMap[e])){delete this._nodesMap[e.id],this.nodes.splice(t.indexOf(this.nodes,e),1);for(var i=0;in;)e.call(t,this.nodes[n],n)?n++:(this.removeNode(this.nodes[n]),i--)},i.prototype.filterEdge=function(e,t){for(var i=this.edges.length,n=0;i>n;)e.call(t,this.edges[n],n)?n++:(this.removeEdge(this.edges[n]),i--)},i.prototype.eachNode=function(e,t){for(var i=this.nodes.length,n=0;i>n;n++)this.nodes[n]&&e.call(t,this.nodes[n],n)},i.prototype.eachEdge=function(e,t){for(var i=this.edges.length,n=0;i>n;n++)this.edges[n]&&e.call(t,this.edges[n],n)},i.prototype.clear=function(){this.nodes.length=0,this.edges.length=0,this._nodesMap={},this._edgesMap={}},i.prototype.breadthFirstTraverse=function(e,t,i,n){if("string"==typeof t&&(t=this._nodesMap[t]),t){var a="edges";"out"===i?a="outEdges":"in"===i&&(a="inEdges");for(var o=0;or;r++){var s=o.addNode(e[r].id,e[r]);s.data.value=0,n&&(s.data.outValue=s.data.inValue=0)}for(var r=0;a>r;r++)for(var l=0;a>l;l++){var h=t[r][l];n&&(o.nodes[r].data.outValue+=h,o.nodes[l].data.inValue+=h),o.nodes[r].data.value+=h,o.nodes[l].data.value+=h}for(var r=0;a>r;r++)for(var l=r;a>l;l++){var h=t[r][l];if(0!==h){var d=o.nodes[r],c=o.nodes[l],p=o.addEdge(d,c,{});if(p.data.weight=h,r!==l&&n&&t[l][r]){var m=o.addEdge(c,d,{});m.data.weight=t[l][r]}}}return o}},i}),define("echarts/layout/Force",["require","./forceLayoutWorker","zrender/tool/vector"],function(e){function t(){if("undefined"!=typeof Worker&&"undefined"!=typeof Blob)try{var e=new Blob([n.getWorkerCode()]);i=window.URL.createObjectURL(e)}catch(t){i=""}return i}var i,n=e("./forceLayoutWorker"),a=e("zrender/tool/vector"),o=window.requestAnimationFrame||window.msRequestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||function(e){setTimeout(e,16)},r="undefined"==typeof Float32Array?Array:Float32Array,s=function(e){"undefined"==typeof i&&t(),e=e||{},this.width=e.width||500,this.height=e.height||500,this.center=e.center||[this.width/2,this.height/2],this.ratioScaling=e.ratioScaling||!1,this.scaling=e.scaling||1,this.gravity="undefined"!=typeof e.gravity?e.gravity:1,this.large=e.large||!1,this.preventNodeOverlap=e.preventNodeOverlap||!1,this.preventNodeEdgeOverlap=e.preventNodeEdgeOverlap||!1,this.maxSpeedIncrease=e.maxSpeedIncrease||1,this.onupdate=e.onupdate||function(){},this.temperature=e.temperature||1,this.coolDown=e.coolDown||.99,this._layout=null,this._layoutWorker=null;var n=this,a=this._$onupdate;this._$onupdate=function(e){a.call(n,e)}};return s.prototype.updateConfig=function(){var e=this.width,t=this.height,i=Math.min(e,t),n={center:this.center,width:this.ratioScaling?e:i,height:this.ratioScaling?t:i,scaling:this.scaling||1,gravity:this.gravity||1,barnesHutOptimize:this.large,preventNodeOverlap:this.preventNodeOverlap,preventNodeEdgeOverlap:this.preventNodeEdgeOverlap,maxSpeedIncrease:this.maxSpeedIncrease};if(this._layoutWorker)this._layoutWorker.postMessage({cmd:"updateConfig",config:n});else for(var a in n)this._layout[a]=n[a]},s.prototype.init=function(e,t){if(this._layoutWorker&&(this._layoutWorker.terminate(),this._layoutWorker=null),i&&t)try{this._layoutWorker||(this._layoutWorker=new Worker(i),this._layoutWorker.onmessage=this._$onupdate),this._layout=null}catch(a){this._layoutWorker=null,this._layout||(this._layout=new n)}else this._layout||(this._layout=new n);this.temperature=1,this.graph=e;for(var o=e.nodes.length,s=new r(2*o),l=new r(o),h=new r(o),d=0;o>d;d++){var c=e.nodes[d];s[2*d]=c.layout.position[0],s[2*d+1]=c.layout.position[1],l[d]="undefined"==typeof c.layout.mass?1:c.layout.mass,h[d]="undefined"==typeof c.layout.size?1:c.layout.size,c.layout.__index=d}o=e.edges.length;for(var p=new r(2*o),m=new r(o),d=0;o>d;d++){var u=e.edges[d];p[2*d]=u.node1.layout.__index,p[2*d+1]=u.node2.layout.__index,m[d]=u.layout.weight||1}this._layoutWorker?this._layoutWorker.postMessage({cmd:"init",nodesPosition:s,nodesMass:l,nodesSize:h,edges:p,edgesWeight:m}):(this._layout.initNodes(s,l,h),this._layout.initEdges(p,m)),this.updateConfig()},s.prototype.step=function(e){var t=this.graph.nodes;if(this._layoutWorker){for(var i=new r(2*t.length),n=0;nn;n++)this.temperature*=this.coolDown}else{o(this._$onupdate);for(var n=0;nn;n++)this._layout.temperature=this.temperature,this._layout.update(),this.temperature*=this.coolDown}},s.prototype._$onupdate=function(e){if(this._layoutWorker){for(var t=new Float32Array(e.data),i=0;i0&&(a=1/Math.sqrt(a),e[0]=t[0]*a,e[1]=t[1]*a),e},negate:function(e,t){return e[0]=-t[0],e[1]=-t[1],e},copy:function(e,t){return e[0]=t[0],e[1]=t[1],e},set:function(e,t,i){return e[0]=t,e[1]=i,e}}:t("zrender/tool/vector");var l="undefined"==typeof Float32Array?Array:Float32Array;if(i.prototype.beforeUpdate=function(){for(var e=0;e=e&&this.bbox[1]<=t&&this.bbox[3]>=t},i.prototype.setBBox=function(e,t,i,n){this.bbox[0]=e,this.bbox[1]=t,this.bbox[2]=i,this.bbox[3]=n,this.size=(i-e+n-t)/2},i.prototype._newSubRegion=function(){var e=this.subRegions[this.nSubRegions];return e||(e=new i,this.subRegions[this.nSubRegions]=e),this.nSubRegions++,e},i.prototype._addNodeToSubRegion=function(e){var t=this.findSubRegion(e.position[0],e.position[1]),i=this.bbox;if(!t){var n=(i[0]+i[2])/2,a=(i[1]+i[3])/2,o=(i[2]-i[0])/2,r=(i[3]-i[1])/2,s=e.position[0]>=n?1:0,l=e.position[1]>=a?1:0,t=this._newSubRegion();t.setBBox(s*o+i[0],l*r+i[1],(s+1)*o+i[0],(l+1)*r+i[1])}t.addNode(e)},i.prototype._updateCenterOfMass=function(e){null==this.centerOfMass&&(this.centerOfMass=r.create());var t=this.centerOfMass[0]*this.mass,i=this.centerOfMass[1]*this.mass;t+=e.position[0]*e.mass,i+=e.position[1]*e.mass,this.mass+=e.mass,this.centerOfMass[0]=t/this.mass,this.centerOfMass[1]=i/this.mass},o.prototype.nodeToNodeRepulsionFactor=function(e,t,i){return i*i*e/t},o.prototype.edgeToNodeRepulsionFactor=function(e,t,i){return i*e/t},o.prototype.attractionFactor=function(e,t,i){return e*t/i},o.prototype.initNodes=function(e,t,i){this.temperature=1;var a=e.length/2;this.nodes.length=0;for(var o="undefined"!=typeof i,r=0;a>r;r++){var s=new n;s.position[0]=e[2*r],s.position[1]=e[2*r+1],s.mass=t[r],o&&(s.size=i[r]),this.nodes.push(s)}this._massArr=t,o&&(this._sizeArr=i)},o.prototype.initEdges=function(e,t){var i=e.length/2;this.edges.length=0;for(var n="undefined"!=typeof t,o=0;i>o;o++){var r=e[2*o],s=e[2*o+1],l=this.nodes[r],h=this.nodes[s];if(l&&h){l.outDegree++,h.inDegree++;var d=new a(l,h);n&&(d.weight=t[o]),this.edges.push(d)}}},o.prototype.update=function(){var e=this.nodes.length;if(this.updateBBox(),this._k=.4*this.scaling*Math.sqrt(this.width*this.height/e),this.barnesHutOptimize){this._rootRegion.setBBox(this.bbox[0],this.bbox[1],this.bbox[2],this.bbox[3]),this._rootRegion.beforeUpdate();for(var t=0;e>t;t++)this._rootRegion.addNode(this.nodes[t]);this._rootRegion.afterUpdate()}else{var i=0,n=this._rootRegion.centerOfMass;r.set(n,0,0);for(var t=0;e>t;t++){var a=this.nodes[t];i+=a.mass,r.scaleAndAdd(n,n,a.position,a.mass)}i>0&&r.scale(n,n,1/i)}this.updateForce(),this.updatePosition()},o.prototype.updateForce=function(){for(var e=this.nodes.length,t=0;e>t;t++){var i=this.nodes[t];r.copy(i.forcePrev,i.force),r.copy(i.speedPrev,i.speed),r.set(i.force,0,0)}this.updateNodeNodeForce(),this.gravity>0&&this.updateGravityForce(),this.updateEdgeForce(),this.preventNodeEdgeOverlap&&this.updateNodeEdgeForce()},o.prototype.updatePosition=function(){for(var e=this.nodes.length,t=r.create(),i=0;e>i;i++){var n=this.nodes[i],a=n.speed;r.scale(n.force,n.force,1/30);var o=r.len(n.force)+.1,s=Math.min(o,500)/o;r.scale(n.force,n.force,s),r.add(a,a,n.force),r.scale(a,a,this.temperature),r.sub(t,a,n.speedPrev);var l=r.len(t);if(l>0){r.scale(t,t,1/l);var h=r.len(n.speedPrev);h>0&&(l=Math.min(l/h,this.maxSpeedIncrease)*h,r.scaleAndAdd(a,n.speedPrev,t,l))}var d=r.len(a),s=Math.min(d,100)/(d+.1);r.scale(a,a,s),r.add(n.position,n.position,a)}},o.prototype.updateNodeNodeForce=function(){for(var e=this.nodes.length,t=0;e>t;t++){var i=this.nodes[t];if(this.barnesHutOptimize)this.applyRegionToNodeRepulsion(this._rootRegion,i);else for(var n=t+1;e>n;n++){var a=this.nodes[n];this.applyNodeToNodeRepulsion(i,a,!1)}}},o.prototype.updateGravityForce=function(){for(var e=0;ethis.barnesHutTheta*t.size*t.size){var a=this._k*this._k*(i.mass+t.mass)/(n+1);r.scaleAndAdd(i.force,i.force,e,2*a)}else for(var o=0;o0?o=this.nodeToNodeRepulsionFactor(s,l,this._k):0>=l&&(o=this._k*this._k*10*s)):o=this.nodeToNodeRepulsionFactor(s,l,this._k),n||r.scaleAndAdd(t.force,t.force,e,2*o),r.scaleAndAdd(i.force,i.force,e,2*-o)}}}}(),o.prototype.applyEdgeAttraction=function(){var e=r.create();return function(t){var i=t.node1,n=t.node2;r.sub(e,i.position,n.position);var a,o=r.len(e);a=0===this.edgeWeightInfluence?1:1==this.edgeWeightInfluence?t.weight:Math.pow(t.weight,this.edgeWeightInfluence);var s;if(!(this.preventOverlap&&(o=o-i.size-n.size,0>=o))){var s=this.attractionFactor(a,o,this._k);r.scaleAndAdd(i.force,i.force,e,-s),r.scaleAndAdd(n.force,n.force,e,s)}}}(),o.prototype.applyNodeGravity=function(){var e=r.create();return function(t){r.sub(e,this.center,t.position),this.width>this.height?e[1]*=this.width/this.height:e[0]*=this.height/this.width;var i=r.len(e)/100;this.strongGravity?r.scaleAndAdd(t.force,t.force,e,i*this.gravity*t.mass):r.scaleAndAdd(t.force,t.force,e,this.gravity*t.mass/(i+1))}}(),o.prototype.applyEdgeToNodeRepulsion=function(){var e=r.create(),t=r.create(),i=r.create();return function(n,a){var o=n.node1,s=n.node2;if(o!==a&&s!==a){r.sub(e,s.position,o.position),r.sub(t,a.position,o.position);var l=r.len(e);r.scale(e,e,1/l);var h=r.dot(e,t);if(!(0>h||h>l)){r.scaleAndAdd(i,o.position,e,h);var d=r.dist(i,a.position)-a.size,c=this.edgeToNodeRepulsionFactor(a.mass,Math.max(d,.1),100);r.sub(e,a.position,i),r.normalize(e,e),r.scaleAndAdd(a.force,a.force,e,c),r.scaleAndAdd(o.force,o.force,e,-c),r.scaleAndAdd(s.force,s.force,e,-c)}}}}(),o.prototype.updateBBox=function(){for(var e=1/0,t=1/0,i=-(1/0),n=-(1/0),a=0;an;n++){var a=h.nodes[n];a.position[0]=t[2*n],a.position[1]=t[2*n+1]}}else switch(e.data.cmd){case"init":h||(h=new o),h.initNodes(e.data.nodesPosition,e.data.nodesMass,e.data.nodesSize),h.initEdges(e.data.edges,e.data.edgesWeight);break;case"updateConfig":if(h)for(var r in e.data.config)h[r]=e.data.config[r];break;case"update":var s=e.data.steps;if(h){var i=h.nodes.length,t=new Float32Array(2*i);h.temperature=e.data.temperature;for(var n=0;s>n;n++)h.update(),h.temperature*=e.data.coolDown;for(var n=0;i>n;n++){var a=h.nodes[n];t[2*n]=a.position[0],t[2*n+1]=a.position[1]}self.postMessage(t.buffer,[t.buffer])}else{var l=new Float32Array;self.postMessage(l.buffer,[l.buffer])}}}}return o}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/funnel.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/funnel.js deleted file mode 100644 index 0560a44..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/funnel.js +++ /dev/null @@ -1 +0,0 @@ -define("echarts/chart/funnel",["require","./base","zrender/shape/Text","zrender/shape/Line","zrender/shape/Polygon","../config","../util/ecData","../util/number","zrender/tool/util","zrender/tool/color","zrender/tool/area","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Line"),o=e("zrender/shape/Polygon"),r=e("../config");r.funnel={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,x:80,y:60,x2:80,y2:60,min:0,max:100,minSize:"0%",maxSize:"100%",sort:"descending",gap:0,funnelAlign:"center",itemStyle:{normal:{borderColor:"#fff",borderWidth:1,label:{show:!0,position:"outer"},labelLine:{show:!0,length:10,lineStyle:{width:1,type:"solid"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,label:{show:!0},labelLine:{show:!0}}}};var s=e("../util/ecData"),l=e("../util/number"),h=e("zrender/tool/util"),m=e("zrender/tool/color"),V=e("zrender/tool/area");return t.prototype={type:r.CHART_TYPE_FUNNEL,_buildShape:function(){var e=this.series,t=this.component.legend;this._paramsMap={},this._selected={},this.selectedMap={};for(var i,n=0,a=e.length;a>n;n++)if(e[n].type===r.CHART_TYPE_FUNNEL){if(e[n]=this.reformOption(e[n]),this.legendHoverLink=e[n].legendHoverLink||this.legendHoverLink,i=e[n].name||"",this.selectedMap[i]=t?t.isSelected(i):!0,!this.selectedMap[i])continue;this._buildSingleFunnel(n),this.buildMark(n)}this.addShapeList()},_buildSingleFunnel:function(e){var t=this.component.legend,i=this.series[e],n=this._mapData(e),a=this._getLocation(e);this._paramsMap[e]={location:a,data:n};for(var o,r=0,s=[],h=0,m=n.length;m>h;h++)o=n[h].name,this.selectedMap[o]=t?t.isSelected(o):!0,this.selectedMap[o]&&!isNaN(n[h].value)&&(s.push(n[h]),r++);if(0!==r){for(var V,U,d,p,c=this._buildFunnelCase(e),u=i.funnelAlign,y=i.gap,g=r>1?(a.height-(r-1)*y)/r:a.height,b=a.y,f="descending"===i.sort?this._getItemWidth(e,s[0].value):l.parsePercent(i.minSize,a.width),k="descending"===i.sort?1:0,_=a.centerX,x=[],h=0,m=s.length;m>h;h++)if(o=s[h].name,this.selectedMap[o]&&!isNaN(s[h].value)){switch(V=m-2>=h?this._getItemWidth(e,s[h+k].value):"descending"===i.sort?l.parsePercent(i.minSize,a.width):l.parsePercent(i.maxSize,a.width),u){case"left":U=a.x;break;case"right":U=a.x+a.width-f;break;default:U=_-f/2}d=this._buildItem(e,s[h]._index,t?t.getColor(o):this.zr.getColor(s[h]._index),U,b,f,V,g,u),b+=g+y,p=d.style.pointList,x.unshift([p[0][0]-10,p[0][1]]),x.push([p[1][0]+10,p[1][1]]),0===h&&(0===f?(p=x.pop(),"center"==u&&(x[0][0]+=10),"right"==u&&(x[0][0]=p[0]),x[0][1]-="center"==u?10:15,1==m&&(p=d.style.pointList)):(x[x.length-1][1]-=5,x[0][1]-=5)),f=V}c&&(x.unshift([p[3][0]-10,p[3][1]]),x.push([p[2][0]+10,p[2][1]]),0===f?(p=x.pop(),"center"==u&&(x[0][0]+=10),"right"==u&&(x[0][0]=p[0]),x[0][1]+="center"==u?10:15):(x[x.length-1][1]+=5,x[0][1]+=5),c.style.pointList=x)}},_buildFunnelCase:function(e){var t=this.series[e];if(this.deepQuery([t,this.option],"calculable")){var i=this._paramsMap[e].location,n=10,a={hoverable:!1,style:{pointListd:[[i.x-n,i.y-n],[i.x+i.width+n,i.y-n],[i.x+i.width+n,i.y+i.height+n],[i.x-n,i.y+i.height+n]],brushType:"stroke",lineWidth:1,strokeColor:t.calculableHolderColor||this.ecTheme.calculableHolderColor||r.calculableHolderColor}};return s.pack(a,t,e,void 0,-1),this.setCalculable(a),a=new o(a),this.shapeList.push(a),a}},_getLocation:function(e){var t=this.series[e],i=this.zr.getWidth(),n=this.zr.getHeight(),a=this.parsePercent(t.x,i),o=this.parsePercent(t.y,n),r=null==t.width?i-a-this.parsePercent(t.x2,i):this.parsePercent(t.width,i);return{x:a,y:o,width:r,height:null==t.height?n-o-this.parsePercent(t.y2,n):this.parsePercent(t.height,n),centerX:a+r/2}},_mapData:function(e){function t(e,t){return"-"===e.value?1:"-"===t.value?-1:t.value-e.value}function i(e,i){return-t(e,i)}for(var n=this.series[e],a=h.clone(n.data),o=0,r=a.length;r>o;o++)a[o]._index=o;return"none"!=n.sort&&a.sort("descending"===n.sort?t:i),a},_buildItem:function(e,t,i,n,a,o,r,l,h){var m=this.series,V=m[e],U=V.data[t],d=this.getPolygon(e,t,i,n,a,o,r,l,h);s.pack(d,m[e],e,m[e].data[t],t,m[e].data[t].name),this.shapeList.push(d);var p=this.getLabel(e,t,i,n,a,o,r,l,h);s.pack(p,m[e],e,m[e].data[t],t,m[e].data[t].name),this.shapeList.push(p),this._needLabel(V,U,!1)||(p.invisible=!0);var c=this.getLabelLine(e,t,i,n,a,o,r,l,h);this.shapeList.push(c),this._needLabelLine(V,U,!1)||(c.invisible=!0);var u=[],y=[];return this._needLabelLine(V,U,!0)&&(u.push(c.id),y.push(c.id)),this._needLabel(V,U,!0)&&(u.push(p.id),y.push(d.id)),d.hoverConnect=u,p.hoverConnect=y,d},_getItemWidth:function(e,t){var i=this.series[e],n=this._paramsMap[e].location,a=i.min,o=i.max,r=l.parsePercent(i.minSize,n.width),s=l.parsePercent(i.maxSize,n.width);return(t-a)*(s-r)/(o-a)+r},getPolygon:function(e,t,i,n,a,r,s,l,h){var V,U=this.series[e],d=U.data[t],p=[d,U],c=this.deepMerge(p,"itemStyle.normal")||{},u=this.deepMerge(p,"itemStyle.emphasis")||{},y=this.getItemStyleColor(c.color,e,t,d)||i,g=this.getItemStyleColor(u.color,e,t,d)||("string"==typeof y?m.lift(y,-.2):y);switch(h){case"left":V=n;break;case"right":V=n+(r-s);break;default:V=n+(r-s)/2}var b={zlevel:U.zlevel,z:U.z,clickable:this.deepQuery(p,"clickable"),style:{pointList:[[n,a],[n+r,a],[V+s,a+l],[V,a+l]],brushType:"both",color:y,lineWidth:c.borderWidth,strokeColor:c.borderColor},highlightStyle:{color:g,lineWidth:u.borderWidth,strokeColor:u.borderColor}};return this.deepQuery([d,U,this.option],"calculable")&&(this.setCalculable(b),b.draggable=!0),new o(b)},getLabel:function(e,t,i,a,o,r,s,l,U){var d,p=this.series[e],c=p.data[t],u=this._paramsMap[e].location,y=h.merge(h.clone(c.itemStyle)||{},p.itemStyle),g="normal",b=y[g].label,f=b.textStyle||{},k=y[g].labelLine.length,_=this.getLabelText(e,t,g),x=this.getFont(f),L=i;b.position=b.position||y.normal.label.position,"inner"===b.position||"inside"===b.position||"center"===b.position?(d=U,L=Math.max(r,s)/2>V.getTextWidth(_,x)?"#fff":m.reverse(i)):d="left"===b.position?"right":"left";var W={zlevel:p.zlevel,z:p.z+1,style:{x:this._getLabelPoint(b.position,a,u,r,s,k,U),y:o+l/2,color:f.color||L,text:_,textAlign:f.align||d,textBaseline:f.baseline||"middle",textFont:x}};return g="emphasis",b=y[g].label||b,f=b.textStyle||f,k=y[g].labelLine.length||k,b.position=b.position||y.normal.label.position,_=this.getLabelText(e,t,g),x=this.getFont(f),L=i,"inner"===b.position||"inside"===b.position||"center"===b.position?(d=U,L=Math.max(r,s)/2>V.getTextWidth(_,x)?"#fff":m.reverse(i)):d="left"===b.position?"right":"left",W.highlightStyle={x:this._getLabelPoint(b.position,a,u,r,s,k,U),color:f.color||L,text:_,textAlign:f.align||d,textFont:x,brushType:"fill"},new n(W)},getLabelText:function(e,t,i){var n=this.series,a=n[e],o=a.data[t],r=this.deepQuery([o,a],"itemStyle."+i+".label.formatter");return r?"function"==typeof r?r.call(this.myChart,{seriesIndex:e,seriesName:a.name||"",series:a,dataIndex:t,data:o,name:o.name,value:o.value}):"string"==typeof r?r=r.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}").replace("{a0}",a.name).replace("{b0}",o.name).replace("{c0}",o.value):void 0:o.name},getLabelLine:function(e,t,i,n,o,r,s,l,m){var V=this.series[e],U=V.data[t],d=this._paramsMap[e].location,p=h.merge(h.clone(U.itemStyle)||{},V.itemStyle),c="normal",u=p[c].labelLine,y=p[c].labelLine.length,g=u.lineStyle||{},b=p[c].label;b.position=b.position||p.normal.label.position;var f={zlevel:V.zlevel,z:V.z+1,hoverable:!1,style:{xStart:this._getLabelLineStartPoint(n,d,r,s,m),yStart:o+l/2,xEnd:this._getLabelPoint(b.position,n,d,r,s,y,m),yEnd:o+l/2,strokeColor:g.color||i,lineType:g.type,lineWidth:g.width}};return c="emphasis",u=p[c].labelLine||u,y=p[c].labelLine.length||y,g=u.lineStyle||g,b=p[c].label||b,b.position=b.position,f.highlightStyle={xEnd:this._getLabelPoint(b.position,n,d,r,s,y,m),strokeColor:g.color||i,lineType:g.type,lineWidth:g.width},new a(f)},_getLabelPoint:function(e,t,i,n,a,o,r){switch(e="inner"===e||"inside"===e?"center":e){case"center":return"center"==r?t+n/2:"left"==r?t+10:t+n-10;case"left":return"auto"===o?i.x-10:"center"==r?i.centerX-Math.max(n,a)/2-o:"right"==r?t-(a>n?a-n:0)-o:i.x-o;default:return"auto"===o?i.x+i.width+10:"center"==r?i.centerX+Math.max(n,a)/2+o:"right"==r?i.x+i.width+o:t+Math.max(n,a)+o}},_getLabelLineStartPoint:function(e,t,i,n,a){return"center"==a?t.centerX:n>i?e+Math.min(i,n)/2:e+Math.max(i,n)/2},_needLabel:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".label.show")},_needLabelLine:function(e,t,i){return this.deepQuery([t,e],"itemStyle."+(i?"emphasis":"normal")+".labelLine.show")},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},h.inherits(t,i),e("../chart").define("funnel",t),t}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/gauge.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/gauge.js deleted file mode 100644 index 9367dfe..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/gauge.js +++ /dev/null @@ -1 +0,0 @@ -define("echarts/chart/gauge",["require","./base","../util/shape/GaugePointer","zrender/shape/Text","zrender/shape/Line","zrender/shape/Rectangle","zrender/shape/Circle","zrender/shape/Sector","../config","../util/ecData","../util/accMath","zrender/tool/util","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../util/shape/GaugePointer"),a=e("zrender/shape/Text"),o=e("zrender/shape/Line"),r=e("zrender/shape/Rectangle"),s=e("zrender/shape/Circle"),l=e("zrender/shape/Sector"),h=e("../config");h.gauge={zlevel:0,z:2,center:["50%","50%"],clickable:!0,legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,min:0,max:100,splitNumber:10,axisLine:{show:!0,lineStyle:{color:[[.2,"#228b22"],[.8,"#48b"],[1,"#ff4500"]],width:30}},axisTick:{show:!0,splitNumber:5,length:8,lineStyle:{color:"#eee",width:1,type:"solid"}},axisLabel:{show:!0,textStyle:{color:"auto"}},splitLine:{show:!0,length:30,lineStyle:{color:"#eee",width:2,type:"solid"}},pointer:{show:!0,length:"80%",width:8,color:"auto"},title:{show:!0,offsetCenter:[0,"-40%"],textStyle:{color:"#333",fontSize:15}},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:40,offsetCenter:[0,"40%"],textStyle:{color:"auto",fontSize:30}}};var m=e("../util/ecData"),V=e("../util/accMath"),U=e("zrender/tool/util");return t.prototype={type:h.CHART_TYPE_GAUGE,_buildShape:function(){var e=this.series;this._paramsMap={},this.selectedMap={};for(var t=0,i=e.length;i>t;t++)e[t].type===h.CHART_TYPE_GAUGE&&(this.selectedMap[e[t].name]=!0,e[t]=this.reformOption(e[t]),this.legendHoverLink=e[t].legendHoverLink||this.legendHoverLink,this._buildSingleGauge(t),this.buildMark(t));this.addShapeList()},_buildSingleGauge:function(e){var t=this.series[e];this._paramsMap[e]={center:this.parseCenter(this.zr,t.center),radius:this.parseRadius(this.zr,t.radius),startAngle:t.startAngle.toFixed(2)-0,endAngle:t.endAngle.toFixed(2)-0},this._paramsMap[e].totalAngle=this._paramsMap[e].startAngle-this._paramsMap[e].endAngle,this._colorMap(e),this._buildAxisLine(e),this._buildSplitLine(e),this._buildAxisTick(e),this._buildAxisLabel(e),this._buildPointer(e),this._buildTitle(e),this._buildDetail(e)},_buildAxisLine:function(e){var t=this.series[e];if(t.axisLine.show)for(var i,n,a=t.min,o=t.max-a,r=this._paramsMap[e],s=r.center,l=r.startAngle,h=r.totalAngle,V=r.colorArray,U=t.axisLine.lineStyle,d=this.parsePercent(U.width,r.radius[1]),p=r.radius[1],c=p-d,u=l,y=0,g=V.length;g>y;y++)n=l-h*(V[y][0]-a)/o,i=this._getSector(s,c,p,n,u,V[y][1],U,t.zlevel,t.z),u=n,i._animationAdd="r",m.set(i,"seriesIndex",e),m.set(i,"dataIndex",y),this.shapeList.push(i)},_buildSplitLine:function(e){var t=this.series[e];if(t.splitLine.show)for(var i,n,a,r=this._paramsMap[e],s=t.splitNumber,l=t.min,h=t.max-l,m=t.splitLine,V=this.parsePercent(m.length,r.radius[1]),U=m.lineStyle,d=U.color,p=r.center,c=r.startAngle*Math.PI/180,u=r.totalAngle*Math.PI/180,y=r.radius[1],g=y-V,b=0;s>=b;b++)i=c-u/s*b,n=Math.sin(i),a=Math.cos(i),this.shapeList.push(new o({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{xStart:p[0]+a*y,yStart:p[1]-n*y,xEnd:p[0]+a*g,yEnd:p[1]-n*g,strokeColor:"auto"===d?this._getColor(e,l+h/s*b):d,lineType:U.type,lineWidth:U.width,shadowColor:U.shadowColor,shadowBlur:U.shadowBlur,shadowOffsetX:U.shadowOffsetX,shadowOffsetY:U.shadowOffsetY}}))},_buildAxisTick:function(e){var t=this.series[e];if(t.axisTick.show)for(var i,n,a,r=this._paramsMap[e],s=t.splitNumber,l=t.min,h=t.max-l,m=t.axisTick,V=m.splitNumber,U=this.parsePercent(m.length,r.radius[1]),d=m.lineStyle,p=d.color,c=r.center,u=r.startAngle*Math.PI/180,y=r.totalAngle*Math.PI/180,g=r.radius[1],b=g-U,f=0,k=s*V;k>=f;f++)f%V!==0&&(i=u-y/k*f,n=Math.sin(i),a=Math.cos(i),this.shapeList.push(new o({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{xStart:c[0]+a*g,yStart:c[1]-n*g,xEnd:c[0]+a*b,yEnd:c[1]-n*b,strokeColor:"auto"===p?this._getColor(e,l+h/k*f):p,lineType:d.type,lineWidth:d.width,shadowColor:d.shadowColor,shadowBlur:d.shadowBlur,shadowOffsetX:d.shadowOffsetX,shadowOffsetY:d.shadowOffsetY}})))},_buildAxisLabel:function(e){var t=this.series[e];if(t.axisLabel.show)for(var i,n,o,r,s=t.splitNumber,l=t.min,h=t.max-l,m=t.axisLabel.textStyle,U=this.getFont(m),d=m.color,p=this._paramsMap[e],c=p.center,u=p.startAngle,y=p.totalAngle,g=p.radius[1]-this.parsePercent(t.splitLine.length,p.radius[1])-5,b=0;s>=b;b++)r=V.accAdd(l,V.accMul(V.accDiv(h,s),b)),i=u-y/s*b,n=Math.sin(i*Math.PI/180),o=Math.cos(i*Math.PI/180),i=(i+360)%360,this.shapeList.push(new a({zlevel:t.zlevel,z:t.z+1,hoverable:!1,style:{x:c[0]+o*g,y:c[1]-n*g,color:"auto"===d?this._getColor(e,r):d,text:this._getLabelText(t.axisLabel.formatter,r),textAlign:i>=110&&250>=i?"left":70>=i||i>=290?"right":"center",textBaseline:i>=10&&170>=i?"top":i>=190&&350>=i?"bottom":"middle",textFont:U,shadowColor:m.shadowColor,shadowBlur:m.shadowBlur,shadowOffsetX:m.shadowOffsetX,shadowOffsetY:m.shadowOffsetY}}))},_buildPointer:function(e){var t=this.series[e];if(t.pointer.show){var i=t.max-t.min,a=t.pointer,o=this._paramsMap[e],r=this.parsePercent(a.length,o.radius[1]),l=this.parsePercent(a.width,o.radius[1]),h=o.center,V=this._getValue(e);V=V2?2:l/2,color:"#fff"}});m.pack(p,this.series[e],e,this.series[e].data[0],0,this.series[e].data[0].name,V),this.shapeList.push(p),this.shapeList.push(new s({zlevel:t.zlevel,z:t.z+2,hoverable:!1,style:{x:h[0],y:h[1],r:a.width/2.5,color:"#fff"}}))}},_buildTitle:function(e){var t=this.series[e];if(t.title.show){var i=t.data[0],n=null!=i.name?i.name:"";if(""!==n){var o=t.title,r=o.offsetCenter,s=o.textStyle,l=s.color,h=this._paramsMap[e],m=h.center[0]+this.parsePercent(r[0],h.radius[1]),V=h.center[1]+this.parsePercent(r[1],h.radius[1]);this.shapeList.push(new a({zlevel:t.zlevel,z:t.z+(Math.abs(m-h.center[0])+Math.abs(V-h.center[1])<2*s.fontSize?2:1),hoverable:!1,style:{x:m,y:V,color:"auto"===l?this._getColor(e):l,text:n,textAlign:"center",textFont:this.getFont(s),shadowColor:s.shadowColor,shadowBlur:s.shadowBlur,shadowOffsetX:s.shadowOffsetX,shadowOffsetY:s.shadowOffsetY}}))}}},_buildDetail:function(e){var t=this.series[e];if(t.detail.show){var i=t.detail,n=i.offsetCenter,a=i.backgroundColor,o=i.textStyle,s=o.color,l=this._paramsMap[e],h=this._getValue(e),m=l.center[0]-i.width/2+this.parsePercent(n[0],l.radius[1]),V=l.center[1]+this.parsePercent(n[1],l.radius[1]);this.shapeList.push(new r({zlevel:t.zlevel,z:t.z+(Math.abs(m+i.width/2-l.center[0])+Math.abs(V+i.height/2-l.center[1])r;r++)o.push([a[r][0]*n+i,a[r][1]]);this._paramsMap[e].colorArray=o},_getColor:function(e,t){null==t&&(t=this._getValue(e));for(var i=this._paramsMap[e].colorArray,n=0,a=i.length;a>n;n++)if(i[n][0]>=t)return i[n][1];return i[i.length-1][1]},_getSector:function(e,t,i,n,a,o,r,s,h){return new l({zlevel:s,z:h,hoverable:!1,style:{x:e[0],y:e[1],r0:t,r:i,startAngle:n,endAngle:a,brushType:"fill",color:o,shadowColor:r.shadowColor,shadowBlur:r.shadowBlur,shadowOffsetX:r.shadowOffsetX,shadowOffsetY:r.shadowOffsetY}})},_getLabelText:function(e,t){if(e){if("function"==typeof e)return e.call(this.myChart,t);if("string"==typeof e)return e.replace("{value}",t)}return t},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()}},U.inherits(t,i),e("../chart").define("gauge",t),t}),define("echarts/util/shape/GaugePointer",["require","zrender/shape/Base","zrender/tool/util","./normalIsCover"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/tool/util");return t.prototype={type:"gauge-pointer",buildPath:function(e,t){var i=t.r,n=t.width,a=t.angle,o=t.x-Math.cos(a)*n*(n>=i/3?1:2),r=t.y+Math.sin(a)*n*(n>=i/3?1:2);a=t.angle-Math.PI/2,e.moveTo(o,r),e.lineTo(t.x+Math.cos(a)*n,t.y-Math.sin(a)*n),e.lineTo(t.x+Math.cos(t.angle)*i,t.y-Math.sin(t.angle)*i),e.lineTo(t.x-Math.cos(a)*n,t.y+Math.sin(a)*n),e.lineTo(o,r)},getRect:function(e){if(e.__rect)return e.__rect;var t=2*e.width,i=e.x,n=e.y,a=i+Math.cos(e.angle)*e.r,o=n-Math.sin(e.angle)*e.r;return e.__rect={x:Math.min(i,a)-t,y:Math.min(n,o)-t,width:Math.abs(i-a)+t,height:Math.abs(n-o)+t},e.__rect},isCover:e("./normalIsCover")},n.inherits(t,i),t}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/heatmap.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/heatmap.js deleted file mode 100644 index 6077229..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/heatmap.js +++ /dev/null @@ -1 +0,0 @@ -define("echarts/chart/heatmap",["require","./base","../layer/heatmap","../config","../util/ecData","zrender/tool/util","zrender/tool/color","zrender/shape/Image","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../layer/heatmap"),a=e("../config"),o=(e("../util/ecData"),e("zrender/tool/util")),r=(e("zrender/tool/color"),e("zrender/shape/Image"));return a.heatmap={zlevel:0,z:2,clickable:!0},t.prototype={type:a.CHART_TYPE_HEATMAP,refresh:function(e){this.clear(),e&&(this.option=e,this.series=e.series),this._init()},_init:function(){var e=this.series;this.backupShapeList();for(var t=e.length,i=0;t>i;++i)if(e[i].type===a.CHART_TYPE_HEATMAP){e[i]=this.reformOption(e[i]);var o=new n(e[i]),s=o.getCanvas(e[i].data,this.zr.getWidth(),this.zr.getHeight()),l=new r({position:[0,0],scale:[1,1],hoverable:this.option.hoverable,style:{x:0,y:0,image:s,width:s.width,height:s.height}});this.shapeList.push(l)}this.addShapeList()}},o.inherits(t,i),e("../chart").define("heatmap",t),t}),define("echarts/layer/heatmap",["require"],function(){function e(e){if(this.option=e,e)for(var i in t)this.option[i]=void 0!==e[i]?e[i]:t[i];else this.option=t}var t={blurSize:30,gradientColors:["blue","cyan","lime","yellow","red"],minAlpha:.05,valueScale:1,opacity:1},i=20,n=256;return e.prototype={getCanvas:function(e,t,a){var o=this._getBrush(),r=this._getGradient(),s=i+this.option.blurSize,l=document.createElement("canvas");l.width=t,l.height=a;for(var h=l.getContext("2d"),m=e.length,V=0;m>V;++V){var d=e[V],U=d[0],p=d[1],c=d[2],u=Math.min(1,Math.max(c*this.option.valueScale||this.option.minAlpha,this.option.minAlpha));h.globalAlpha=u,h.drawImage(o,U-s,p-s)}for(var g=h.getImageData(0,0,l.width,l.height),y=g.data,m=y.length/4;m--;){var b=4*m+3,u=y[b]/256,f=Math.floor(u*(n-1));y[b-3]=r[4*f],y[b-2]=r[4*f+1],y[b-1]=r[4*f+2],y[b]*=this.option.opacity}return h.putImageData(g,0,0),l},_getBrush:function(){if(!this._brushCanvas){this._brushCanvas=document.createElement("canvas");var e=i+this.option.blurSize,t=2*e;this._brushCanvas.width=t,this._brushCanvas.height=t;var n=this._brushCanvas.getContext("2d");n.shadowOffsetX=t,n.shadowBlur=this.option.blurSize,n.shadowColor="black",n.beginPath(),n.arc(-e,e,i,0,2*Math.PI,!0),n.closePath(),n.fill()}return this._brushCanvas},_getGradient:function(){if(!this._gradientPixels){var e=n,t=document.createElement("canvas");t.width=1,t.height=e;for(var i=t.getContext("2d"),a=i.createLinearGradient(0,0,0,e),o=this.option.gradientColors.length,r=0;o>r;++r)"string"==typeof this.option.gradientColors[r]?a.addColorStop((r+1)/o,this.option.gradientColors[r]):a.addColorStop(this.option.gradientColors[r].offset,this.option.gradientColors[r].color);i.fillStyle=a,i.fillRect(0,0,1,e),this._gradientPixels=i.getImageData(0,0,1,e).data}return this._gradientPixels}},e}),define("echarts/layer/heatmap",["require"],function(){function e(e){if(this.option=e,e)for(var i in t)this.option[i]=void 0!==e[i]?e[i]:t[i];else this.option=t}var t={blurSize:30,gradientColors:["blue","cyan","lime","yellow","red"],minAlpha:.05,valueScale:1,opacity:1},i=20,n=256;return e.prototype={getCanvas:function(e,t,a){var o=this._getBrush(),r=this._getGradient(),s=i+this.option.blurSize,l=document.createElement("canvas");l.width=t,l.height=a;for(var h=l.getContext("2d"),m=e.length,V=0;m>V;++V){var d=e[V],U=d[0],p=d[1],c=d[2],u=Math.min(1,Math.max(c*this.option.valueScale||this.option.minAlpha,this.option.minAlpha));h.globalAlpha=u,h.drawImage(o,U-s,p-s)}for(var g=h.getImageData(0,0,l.width,l.height),y=g.data,m=y.length/4;m--;){var b=4*m+3,u=y[b]/256,f=Math.floor(u*(n-1));y[b-3]=r[4*f],y[b-2]=r[4*f+1],y[b-1]=r[4*f+2],y[b]*=this.option.opacity}return h.putImageData(g,0,0),l},_getBrush:function(){if(!this._brushCanvas){this._brushCanvas=document.createElement("canvas");var e=i+this.option.blurSize,t=2*e;this._brushCanvas.width=t,this._brushCanvas.height=t;var n=this._brushCanvas.getContext("2d");n.shadowOffsetX=t,n.shadowBlur=this.option.blurSize,n.shadowColor="black",n.beginPath(),n.arc(-e,e,i,0,2*Math.PI,!0),n.closePath(),n.fill()}return this._brushCanvas},_getGradient:function(){if(!this._gradientPixels){var e=n,t=document.createElement("canvas");t.width=1,t.height=e;for(var i=t.getContext("2d"),a=i.createLinearGradient(0,0,0,e),o=this.option.gradientColors.length,r=0;o>r;++r)"string"==typeof this.option.gradientColors[r]?a.addColorStop((r+1)/o,this.option.gradientColors[r]):a.addColorStop(this.option.gradientColors[r].offset,this.option.gradientColors[r].color);i.fillStyle=a,i.fillRect(0,0,1,e),this._gradientPixels=i.getImageData(0,0,1,e).data}return this._gradientPixels}},e}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/k.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/k.js deleted file mode 100644 index cb97168..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/k.js +++ /dev/null @@ -1 +0,0 @@ -define("echarts/chart/k",["require","./base","../util/shape/Candle","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","zrender/tool/util","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../util/shape/Candle");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var a=e("../config");a.k={zlevel:0,z:2,clickable:!0,hoverable:!0,legendHoverLink:!1,xAxisIndex:0,yAxisIndex:0,itemStyle:{normal:{color:"#fff",color0:"#00aa11",lineStyle:{width:1,color:"#ff3200",color0:"#00aa11"},label:{show:!1}},emphasis:{label:{show:!1}}}};var o=e("../util/ecData"),r=e("zrender/tool/util");return t.prototype={type:a.CHART_TYPE_K,_buildShape:function(){var e=this.series;this.selectedMap={};for(var t,i={top:[],bottom:[]},n=0,o=e.length;o>n;n++)e[n].type===a.CHART_TYPE_K&&(e[n]=this.reformOption(e[n]),this.legendHoverLink=e[n].legendHoverLink||this.legendHoverLink,t=this.component.xAxis.getAxis(e[n].xAxisIndex),t.type===a.COMPONENT_TYPE_AXIS_CATEGORY&&i[t.getPosition()].push(n));for(var r in i)i[r].length>0&&this._buildSinglePosition(r,i[r]);this.addShapeList()},_buildSinglePosition:function(e,t){var i=this._mapData(t),n=i.locationMap,a=i.maxDataLength;if(0!==a&&0!==n.length){this._buildHorizontal(t,a,n);for(var o=0,r=t.length;r>o;o++)this.buildMark(t[o])}},_mapData:function(e){for(var t,i,n=this.series,a=this.component.legend,o=[],r=0,s=0,l=e.length;l>s;s++)t=n[e[s]],i=t.name,this.selectedMap[i]=a?a.isSelected(i):!0,this.selectedMap[i]&&o.push(e[s]),r=Math.max(r,t.data.length);return{locationMap:o,maxDataLength:r}},_buildHorizontal:function(e,t,i){for(var n,a,o,r,s,l,h,d,c,m,p=this.series,u={},g=0,V=i.length;V>g;g++){n=i[g],a=p[n],o=a.xAxisIndex||0,r=this.component.xAxis.getAxis(o),h=a.barWidth||Math.floor(r.getGap()/2),m=a.barMaxWidth,m&&h>m&&(h=m),s=a.yAxisIndex||0,l=this.component.yAxis.getAxis(s),u[n]=[];for(var U=0,y=t;y>U&&null!=r.getNameByIndex(U);U++)d=a.data[U],c=this.getDataFromOption(d,"-"),"-"!==c&&4==c.length&&u[n].push([r.getCoordByIndex(U),h,l.getCoord(c[0]),l.getCoord(c[1]),l.getCoord(c[2]),l.getCoord(c[3]),U,r.getNameByIndex(U)])}this._buildKLine(e,u)},_buildKLine:function(e,t){for(var i,n,o,r,s,l,h,d,c,m,p,u,g,V,U,y,f,_=this.series,b=0,x=e.length;x>b;b++)if(f=e[b],p=_[f],V=t[f],this._isLarge(V)&&(V=this._getLargePointList(V)),p.type===a.CHART_TYPE_K&&null!=V){u=p,i=this.query(u,"itemStyle.normal.lineStyle.width"),n=this.query(u,"itemStyle.normal.lineStyle.color"),o=this.query(u,"itemStyle.normal.lineStyle.color0"),r=this.query(u,"itemStyle.normal.color"),s=this.query(u,"itemStyle.normal.color0"),l=this.query(u,"itemStyle.emphasis.lineStyle.width"),h=this.query(u,"itemStyle.emphasis.lineStyle.color"),d=this.query(u,"itemStyle.emphasis.lineStyle.color0"),c=this.query(u,"itemStyle.emphasis.color"),m=this.query(u,"itemStyle.emphasis.color0");for(var k=0,v=V.length;v>k;k++)U=V[k],g=p.data[U[6]],u=g,y=U[3]a;a++)n[a]=e[Math.floor(i/t*a)];return n},_getCandle:function(e,t,i,a,r,s,l,h,d,c,m,p,u,g,V){var U=this.series,y=U[e],f=y.data[t],_=[f,y],b={zlevel:y.zlevel,z:y.z,clickable:this.deepQuery(_,"clickable"),hoverable:this.deepQuery(_,"hoverable"),style:{x:a,y:[s,l,h,d],width:r,color:c,strokeColor:p,lineWidth:m,brushType:"both"},highlightStyle:{color:u,strokeColor:V,lineWidth:g},_seriesIndex:e};return b=this.addLabel(b,y,f,i),o.pack(b,y,e,f,t,i),b=new n(b)},getMarkCoord:function(e,t){var i=this.series[e],n=this.component.xAxis.getAxis(i.xAxisIndex),a=this.component.yAxis.getAxis(i.yAxisIndex);return["string"!=typeof t.xAxis&&n.getCoordByIndex?n.getCoordByIndex(t.xAxis||0):n.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&a.getCoordByIndex?a.getCoordByIndex(t.yAxis||0):a.getCoord(t.yAxis||0)]},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},addDataAnimation:function(e,t){function i(){u--,0===u&&t&&t()}for(var n=this.series,a={},r=0,s=e.length;s>r;r++)a[e[r][0]]=e[r];for(var l,h,d,c,m,p,u=0,r=0,s=this.shapeList.length;s>r;r++)if(m=this.shapeList[r]._seriesIndex,a[m]&&!a[m][3]&&"candle"===this.shapeList[r].type){if(p=o.get(this.shapeList[r],"dataIndex"),c=n[m],a[m][2]&&p===c.data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!a[m][2]&&0===p){this.zr.delShape(this.shapeList[r].id);continue}h=this.component.xAxis.getAxis(c.xAxisIndex||0).getGap(),l=a[m][2]?h:-h,d=0,u++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,d]}).done(i).start()}u||t&&t()}},r.inherits(t,i),e("../chart").define("k",t),t}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/line.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/line.js deleted file mode 100644 index 2cda19f..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/line.js +++ /dev/null @@ -1 +0,0 @@ -define("echarts/chart/line",["require","./base","zrender/shape/Polyline","../util/shape/Icon","../util/shape/HalfSmoothPolygon","../component/axis","../component/grid","../component/dataZoom","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,i,a,o){n.call(this,e,t,i,a,o),this.refresh(a)}function i(e,t,i){var n=t.x,a=t.y,r=t.width,s=t.height,l=s/2;t.symbol.match("empty")&&(e.fillStyle="#fff"),t.brushType="both";var h=t.symbol.replace("empty","").toLowerCase();h.match("star")?(l=h.replace("star","")-0||5,a-=1,h="star"):("rectangle"===h||"arrow"===h)&&(n+=(r-s)/2,r=s);var d="";if(h.match("image")&&(d=h.replace(new RegExp("^image:\\/\\/"),""),h="image",n+=Math.round((r-s)/2)-1,r=s+=2),h=o.prototype.iconLibrary[h]){var c=t.x,m=t.y;e.moveTo(c,m+l),e.lineTo(c+5,m+l),e.moveTo(c+t.width-5,m+l),e.lineTo(c+t.width,m+l);var p=this;h(e,{x:n+4,y:a+4,width:r-8,height:s-8,n:l,image:d},function(){p.modSelf(),i()})}else e.moveTo(n,a+l),e.lineTo(n+r,a+l)}var n=e("./base"),a=e("zrender/shape/Polyline"),o=e("../util/shape/Icon"),r=e("../util/shape/HalfSmoothPolygon");e("../component/axis"),e("../component/grid"),e("../component/dataZoom");var s=e("../config");s.line={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,dataFilter:"nearest",itemStyle:{normal:{label:{show:!1},lineStyle:{width:2,type:"solid",shadowColor:"rgba(0,0,0,0)",shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0}},emphasis:{label:{show:!1}}},symbolSize:2,showAllSymbol:!1};var l=e("../util/ecData"),h=e("zrender/tool/util"),d=e("zrender/tool/color");return t.prototype={type:s.CHART_TYPE_LINE,_buildShape:function(){this.finalPLMap={},this._buildPosition()},_buildHorizontal:function(e,t,i,n){for(var a,o,r,s,l,h,d,c,m,p=this.series,u=i[0][0],V=p[u],U=this.component.xAxis.getAxis(V.xAxisIndex||0),g={},f=0,y=t;y>f&&null!=U.getNameByIndex(f);f++){o=U.getCoordByIndex(f);for(var b=0,_=i.length;_>b;b++){a=this.component.yAxis.getAxis(p[i[b][0]].yAxisIndex||0),l=s=d=h=a.getCoord(0);for(var x=0,k=i[b].length;k>x;x++)u=i[b][x],V=p[u],c=V.data[f],m=this.getDataFromOption(c,"-"),g[u]=g[u]||[],n[u]=n[u]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},"-"!==m?(m>=0?(s-=x>0?a.getCoordSize(m):l-a.getCoord(m),r=s):0>m&&(h+=x>0?a.getCoordSize(m):a.getCoord(m)-d,r=h),g[u].push([o,r,f,U.getNameByIndex(f),o,l]),n[u].min>m&&(n[u].min=m,n[u].minY=r,n[u].minX=o),n[u].max0&&(this.finalPLMap[u]=this.finalPLMap[u]||[],this.finalPLMap[u].push(g[u]),g[u]=[])}s=this.component.grid.getY();for(var v,b=0,_=i.length;_>b;b++)for(var x=0,k=i[b].length;k>x;x++)u=i[b][x],V=p[u],c=V.data[f],m=this.getDataFromOption(c,"-"),"-"==m&&this.deepQuery([c,V,this.option],"calculable")&&(v=this.deepQuery([c,V],"symbolSize"),s+=2*v+5,r=s,this.shapeList.push(this._getCalculableItem(u,f,U.getNameByIndex(f),o,r,"horizontal")))}for(var L in g)g[L].length>0&&(this.finalPLMap[L]=this.finalPLMap[L]||[],this.finalPLMap[L].push(g[L]),g[L]=[]);this._calculMarkMapXY(n,i,"y"),this._buildBorkenLine(e,this.finalPLMap,U,"horizontal")},_buildVertical:function(e,t,i,n){for(var a,o,r,s,l,h,d,c,m,p=this.series,u=i[0][0],V=p[u],U=this.component.yAxis.getAxis(V.yAxisIndex||0),g={},f=0,y=t;y>f&&null!=U.getNameByIndex(f);f++){r=U.getCoordByIndex(f);for(var b=0,_=i.length;_>b;b++){a=this.component.xAxis.getAxis(p[i[b][0]].xAxisIndex||0),l=s=d=h=a.getCoord(0);for(var x=0,k=i[b].length;k>x;x++)u=i[b][x],V=p[u],c=V.data[f],m=this.getDataFromOption(c,"-"),g[u]=g[u]||[],n[u]=n[u]||{min:Number.POSITIVE_INFINITY,max:Number.NEGATIVE_INFINITY,sum:0,counter:0,average:0},"-"!==m?(m>=0?(s+=x>0?a.getCoordSize(m):a.getCoord(m)-l,o=s):0>m&&(h-=x>0?a.getCoordSize(m):d-a.getCoord(m),o=h),g[u].push([o,r,f,U.getNameByIndex(f),l,r]),n[u].min>m&&(n[u].min=m,n[u].minX=o,n[u].minY=r),n[u].max0&&(this.finalPLMap[u]=this.finalPLMap[u]||[],this.finalPLMap[u].push(g[u]),g[u]=[])}s=this.component.grid.getXend();for(var v,b=0,_=i.length;_>b;b++)for(var x=0,k=i[b].length;k>x;x++)u=i[b][x],V=p[u],c=V.data[f],m=this.getDataFromOption(c,"-"),"-"==m&&this.deepQuery([c,V,this.option],"calculable")&&(v=this.deepQuery([c,V],"symbolSize"),s-=2*v+5,o=s,this.shapeList.push(this._getCalculableItem(u,f,U.getNameByIndex(f),o,r,"vertical")))}for(var L in g)g[L].length>0&&(this.finalPLMap[L]=this.finalPLMap[L]||[],this.finalPLMap[L].push(g[L]),g[L]=[]);this._calculMarkMapXY(n,i,"x"),this._buildBorkenLine(e,this.finalPLMap,U,"vertical")},_buildOther:function(e,t,i,n){for(var a,o=this.series,r={},s=0,l=i.length;l>s;s++)for(var h=0,d=i[s].length;d>h;h++){var c=i[s][h],m=o[c];a=this.component.xAxis.getAxis(m.xAxisIndex||0);var p=this.component.yAxis.getAxis(m.yAxisIndex||0),u=p.getCoord(0);r[c]=r[c]||[],n[c]=n[c]||{min0:Number.POSITIVE_INFINITY,min1:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum0:0,sum1:0,counter0:0,counter1:0,average0:0,average1:0};for(var V=0,U=m.data.length;U>V;V++){var g=m.data[V],f=this.getDataFromOption(g,"-");if(f instanceof Array){var y=a.getCoord(f[0]),b=p.getCoord(f[1]);r[c].push([y,b,V,f[0],y,u]),n[c].min0>f[0]&&(n[c].min0=f[0],n[c].minY0=b,n[c].minX0=y),n[c].max0f[1]&&(n[c].min1=f[1],n[c].minY1=b,n[c].minX1=y),n[c].max10&&(this.finalPLMap[_]=this.finalPLMap[_]||[],this.finalPLMap[_].push(r[_]),r[_]=[]);this._calculMarkMapXY(n,i,"xy"),this._buildBorkenLine(e,this.finalPLMap,a,"other")},_buildBorkenLine:function(e,t,i,n){for(var o,s="other"==n?"horizontal":n,c=this.series,m=e.length-1;m>=0;m--){var p=e[m],u=c[p],V=t[p];if(u.type===this.type&&null!=V)for(var U=this._getBbox(p,s),g=this._sIndex2ColorMap[p],f=this.query(u,"itemStyle.normal.lineStyle.width"),y=this.query(u,"itemStyle.normal.lineStyle.type"),b=this.query(u,"itemStyle.normal.lineStyle.color"),_=this.getItemStyleColor(this.query(u,"itemStyle.normal.color"),p,-1),x=null!=this.query(u,"itemStyle.normal.areaStyle"),k=this.query(u,"itemStyle.normal.areaStyle.color"),v=0,L=V.length;L>v;v++){var w=V[v],W="other"!=n&&this._isLarge(s,w);if(W)w=this._getLargePointList(s,w,u.dataFilter);else for(var X=0,I=w.length;I>X;X++)o=u.data[w[X][2]],(this.deepQuery([o,u,this.option],"calculable")||this.deepQuery([o,u],"showAllSymbol")||"categoryAxis"===i.type&&i.isMainAxis(w[X][2])&&"none"!=this.deepQuery([o,u],"symbol"))&&this.shapeList.push(this._getSymbol(p,w[X][2],w[X][3],w[X][0],w[X][1],s));var S=new a({zlevel:u.zlevel,z:u.z,style:{miterLimit:f,pointList:w,strokeColor:b||_||g,lineWidth:f,lineType:y,smooth:this._getSmooth(u.smooth),smoothConstraint:U,shadowColor:this.query(u,"itemStyle.normal.lineStyle.shadowColor"),shadowBlur:this.query(u,"itemStyle.normal.lineStyle.shadowBlur"),shadowOffsetX:this.query(u,"itemStyle.normal.lineStyle.shadowOffsetX"),shadowOffsetY:this.query(u,"itemStyle.normal.lineStyle.shadowOffsetY")},hoverable:!1,_main:!0,_seriesIndex:p,_orient:s});if(l.pack(S,c[p],p,0,v,c[p].name),this.shapeList.push(S),x){var K=new r({zlevel:u.zlevel,z:u.z,style:{miterLimit:f,pointList:h.clone(w).concat([[w[w.length-1][4],w[w.length-1][5]],[w[0][4],w[0][5]]]),brushType:"fill",smooth:this._getSmooth(u.smooth),smoothConstraint:U,color:k?k:d.alpha(g,.5)},highlightStyle:{brushType:"fill"},hoverable:!1,_main:!0,_seriesIndex:p,_orient:s});l.pack(K,c[p],p,0,v,c[p].name),this.shapeList.push(K)}}}},_getBbox:function(e,t){var i=this.component.grid.getBbox(),n=this.xMarkMap[e];return null!=n.minX0?[[Math.min(n.minX0,n.maxX0,n.minX1,n.maxX1),Math.min(n.minY0,n.maxY0,n.minY1,n.maxY1)],[Math.max(n.minX0,n.maxX0,n.minX1,n.maxX1),Math.max(n.minY0,n.maxY0,n.minY1,n.maxY1)]]:("horizontal"===t?(i[0][1]=Math.min(n.minY,n.maxY),i[1][1]=Math.max(n.minY,n.maxY)):(i[0][0]=Math.min(n.minX,n.maxX),i[1][0]=Math.max(n.minX,n.maxX)),i)},_isLarge:function(e,t){return t.length<2?!1:"horizontal"===e?Math.abs(t[0][0]-t[1][0])<.5:Math.abs(t[0][1]-t[1][1])<.5},_getLargePointList:function(e,t,i){var n;n="horizontal"===e?this.component.grid.getWidth():this.component.grid.getHeight();var a=t.length,o=[];if("function"!=typeof i)switch(i){case"min":i=function(e){return Math.max.apply(null,e)};break;case"max":i=function(e){return Math.min.apply(null,e)};break;case"average":i=function(e){for(var t=0,i=0;is;s++){var l=Math.floor(a/n*s),h=Math.min(Math.floor(a/n*(s+1)),a);if(!(l>=h)){for(var d=l;h>d;d++)r[d-l]="horizontal"===e?t[d][1]:t[d][0];r.length=h-l;for(var c=i(r),m=-1,p=1/0,d=l;h>d;d++){var u="horizontal"===e?t[d][1]:t[d][0],V=Math.abs(u-c);p>V&&(m=d,p=V)}var U=t[m].slice();"horizontal"===e?U[1]=c:U[0]=c,o.push(U)}}return o},_getSmooth:function(e){return e?.3:0},_getCalculableItem:function(e,t,i,n,a,o){var r=this.series,l=r[e].calculableHolderColor||this.ecTheme.calculableHolderColor||s.calculableHolderColor,h=this._getSymbol(e,t,i,n,a,o);return h.style.color=l,h.style.strokeColor=l,h.rotation=[0,0],h.hoverable=!1,h.draggable=!1,h.style.text=void 0,h},_getSymbol:function(e,t,i,n,a,o){var r=this.series,s=r[e],l=s.data[t],h=this.getSymbolShape(s,e,l,t,i,n,a,this._sIndex2ShapeMap[e],this._sIndex2ColorMap[e],"#fff","vertical"===o?"horizontal":"vertical");return h.zlevel=s.zlevel,h.z=s.z+1,this.deepQuery([l,s,this.option],"calculable")&&(this.setCalculable(h),h.draggable=!0),h},getMarkCoord:function(e,t){var i=this.series[e],n=this.xMarkMap[e],a=this.component.xAxis.getAxis(i.xAxisIndex),o=this.component.yAxis.getAxis(i.yAxisIndex);if(t.type&&("max"===t.type||"min"===t.type||"average"===t.type)){var r=null!=t.valueIndex?t.valueIndex:null!=n.maxX0?"1":"";return[n[t.type+"X"+r],n[t.type+"Y"+r],n[t.type+"Line"+r],n[t.type+r]]}return["string"!=typeof t.xAxis&&a.getCoordByIndex?a.getCoordByIndex(t.xAxis||0):a.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&o.getCoordByIndex?o.getCoordByIndex(t.yAxis||0):o.getCoord(t.yAxis||0)]},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},ontooltipHover:function(e,t){for(var i,n,a=e.seriesIndex,o=e.dataIndex,r=a.length;r--;)if(i=this.finalPLMap[a[r]])for(var s=0,l=i.length;l>s;s++){n=i[s];for(var h=0,d=n.length;d>h;h++)o===n[h][2]&&t.push(this._getSymbol(a[r],n[h][2],n[h][3],n[h][0],n[h][1],"horizontal"))}},addDataAnimation:function(e,t){function i(){V--,0===V&&t&&t()}function n(e){e.style.controlPointList=null}for(var a=this.series,o={},r=0,s=e.length;s>r;r++)o[e[r][0]]=e[r];for(var l,h,d,c,m,p,u,V=0,r=this.shapeList.length-1;r>=0;r--)if(m=this.shapeList[r]._seriesIndex,o[m]&&!o[m][3]){if(this.shapeList[r]._main&&this.shapeList[r].style.pointList.length>1){if(p=this.shapeList[r].style.pointList,h=Math.abs(p[0][0]-p[1][0]),c=Math.abs(p[0][1]-p[1][1]),u="horizontal"===this.shapeList[r]._orient,o[m][2]){if("half-smooth-polygon"===this.shapeList[r].type){var U=p.length;this.shapeList[r].style.pointList[U-3]=p[U-2],this.shapeList[r].style.pointList[U-3][u?0:1]=p[U-4][u?0:1],this.shapeList[r].style.pointList[U-2]=p[U-1]}this.shapeList[r].style.pointList.pop(),u?(l=h,d=0):(l=0,d=-c)}else{if(this.shapeList[r].style.pointList.shift(),"half-smooth-polygon"===this.shapeList[r].type){var g=this.shapeList[r].style.pointList.pop();u?g[0]=p[0][0]:g[1]=p[0][1],this.shapeList[r].style.pointList.push(g)}u?(l=-h,d=0):(l=0,d=c)}this.shapeList[r].style.controlPointList=null,this.zr.modShape(this.shapeList[r])}else{if(o[m][2]&&this.shapeList[r]._dataIndex===a[m].data.length-1){this.zr.delShape(this.shapeList[r].id);continue}if(!o[m][2]&&0===this.shapeList[r]._dataIndex){this.zr.delShape(this.shapeList[r].id);continue}}this.shapeList[r].position=[0,0],V++,this.zr.animate(this.shapeList[r].id,"").when(this.query(this.option,"animationDurationUpdate"),{position:[l,d]}).during(n).done(i).start()}V||t&&t()}},o.prototype.iconLibrary.legendLineIcon=i,h.inherits(t,n),e("../chart").define("line",t),t}),define("echarts/util/shape/HalfSmoothPolygon",["require","zrender/shape/Base","zrender/shape/util/smoothBezier","zrender/tool/util","zrender/shape/Polygon"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/util/smoothBezier"),a=e("zrender/tool/util");return t.prototype={type:"half-smooth-polygon",buildPath:function(t,i){var a=i.pointList;if(!(a.length<2))if(i.smooth){var o=n(a.slice(0,-2),i.smooth,!1,i.smoothConstraint);t.moveTo(a[0][0],a[0][1]);for(var r,s,l,h=a.length,d=0;h-3>d;d++)r=o[2*d],s=o[2*d+1],l=a[d+1],t.bezierCurveTo(r[0],r[1],s[0],s[1],l[0],l[1]);t.lineTo(a[h-2][0],a[h-2][1]),t.lineTo(a[h-1][0],a[h-1][1]),t.lineTo(a[0][0],a[0][1])}else e("zrender/shape/Polygon").prototype.buildPath(t,i)}},a.inherits(t,i),t}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/map.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/map.js deleted file mode 100644 index 6f94880..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/map.js +++ /dev/null @@ -1,13 +0,0 @@ -define("echarts/chart/map",["require","./base","zrender/shape/Text","zrender/shape/Path","zrender/shape/Circle","zrender/shape/Rectangle","zrender/shape/Line","zrender/shape/Polygon","zrender/shape/Ellipse","zrender/shape/Image","../component/dataRange","../component/roamController","../layer/heatmap","../config","../util/ecData","zrender/tool/util","zrender/config","zrender/tool/event","../util/mapData/params","../util/mapData/textFixed","../util/mapData/geoCoord","../util/projection/svg","../util/projection/normal","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var r=this;r._onmousewheel=function(e){return r.__onmousewheel(e)},r._onmousedown=function(e){return r.__onmousedown(e)},r._onmousemove=function(e){return r.__onmousemove(e)},r._onmouseup=function(e){return r.__onmouseup(e)},r._onroamcontroller=function(e){return r.__onroamcontroller(e)},r._ondrhoverlink=function(e){return r.__ondrhoverlink(e)},this._isAlive=!0,this._selectedMode={},this._activeMapType={},this._clickable={},this._hoverable={},this._showLegendSymbol={},this._selected={},this._mapTypeMap={},this._mapDataMap={},this._nameMap={},this._specialArea={},this._refreshDelayTicket,this._mapDataRequireCounter,this._markAnimation=!1,this._hoverLinkMap={},this._roamMap={},this._scaleLimitMap={},this._mx,this._my,this._mousedown,this._justMove,this._curMapType,this.refresh(a),this.zr.on(c.EVENT.MOUSEWHEEL,this._onmousewheel),this.zr.on(c.EVENT.MOUSEDOWN,this._onmousedown),t.bind(U.EVENT.ROAMCONTROLLER,this._onroamcontroller),t.bind(U.EVENT.DATA_RANGE_HOVERLINK,this._ondrhoverlink)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Path"),o=e("zrender/shape/Circle"),r=e("zrender/shape/Rectangle"),s=e("zrender/shape/Line"),l=e("zrender/shape/Polygon"),h=e("zrender/shape/Ellipse"),m=e("zrender/shape/Image");e("../component/dataRange"),e("../component/roamController");var V=e("../layer/heatmap"),U=e("../config");U.map={zlevel:0,z:2,mapType:"china",showLegendSymbol:!0,dataRangeHoverLink:!0,hoverable:!0,clickable:!0,itemStyle:{normal:{borderColor:"rgba(0,0,0,0)",borderWidth:1,areaStyle:{color:"#ccc"},label:{show:!1,textStyle:{color:"rgb(139,69,19)"}}},emphasis:{borderColor:"rgba(0,0,0,0)",borderWidth:1,areaStyle:{color:"rgba(255,215,0,0.8)"},label:{show:!1,textStyle:{color:"rgb(100,0,0)"}}}}};var d=e("../util/ecData"),p=e("zrender/tool/util"),c=e("zrender/config"),u=e("zrender/tool/event"),y=e("../util/mapData/params").params,g=e("../util/mapData/textFixed"),b=e("../util/mapData/geoCoord");return t.prototype={type:U.CHART_TYPE_MAP,_buildShape:function(){var e=this.series;this.selectedMap={},this._activeMapType={};for(var t,i,n,a,o=this.component.legend,r={},s={},l={},h={},m=0,V=e.length;V>m;m++)if(e[m].type==U.CHART_TYPE_MAP&&(e[m]=this.reformOption(e[m]),i=e[m].mapType,s[i]=s[i]||{},s[i][m]=!0,l[i]=l[i]||e[m].mapValuePrecision,this._scaleLimitMap[i]=this._scaleLimitMap[i]||{},e[m].scaleLimit&&p.merge(this._scaleLimitMap[i],e[m].scaleLimit,!0),this._roamMap[i]=e[m].roam||this._roamMap[i],(null==this._hoverLinkMap[i]||this._hoverLinkMap[i])&&(this._hoverLinkMap[i]=e[m].dataRangeHoverLink),this._nameMap[i]=this._nameMap[i]||{},e[m].nameMap&&p.merge(this._nameMap[i],e[m].nameMap,!0),this._activeMapType[i]=!0,e[m].textFixed&&p.merge(g,e[m].textFixed,!0),e[m].geoCoord&&p.merge(b,e[m].geoCoord,!0),this._selectedMode[i]=this._selectedMode[i]||e[m].selectedMode,(null==this._hoverable[i]||this._hoverable[i])&&(this._hoverable[i]=e[m].hoverable),(null==this._clickable[i]||this._clickable[i])&&(this._clickable[i]=e[m].clickable),(null==this._showLegendSymbol[i]||this._showLegendSymbol[i])&&(this._showLegendSymbol[i]=e[m].showLegendSymbol),h[i]=h[i]||e[m].mapValueCalculation,t=e[m].name,this.selectedMap[t]=o?o.isSelected(t):!0,this.selectedMap[t])){r[i]=r[i]||{},n=e[m].data;for(var d=0,c=n.length;c>d;d++){a=this._nameChange(i,n[d].name),r[i][a]=r[i][a]||{seriesIndex:[],valueMap:{},precision:0};for(var u in n[d])"value"!=u?r[i][a][u]=n[d][u]:isNaN(n[d].value)||(null==r[i][a].value&&(r[i][a].value=0),r[i][a].precision=Math.max(this.getPrecision(+n[d].value),r[i][a].precision),r[i][a].value+=+n[d].value,r[i][a].valueMap[m]=+n[d].value);r[i][a].seriesIndex.push(m)}}this._mapDataRequireCounter=0;for(var f in r)this._mapDataRequireCounter++;this._clearSelected(),0===this._mapDataRequireCounter&&(this.clear(),this.zr&&this.zr.delShape(this.lastShapeList),this.lastShapeList=[]);for(var f in r){for(var c in r[f]){"average"==h[f]&&(r[f][c].value/=r[f][c].seriesIndex.length);var k=r[f][c].value;null!=k&&(r[f][c].value=k.toFixed(null==l[f]?r[f][c].precision:l[f])-0)}this._mapDataMap[f]=this._mapDataMap[f]||{},this._mapDataMap[f].mapData?this._mapDataCallback(f,r[f],s[f])(this._mapDataMap[f].mapData):y[f.replace(/\|.*/,"")].getGeoJson&&(this._specialArea[f]=y[f.replace(/\|.*/,"")].specialArea||this._specialArea[f],y[f.replace(/\|.*/,"")].getGeoJson(this._mapDataCallback(f,r[f],s[f])))}},_mapDataCallback:function(t,i,n){var a=this;return function(o){a._isAlive&&null!=a._activeMapType[t]&&(-1!=t.indexOf("|")&&(o=a._getSubMapData(t,o)),a._mapDataMap[t].mapData=o,o.firstChild?(a._mapDataMap[t].rate=1,a._mapDataMap[t].projection=e("../util/projection/svg")):(a._mapDataMap[t].rate=.75,a._mapDataMap[t].projection=e("../util/projection/normal")),a._buildMap(t,a._getProjectionData(t,o,n),i,n),a._buildMark(t,n),--a._mapDataRequireCounter<=0&&(a.addShapeList(),a.zr.refreshNextFrame()),a._buildHeatmap(t))}},_clearSelected:function(){for(var e in this._selected)this._activeMapType[this._mapTypeMap[e]]||(delete this._selected[e],delete this._mapTypeMap[e])},_getSubMapData:function(e,t){for(var i=e.replace(/^.*\|/,""),n=t.features,a=0,o=n.length;o>a;a++)if(n[a].properties&&n[a].properties.name==i){n=n[a],"United States of America"==i&&n.geometry.coordinates.length>1&&(n={geometry:{coordinates:n.geometry.coordinates.slice(5,6),type:n.geometry.type},id:n.id,properties:n.properties,type:n.type});break}return{type:"FeatureCollection",features:[n]}},_getProjectionData:function(e,t,i){var n,a=this._mapDataMap[e].projection,o=[],r=this._mapDataMap[e].bbox||a.getBbox(t,this._specialArea[e]);n=this._mapDataMap[e].hasRoam?this._mapDataMap[e].transform:this._getTransform(r,i,this._mapDataMap[e].rate);var s,l=this._mapDataMap[e].lastTransform||{scale:{}};n.left!=l.left||n.top!=l.top||n.scale.x!=l.scale.x||n.scale.y!=l.scale.y?(s=a.geoJson2Path(t,n,this._specialArea[e]),l=p.clone(n)):(n=this._mapDataMap[e].transform,s=this._mapDataMap[e].pathArray),this._mapDataMap[e].bbox=r,this._mapDataMap[e].transform=n,this._mapDataMap[e].lastTransform=l,this._mapDataMap[e].pathArray=s;for(var h=[n.left,n.top],m=0,V=s.length;V>m;m++)o.push(this._getSingleProvince(e,s[m],h));if(this._specialArea[e])for(var U in this._specialArea[e])o.push(this._getSpecialProjectionData(e,t,U,this._specialArea[e][U],h));if("china"==e){var d=this.geo2pos(e,b["南海诸岛"]||y["南海诸岛"].textCoord),c=n.scale.x/10.5,u=[32*c+d[0],83*c+d[1]];g["南海诸岛"]&&(u[0]+=g["南海诸岛"][0],u[1]+=g["南海诸岛"][1]),o.push({name:this._nameChange(e,"南海诸岛"),path:y["南海诸岛"].getPath(d,c),position:h,textX:u[0],textY:u[1]})}return o},_getSpecialProjectionData:function(t,i,n,a,o){i=this._getSubMapData("x|"+n,i);var r=e("../util/projection/normal"),s=r.getBbox(i),l=this.geo2pos(t,[a.left,a.top]),h=this.geo2pos(t,[a.left+a.width,a.top+a.height]),m=Math.abs(h[0]-l[0]),V=Math.abs(h[1]-l[1]),U=s.width,d=s.height,p=m/.75/U,c=V/d;p>c?(p=.75*c,m=U*p):(c=p,p=.75*c,V=d*c);var u={OffsetLeft:l[0],OffsetTop:l[1],scale:{x:p,y:c}},y=r.geoJson2Path(i,u);return this._getSingleProvince(t,y[0],o)},_getSingleProvince:function(e,t,i){var n,a=t.properties.name,o=g[a]||[0,0];if(b[a])n=this.geo2pos(e,b[a]);else if(t.cp)n=[t.cp[0]+o[0],t.cp[1]+o[1]];else{var r=this._mapDataMap[e].bbox;n=this.geo2pos(e,[r.left+r.width/2,r.top+r.height/2]),n[0]+=o[0],n[1]+=o[1]}return t.name=this._nameChange(e,a),t.position=i,t.textX=n[0],t.textY=n[1],t},_getTransform:function(e,t,i){var n,a,o,r,s,l,h,m=this.series,V=this.zr.getWidth(),U=this.zr.getHeight(),d=Math.round(.02*Math.min(V,U));for(var p in t)n=m[p].mapLocation||{},o=n.x||o,s=n.y||s,l=n.width||l,h=n.height||h;a=this.parsePercent(o,V),a=isNaN(a)?d:a,r=this.parsePercent(s,U),r=isNaN(r)?d:r,l=null==l?V-a-2*d:this.parsePercent(l,V),h=null==h?U-r-2*d:this.parsePercent(h,U);var c=e.width,u=e.height,y=l/i/c,g=h/u;if(y>g?(y=g*i,l=c*y):(g=y,y=g*i,h=u*g),isNaN(o))switch(o=o||"center",o+""){case"center":a=Math.floor((V-l)/2);break;case"right":a=V-l}if(isNaN(s))switch(s=s||"center",s+""){case"center":r=Math.floor((U-h)/2);break;case"bottom":r=U-h}return{left:a,top:r,width:l,height:h,baseScale:1,scale:{x:y,y:g}}},_buildMap:function(e,t,i,m){for(var V,c,u,y,g,b,f,k,_,x,L,W=this.series,X=this.component.legend,v=this.component.dataRange,K=0,w=t.length;w>K;K++){if(k=p.clone(t[K]),_={name:k.name,path:k.path,position:p.clone(k.position)},c=k.name,u=i[c]){g=[u],V="";for(var I=0,J=u.seriesIndex.length;J>I;I++){var C=W[u.seriesIndex[I]];g.push(C),V+=C.name+" ",X&&this._showLegendSymbol[e]&&X.hasColor(C.name)&&this.shapeList.push(new o({zlevel:C.zlevel,z:C.z+1,position:p.clone(k.position),_mapType:e,style:{x:k.textX+3+7*I,y:k.textY-10,r:3,color:X.getColor(C.name)},hoverable:!1}))}y=u.value}else{u={name:c,value:"-"},V="",g=[];for(var S in m)g.push(W[S]);y="-"}switch(this.ecTheme.map&&g.push(this.ecTheme.map),g.push(U.map),b=v&&!isNaN(y)?v.getColor(y):null,k.color=k.color||b||this.getItemStyleColor(this.deepQuery(g,"itemStyle.normal.color"),u.seriesIndex,-1,u)||this.deepQuery(g,"itemStyle.normal.areaStyle.color"),k.strokeColor=k.strokeColor||this.deepQuery(g,"itemStyle.normal.borderColor"),k.lineWidth=k.lineWidth||this.deepQuery(g,"itemStyle.normal.borderWidth"),_.color=this.getItemStyleColor(this.deepQuery(g,"itemStyle.emphasis.color"),u.seriesIndex,-1,u)||this.deepQuery(g,"itemStyle.emphasis.areaStyle.color")||k.color,_.strokeColor=this.deepQuery(g,"itemStyle.emphasis.borderColor")||k.strokeColor,_.lineWidth=this.deepQuery(g,"itemStyle.emphasis.borderWidth")||k.lineWidth,k.brushType=_.brushType=k.brushType||"both",k.lineJoin=_.lineJoin="round",k._name=_._name=c,f=this.deepQuery(g,"itemStyle.normal.label.textStyle"),L={zlevel:this.getZlevelBase(),z:this.getZBase()+1,position:p.clone(k.position),_mapType:e,_geo:this.pos2geo(e,[k.textX,k.textY]),style:{brushType:"fill",x:k.textX,y:k.textY,text:this.getLabelText(c,y,g,"normal"),_name:c,textAlign:"center",color:this.deepQuery(g,"itemStyle.normal.label.show")?this.deepQuery(g,"itemStyle.normal.label.textStyle.color"):"rgba(0,0,0,0)",textFont:this.getFont(f)}},L._style=p.clone(L.style),L.highlightStyle=p.clone(L.style),this.deepQuery(g,"itemStyle.emphasis.label.show")?(L.highlightStyle.text=this.getLabelText(c,y,g,"emphasis"),L.highlightStyle.color=this.deepQuery(g,"itemStyle.emphasis.label.textStyle.color")||L.style.color,f=this.deepQuery(g,"itemStyle.emphasis.label.textStyle")||f,L.highlightStyle.textFont=this.getFont(f)):L.highlightStyle.color="rgba(0,0,0,0)",x={zlevel:this.getZlevelBase(),z:this.getZBase(),position:p.clone(k.position),style:k,highlightStyle:_,_style:p.clone(k),_mapType:e},null!=k.scale&&(x.scale=p.clone(k.scale)),L=new n(L),x.style.shapeType){case"rectangle":x=new r(x);break;case"line":x=new s(x);break;case"circle":x=new o(x);break;case"polygon":x=new l(x);break;case"ellipse":x=new h(x);break;default:x=new a(x),x.buildPathArray&&(x.style.pathArray=x.buildPathArray(x.style.path))}(this._selectedMode[e]&&this._selected[c]&&u.selected!==!1||u.selected===!0)&&(L.style=L.highlightStyle,x.style=x.highlightStyle),L.clickable=x.clickable=this._clickable[e]&&(null==u.clickable||u.clickable),this._selectedMode[e]&&(this._selected[c]=null!=this._selected[c]?this._selected[c]:u.selected,this._mapTypeMap[c]=e,(null==u.selectable||u.selectable)&&(x.clickable=L.clickable=!0,x.onclick=L.onclick=this.shapeHandler.onclick)),this._hoverable[e]&&(null==u.hoverable||u.hoverable)?(L.hoverable=x.hoverable=!0,x.hoverConnect=L.id,L.hoverConnect=x.id):L.hoverable=x.hoverable=!1,d.pack(L,{name:V,tooltip:this.deepQuery(g,"tooltip")},0,u,0,c),this.shapeList.push(L),d.pack(x,{name:V,tooltip:this.deepQuery(g,"tooltip")},0,u,0,c),this.shapeList.push(x)}},_buildMark:function(e,t){this._seriesIndexToMapType=this._seriesIndexToMapType||{},this.markAttachStyle=this.markAttachStyle||{};var i=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top];"none"==e&&(i=[0,0]);for(var n in t)this._seriesIndexToMapType[n]=e,this.markAttachStyle[n]={position:i,_mapType:e},this.buildMark(n)},_buildHeatmap:function(e){for(var t=this.series,i=0,n=t.length;n>i;i++)if(t[i].heatmap){var a=t[i].heatmap.data;if(t[i].heatmap.needsTransform===!1){for(var o=[],r=0,s=a.length;s>r;++r)o.push([a[r][3],a[r][4],a[r][2]]);var l=[0,0]}else{var h=t[i].heatmap._geoData;if(void 0===h){t[i].heatmap._geoData=[];for(var r=0,s=a.length;s>r;++r)t[i].heatmap._geoData[r]=a[r];h=t[i].heatmap._geoData}for(var s=a.length,U=0;s>U;++U)a[U]=this.geo2pos(e,[h[U][0],h[U][1]]);var l=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top]}var d=new V(t[i].heatmap),p=d.getCanvas(a[0][3]?o:a,this.zr.getWidth(),this.zr.getHeight()),c=new m({zlevel:this.getZlevelBase(),z:this.getZBase()+1,position:l,scale:[1,1],hoverable:!1,style:{x:0,y:0,image:p,width:p.width,height:p.height}});c.type="heatmap",c._mapType=e,this.shapeList.push(c),this.zr.addShape(c)}},getMarkCoord:function(e,t){return t.geoCoord||b[t.name]?this.geo2pos(this._seriesIndexToMapType[e],t.geoCoord||b[t.name]):[0,0]},getMarkGeo:function(e){return e.geoCoord||b[e.name]},_nameChange:function(e,t){return this._nameMap[e][t]||t},getLabelText:function(e,t,i,n){var a=this.deepQuery(i,"itemStyle."+n+".label.formatter");return a?"function"==typeof a?a.call(this.myChart,e,t):"string"==typeof a?(a=a.replace("{a}","{a0}").replace("{b}","{b0}"),a=a.replace("{a0}",e).replace("{b0}",t)):void 0:e},_findMapTypeByPos:function(e,t){var i,n,a,o,r;for(var s in this._mapDataMap)if(i=this._mapDataMap[s].transform,i&&this._roamMap[s]&&this._activeMapType[s]&&(n=i.left,a=i.top,o=i.width,r=i.height,e>=n&&n+o>=e&&t>=a&&a+r>=t))return s},__onmousewheel:function(e){function t(e,t){for(var i=0;in;n++){var o=this.shapeList[n];if(o.__animating)return}var r,s,l=e.event,h=u.getX(l),m=u.getY(l),V=u.getDelta(l),d=e.mapTypeControl;d||(d={},s=this._findMapTypeByPos(h,m),s&&this._roamMap[s]&&"move"!=this._roamMap[s]&&(d[s]=!0));var p=!1;for(s in d)if(d[s]){p=!0;var c=this._mapDataMap[s].transform,y=c.left,g=c.top,b=c.width,f=c.height,k=this.pos2geo(s,[h-y,m-g]);if(V>0){if(r=1.2,null!=this._scaleLimitMap[s].max&&c.baseScale>=this._scaleLimitMap[s].max)continue}else if(r=1/1.2,null!=this._scaleLimitMap[s].min&&c.baseScale<=this._scaleLimitMap[s].min)continue;c.baseScale*=r,c.scale.x*=r,c.scale.y*=r,c.width=b*r,c.height=f*r,this._mapDataMap[s].hasRoam=!0,this._mapDataMap[s].transform=c,k=this.geo2pos(s,k),c.left-=k[0]-(h-y),c.top-=k[1]-(m-g),this._mapDataMap[s].transform=c,this.clearEffectShape(!0);for(var n=0,a=this.shapeList.length;a>n;n++){var o=this.shapeList[n];if(o._mapType==s){var _=o.type,x=o.style;switch(o.position[0]=c.left,o.position[1]=c.top,_){case"path":case"symbol":case"circle":case"rectangle":case"polygon":case"line":case"ellipse":case"heatmap":o.scale[0]*=r,o.scale[1]*=r;break;case"mark-line":i(x,r);break;case"polyline":t(x,r);break;case"shape-bundle":for(var L=0;Lo;o++)this.shapeList[o]._mapType==this._curMapType&&(this.shapeList[o].position[0]=a.left,this.shapeList[o].position[1]=a.top,this.zr.modShape(this.shapeList[o].id));this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"move"},this.myChart),this.clearEffectShape(!0),this.zr.refreshNextFrame(),this._justMove=!0,u.stop(t)}},__onmouseup:function(e){var t=e.event;this._mx=u.getX(t),this._my=u.getY(t),this._mousedown=!1;var i=this;setTimeout(function(){i._justMove&&i.animationEffect(),i._justMove=!1,i.zr.un(c.EVENT.MOUSEMOVE,i._onmousemove),i.zr.un(c.EVENT.MOUSEUP,i._onmouseup)},120)},__onroamcontroller:function(e){var t=e.event;t.zrenderX=this.zr.getWidth()/2,t.zrenderY=this.zr.getHeight()/2;var i=e.mapTypeControl,n=0,a=0,o=e.step;switch(e.roamType){case"scaleUp":return t.zrenderDelta=1,void this.__onmousewheel({event:t,mapTypeControl:i});case"scaleDown":return t.zrenderDelta=-1,void this.__onmousewheel({event:t,mapTypeControl:i});case"up":n=-o;break;case"down":n=o;break;case"left":a=-o;break;case"right":a=o}var r,s;for(s in i)this._mapDataMap[s]&&this._activeMapType[s]&&(r=this._mapDataMap[s].transform,r.hasRoam=!0,r.left-=a,r.top-=n,this._mapDataMap[s].transform=r);for(var l=0,h=this.shapeList.length;h>l;l++)s=this.shapeList[l]._mapType,i[s]&&this._activeMapType[s]&&(r=this._mapDataMap[s].transform,this.shapeList[l].position[0]=r.left,this.shapeList[l].position[1]=r.top,this.zr.modShape(this.shapeList[l].id));this.messageCenter.dispatch(U.EVENT.MAP_ROAM,e.event,{type:"move"},this.myChart),this.clearEffectShape(!0),this.zr.refreshNextFrame(),clearTimeout(this.dircetionTimer);var m=this;this.dircetionTimer=setTimeout(function(){m.animationEffect()},150)},__ondrhoverlink:function(e){for(var t,i,n=0,a=this.shapeList.length;a>n;n++)t=this.shapeList[n]._mapType,this._hoverLinkMap[t]&&this._activeMapType[t]&&(i=d.get(this.shapeList[n],"value"),null!=i&&i>=e.valueMin&&i<=e.valueMax&&this.zr.addHoverShape(this.shapeList[n]))},onclick:function(e){if(this.isClick&&e.target&&!this._justMove&&"icon"!=e.target.type){this.isClick=!1;var t=e.target,i=t.style._name,n=this.shapeList.length,a=t._mapType||"";if("single"==this._selectedMode[a])for(var o in this._selected)if(this._selected[o]&&this._mapTypeMap[o]==a){for(var r=0;n>r;r++)this.shapeList[r].style._name==o&&this.shapeList[r]._mapType==a&&(this.shapeList[r].style=this.shapeList[r]._style,this.zr.modShape(this.shapeList[r].id));o!=i&&(this._selected[o]=!1)}this._selected[i]=!this._selected[i];for(var r=0;n>r;r++)this.shapeList[r].style._name==i&&this.shapeList[r]._mapType==a&&(this.shapeList[r].style=this._selected[i]?this.shapeList[r].highlightStyle:this.shapeList[r]._style,this.zr.modShape(this.shapeList[r].id));this.messageCenter.dispatch(U.EVENT.MAP_SELECTED,e.event,{selected:this._selected,target:i},this.myChart),this.zr.refreshNextFrame();var s=this;setTimeout(function(){s.zr.trigger(c.EVENT.MOUSEMOVE,e.event)},100)}},refresh:function(e){e&&(this.option=e,this.series=e.series),this._mapDataRequireCounter>0?this.clear():this.backupShapeList(),this._buildShape(),this.zr.refreshHover()},ondataRange:function(e,t){this.component.dataRange&&(this.refresh(),t.needRefresh=!0)},pos2geo:function(e,t){return this._mapDataMap[e].transform?this._mapDataMap[e].projection.pos2geo(this._mapDataMap[e].transform,t):null},getGeoByPos:function(e,t){if(!this._mapDataMap[e].transform)return null;var i=[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top];return t instanceof Array?(t[0]-=i[0],t[1]-=i[1]):(t.x-=i[0],t.y-=i[1]),this.pos2geo(e,t)},geo2pos:function(e,t){return this._mapDataMap[e].transform?this._mapDataMap[e].projection.geo2pos(this._mapDataMap[e].transform,t):null},getPosByGeo:function(e,t){if(!this._mapDataMap[e].transform)return null;var i=this.geo2pos(e,t);return i[0]+=this._mapDataMap[e].transform.left,i[1]+=this._mapDataMap[e].transform.top,i},getMapPosition:function(e){return this._mapDataMap[e].transform?[this._mapDataMap[e].transform.left,this._mapDataMap[e].transform.top]:null},onbeforDispose:function(){this._isAlive=!1,this.zr.un(c.EVENT.MOUSEWHEEL,this._onmousewheel),this.zr.un(c.EVENT.MOUSEDOWN,this._onmousedown),this.messageCenter.unbind(U.EVENT.ROAMCONTROLLER,this._onroamcontroller),this.messageCenter.unbind(U.EVENT.DATA_RANGE_HOVERLINK,this._ondrhoverlink)}},p.inherits(t,i),e("../chart").define("map",t),t}),define("zrender/shape/Path",["require","./Base","./util/PathProxy","../tool/util"],function(e){var t=e("./Base"),i=e("./util/PathProxy"),n=i.PathSegment,a=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},o=function(e,t){return(e[0]*t[0]+e[1]*t[1])/(a(e)*a(t))},r=function(e,t){return(e[0]*t[1]0&&""===d[0]&&d.shift();for(var p=0;p0&&!isNaN(d[0]);){var c,u,y,g,b,f,k,_,x=null,L=[],W=h,X=m;switch(U){case"l":h+=d.shift(),m+=d.shift(),x="L",L.push(h,m);break;case"L":h=d.shift(),m=d.shift(),L.push(h,m);break;case"m":h+=d.shift(),m+=d.shift(),x="M",L.push(h,m),U="l";break;case"M":h=d.shift(),m=d.shift(),x="M",L.push(h,m),U="L";break;case"h":h+=d.shift(),x="L",L.push(h,m);break;case"H":h=d.shift(),x="L",L.push(h,m);break;case"v":m+=d.shift(),x="L",L.push(h,m);break;case"V":m=d.shift(),x="L",L.push(h,m);break;case"C":L.push(d.shift(),d.shift(),d.shift(),d.shift()),h=d.shift(),m=d.shift(),L.push(h,m);break;case"c":L.push(h+d.shift(),m+d.shift(),h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),x="C",L.push(h,m);break;case"S":c=h,u=m,y=l[l.length-1],"C"===y.command&&(c=h+(h-y.points[2]),u=m+(m-y.points[3])),L.push(c,u,d.shift(),d.shift()),h=d.shift(),m=d.shift(),x="C",L.push(h,m);break;case"s":c=h,u=m,y=l[l.length-1],"C"===y.command&&(c=h+(h-y.points[2]),u=m+(m-y.points[3])),L.push(c,u,h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),x="C",L.push(h,m);break;case"Q":L.push(d.shift(),d.shift()),h=d.shift(),m=d.shift(),L.push(h,m);break;case"q":L.push(h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),x="Q",L.push(h,m);break;case"T":c=h,u=m,y=l[l.length-1],"Q"===y.command&&(c=h+(h-y.points[0]),u=m+(m-y.points[1])),h=d.shift(),m=d.shift(),x="Q",L.push(c,u,h,m);break;case"t":c=h,u=m,y=l[l.length-1],"Q"===y.command&&(c=h+(h-y.points[0]),u=m+(m-y.points[1])),h+=d.shift(),m+=d.shift(),x="Q",L.push(c,u,h,m);break;case"A":g=d.shift(),b=d.shift(),f=d.shift(),k=d.shift(),_=d.shift(),W=h,X=m,h=d.shift(),m=d.shift(),x="A",L=this._convertPoint(W,X,h,m,k,_,g,b,f);break;case"a":g=d.shift(),b=d.shift(),f=d.shift(),k=d.shift(),_=d.shift(),W=h,X=m,h+=d.shift(),m+=d.shift(),x="A",L=this._convertPoint(W,X,h,m,k,_,g,b,f)}for(var v=0,K=L.length;K>v;v+=2)L[v]+=t,L[v+1]+=i;l.push(new n(x||U,L))}("z"===U||"Z"===U)&&l.push(new n("z",[]))}return l},_convertPoint:function(e,t,i,n,a,s,l,h,m){var V=m*(Math.PI/180),U=Math.cos(V)*(e-i)/2+Math.sin(V)*(t-n)/2,d=-1*Math.sin(V)*(e-i)/2+Math.cos(V)*(t-n)/2,p=U*U/(l*l)+d*d/(h*h);p>1&&(l*=Math.sqrt(p),h*=Math.sqrt(p));var c=Math.sqrt((l*l*h*h-l*l*d*d-h*h*U*U)/(l*l*d*d+h*h*U*U));a===s&&(c*=-1),isNaN(c)&&(c=0);var u=c*l*d/h,y=c*-h*U/l,g=(e+i)/2+Math.cos(V)*u-Math.sin(V)*y,b=(t+n)/2+Math.sin(V)*u+Math.cos(V)*y,f=r([1,0],[(U-u)/l,(d-y)/h]),k=[(U-u)/l,(d-y)/h],_=[(-1*U-u)/l,(-1*d-y)/h],x=r(k,_);return o(k,_)<=-1&&(x=Math.PI),o(k,_)>=1&&(x=0),0===s&&x>0&&(x-=2*Math.PI),1===s&&0>x&&(x+=2*Math.PI),[g,b,l,h,f,x,V,s]},buildPath:function(e,t){var i=t.path,n=t.x||0,a=t.y||0;t.pathArray=t.pathArray||this.buildPathArray(i,n,a);for(var o=t.pathArray,r=t.pointList=[],s=[],l=0,h=o.length;h>l;l++){"M"==o[l].command.toUpperCase()&&(s.length>0&&r.push(s),s=[]);for(var m=o[l].points,V=0,U=m.length;U>V;V+=2)s.push([m[V],m[V+1]])}s.length>0&&r.push(s);for(var l=0,h=o.length;h>l;l++){var d=o[l].command,m=o[l].points;switch(d){case"L":e.lineTo(m[0],m[1]);break;case"M":e.moveTo(m[0],m[1]);break;case"C":e.bezierCurveTo(m[0],m[1],m[2],m[3],m[4],m[5]);break;case"Q":e.quadraticCurveTo(m[0],m[1],m[2],m[3]);break;case"A":var p=m[0],c=m[1],u=m[2],y=m[3],g=m[4],b=m[5],f=m[6],k=m[7],_=u>y?u:y,x=u>y?1:u/y,L=u>y?y/u:1;e.translate(p,c),e.rotate(f),e.scale(x,L),e.arc(0,0,_,g,g+b,1-k),e.scale(1/x,1/L),e.rotate(-f),e.translate(-p,-c);break;case"z":e.closePath()}}},getRect:function(e){if(e.__rect)return e.__rect;var t;t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0;for(var i=Number.MAX_VALUE,n=Number.MIN_VALUE,a=Number.MAX_VALUE,o=Number.MIN_VALUE,r=e.x||0,s=e.y||0,l=e.pathArray||this.buildPathArray(e.path),h=0;hn&&(n=m[V])):(m[V]+so&&(o=m[V]));var U;return U=i===Number.MAX_VALUE||n===Number.MIN_VALUE||a===Number.MAX_VALUE||o===Number.MIN_VALUE?{x:0,y:0,width:0,height:0}:{x:Math.round(i-t/2),y:Math.round(a-t/2),width:n-i+t,height:o-a+t},e.__rect=U,U}},e("../tool/util").inherits(s,t),s}),define("zrender/shape/Ellipse",["require","./Base","../tool/util"],function(e){var t=e("./Base"),i=function(e){t.call(this,e)};return i.prototype={type:"ellipse",buildPath:function(e,t){var i=.5522848,n=t.x,a=t.y,o=t.a,r=t.b,s=o*i,l=r*i;e.moveTo(n-o,a),e.bezierCurveTo(n-o,a-l,n-s,a-r,n,a-r),e.bezierCurveTo(n+s,a-r,n+o,a-l,n+o,a),e.bezierCurveTo(n+o,a+l,n+s,a+r,n,a+r),e.bezierCurveTo(n-s,a+r,n-o,a+l,n-o,a),e.closePath()},getRect:function(e){if(e.__rect)return e.__rect;var t;return t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0,e.__rect={x:Math.round(e.x-e.a-t/2),y:Math.round(e.y-e.b-t/2),width:2*e.a+t,height:2*e.b+t},e.__rect}},e("../tool/util").inherits(i,t),i}),define("echarts/component/dataRange",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","../util/shape/HandlePolygon","../config","zrender/tool/util","zrender/tool/event","zrender/tool/area","zrender/tool/color","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var s=this;s._ondrift=function(e,t){return s.__ondrift(this,e,t)},s._ondragend=function(){return s.__ondragend()},s._dataRangeSelected=function(e){return s.__dataRangeSelected(e)},s._dispatchHoverLink=function(e){return s.__dispatchHoverLink(e)},s._onhoverlink=function(e){return s.__onhoverlink(e)},this._selectedMap={},this._range={},this.refresh(a),t.bind(r.EVENT.HOVER,this._onhoverlink)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("../util/shape/HandlePolygon"),r=e("../config");r.dataRange={zlevel:0,z:4,show:!0,orient:"vertical",x:"left",y:"bottom",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemWidth:20,itemHeight:14,precision:0,splitNumber:5,splitList:null,calculable:!1,selectedMode:!0,hoverLink:!0,realtime:!0,color:["#006edd","#e0ffff"],textStyle:{color:"#333"}};var s=e("zrender/tool/util"),l=e("zrender/tool/event"),h=e("zrender/tool/area"),m=e("zrender/tool/color");return t.prototype={type:r.COMPONENT_TYPE_DATARANGE,_textGap:10,_buildShape:function(){if(this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._isContinuity()?this._buildGradient():this._buildItem(),this.dataRangeOption.show)for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e]);this._syncShapeFromRange()},_buildItem:function(){var e,t,i,o,r=this._valueTextList,s=r.length,l=this.getFont(this.dataRangeOption.textStyle),m=this._itemGroupLocation.x,V=this._itemGroupLocation.y,U=this.dataRangeOption.itemWidth,d=this.dataRangeOption.itemHeight,p=this.dataRangeOption.itemGap,c=h.getTextHeight("国",l);"vertical"==this.dataRangeOption.orient&&"right"==this.dataRangeOption.x&&(m=this._itemGroupLocation.x+this._itemGroupLocation.width-U);var u=!0;this.dataRangeOption.text&&(u=!1,this.dataRangeOption.text[0]&&(i=this._getTextShape(m,V,this.dataRangeOption.text[0]),"horizontal"==this.dataRangeOption.orient?m+=h.getTextWidth(this.dataRangeOption.text[0],l)+this._textGap:(V+=c+this._textGap,i.style.y+=c/2+this._textGap,i.style.textBaseline="bottom"),this.shapeList.push(new n(i))));for(var y=0;s>y;y++)e=r[y],o=this.getColorByIndex(y),t=this._getItemShape(m,V,U,d,this._selectedMap[y]?o:"#ccc"),t._idx=y,t.onmousemove=this._dispatchHoverLink,this.dataRangeOption.selectedMode&&(t.clickable=!0,t.onclick=this._dataRangeSelected),this.shapeList.push(new a(t)),u&&(i={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:m+U+5,y:V,color:this._selectedMap[y]?this.dataRangeOption.textStyle.color:"#ccc",text:r[y],textFont:l,textBaseline:"top"},highlightStyle:{brushType:"fill"}},"vertical"==this.dataRangeOption.orient&&"right"==this.dataRangeOption.x&&(i.style.x-=U+10,i.style.textAlign="right"),i._idx=y,i.onmousemove=this._dispatchHoverLink,this.dataRangeOption.selectedMode&&(i.clickable=!0,i.onclick=this._dataRangeSelected),this.shapeList.push(new n(i))),"horizontal"==this.dataRangeOption.orient?m+=U+(u?5:0)+(u?h.getTextWidth(e,l):0)+p:V+=d+p;!u&&this.dataRangeOption.text[1]&&("horizontal"==this.dataRangeOption.orient?m=m-p+this._textGap:V=V-p+this._textGap,i=this._getTextShape(m,V,this.dataRangeOption.text[1]),"horizontal"!=this.dataRangeOption.orient&&(i.style.y-=5,i.style.textBaseline="top"),this.shapeList.push(new n(i)))},_buildGradient:function(){var t,i,o=this.getFont(this.dataRangeOption.textStyle),r=this._itemGroupLocation.x,s=this._itemGroupLocation.y,l=this.dataRangeOption.itemWidth,m=this.dataRangeOption.itemHeight,V=h.getTextHeight("国",o),U=10,d=!0;this.dataRangeOption.text&&(d=!1,this.dataRangeOption.text[0]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[0]),"horizontal"==this.dataRangeOption.orient?r+=h.getTextWidth(this.dataRangeOption.text[0],o)+this._textGap:(s+=V+this._textGap,i.style.y+=V/2+this._textGap,i.style.textBaseline="bottom"),this.shapeList.push(new n(i))));for(var p=e("zrender/tool/color"),c=1/(this.dataRangeOption.color.length-1),u=[],y=0,g=this.dataRangeOption.color.length;g>y;y++)u.push([y*c,this.dataRangeOption.color[y]]);"horizontal"==this.dataRangeOption.orient?(t={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:r,y:s,width:l*U,height:m,color:p.getLinearGradient(r,s,r+l*U,s,u)},hoverable:!1},r+=l*U+this._textGap):(t={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:r,y:s,width:l,height:m*U,color:p.getLinearGradient(r,s,r,s+m*U,u)},hoverable:!1},s+=m*U+this._textGap),this.shapeList.push(new a(t)),this._calculableLocation=t.style,this.dataRangeOption.calculable&&(this._buildFiller(),this._bulidMask(),this._bulidHandle()),this._buildIndicator(),!d&&this.dataRangeOption.text[1]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[1]),this.shapeList.push(new n(i))); - -},_buildIndicator:function(){var e,t,i=this._calculableLocation.x,n=this._calculableLocation.y,a=this._calculableLocation.width,r=this._calculableLocation.height,s=5;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[i,n+r],[i-s,n+r+s],[i+s,n+r+s]],t="bottom"):(e=[[i,n],[i-s,n-s],[i+s,n-s]],t="top"):"right"!=this.dataRangeOption.x?(e=[[i+a,n],[i+a+s,n-s],[i+a+s,n+s]],t="right"):(e=[[i,n],[i-s,n-s],[i-s,n+s]],t="left"),this._indicatorShape={style:{pointList:e,color:"#fff",__rect:{x:Math.min(e[0][0],e[1][0]),y:Math.min(e[0][1],e[1][1]),width:s*("horizontal"==this.dataRangeOption.orient?2:1),height:s*("horizontal"==this.dataRangeOption.orient?1:2)}},highlightStyle:{brushType:"fill",textPosition:t,textColor:this.dataRangeOption.textStyle.color},hoverable:!1},this._indicatorShape=new o(this._indicatorShape)},_buildFiller:function(){this._fillerShape={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:this._calculableLocation.x,y:this._calculableLocation.y,width:this._calculableLocation.width,height:this._calculableLocation.height,color:"rgba(255,255,255,0)"},highlightStyle:{strokeColor:"rgba(255,255,255,0.5)",lineWidth:1},draggable:!0,ondrift:this._ondrift,ondragend:this._ondragend,onmousemove:this._dispatchHoverLink,_type:"filler"},this._fillerShape=new a(this._fillerShape),this.shapeList.push(this._fillerShape)},_bulidHandle:function(){var e,t,i,n,a,r,s,l,m=this._calculableLocation.x,V=this._calculableLocation.y,U=this._calculableLocation.width,d=this._calculableLocation.height,p=this.getFont(this.dataRangeOption.textStyle),c=h.getTextHeight("国",p),u=Math.max(h.getTextWidth(this._textFormat(this.dataRangeOption.max),p),h.getTextWidth(this._textFormat(this.dataRangeOption.min),p))+2;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[m,V],[m,V+d+c],[m-c,V+d+c],[m-1,V+d],[m-1,V]],t=m-u/2-c,i=V+d+c/2+2,n={x:m-u-c,y:V+d,width:u+c,height:c},a=[[m+U,V],[m+U,V+d+c],[m+U+c,V+d+c],[m+U+1,V+d],[m+U+1,V]],r=m+U+u/2+c,s=i,l={x:m+U,y:V+d,width:u+c,height:c}):(e=[[m,V+d],[m,V-c],[m-c,V-c],[m-1,V],[m-1,V+d]],t=m-u/2-c,i=V-c/2-2,n={x:m-u-c,y:V-c,width:u+c,height:c},a=[[m+U,V+d],[m+U,V-c],[m+U+c,V-c],[m+U+1,V],[m+U+1,V+d]],r=m+U+u/2+c,s=i,l={x:m+U,y:V-c,width:u+c,height:c}):(u+=c,"right"!=this.dataRangeOption.x?(e=[[m,V],[m+U+c,V],[m+U+c,V-c],[m+U,V-1],[m,V-1]],t=m+U+u/2+c/2,i=V-c/2,n={x:m+U,y:V-c,width:u+c,height:c},a=[[m,V+d],[m+U+c,V+d],[m+U+c,V+c+d],[m+U,V+1+d],[m,V+d+1]],r=t,s=V+d+c/2,l={x:m+U,y:V+d,width:u+c,height:c}):(e=[[m+U,V],[m-c,V],[m-c,V-c],[m,V-1],[m+U,V-1]],t=m-u/2-c/2,i=V-c/2,n={x:m-u-c,y:V-c,width:u+c,height:c},a=[[m+U,V+d],[m-c,V+d],[m-c,V+c+d],[m,V+1+d],[m+U,V+d+1]],r=t,s=V+d+c/2,l={x:m-u-c,y:V+d,width:u+c,height:c})),this._startShape={style:{pointList:e,text:this._textFormat(this.dataRangeOption.max),textX:t,textY:i,textFont:p,color:this.getColor(this.dataRangeOption.max),rect:n,x:e[0][0],y:e[0][1],_x:e[0][0],_y:e[0][1]}},this._startShape.highlightStyle={strokeColor:this._startShape.style.color,lineWidth:1},this._endShape={style:{pointList:a,text:this._textFormat(this.dataRangeOption.min),textX:r,textY:s,textFont:p,color:this.getColor(this.dataRangeOption.min),rect:l,x:a[0][0],y:a[0][1],_x:a[0][0],_y:a[0][1]}},this._endShape.highlightStyle={strokeColor:this._endShape.style.color,lineWidth:1},this._startShape.zlevel=this._endShape.zlevel=this.getZlevelBase(),this._startShape.z=this._endShape.z=this.getZBase()+1,this._startShape.draggable=this._endShape.draggable=!0,this._startShape.ondrift=this._endShape.ondrift=this._ondrift,this._startShape.ondragend=this._endShape.ondragend=this._ondragend,this._startShape.style.textColor=this._endShape.style.textColor=this.dataRangeOption.textStyle.color,this._startShape.style.textAlign=this._endShape.style.textAlign="center",this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape.style.textBaseline=this._endShape.style.textBaseline="middle",this._startShape.style.width=this._endShape.style.width=0,this._startShape.style.height=this._endShape.style.height=0,this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape=new o(this._startShape),this._endShape=new o(this._endShape),this.shapeList.push(this._startShape),this.shapeList.push(this._endShape)},_bulidMask:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;this._startMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:e,y:t,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._endMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:"horizontal"==this.dataRangeOption.orient?e+i:e,y:"horizontal"==this.dataRangeOption.orient?t:t+n,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._startMask=new a(this._startMask),this._endMask=new a(this._endMask),this.shapeList.push(this._startMask),this.shapeList.push(this._endMask)},_buildBackground:function(){var e=this.reformCssArray(this.dataRangeOption.padding);this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.dataRangeOption.borderWidth?"fill":"both",color:this.dataRangeOption.backgroundColor,strokeColor:this.dataRangeOption.borderColor,lineWidth:this.dataRangeOption.borderWidth}}))},_getItemGroupLocation:function(){var e=this._valueTextList,t=e.length,i=this.dataRangeOption.itemGap,n=this.dataRangeOption.itemWidth,a=this.dataRangeOption.itemHeight,o=0,r=0,s=this.getFont(this.dataRangeOption.textStyle),l=h.getTextHeight("国",s),m=10;if("horizontal"==this.dataRangeOption.orient){if(this.dataRangeOption.text||this._isContinuity())o=(this._isContinuity()?n*m+i:t*(n+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?h.getTextWidth(this.dataRangeOption.text[0],s)+this._textGap:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?h.getTextWidth(this.dataRangeOption.text[1],s)+this._textGap:0);else{n+=5;for(var V=0;t>V;V++)o+=n+h.getTextWidth(e[V],s)+i}o-=i,r=Math.max(l,a)}else{var U;if(this.dataRangeOption.text||this._isContinuity())r=(this._isContinuity()?a*m+i:t*(a+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?this._textGap+l:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?this._textGap+l:0),U=Math.max(h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[0]||"",s),h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[1]||"",s)),o=Math.max(n,U);else{r=(a+i)*t,n+=5,U=0;for(var V=0;t>V;V++)U=Math.max(U,h.getTextWidth(e[V],s));o=n+U}r-=i}var d,p=this.reformCssArray(this.dataRangeOption.padding),c=this.zr.getWidth();switch(this.dataRangeOption.x){case"center":d=Math.floor((c-o)/2);break;case"left":d=p[3]+this.dataRangeOption.borderWidth;break;case"right":d=c-o-p[1]-this.dataRangeOption.borderWidth;break;default:d=this.parsePercent(this.dataRangeOption.x,c),d=isNaN(d)?0:d}var u,y=this.zr.getHeight();switch(this.dataRangeOption.y){case"top":u=p[0]+this.dataRangeOption.borderWidth;break;case"bottom":u=y-r-p[2]-this.dataRangeOption.borderWidth;break;case"center":u=Math.floor((y-r)/2);break;default:u=this.parsePercent(this.dataRangeOption.y,y),u=isNaN(u)?0:u}if(this.dataRangeOption.calculable){var g=Math.max(h.getTextWidth(this.dataRangeOption.max,s),h.getTextWidth(this.dataRangeOption.min,s))+l;"horizontal"==this.dataRangeOption.orient?(g>d&&(d=g),d+o+g>c&&(d-=g)):(l>u&&(u=l),u+r+l>y&&(u-=l))}return{x:d,y:u,width:o,height:r}},_getTextShape:function(e,t,i){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:"horizontal"==this.dataRangeOption.orient?e:this._itemGroupLocation.x+this._itemGroupLocation.width/2,y:"horizontal"==this.dataRangeOption.orient?this._itemGroupLocation.y+this._itemGroupLocation.height/2:t,color:this.dataRangeOption.textStyle.color,text:i,textFont:this.getFont(this.dataRangeOption.textStyle),textBaseline:"horizontal"==this.dataRangeOption.orient?"middle":"top",textAlign:"horizontal"==this.dataRangeOption.orient?"left":"center"},hoverable:!1}},_getItemShape:function(e,t,i,n,a){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:e,y:t+1,width:i,height:n-2,color:a},highlightStyle:{strokeColor:a,lineWidth:1}}},__ondrift:function(e,t,i){var n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;return"horizontal"==this.dataRangeOption.orient?e.style.x+t<=n?e.style.x=n:e.style.x+t+e.style.width>=n+o?e.style.x=n+o-e.style.width:e.style.x+=t:e.style.y+i<=a?e.style.y=a:e.style.y+i+e.style.height>=a+r?e.style.y=a+r-e.style.height:e.style.y+=i,"filler"==e._type?this._syncHandleShape():this._syncFillerShape(e),this.dataRangeOption.realtime&&this._dispatchDataRange(),!0},__ondragend:function(){this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(t.dragOut=!0,t.dragIn=!0,this.dataRangeOption.realtime||this._dispatchDataRange(),t.needRefresh=!1,this.isDragend=!1)},_syncShapeFromRange:function(){var e=this.dataRangeOption.range||{},t=e.start,i=e.end;if(t>i&&(t=[i,i=t][0]),this._range.end=null!=t?t:null!=this._range.end?this._range.end:0,this._range.start=null!=i?i:null!=this._range.start?this._range.start:100,100!=this._range.start||0!==this._range.end){if("horizontal"==this.dataRangeOption.orient){var n=this._fillerShape.style.width;this._fillerShape.style.x+=n*(100-this._range.start)/100,this._fillerShape.style.width=n*(this._range.start-this._range.end)/100}else{var a=this._fillerShape.style.height;this._fillerShape.style.y+=a*(100-this._range.start)/100,this._fillerShape.style.height=a*(this._range.start-this._range.end)/100}this.zr.modShape(this._fillerShape.id),this._syncHandleShape()}},_syncHandleShape:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(this._startShape.style.x=this._fillerShape.style.x,this._startMask.style.width=this._startShape.style.x-e,this._endShape.style.x=this._fillerShape.style.x+this._fillerShape.style.width,this._endMask.style.x=this._endShape.style.x,this._endMask.style.width=e+i-this._endShape.style.x,this._range.start=Math.ceil(100-(this._startShape.style.x-e)/i*100),this._range.end=Math.floor(100-(this._endShape.style.x-e)/i*100)):(this._startShape.style.y=this._fillerShape.style.y,this._startMask.style.height=this._startShape.style.y-t,this._endShape.style.y=this._fillerShape.style.y+this._fillerShape.style.height,this._endMask.style.y=this._endShape.style.y,this._endMask.style.height=t+n-this._endShape.style.y,this._range.start=Math.ceil(100-(this._startShape.style.y-t)/n*100),this._range.end=Math.floor(100-(this._endShape.style.y-t)/n*100)),this._syncShape()},_syncFillerShape:function(e){var t,i,n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(t=this._startShape.style.x,i=this._endShape.style.x,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.x=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.x=t),this._fillerShape.style.x=t,this._fillerShape.style.width=i-t,this._startMask.style.width=t-n,this._endMask.style.x=i,this._endMask.style.width=n+o-i,this._range.start=Math.ceil(100-(t-n)/o*100),this._range.end=Math.floor(100-(i-n)/o*100)):(t=this._startShape.style.y,i=this._endShape.style.y,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.y=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.y=t),this._fillerShape.style.y=t,this._fillerShape.style.height=i-t,this._startMask.style.height=t-a,this._endMask.style.y=i,this._endMask.style.height=a+r-i,this._range.start=Math.ceil(100-(t-a)/r*100),this._range.end=Math.floor(100-(i-a)/r*100)),this._syncShape()},_syncShape:function(){this._startShape.position=[this._startShape.style.x-this._startShape.style._x,this._startShape.style.y-this._startShape.style._y],this._startShape.style.text=this._textFormat(this._gap*this._range.start+this.dataRangeOption.min),this._startShape.style.color=this._startShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.start+this.dataRangeOption.min),this._endShape.position=[this._endShape.style.x-this._endShape.style._x,this._endShape.style.y-this._endShape.style._y],this._endShape.style.text=this._textFormat(this._gap*this._range.end+this.dataRangeOption.min),this._endShape.style.color=this._endShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.end+this.dataRangeOption.min),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.modShape(this._startMask.id),this.zr.modShape(this._endMask.id),this.zr.modShape(this._fillerShape.id),this.zr.refreshNextFrame()},_dispatchDataRange:function(){this.messageCenter.dispatch(r.EVENT.DATA_RANGE,null,{range:{start:this._range.end,end:this._range.start}},this.myChart)},__dataRangeSelected:function(e){if("single"===this.dataRangeOption.selectedMode)for(var t in this._selectedMap)this._selectedMap[t]=!1;var i=e.target._idx;this._selectedMap[i]=!this._selectedMap[i];var n,a;this._useCustomizedSplit()?(n=this._splitList[i].max,a=this._splitList[i].min):(n=(this._colorList.length-i)*this._gap+this.dataRangeOption.min,a=n-this._gap),this.messageCenter.dispatch(r.EVENT.DATA_RANGE_SELECTED,e.event,{selected:this._selectedMap,target:i,valueMax:n,valueMin:a},this.myChart),this.messageCenter.dispatch(r.EVENT.REFRESH,null,null,this.myChart)},__dispatchHoverLink:function(e){var t,i;if(this.dataRangeOption.calculable){var n,a=this.dataRangeOption.max-this.dataRangeOption.min;n="horizontal"==this.dataRangeOption.orient?(1-(l.getX(e.event)-this._calculableLocation.x)/this._calculableLocation.width)*a:(1-(l.getY(e.event)-this._calculableLocation.y)/this._calculableLocation.height)*a,t=n-.05*a,i=n+.05*a}else if(this._useCustomizedSplit()){var o=e.target._idx;i=this._splitList[o].max,t=this._splitList[o].min}else{var o=e.target._idx;i=(this._colorList.length-o)*this._gap+this.dataRangeOption.min,t=i-this._gap}this.messageCenter.dispatch(r.EVENT.DATA_RANGE_HOVERLINK,e.event,{valueMin:t,valueMax:i},this.myChart)},__onhoverlink:function(e){if(this.dataRangeOption.show&&this.dataRangeOption.hoverLink&&this._indicatorShape&&e&&null!=e.seriesIndex&&null!=e.dataIndex){var t=e.value;if(""===t||isNaN(t))return;tthis.dataRangeOption.max&&(t=this.dataRangeOption.max),this._indicatorShape.position="horizontal"==this.dataRangeOption.orient?[(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.width,0]:[0,(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.height],this._indicatorShape.style.text=this._textFormat(e.value),this._indicatorShape.style.color=this.getColor(t),this.zr.addHoverShape(this._indicatorShape)}},_textFormat:function(e,t){var i=this.dataRangeOption;if(e!==-Number.MAX_VALUE&&(e=(+e).toFixed(i.precision)),null!=t&&t!==Number.MAX_VALUE&&(t=(+t).toFixed(i.precision)),i.formatter){if("string"==typeof i.formatter)return i.formatter.replace("{value}",e===-Number.MAX_VALUE?"min":e).replace("{value2}",t===Number.MAX_VALUE?"max":t);if("function"==typeof i.formatter)return i.formatter.call(this.myChart,e,t)}return null==t?e:e===-Number.MAX_VALUE?"< "+t:t===Number.MAX_VALUE?"> "+e:e+" - "+t},_isContinuity:function(){var e=this.dataRangeOption;return!(e.splitList?e.splitList.length>0:e.splitNumber>0)||e.calculable},_useCustomizedSplit:function(){var e=this.dataRangeOption;return e.splitList&&e.splitList.length>0},_buildColorList:function(e){if(this._colorList=m.getGradientColors(this.dataRangeOption.color,Math.max((e-this.dataRangeOption.color.length)/(this.dataRangeOption.color.length-1),0)+1),this._colorList.length>e){for(var t=this._colorList.length,i=[this._colorList[0]],n=t/(e-1),a=1;e-1>a;a++)i.push(this._colorList[Math.floor(a*n)]);i.push(this._colorList[t-1]),this._colorList=i}if(this._useCustomizedSplit())for(var o=this._splitList,a=0,t=o.length;t>a;a++)o[a].color&&(this._colorList[a]=o[a].color)},_buildGap:function(e){if(!this._useCustomizedSplit()){var t=this.dataRangeOption.precision;for(this._gap=(this.dataRangeOption.max-this.dataRangeOption.min)/e;this._gap.toFixed(t)-0!=this._gap&&5>t;)t++;this.dataRangeOption.precision=t,this._gap=((this.dataRangeOption.max-this.dataRangeOption.min)/e).toFixed(t)-0}},_buildDataList:function(e){for(var t=this._valueTextList=[],i=this.dataRangeOption,n=this._useCustomizedSplit(),a=0;e>a;a++){this._selectedMap[a]=!0;var o="";if(n){var r=this._splitList[e-1-a];o=null!=r.label?r.label:null!=r.single?this._textFormat(r.single):this._textFormat(r.min,r.max)}else o=this._textFormat(a*this._gap+i.min,(a+1)*this._gap+i.min);t.unshift(o)}},_buildSplitList:function(){if(this._useCustomizedSplit())for(var e=this.dataRangeOption.splitList,t=this._splitList=[],i=0,n=e.length;n>i;i++){var a=e[i];if(!a||null==a.start&&null==a.end)throw new Error("Empty item exists in splitList!");var o={label:a.label,color:a.color};o.min=a.start,o.max=a.end,o.min>o.max&&(o.min=[o.max,o.max=o.min][0]),o.min===o.max&&(o.single=o.max),null==o.min&&(o.min=-Number.MAX_VALUE),null==o.max&&(o.max=Number.MAX_VALUE),t.push(o)}},refresh:function(e){if(e){this.option=e,this.option.dataRange=this.reformOption(this.option.dataRange);var t=this.dataRangeOption=this.option.dataRange;if(!this._useCustomizedSplit()&&(null==t.min||null==t.max))throw new Error("option.dataRange.min or option.dataRange.max has not been defined.");this.myChart.canvasSupported||(t.realtime=!1);var i=this._isContinuity()?100:this._useCustomizedSplit()?t.splitList.length:t.splitNumber;this._buildSplitList(),this._buildColorList(i),this._buildGap(i),this._buildDataList(i)}this.clear(),this._buildShape()},getColor:function(e){if(isNaN(e))return null;var t;if(this._useCustomizedSplit()){for(var i=this._splitList,n=0,a=i.length;a>n;n++)if(i[n].min<=e&&i[n].max>=e){t=n;break}}else{if(this.dataRangeOption.min==this.dataRangeOption.max)return this._colorList[0];if(ethis.dataRangeOption.max&&(e=this.dataRangeOption.max),this.dataRangeOption.calculable&&(e-(this._gap*this._range.start+this.dataRangeOption.min)>5e-5||e-(this._gap*this._range.end+this.dataRangeOption.min)<-5e-5))return null;t=this._colorList.length-Math.ceil((e-this.dataRangeOption.min)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._colorList.length),t==this._colorList.length&&t--}return this._selectedMap[t]?this._colorList[t]:null},getColorByIndex:function(e){return e>=this._colorList.length?e=this._colorList.length-1:0>e&&(e=0),this._colorList[e]},onbeforDispose:function(){this.messageCenter.unbind(r.EVENT.HOVER,this._onhoverlink)}},s.inherits(t,i),e("../component").define("dataRange",t),t}),define("echarts/component/roamController",["require","./base","zrender/shape/Rectangle","zrender/shape/Sector","zrender/shape/Circle","../config","zrender/tool/util","zrender/tool/color","zrender/tool/event","../component"],function(e){function t(e,t,n,a,o){if(this.rcOption={},a.roamController&&a.roamController.show){if(!a.roamController.mapTypeControl)return void console.error("option.roamController.mapTypeControl has not been defined.");i.call(this,e,t,n,a,o),this.rcOption=a.roamController;var r=this;this._drictionMouseDown=function(e){return r.__drictionMouseDown(e)},this._drictionMouseUp=function(e){return r.__drictionMouseUp(e)},this._drictionMouseMove=function(e){return r.__drictionMouseMove(e)},this._drictionMouseOut=function(e){return r.__drictionMouseOut(e)},this._scaleHandler=function(e){return r.__scaleHandler(e)},this.refresh(a)}}var i=e("./base"),n=e("zrender/shape/Rectangle"),a=e("zrender/shape/Sector"),o=e("zrender/shape/Circle"),r=e("../config");r.roamController={zlevel:0,z:4,show:!0,x:"left",y:"top",width:80,height:120,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,handleColor:"#6495ed",fillerColor:"#fff",step:15,mapTypeControl:null};var s=e("zrender/tool/util"),l=e("zrender/tool/color"),h=e("zrender/tool/event");return t.prototype={type:r.COMPONENT_TYPE_ROAMCONTROLLER,_buildShape:function(){if(this.rcOption.show){this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._buildItem();for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e])}},_buildItem:function(){this.shapeList.push(this._getDirectionShape("up")),this.shapeList.push(this._getDirectionShape("down")),this.shapeList.push(this._getDirectionShape("left")),this.shapeList.push(this._getDirectionShape("right")),this.shapeList.push(this._getScaleShape("scaleUp")),this.shapeList.push(this._getScaleShape("scaleDown"))},_getDirectionShape:function(e){var t=this._itemGroupLocation.r,i=this._itemGroupLocation.x+t,n=this._itemGroupLocation.y+t,o={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:i,y:n,r:t,startAngle:-45,endAngle:45,color:this.rcOption.handleColor,text:">",textX:i+t/2+4,textY:n-.5,textAlign:"center",textBaseline:"middle",textPosition:"specific",textColor:this.rcOption.fillerColor,textFont:Math.floor(t/2)+"px arial"},highlightStyle:{color:l.lift(this.rcOption.handleColor,-.2),brushType:"fill"},clickable:!0};switch(e){case"up":o.rotation=[Math.PI/2,i,n];break;case"left":o.rotation=[Math.PI,i,n];break;case"down":o.rotation=[-Math.PI/2,i,n]}return o=new a(o),o._roamType=e,o.onmousedown=this._drictionMouseDown,o.onmouseup=this._drictionMouseUp,o.onmousemove=this._drictionMouseMove,o.onmouseout=this._drictionMouseOut,o},_getScaleShape:function(e){var t=this._itemGroupLocation.width,i=this._itemGroupLocation.height-t;i=0>i?20:i;var n=Math.min(t/2-5,i)/2,a=this._itemGroupLocation.x+("scaleDown"===e?t-n:n),r=this._itemGroupLocation.y+this._itemGroupLocation.height-n,s={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:a,y:r,r:n,color:this.rcOption.handleColor,text:"scaleDown"===e?"-":"+",textX:a,textY:r-2,textAlign:"center",textBaseline:"middle",textPosition:"specific",textColor:this.rcOption.fillerColor,textFont:Math.floor(n)+"px verdana"},highlightStyle:{color:l.lift(this.rcOption.handleColor,-.2),brushType:"fill"},clickable:!0};return s=new o(s),s._roamType=e,s.onmousedown=this._scaleHandler,s},_buildBackground:function(){var e=this.reformCssArray(this.rcOption.padding);this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.rcOption.borderWidth?"fill":"both",color:this.rcOption.backgroundColor,strokeColor:this.rcOption.borderColor,lineWidth:this.rcOption.borderWidth}}))},_getItemGroupLocation:function(){var e,t=this.reformCssArray(this.rcOption.padding),i=this.rcOption.width,n=this.rcOption.height,a=this.zr.getWidth(),o=this.zr.getHeight();switch(this.rcOption.x){case"center":e=Math.floor((a-i)/2);break;case"left":e=t[3]+this.rcOption.borderWidth;break;case"right":e=a-i-t[1]-t[3]-2*this.rcOption.borderWidth;break;default:e=this.parsePercent(this.rcOption.x,a)}var r;switch(this.rcOption.y){case"top":r=t[0]+this.rcOption.borderWidth;break;case"bottom":r=o-n-t[0]-t[2]-2*this.rcOption.borderWidth;break;case"center":r=Math.floor((o-n)/2);break;default:r=this.parsePercent(this.rcOption.y,o)}return{x:e,y:r,r:i/2,width:i,height:n}},__drictionMouseDown:function(e){this.mousedown=!0,this._drictionHandlerOn(e)},__drictionMouseUp:function(e){this.mousedown=!1,this._drictionHandlerOff(e)},__drictionMouseMove:function(e){this.mousedown&&this._drictionHandlerOn(e)},__drictionMouseOut:function(e){this._drictionHandlerOff(e)},_drictionHandlerOn:function(e){this._dispatchEvent(e.event,e.target._roamType),clearInterval(this.dircetionTimer);var t=this;this.dircetionTimer=setInterval(function(){t._dispatchEvent(e.event,e.target._roamType)},100),h.stop(e.event)},_drictionHandlerOff:function(){clearInterval(this.dircetionTimer)},__scaleHandler:function(e){this._dispatchEvent(e.event,e.target._roamType),h.stop(e.event)},_dispatchEvent:function(e,t){this.messageCenter.dispatch(r.EVENT.ROAMCONTROLLER,e,{roamType:t,mapTypeControl:this.rcOption.mapTypeControl,step:this.rcOption.step},this.myChart)},refresh:function(e){e&&(this.option=e||this.option,this.option.roamController=this.reformOption(this.option.roamController),this.rcOption=this.option.roamController),this.clear(),this._buildShape()}},s.inherits(t,i),e("../component").define("roamController",t),t}),define("echarts/layer/heatmap",["require"],function(){function e(e){if(this.option=e,e)for(var i in t)this.option[i]=void 0!==e[i]?e[i]:t[i];else this.option=t}var t={blurSize:30,gradientColors:["blue","cyan","lime","yellow","red"],minAlpha:.05,valueScale:1,opacity:1},i=20,n=256;return e.prototype={getCanvas:function(e,t,a){var o=this._getBrush(),r=this._getGradient(),s=i+this.option.blurSize,l=document.createElement("canvas");l.width=t,l.height=a;for(var h=l.getContext("2d"),m=e.length,V=0;m>V;++V){var U=e[V],d=U[0],p=U[1],c=U[2],u=Math.min(1,Math.max(c*this.option.valueScale||this.option.minAlpha,this.option.minAlpha));h.globalAlpha=u,h.drawImage(o,d-s,p-s)}for(var y=h.getImageData(0,0,l.width,l.height),g=y.data,m=g.length/4;m--;){var b=4*m+3,u=g[b]/256,f=Math.floor(u*(n-1));g[b-3]=r[4*f],g[b-2]=r[4*f+1],g[b-1]=r[4*f+2],g[b]*=this.option.opacity}return h.putImageData(y,0,0),l},_getBrush:function(){if(!this._brushCanvas){this._brushCanvas=document.createElement("canvas");var e=i+this.option.blurSize,t=2*e;this._brushCanvas.width=t,this._brushCanvas.height=t;var n=this._brushCanvas.getContext("2d");n.shadowOffsetX=t,n.shadowBlur=this.option.blurSize,n.shadowColor="black",n.beginPath(),n.arc(-e,e,i,0,2*Math.PI,!0),n.closePath(),n.fill()}return this._brushCanvas},_getGradient:function(){if(!this._gradientPixels){var e=n,t=document.createElement("canvas");t.width=1,t.height=e;for(var i=t.getContext("2d"),a=i.createLinearGradient(0,0,0,e),o=this.option.gradientColors.length,r=0;o>r;++r)"string"==typeof this.option.gradientColors[r]?a.addColorStop((r+1)/o,this.option.gradientColors[r]):a.addColorStop(this.option.gradientColors[r].offset,this.option.gradientColors[r].color);i.fillStyle=a,i.fillRect(0,0,1,e),this._gradientPixels=i.getImageData(0,0,1,e).data}return this._gradientPixels}},e}),define("echarts/util/mapData/params",["require"],function(e){function t(e){if(!e.UTF8Encoding)return e;for(var t=e.features,n=0;n>1^-(1&r),s=s>>1^-(1&s),r+=n,s+=a,n=r,a=s,i.push([r/1024,s/1024])}return i}var n={none:{getGeoJson:function(e){e({type:"FeatureCollection",features:[{type:"Feature",geometry:{coordinates:[],encodeOffsets:[],type:"Polygon"},properties:{}}]})}},world:{getGeoJson:function(i){e(["./geoJson/world_geo"],function(e){i(t(e))})}},china:{getGeoJson:function(i){e(["./geoJson/china_geo"],function(e){i(t(e))})}},"南海诸岛":{textCoord:[126,25],getPath:function(e,t){for(var i=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]],n="",a=e[0],o=e[1],r=0,s=i.length;s>r;r++){n+="M "+((i[r][0][0]*t+a).toFixed(2)-0)+" "+((i[r][0][1]*t+o).toFixed(2)-0)+" ";for(var l=1,h=i[r].length;h>l;l++)n+="L "+((i[r][l][0]*t+a).toFixed(2)-0)+" "+((i[r][l][1]*t+o).toFixed(2)-0)+" "}return n+" Z"}},"新疆":{getGeoJson:function(i){e(["./geoJson/xin_jiang_geo"],function(e){i(t(e))})}},"西藏":{getGeoJson:function(i){e(["./geoJson/xi_zang_geo"],function(e){i(t(e))})}},"内蒙古":{getGeoJson:function(i){e(["./geoJson/nei_meng_gu_geo"],function(e){i(t(e))})}},"青海":{getGeoJson:function(i){e(["./geoJson/qing_hai_geo"],function(e){i(t(e))})}},"四川":{getGeoJson:function(i){e(["./geoJson/si_chuan_geo"],function(e){i(t(e))})}},"黑龙江":{getGeoJson:function(i){e(["./geoJson/hei_long_jiang_geo"],function(e){i(t(e))})}},"甘肃":{getGeoJson:function(i){e(["./geoJson/gan_su_geo"],function(e){i(t(e))})}},"云南":{getGeoJson:function(i){e(["./geoJson/yun_nan_geo"],function(e){i(t(e))})}},"广西":{getGeoJson:function(i){e(["./geoJson/guang_xi_geo"],function(e){i(t(e))})}},"湖南":{getGeoJson:function(i){e(["./geoJson/hu_nan_geo"],function(e){i(t(e))})}},"陕西":{getGeoJson:function(i){e(["./geoJson/shan_xi_1_geo"],function(e){i(t(e))})}},"广东":{getGeoJson:function(i){e(["./geoJson/guang_dong_geo"],function(e){i(t(e))})}},"吉林":{getGeoJson:function(i){e(["./geoJson/ji_lin_geo"],function(e){i(t(e))})}},"河北":{getGeoJson:function(i){e(["./geoJson/he_bei_geo"],function(e){i(t(e))})}},"湖北":{getGeoJson:function(i){e(["./geoJson/hu_bei_geo"],function(e){i(t(e))})}},"贵州":{getGeoJson:function(i){e(["./geoJson/gui_zhou_geo"],function(e){i(t(e))})}},"山东":{getGeoJson:function(i){e(["./geoJson/shan_dong_geo"],function(e){i(t(e))})}},"江西":{getGeoJson:function(i){e(["./geoJson/jiang_xi_geo"],function(e){i(t(e))})}},"河南":{getGeoJson:function(i){e(["./geoJson/he_nan_geo"],function(e){i(t(e))})}},"辽宁":{getGeoJson:function(i){e(["./geoJson/liao_ning_geo"],function(e){i(t(e))})}},"山西":{getGeoJson:function(i){e(["./geoJson/shan_xi_2_geo"],function(e){i(t(e))})}},"安徽":{getGeoJson:function(i){e(["./geoJson/an_hui_geo"],function(e){i(t(e))})}},"福建":{getGeoJson:function(i){e(["./geoJson/fu_jian_geo"],function(e){i(t(e))})}},"浙江":{getGeoJson:function(i){e(["./geoJson/zhe_jiang_geo"],function(e){i(t(e))})}},"江苏":{getGeoJson:function(i){e(["./geoJson/jiang_su_geo"],function(e){i(t(e))})}},"重庆":{getGeoJson:function(i){e(["./geoJson/chong_qing_geo"],function(e){i(t(e))})}},"宁夏":{getGeoJson:function(i){e(["./geoJson/ning_xia_geo"],function(e){i(t(e))})}},"海南":{getGeoJson:function(i){e(["./geoJson/hai_nan_geo"],function(e){i(t(e))})}},"台湾":{getGeoJson:function(i){e(["./geoJson/tai_wan_geo"],function(e){i(t(e))})}},"北京":{getGeoJson:function(i){e(["./geoJson/bei_jing_geo"],function(e){i(t(e))})}},"天津":{getGeoJson:function(i){e(["./geoJson/tian_jin_geo"],function(e){i(t(e))})}},"上海":{getGeoJson:function(i){e(["./geoJson/shang_hai_geo"],function(e){i(t(e))})}},"香港":{getGeoJson:function(i){e(["./geoJson/xiang_gang_geo"],function(e){i(t(e))})}},"澳门":{getGeoJson:function(i){e(["./geoJson/ao_men_geo"],function(e){i(t(e))})}}};return{decode:t,params:n}}),define("echarts/util/mapData/textFixed",[],function(){return{"广东":[0,-10],"香港":[10,10],"澳门":[-10,18],"黑龙江":[0,20],"天津":[5,5],"深圳市":[-35,0],"红河哈尼族彝族自治州":[0,20],"楚雄彝族自治州":[-5,15],"石河子市":[-5,5],"五家渠市":[0,-10],"昌吉回族自治州":[10,10],"昌江黎族自治县":[0,20],"陵水黎族自治县":[0,20],"东方市":[0,20],"渭南市":[0,20]}}),define("echarts/util/mapData/geoCoord",[],function(){return{Russia:[100,60],"United States of America":[-99,38]}}),define("echarts/util/projection/svg",["require","zrender/shape/Path"],function(e){ -function t(e){return parseFloat(e||0)}function i(e){for(var i=e.firstChild;"svg"!=i.nodeName.toLowerCase()||1!=i.nodeType;)i=i.nextSibling;var n=t(i.getAttribute("x")),a=t(i.getAttribute("y")),o=t(i.getAttribute("width")),r=t(i.getAttribute("height"));return{left:n,top:a,width:o,height:r}}function n(e,t){function i(e){var t=e.tagName;if(m[t]){var o=m[t](e,n);o&&(o.scale=n,o.properties={name:e.getAttribute("name")||""},o.id=e.id,s(o,e),a.push(o))}for(var r=e.childNodes,l=0,h=r.length;h>l;l++)i(r[l])}var n=[t.scale.x,t.scale.y],a=[];return i(e),a}function a(e,t){var i=t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y];return[i[0]/e.scale.x,i[1]/e.scale.y]}function o(e,t){var i=t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y];return[i[0]*e.scale.x,i[1]*e.scale.y]}function r(e){return e.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}function s(e,t){var i=t.getAttribute("fill"),n=t.getAttribute("stroke"),a=t.getAttribute("stroke-width"),o=t.getAttribute("opacity");i&&"none"!=i?(e.color=i,n?(e.brushType="both",e.strokeColor=n):e.brushType="fill"):n&&"none"!=n&&(e.strokeColor=n,e.brushType="stroke"),a&&"none"!=a&&(e.lineWidth=parseFloat(a)),o&&"none"!=o&&(e.opacity=parseFloat(o))}function l(e){for(var t=r(e).replace(/,/g," ").split(/\s+/),i=[],n=0;no;o++)if(n=a[o],!n.properties.name||!t[n.properties.name])switch(n.type){case"Feature":r[n.geometry.type](n.geometry.coordinates);break;case"GeometryCollection":i=n.geometries;for(var l=0,h=i.length;h>l;l++)r[i[l].type](i[l].coordinates)}return e.srcSize={left:1*r.xmin.toFixed(4),top:1*r.ymin.toFixed(4),width:1*(r.xmax-r.xmin).toFixed(4),height:1*(r.ymax-r.ymin).toFixed(4)},e}function i(e,i,n){function a(e,t){c=e.type,u=e.coordinates,o._bbox={xmin:360,xmax:-360,ymin:180,ymax:-180},y=o[c](u),m.push({path:y,cp:o.makePoint(t.properties.cp?t.properties.cp:[(o._bbox.xmin+o._bbox.xmax)/2,(o._bbox.ymin+o._bbox.ymax)/2]),properties:t.properties,id:t.id})}n=n||{},o.scale=null,o.offset=null,e.srcSize||t(e,n),i.offset={x:e.srcSize.left,y:e.srcSize.top,left:i.OffsetLeft||0,top:i.OffsetTop||0},o.scale=i.scale,o.offset=i.offset;for(var r,s,l,h=e.features,m=[],V=0,U=h.length;U>V;V++)if(l=h[V],!l.properties.name||!n[l.properties.name])if("Feature"==l.type)a(l.geometry,l);else if("GeometryCollection"==l.type){r=l.geometries;for(var d=0,p=r.length;p>d;d++)s=r[d],a(s,s)}var c,u,y;return m}function n(e,t){var i,n;return t instanceof Array?(i=1*t[0],n=1*t[1]):(i=1*t.x,n=1*t.y),i=i/e.scale.x+e.offset.x-168.5,i=i>180?i-360:i,n=90-(n/e.scale.y+e.offset.y),[i,n]}function a(e,t){return o.offset=e.offset,o.scale=e.scale,o.makePoint(t instanceof Array?[1*t[0],1*t[1]]:[1*t.x,1*t.y])}var o={formatPoint:function(e){return[(e[0]<-168.5&&e[1]>63.8?e[0]+360:e[0])+168.5,90-e[1]]},makePoint:function(e){var t=this,i=t.formatPoint(e);t._bbox.xmin>e[0]&&(t._bbox.xmin=e[0]),t._bbox.xmaxe[1]&&(t._bbox.ymin=e[1]),t._bbox.ymaxn;n++)t=o.makePoint(e[n]),i=0===n?"M"+t.join(","):i+"L"+t.join(",");return i},Polygon:function(e){for(var t="",i=0,n=e.length;n>i;i++)t=t+o.LineString(e[i])+"z";return t},MultiPoint:function(e){for(var t=[],i=0,n=e.length;n>i;i++)t.push(o.Point(e[i]));return t},MultiLineString:function(e){for(var t="",i=0,n=e.length;n>i;i++)t+=o.LineString(e[i]);return t},MultiPolygon:function(e){for(var t="",i=0,n=e.length;n>i;i++)t+=o.Polygon(e[i]);return t}},r={formatPoint:o.formatPoint,makePoint:function(e){var t=this,i=t.formatPoint(e),n=i[0],a=i[1];t.xmin>n&&(t.xmin=n),t.xmaxa&&(t.ymin=a),t.ymaxt;t++)this.makePoint(e[t])},Polygon:function(e){for(var t=0,i=e.length;i>t;t++)this.LineString(e[t])},MultiPoint:function(e){for(var t=0,i=e.length;i>t;t++)this.Point(e[t])},MultiLineString:function(e){for(var t=0,i=e.length;i>t;t++)this.LineString(e[t])},MultiPolygon:function(e){for(var t=0,i=e.length;i>t;t++)this.Polygon(e[t])}};return{getBbox:e,geoJson2Path:i,pos2geo:n,geo2pos:a}}),define("echarts/util/shape/HandlePolygon",["require","zrender/shape/Base","zrender/shape/Polygon","zrender/tool/util"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Polygon"),a=e("zrender/tool/util");return t.prototype={type:"handle-polygon",buildPath:function(e,t){n.prototype.buildPath(e,t)},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);e=i[0],t=i[1];var n=this.style.rect;return e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height?!0:!1}},a.inherits(t,i),t}),define("echarts/util/mapData/geoJson/an_hui_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3415",properties:{name:"六安市",cp:[116.3123,31.8329],childNum:6},geometry:{type:"Polygon",coordinates:["@@„„nJ‚UXUVƒ°U„ÑnU@mlLVaVln@@bn@VU@xlb@lšLnKlšƒVI„JšUVxnI@lVL@b„ްVX@˜b„x„nVVUnVVnU‚›@kX@VwV@„al¥UUnUWa@ƒ@wĸU„LU¥lKUa@aUI@alLVaUƒ¯anƒWkUKm@XV@VaXlW@aU_UWVUƒI¯@ma¯W¯™™I@UU@WWU@U@@UU@VkV@@WUUm@UaU@„lK@IUK„L@KWmXUWaXI@ƒ@a@a@U@U@KV¥lw„k°b²JVIVKlV@UX„la„Ul`œUVLVVVUšJ„U@Lnm@_VK@KUIW@™J@Xk@WW@U—ƒmm™XmWk@kK@aUUƒVmmkUwUmWL™@WmU@™UJmUULkKWakLWVkIƒlƒwULƒW@X°lUJ@°ULƒWV—wmJ@bmb¯Vkm@@WkWm¯wƒL@lkXƒWmXym¯UImJUbkV™@Vn¯„@V@lUbƒ@mk@maUxmlUbULWn@J—LmKUkWKkwUKƒbm„X„WxkVUKmLkVV@JUUWL@xkJUUƒV@X@VVlUbVX@xk¤šx‚¼œxWxn„‚nn@Þ¼„JVb°aVn„@šmlnXU„JlbVlkz@‚lUŽlXJmxVxXnWxXÈWlUŽ@šUxU@VX@xUL@šUÆmLnV@lWXk@@JlbXblnlJ"],encodeOffsets:[[118710,33351]]}},{type:"Feature",id:"3408",properties:{name:"安庆市",cp:[116.7517,30.5255],childNum:9},geometry:{type:"Polygon",coordinates:["@@n°‚znW„XlW@k„K°xXn‚l@Xn@l‚°Una@anI˜xXU„ŽVK@¯VIkW¯X@‚„VK„x„klJXUlKXblLVKnVVIšŽV@Xn‚@šŽXKVnVxlŽnn„UlmV@²óUkV™lW„b„lƒšƒn@VVVIn@lw@WVIXblV„@Èx‚aUaVIVVnKVLšK„ƒln@b²K@»U£ƒÑķƒġÝÅb™K™a@Im@ۍ„@kWÓkkmKÅnóJƒUÅ£›W@w„ĕ@wĉţ¯¯ƒUkK±l¯Uƒ¥UÑkÝUķ»Ý¥¯™JƒIUŽVbUl¯ÈV¼VJU¼Vb@bkLUl@„VJ@bUXǚ@lkVmXmKkLVxš‚Ž„VƒL@VkVVVlzW˜kbmLUUUbVbUV™šlÒnJlUnLllUL@bU„Vx„l‚LXVƦÈVU¦WJ"],encodeOffsets:[[118834,31759]]}},{type:"Feature",id:"3411",properties:{name:"滁州市",cp:[118.1909,32.536],childNum:7},geometry:{type:"Polygon",coordinates:["@@š„@`nnl@„xšK@X°KXV˜IXVlbXVWnX‚lL@šÈ»‚LVan@VJ„êVVn@‚X@laÞbVaƒyn@„_‚xnWVXnWl@VnUVkI@l‚nXKVLVV@V@kW@LlVô„@J@bVnnKnkVa@»lç@ƒnwšKma™UUUVњ@n™mWXalI@alVn@VwUaVU„@„nlaôJnU„VVXlJšaXXVK@UšV@VWx@nXVWšXVšUlLUbV‚ULVVnUVbUbVbš@@a„KÆnnKVK@U@UU@@a„@Vƒ°¯ÈJVIlķ@aa˜UaVKU_@mkxUI@aƒUlyU@@™wkKWmUbUnUVWbkJW_J@bƒn@Vm@@KULk@V@@bVbÅm@LW@UVVbkK@UkKWL@VULUKWIUJUbkK@_WVXU›Jka@XƒVa@kšy@aVIUUW@@m„UlLœKWÑUKVan@UkVmmIXKƒaVaUwVU@UmykU¯@±UUL@WUIVUU@KkIWaƒaU@kUUaǃUó»mKƒk¯@y@kWK@bkI¯`mn™l¯XWlkVUzUJlbUbVJl@nnm„@VULV`XnWƗbmUUn™JmUknƒJ¯km@ƒyk@kU›xL@VUbmnn¤lX@`™z@JmaULUVl@Xn@xllkXWa—aW@UVmUbƒ@mVXšWxXbWbUŽƒÒnVVnVVUL"],encodeOffsets:[[120004,33520]]}},{type:"Feature",id:"3418",properties:{name:"宣城市",cp:[118.8062,30.6244],childNum:7},geometry:{type:"Polygon",coordinates:["@@Vb@„XL˜JXxlIXxlVlV@I²¤šnlUnVšU@VULWVUJ@Lnb@lV@UnV@@VVVlLnbnJ‚UVkUUVWn@@anUVnVJVIV‚@@nUJVbUb‚„@VUbVK@bn@VbnIlxkllXVlXKWUXUlL°¤UVVb@bš„UlkXW‚ƒxXz@‚„Ila„UlƒnUlJVInVÆJ„U„LVUnV„K°@VnlVnxV@XLlK@wVL@KnUlJXU˜bnKVLX„lUw@VWlLXKm@@a„@VLnmlIVVnKn@škVašVlwk@@a@k@ƒVIUa™@maUa@wna@kmWƒ™UUmVUIVǗ@aƒKm™aƒ™kU™J@InmUUaVa„k‚lX@Vk@m@VU@wnK@alKVUkUkKƒbmUkmƒ@U£WVk@@UÝbbƒaÇx@b@WVUa¯ƒ@wVwUUV@VwnK@KWaŁ@KšIUyUI@WmXó™UbWaKm™@km@IUyƒIUaWKƒx@zUKUL@llVUnkLVVkJWX@VUKUVƒIkVWakb@VWb@n@JkXUlmL@xkL@`VxšLUÈUJ@Vm@@bmIUlUL@VUVVbknm@mKUw™KVÈ@J@LV±kkJUIƒl"],encodeOffsets:[[120803,31247]]}},{type:"Feature",id:"3412",properties:{name:"阜阳市",cp:[115.7629,32.9919],childNum:6},geometry:{type:"Polygon",coordinates:["@@V™nƒš@ša„k°aš±@‚¥@UUI@aUmlwUUx›b@¥XU@mmI@a@Kn@@_W@@W„I@mšUVVXUl@XaV@‚K@I@a„LX@aVI°K@KVL„UUw‚yXkšK@kšKÆbXnlK@k@a„JlU@w@U@»@aXKWƒn_‚JXkVKnƒ@°LlKXƒW@¯Uƒ@aUK@kmJUw™VƒIUJ™„kŽmL™K@kka@wUVm@@am@UkUbkK@nmVƒÒ¯VU„WVVmIƒƒULk@ƒƒma@kkKƒƒ@nUbUamU™`UUVUkKVkkƒW@@bkmƒnƒmUXVKXVƒL@VƒbU„m‚™bVXJ@nmKÅI@KWKUXVJUL@VUKUX@KUKWL@LUJmaXXm@kVVV@L@VUL@VlK@L@V@LUK@VUb@UUU@°@nVxU`‚Lkn@`@XVJ@X™Vm„k@UKmV¯LVVn±Wm@Ub@JlLUl„@VLk„@lmVVn@bnV@V°IV™šaVJXI°K°V@XXVlVVU„nšKVlUš„bWXnV@bV`U„„@@m@@‚ƒ@nxmn@bXVlL@¤nb„Ul¦šVVUnJVU„Vl@@bÞL"],encodeOffsets:[[118418,34392]]}},{type:"Feature",id:"3413",properties:{name:"宿州市",cp:[117.5208,33.6841],childNum:5},geometry:{type:"Polygon",coordinates:["@@@UWU@bkW@aWU@aUIkWV™lLXb„lVIUVV@‚mn@V_n@VaUK@I‚@UašanJVU„@lV„UVnnKVVlaUa„I@wnK‚Lnll@nVlk@wVKXkl@@b„bUJ@V‚U@U„UUyVk@aVUXwlWXX‚WU¹@aU™@WUI@mlUšn„J@Il@šaXbV@VKl@XxVL@W„IšJlb„@„al@„IUUm@@aVK@¥¯—@mUķ¯bWƒk£Vm@akm@VaÅ@UVWaƒ@UJWkƒJ—UƒbWbU@UlƒXk@ƒamV@K¯nk@ƒlU@Uxmz@bU`ÇbUbÅVm£U@Ww™x@akLUK@UlakwUJWVkLmaUal@n_ƒmVUnKVUUmÅXWa™@kJmx@XUJ@bVLXxl@VVUVV„UbkLWbU@@lUVV„VVX„›K@XkJ@nU@@bV@VxUVlb„U@xXLWŽn@UxVbVĊ„V@b@XV`mnkJ@kUKmbƒaU@VbnbÆx@XU@@`k@@bl„™@@bkL@WƒakXWaU@Vmkx@XWW@@wUUUbƒJ™U¯V™@¯ÞU@WxXŽlL@bkb@ŽlVlnb™JW@kkU@mbkaWJ—IVlmz¯`UnU@mb™@@„ƒ`@bkVlœnV@b@šV@„aVxn@Vx‚KXnl@nbVK„bVK@a„_V@Vƒ„w@W„LlwnK@UmIU@VWš@šUÈ@lKnal„wš@@V°@šaUmlUUw@„ƒV@@UXK"],encodeOffsets:[[119836,35061]]}},{type:"Feature",id:"3410",properties:{name:"黄山市",cp:[118.0481,29.9542],childNum:5},geometry:{type:"Polygon",coordinates:["@@lXnlWX@VUJVnUJVzXJVx„kVJlI²l‚U@K@IUǚLVxnLn@lmUaVU@UVKVknJ@an@@UVIVǙKUw@_lK@wnKVklW@I@mXa@UlaXblU„JVUVL@UXWlIUUlKVmkU@kVKVL@y„wXLVb„JVz@Jlnš@nŽ‚LXbVaôšnW@la@UVWUa@@a@mk@WIk@VwUa¯¥m@UUVK@ImK@aX£ƒkK›ÅV™a™™ƒ_@±ƒakXWW—LƒƒƒnU@@a@¯mK@L™JUWwUV™VmbXX@lWLn`mzUJUb™Lƒ„k@makVWmkX™ambkKknƒaƒ@ƒaƒb@‚U@Unm@—ƒWVƒ@VbUbUJWIk@@lmL@°UVUVm„nš™@@kmWkb@xƒ_m@@aU@b@JlŽUz™lWxXn„@‚b²@l`„IVl„UlL@VšK„nVbUl@VlIn@@b„bVWUk‚@@bX@Valb@bnb°Vn@„xVKlbVnV@V‚x„L@ln@UXVV‚L˜"],encodeOffsets:[[120747,31095]]}},{type:"Feature",id:"3414",properties:{name:"巢湖市",cp:[117.7734,31.4978],childNum:5},geometry:{type:"Polygon",coordinates:["@@VV@blL@ŽXlWnnšnŽ˜„@VXXl@@WšIX@VJ@LšxŎxlnšŽ@bXJVblX@VVbUVn@VbUVlb@LnJVbVLV‚XLšÒVL„ÒšV„bVIVylUXk°Wšknm°_lJ@aXL@l‚z°@„lnLô¼V‚È„VUUaVKU@WW@@UUa@knmVLlaV@„a@kšak±@UmwkKmk™lj™ÝUUkL@mlIVmnÝWkkUÝ@KƑĉ™a@»ƒmma@mX™¤¯Uƒw@ƒ@UU@bU±±L@akmƒ„™LUKmLUUUJVbbÇwƒ@kUWaUJ@Xkxm@UJUUm@™„k„ƒ‚ƒakXUšVl±ôU@kn"],encodeOffsets:[[119847,32007]]}},{type:"Feature",id:"3416",properties:{name:"亳州市",cp:[116.1914,33.4698],childNum:4},geometry:{type:"Polygon",coordinates:["@@lU@Un@@anUlw@KVmUwlaX_lKna@KU@@kWKUU@ankW™XK˜@@V²VVIÈU@al@VaÈamK@wU™@klaUƒV@XƒVUU»WUUbkmUkVmk@aÈw@mWU@VkIkVWKUÑķXȭºU¯lƒ@kkLWmÅa™L@l™LWlzVxƒVUK@L¯LUJ@bWƒK@b@JLU@Wbk@WVUU™V@nƒJ@XX@@`m@@L@bnJ@nWV@¦œa‚wVVkxVn@bVJ@V¦@Ž™²¯bƒl™b™@m„UšUŽƒŽ@¼ƒ¦Xb‚UV`@nnxUxWLkUkVWKkV@XV@@VVL@VX„@lVV@L@blL@`šL@xXKVL‚@„VnUš@lwnU@ml@XnV@@UVW°LnalƒUI@aUK@a‚a@U„kXW@I@mWL@UXK@UVW@U‚@@k„Wn‚@@V„@XblaVxšL@bVKXb„IlJ"],encodeOffsets:[[119183,34594]]}},{type:"Feature",id:"3417",properties:{name:"池州市",cp:[117.3889,30.2014],childNum:4},geometry:{type:"Polygon",coordinates:["@@„V°°ĊŤ@xƒĖ@xœXƤ„VôIÆmnLllXÔ@lƒÜŽn@@JšbšLÆaĢÞĸ„°VVUUKVanK@UV@VL„VVn„ln@‚xnklxXamk@WV@Xa˜@naVk„Klk™@mkUWwkJWw—IWK@ƒUaUwWIUyVIUmVI@UXWmkkW‚—KUUVWm@@kƒKw@U‚UUmkaULƒwm@¯Uma@akaUbW@@a@VlUXƒa@am@kJ@UVkUaƒm™L@UkKƒVUkƒJk_±@aƒ@WmXwÇkkaVaUa±ƒœwV@VkƒwnyUaW@UU¯amLk@m™@kmmU™™¯K@L@lUX¯ƒWlkXƒŽVb„bƒVUL@J@LVKnlJXnlb@`nXlalV@bnL@Vnb˜¼@lXbWlkL™K@zUJmIUxUVUVmX","@@llUL@VlxšL@a@UƒwXa¯@"],encodeOffsets:[[119543,30781],[120061,31152]]}},{type:"Feature",id:"3401",properties:{name:"合肥市",cp:[117.29,32.0581],childNum:4},geometry:{type:"Polygon",coordinates:["@@„L„xV‚ĊLÞkšVlVVXaWaXwW™nU„@‚anVVUX@˜bXblWkk@wWmk@VUVKnb@Išy@_kWm£nmVa@U‚KœwlVl@„zn@°l„IlmnVšIVmnV˜aXÅWmU_VK@Unƒmmk@UIVakaƒa™UƒÑUK™ÑWKUUKUamI@KkaVUUam@VUUa@UkWUaWI@a™kmōw™wUL@`mn@KƒV™IUVUUUK›Vk_ƒVkbWƒ@VkUULUJ±I¯aƒlkxU¦@L@V@V@b@b@„WJXbWVXn@LƒKVL@JkLƒŽV@Vbn@VV@XU@UlV@@VV@V@XXV@@VšJ°š°Xnb°@„JUVVXV`@bkXWŽUbU@WŽn@VLXlm„°bV„UbkK@bVJ@bVbkLV¦ƒKķV@x@„XbmVVVk¦"],encodeOffsets:[[119678,33323]]}},{type:"Feature",id:"3403",properties:{name:"蚌埠市",cp:[117.4109,33.1073],childNum:4},geometry:{type:"Polygon",coordinates:["@@VÒXLlUlJ@UXV@nÇx@bnlUVllnVaXVV¼UVW„U@V„²wVV@Vl@„VnwlIš@XbÆWVnUVmLUV„nm`k@VbnblKXUVIlxkb@VVLlK@bšwXxV@n¤ÆUVaÈaV_@anyVwV@„kl@°m@LnU„bl@„WVkV@Xa„a˜V„IXl‚IV‚„@XbVUÆ@XKWwUkmW@_UmnIlJXkWKXmV@‚w@_XV@Kl@kU@KlX@@UUUUKWLm@klJVUUmk@mXUWmXwƒ`m@„zUbÝakbW@m@UUƒéUIm@UbKǼ@™kKWXmWUkaWU—JWU¯L@W™Lƒwk@mm@_™ƒÅl™UVkmWUnV@VWLUb™bƑĬ¯l"],encodeOffsets:[[119543,33722]]}},{type:"Feature",id:"3402",properties:{name:"芜湖市",cp:[118.3557,31.0858],childNum:4},geometry:{type:"Polygon",coordinates:["@@„bVaV@XllLXU°ŽlL@V@VUnVl¯Ikš›VUVU@@b@lUXUWmb„n@¼šbƒĊ‚LÞ@lVXlmÞUnkJ@nlKVVšÞXklWVaVI@aUKn»lL@Kn@‚XXwlm@mn°@„V@Wy„wXlWVk™ƒ@aUaVU¯£kKWVXVWLUkkWlkkwmJUam@@aULVa@UƒVaUaVI@m‚@UUJUIUmmV@bm@UXVVUlVmImakKUU@UU@VmU@@kma@KVIXUVK@U™VmUkV™m±£@JkU@nlšk‚ƒLUlmb—@WbU@@XnlWb"],encodeOffsets:[[120814,31585]]}},{type:"Feature",id:"3406",properties:{name:"淮北市",cp:[116.6968,33.6896],childNum:3},geometry:{type:"MultiPolygon",coordinates:[["@@lnnK@¦n@@V‚V„@@VV@nIV„V@VW²a@b@bVnUVVV@V™z@lš@°UšV„IVaVV@x@ŽXX@WlwUnV@XblW„b@XlK@aš@kƒ@al@@_V@@WÅwmaUaV@„bnaVL@llInmU_@W@aƒUUĉUaVwm@XWK@wƒVkaVUUwU@@aV@@mlI@WœLWƒUUUƒVU@kV@XalKVaUƒVUUUk@WwUK@aVI@WƒUk@@UUU±xkb@lVš@xnLÇbUbk@@bÇVUJ±U@U—@WLXšml@bVVXL@lV@@LmbkLW`kbVxUn@LkxmV@bm@@VkV"],["@@VVVkV@¥@UV@U@VUUJƒkWakKUšlXVJ@bXV@blX@aXV@V"]],encodeOffsets:[[[119183,34594]],[[119836,35061]]]}},{type:"Feature",id:"3404",properties:{name:"淮南市",cp:[116.7847,32.7722],childNum:2},geometry:{type:"Polygon",coordinates:["@@°kƒīšaVaXK@U‚UVmnXUlšVÆkVKUUUmmU„ÑkU™UÝlĉKUƒwƒKƒbU@UxW@@lœmVUUVmUUƒmƒw—aW„kL¯K@Žm„ULWlIm`X„WL@b@¼@V@xkVƒI@b@l@lk„V°Ȯ¹ĸW"],encodeOffsets:[[119543,33722]]}},{type:"Feature",id:"3405",properties:{name:"马鞍山市",cp:[118.6304,31.5363],childNum:2},geometry:{type:"Polygon",coordinates:["@@šNJnllLnxV@laXLVKma„aXbVI„bVKVVVIVyn@n_ƒƒW@@ƒ„UnJlUVVXlLnaUWlV@VV„IXW@_W@XK@K@UVUUwVamÑXmmwƒw™KUnUK™çU@ƒJƒU¯@mŽ@nknWxWm@@LkKm¼VL@bUJUbkXWl"],encodeOffsets:[[121219,32288]]}},{type:"Feature",id:"3407",properties:{name:"铜陵市",cp:[117.9382,30.9375],childNum:3},geometry:{type:"MultiPolygon",coordinates:[["@@„ÒV¤@¼V²@aVV@Ž@„„x°Vš£nW‚@nbnaVXVW@k@aV@VUœUl™°JUkVm@U@UkK¯WVkKWkU@Ubƒakwmlwm@ƒkUmƒUUKU@@VmLUbVLUV¯U"],["@@LllUL@VlxšL@a@UƒwXamK"]],encodeOffsets:[[[120522,31529]],[[120094,31146]]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/ao_men_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"8200",properties:{name:"澳门",cp:[113.5715,22.1583],childNum:1},geometry:{type:"Polygon",coordinates:["@@HQFMDIDGBI@E@EEKEGCEIGGEKEMGSEU@CBEDAJAP@F@LBT@JCHMPOdADCFADAB@LFLDFFP@DAB@@AF@D@B@@FBD@FADHBBHAD@FAJ@JEDCJI`gFIJW"],encodeOffsets:[[116325,22699]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/bei_jing_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"110228",properties:{name:"密云县",cp:[117.0923,40.5121],childNum:1},geometry:{type:"Polygon",coordinates:["@@vIHZDZQtDLNMXIbHRCXXITbJ@H`LGPRDDJNCLHTOCWFGvGBUJMKGFO^IHWXITQCI’Y^AXGfRˆDXF`DJOLB~G\\DZIHHpErUVMhHb]\\M†BVF@FTP`@zTbD\\@~M\\K`H^EVODWICAakAQXoIcCOCIgGYNWFWNGGKKGaJEGMEIKYJUT_J_Go@_SyQaSFMEGTcYOQLIIi@EKAUPCV[EEXQCW|aMUMAaYCYNIDGGACIMGGSKDQGaF_C[GaB@GOIiOKAYL“mI@CN]F[SWWAcKKI@HMUimEKbeYQYISNUOcBKPIFBNgvDPGZYFSf]CMSIWGEUFgDIQ[MeDMJS@RR@LphFPCHaBAJKF@J]IBJO@HlO@@RKAMPJHCNDJTHFP@ZGNANBRFH@J_fM^ONJNF\\VTDJHDON@XRND\\XRCPVETCLBVKDFJINHRGPRV@\\CLJN@VbXbLVT"],encodeOffsets:[[119561,41684]]}},{type:"Feature",id:"110116",properties:{name:"怀柔区",cp:[116.6377,40.6219],childNum:1},geometry:{type:"Polygon",coordinates:["@@JHTVHXCHPfnDJGHNDJSB[JSBGVSAOH@PMPuDEHHXZN@PHF@ZLJ@LHVYJA\\OFWP]BMtMBSRGV[JeVAPQVIFENMD¡–@^NV\\JH@NNL@NM\\kTQ\\I^FNIpBHGTBFFAZQfKDIXQTLXFXNNVMVHRGpCFLlRLEVBBH`IVO\\G`RDPAXLXBXORHZEHTDLLN@VGTMrQNFPeASKG@GMOAKBYMK@GTUHUXSHMVDNMOUEOZMJML@^KRACMZEZMRQLUHE@OFENPR@DI\\ChMHIDG\\GJMDWHCKGMDCIQCHO_K@GaIJSWWQDaGWJMNCKRsCYGYuJUSaKaW@UIMDK@[QUHOGQJMEILCAUDKFSOUQD[WMC‚Q@WPMGCCIUSE[IMPMN]`e@IEGAQBMHM@YEOSGCIDMIGNOLB@QP@GkP@AI^J@ILEBIbADGEOog@KQQWSekWQQUOFKZLF@PUNmIaHIUeBCTSHENcJa@_IWSaGu`GLSBKJQFOXGDXVQVOBIHcDSJWBEFGTMH[^mLaXcHiKElTRKtFXZ`MHMPCNRDxZˆB\\ICIHK@KŽHbIVFZ@BPnGTGbDXRDJaZKRiGEFSFEJhjFNZFjn"],encodeOffsets:[[119314,41552]]}},{type:"Feature",id:"110111",properties:{name:"房山区",cp:[115.8453,39.7163],childNum:1},geometry:{type:"Polygon",coordinates:["@@h@bl@HRJDZ``TA\\VVD^H`\\pF\\JŒ`JGv@ZO\\GPSTEjPTR`FnEbDTDHEhLFMTK@ETSPULKEI@OVISKSJACEQNQbV˜IXGDIN@dMB[IIBcN]ZHNLP@XOWCFWŠCNRHTpATD@^NVNLED@Rh@jCEF}E[OOHUEW]W@QGGDIQSH_MmFmCUT_K]i@MHCMW—FCF‹E{BMHMPOHKS]CFNGBELDH_@BcAKOACESAOBELaXAROB@FODMEDWJAG[aE@UM@DImEWJMC@OeCA{aE[@{L@MINUCQXKfUJORCHqJBF@TCXWNQX]M[EAJO@@KMBQJIC]EWMCCUBEBFHKDOTMBGNGF]MWDBRDdMDQVyE@LPVHDCP@JVVMTG~HNSH[CmRUvHPHBbA\\PTNRC\\YNJ€PRARPJDDR"],encodeOffsets:[[118343,40770]]}},{type:"Feature",id:"110229",properties:{name:"延庆县",cp:[116.1543,40.5286],childNum:1},geometry:{type:"Polygon",coordinates:["@@^AXOPEB[ZIGU@KKI@YGE@OYMGWFGvCNO@OPGTBHUTA\\ITACIGMIHmCOeDGGWSUIGimYEEMgiFITEFEjHLQbYCIWQaCSHmHAOY@UEaJG@LGLDJ[J‡AwYQCDMNONGY_EWLsSQFkMO[NWAIGaIYL@HMBOKiOQDWEUDMQSF_QIUBWdg@[NaAKQ@M]OQ@WhgLUMMFYQDIRCEUZOOCIOJ[KIUMKL@HIDKVEBM`HJAJSJUdBLGNEdMBMO[BYEWJSNKNaD]PE\\SjOT_RQVEZPpƒNQXfŠNA~lNG`@PNLp¼RFLfbdKbATUh@FSNWjGFZVLFHVA~X¨PPROfFJbNJPLFbENJPrEFNPFRHDDJdENJLVEPBJTVTHGHFRFH@PXP\\ORQHW\\BjWFDERLPPBbB\\E`B\\D\\L`@F]FCnJ^AZL"],encodeOffsets:[[119262,41751]]}},{type:"Feature",id:"110109",properties:{name:"门头沟区",cp:[115.8,39.9957],childNum:1},geometry:{type:"Polygon",coordinates:["@@V@XMnGPY²‰JQNEhH\\AZMPDVTTDZCPiJkHSHCjIdFtEHITCNITQEKUAMCEIKCECABYESKFWAKBEIIHABGDCKCAIHMHALKEI\\CFIBILIJQZS]BBEECS@E@@C]COKI@CABAAEEDMGƒCH]A[M@CJWH—JaUMRFRBDTITLUJ@PFJKLOVST@FSLENgKGFSCaCmF_ESQiOSFOT[HYPu@IH‹_[IoE_[]GUC[USB__CYQI@Gakg@qZeHQNMNV\\FVLPgJAFJPRLCH[XcPELUT[JiV_EELFTADBXRTRLJC@fHXHHbPd`fR@NfT`@TLplHMpCEJHJBVLFŽ@JT‚VnG^KXDXHNVGRLRXFJVdDHSNWLGfEzA"],encodeOffsets:[[118635,41113]]}},{type:"Feature",id:"110114",properties:{name:"昌平区",cp:[116.1777,40.2134],childNum:1},geometry:{type:"Polygon",coordinates:["@@VNLJI\\JPPDYPFVQDCJZRNEVNhKXgR@^P@NLRbB\\Mh@XcVARJE`RTCNFV€XRCjPPLNA@GZKbJJHXB\\MNPjLdGbWnK\\]NGHSFEXATIdCJGPARUWUHCPWRELITAHKv_E@iYCaW_BQ\\Y@QIO@QDCIGZCEMWGFMFAFgHEDOCSqKCCFGAMKEAC@ODGCGs@WH@KQA@EE@CE@GEA@EH@GGUEEJEAYD@JM@@DAA@FHD@FTJEHUC@JUBKCKG@G[CIIQReAYhO@OXGDO@@FF@IHJFCPEBACBIAAKDOABXARHPNEHGbQAAKQFGIAM[C@WHKaGiCEGOA‹HUKCIokSCUSOCYN[BgGMFIR±ŠOZmHWNU@ShbbXDHVXXGJ^lZ@PZ\\Nb@\\FHJAD"],encodeOffsets:[[118750,41232]]}},{type:"Feature",id:"110115",properties:{name:"大兴区",cp:[116.4716,39.6352],childNum:1},geometry:{type:"Polygon",coordinates:["@@F\\E~DFN@BDFEpHFCHBBEGCDCJBHUDSBB@ELCPbF@B\\J@BJVAFJ\\ADKTCBGECFMT@BMN@@FH@DaNBEnvB@FPBATK@FHEFIAKFBFL@@PKBFJHC@FXBRAFCDMPDTOL@JIVFDHH@DDH@BGRFCDLD@N^@@CNA@KNOAEBCECFEGCFGMGFIPMOEJOLBADBBHGG@GCHIECY@INC@DMGS\\AIOZAAEYA@GT@KKMBEETCGMVINFxA@MJADB@FlA@HJA@NND@DFA@DVAZBBOFKH_JA@K^GBC@EFE„G@gAENMXKJigC@IbSJMqGOP£RGSMGE@kbQFDPEFiBSGGSBK]I{CDWCIDOic[C_G@SuSO@EWKCO@MNY@\\uZOPENQD[LKESSKGBKEG@EJGAGHoH¥CqhifeJkX_XFFGHFNEDFPENKHM^IFIVL^S`DVEnNnG`RTCJHH@R^XFXGVPP"],encodeOffsets:[[119042,40704]]}},{type:"Feature",id:"110113",properties:{name:"顺义区",cp:[116.7242,40.1619],childNum:1},geometry:{type:"Polygon",coordinates:["@@EhEBENXHFNYDJHCD@RJP@R[ZARX`DbjZF@bHXT`Jb@dIFMTGDSfAJVbGnJVM@OKELYPERVXRflXTT@NIfC\\NJRhCVEHFJXNT^DTeZEHYCOhuAMJELOdAVPTMOWBWNMNEJgl]@WGUFIC[T{EEDEHGCIGMI@SECUQI[D{A{GQESPUH]CsiMCmHUeoHENcAaDGCMDGMQCACCBaCGLMAHB@DIEQLOAAEEJ@CW@CDINGAAGKQOCgV@LG@BEGDKNeREFBNCFIDOPKD[@YRW@GFWDAFE@EHDDrLDTCPGF","@@KrJEH[\\B@FF@CHFBHUN‹AJKADGECBCMAG^E@EbI@BEGP"],encodeOffsets:[[119283,41084],[119377,41046]]}},{type:"Feature",id:"110117",properties:{name:"平谷区",cp:[117.1706,40.2052],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZJZRafFLjn€VGNJ@LLBdXX\\T^EDMJ@”nZKLBjPPJ@HbA\\H`DbERHLCFK^BZaFWXQLAGMHa\\OLO@SBIpBdCLƒVQfElO@GSAKEDQTC@GEBKG@ORIJBDAPDFA@CaOq@GGQAAEJK@KMUGAAGEAa@MGMBGCGSIIW@WSUCMDOJeWOM@IUF{WMWaDIMgIoRoCOKeEOEAG_I[cg@wLIFENQFDVTFJ@HNDJGHCFFFS|D\\EJHV@Xk^IhMFMNAXPX"],encodeOffsets:[[119748,41190]]}},{type:"Feature",id:"110112",properties:{name:"通州区",cp:[116.7297,39.8131],childNum:1},geometry:{type:"Polygon",coordinates:["@@FDAJTGDNDCTDDEDBBE@DT@@EHCDGJ@EIZ@@FDBR@ATFBBVFFE@@HNA\\VE@CLIFNJFNJBCP]A@LJFA@HJEDD\\C@DBCHLAEPF@@DH@APHAERDF\\GIxDTM@CFLBBFJ@CNUPMHECGDBF]BMFPDLRBHHBJMDCX@@DFIBFPBRKJF@CGANBHKbDDABDRDHNNCHDbCdBFMpGHiOYMefKJMC}HWAUNW\\NNBNA„kNU|]HMTMN@MZBLFFF@RIRUT‘BMFIEGaAGGAOIIUGTSFcYKS@MSLYPKRUBU]EWDOI]CKGASgW@MTWKIMCS@uMAKKADMECGAKVUTSDy@IjWLMNBF@hƒHEF@FAD]H@LIBG`ELAPYAUB@CEB@CMC@MIB@GkB@ECAIB@NwBMEUJHNSDFFNALLS@@HZBBFYBJP[BHTCND@JMZ@FDGJHDH@GHAABCKAIPPFONEJNHEHHDEFFDADBFMP@L"],encodeOffsets:[[119329,40782]]}},{type:"Feature",id:"110105",properties:{name:"朝阳区",cp:[116.4977,39.949],childNum:2},geometry:{type:"MultiPolygon",coordinates:[["@@bFGHBHFBFIVFHHG@@FFB@HDFF@@FRB@LXGt@DHCH@PBDLFBNF@BEXCHEX@ZQ\\@LCPOJCDEAMFEfQLMHCAFH@@KhUNE^AAEHCFDNGVODMI@AEKADEN@CSJw[HCEFQGBBOG@@CE@FOKBDGCAD@C[FCGIB@IE@K^BDOIAEMMIJEDKF@[UMB@GF@EEAUEABSQ@CA@EY@FJI@CHGD@FS@@CAFCACFSCCDCMSHBIECMB@D]@@MKCDCQEAHG@CCG@CGUEIJK@SPOCCNEDQBDNDB@DJCDLFCBBALJB@BVGPBKVO@KHCCCD@FE@BNA@FNCTDDJA@FGB@NBDW@CL@hT@@ZHHQDDDAFSAANBC@HG@EFS@@DE@@PCB@Ue@CADNJB@FCBWA@LI^ix@FIHrH"],["@@HUN‹AJKADGECBCMAG^E@EbI@BEGPKrJEH[\\B@FF@CHFB"]],encodeOffsets:[[[119169,40992]],[[119398,41063]]]}},{type:"Feature",id:"110108",properties:{name:"海淀区",cp:[116.2202,40.0239],childNum:1},geometry:{type:"Polygon",coordinates:["@@plDJVLŒGPBFHjDbHGL@X\\DBNHJREBLRBHaFGŽMGOBQAWPBLCBBAJBDFADOIEJGE@@EP@HCPWP@ZgfBRQJJ\\D@HLHLDVA@IVDFGSI@EGC@EBB@CN@@IZCAGHGaEqGJG@EjwJ]@K@GSA@e_I@NE@CA@Kg@KC@ENCFƒAKQAW@WIMK@V‹@I@@F@^EDFB@HcIaDYCBRRDCHD@EFLN@FE@CJUPEJOJMTBPEDIFCMIAKNOGMRFJNDVBFLSRMJSDGJsFcEiJGDGTIlOjYD"],encodeOffsets:[[118834,41050]]}},{type:"Feature",id:"110106",properties:{name:"丰台区",cp:[116.2683,39.8309],childNum:1},geometry:{type:"Polygon",coordinates:["@@hMN@NFTQCFRCBJFA@HJ@@HJ@HJ\\FTACDŒ@@UNLXJX@@MA@@IECAQlDFEHBDI~D@GXCFMVDFCH@@NF@ANJC@FnAB@AMF@@EDCDDLGP@LUOAUH@AIABKAAEDCKID@CCACMWA@EGDEILA@OK@AELEJBFEEGL@BSOA@EuAFmMACbG@@EM@ANS@ENFDAHSDCL[BEIUBAII@A[E@OaKD@FAACTGVIACDHDAFGAEDoGEFACM@i€g@@QFCMKMU@]SCoBGSMQ‰DEXXDWPO@MKYGM^AdJJA\\cNB\\G^„DNHFCBFABDBJ@PL^D@DF@T@FDAF^A"],encodeOffsets:[[118958,40846]]}},{type:"Feature",id:"110107",properties:{name:"石景山区",cp:[116.1887,39.9346],childNum:1},geometry:{type:"Polygon",coordinates:["@@NQPHLMJBDNJEFCAONSPIFIVODIF@@EKMFEC@DGQCAQZDbCdJ@GEAFC@]@EJ@DCSB[EGII@@GI@@GEBAIQDDESRMEM@gNYTIRKJAJEJ[DFJKLGBGNBJLDCDAHGBJJAFBLEXTLZFBAFDLD"],encodeOffsets:[[118940,40953]]}},{type:"Feature",id:"110102",properties:{name:"西城区",cp:[116.3631,39.9353],childNum:1},geometry:{type:"Polygon",coordinates:["@@XBDA@EIACM@IJAD]BC@SFABISAD]H@@OAEDQEW@BLE„MD@FLDh@@LDBF@@M`J@fTB@H"],encodeOffsets:[[119175,40932]]}},{type:"Feature",id:"110101",properties:{name:"东城区",cp:[116.418,39.9367],childNum:1},geometry:{type:"Polygon",coordinates:["@@DBf@@VDA@OF@@CT@FEH@@GADBMTBBECCRCGG@YS@@gDK@A‘C@PG@C^TBAJEB@TADC^IB@J"],encodeOffsets:[[119182,40921]]}},{type:"Feature",id:"110104",properties:{name:"宣武区",cp:[116.3603,39.8852],childNum:1},geometry:{type:"Polygon",coordinates:["@@RBX@RFFCŽBFU@aK@WA}CCJGAEFkCBRFD@JB@@N"],encodeOffsets:[[119118,40855]]}},{type:"Feature",id:"110103",properties:{name:"崇文区",cp:[116.4166,39.8811],childNum:1},geometry:{type:"Polygon",coordinates:["@@XBL@@bEV’D@BX@AC@MHA@EIBCCDSEMmB@EIDBME@@MG@EDUCENWD@H"],encodeOffsets:[[119175,40829]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/china_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"xin_jiang",properties:{name:"新疆",cp:[84.9023,41.748],childNum:18},geometry:{type:"Polygon",coordinates:["@@@›ρȁôƧƦóəʵסʵóƪԫʵѵͩƧͩړ›υࡓɛʵ@ȃ@óᇑѵƨɝɚôóНѺͩɜ̏ԭʵôƧɞñ@υƩ—݇ȂóƩƧ@ѵȂυœƥŌਗ—॥ɛóʵѵƧѹ˜݇̍ࢯ˜əɞυ˜ρͩ̏óਙƨƧŋôōóš̍ͩóʵן›óŋړͪƧѶ@ɜԭ—ԫƦɛȄ̍›ɝȄöςƩȂ̏œñȀ̏œƩóóŎə˜@Ő̎@ɞȀɝŎôƨóנѵȄƧ@óŏɝœóɜôŎ̍ͨςŎ@ƨóôƨɞ݈ʶóƨφó̎Ȁƨ̍ԮòѸԮמ@ѺȀ@ƪၬֆòȂñ̐òȂɜ˜óƨ̒Ŏ̑߼@φρȀ@Ő๐ς̎Ƨφ@ɝφڔ೦Ԯǿࢰ@ƦŏԮƨƨȄƧ۬ɜʶڔŐɚɚóŐôƨ߼˜ôƧƧó̐ƥóŏѺǿƦȁφƧς˜ƨƧ̒@ɜƥƦυ̐ɛƪͩƩəƪʷ̑ə@ȃƨʵנŋྸōਚԭԪ—@ɝƨŋ̒օςʵôƧ"],encodeOffsets:[[98730,43786]]}},{type:"Feature",id:"xi_zang",properties:{name:"西藏",cp:[88.7695,31.6846],childNum:7},geometry:{type:"Polygon",coordinates:["@@ôŌנœôʶ̎ͪô™óŎƨŌਚƧ̐ôςͪφ—ɚɝࢰ—݈̎Ѻ—Ѷƨôʶ०ɜਘ˜Ʀŋφ›Ѷȁ̍—ôŏɚŋ@̑ə—@ŏò̍ɜ›óƥôʷƧ̍φѹԪ̍ע@Ѹʷɜ@ôñנ@Ѷɛɞô̐ŏѶƨѸƧƥōƦœôŏô—@ƧôƩ̒ŋƨŌƦǿô̎ɜȁ̒—óʶѶôôО̒›ςƥɜНφσɛȁ̎υƨఱƧŏ@ʵƥœ@ŌóóóͩƨƧóŋ̑õóɞóɝԩͪɝρôƧ̍ƧѹͨڑŎ̑ōóƧࢭͩ̏ѵɝóఱóóԪυô@̒ƥŌ̏Ƨ̑Ȅ݇ŎƧ›ѵӏ@ɛõŏɛȄôӒƧŌѵǿɝ˜Ƨŋԫ@̏ʴƥ@óǿ̑Ȁóǿ̍ςóóυô@ʶɛñρƦƩŐó̎óœѵó̑ͪࢯОóɜן˜Ƨ̏ƥȄ߻̎̏̐ןŎɝɜöɞƩȀôöɛȀóͪ̐ƨƪ̍̎ȂƥԪυО@φɞ˜ôƪ"],encodeOffsets:[[80911,35146]]}},{type:"Feature",id:"nei_meng_gu",properties:{name:"内蒙古",cp:[117.5977,44.3408],childNum:12},geometry:{type:"Polygon",coordinates:["@@ኊȁ૊ö߼ƩɜɛנñԮɛѶóԮô@ȁѸóמ̎ගѺၬ@߼ʶԮӒ߼̎@ŐѹӒ̒Ԫƨöග̑ѶȄ̒ς।œѶɚöɞɜʴڔôôȂ̎—ѺȀς—ƨ˜ƪóԪ—ɜôɛОਕڔԭ˜ѵ̍ѹȂԫ›ɛƥ̍Ȃóɜ̎ô@ʶ݊ੲࢮʵږͪנƨôȂƧ˜̐ͪ@ŐƦƨφԬѶɜôƦ@ŐƧôôƦəŐ̏›@ŐڒѶԬô̐ʳԩНςōôŏɞ@ƨȂѶəóƧ̒ػ̎ó̐Őנóƨô̒@ƨɚɚ@עԫɛɛ@ȁυͩƥʳòևρ—̑ࡗƧͪ༃ॣԮփ̎Ʀ@ôô@ôō@š@ȁѵóƨ̍υȃóʵɛƨƥóυȂóəƪ›̐ρƧͩɜԭڔȄ̎عƧȁ̐ŏó̍ɛ›ƥƧ̑óρŐ@Ƨ̏˜ɝəɛ˜߻ͩ̍ͩɝО̍ƪƧóóӓƨóƧʳ݇@ɝςƪœ@ʴƩ—ƧƦôƨɛȄə›Ƨŋυ›óͩѵ@ɝǿóŌן̍ɛ˜óО̍œ̑̏ôȁ̍ŏòȁñóƦͩ@ǿə@ɛƧ̑˜ρȁυô̍օѹœóȃə™@ȂσʵѷƪòƩ̍—ôó߻ۯôʳƧ™óšõʵѵóѹɜ̍ȂѹôɛŌφֈƩͨρóυӑóޟఱ̑݇ͪóƪƨŌóȄڔԬƩςםñ̑ȃѵŐԭŏƨȁɛǿρôõɚɛóƧОə@ѹ̐ѵöԪͨôͪɛ̒ןŏƧƥóôƥƧɛŌôóɝó@̒݇Ӓ̒Ō@Ŏԭࢰ"],encodeOffsets:[[99540,43830]]}},{type:"Feature",id:"qing_hai",properties:{name:"青海",cp:[96.2402,35.4199],childNum:8},geometry:{type:"Polygon",coordinates:["@@ƨ@ôƪ݈ȁƪ˜@φɝòóƨԮʶɛ̐ѹͪôОəóƧɞᇒѶ@ôږô@ǿѶ›ƪȁςœɜͩφ˜ςŋɞôѶɛƨŌɞ—@ɚςŐñԪॢͩƨȂɞóƨŐ̎ŏעӏ̎óƧƦôœ̒ȁɜ›ςͩ̒œɚɛƨôƨɝφɛóȁƨŋóóɚͩƨóóƩ@ƧəŋƦƩ̍@ƧƧôǿυ̑@ȁɞǿõŏρƥסɚƧóτԫɞœôƧƦ@ñȃòñƥóυôôѹѵ—@ŏ̏Ȅɝó@ȂəŌóəѹƦ@Ő̍Ōυ݈ԩŐƧóôƧ̑›ôʵɞƧ̑ѵôƩɞƧ̑œóНѵóôʵ̑˜ɛȂó̍ƥȀƧŋ̑Ōóƪ@ƨó˜óŐƥ›ƦŎѷƨѵƧ̏Őɝóѵɜן@óòɛ@ѷʸס@ԩ̎υѺƨ̎óʸôƦɛœñ̎@Őɚ˜@̒əŌóŐ̎˜"],encodeOffsets:[[91890,36945]]}},{type:"Feature",id:"si_chuan",properties:{name:"四川",cp:[102.9199,30.1904],childNum:21},geometry:{type:"Polygon",coordinates:["@@ô˜ôŋó̑Ԯ̒ɛОמͪƨōöͫ߼ƥôȃƨóóñôƧóƧôōڔŏƨŐ@Ŏô˜òƥѺŎ@ōɜóנ˜ôǿô›ƦôԮ̍ɜôɚ›Ƨ—ñɛɚȁ̍Ƨɛևυ@óóôŋρԭɝ@Ƨʸ̍ŏυɜƧƧóƧƨȁρ̍ƨȃɚ—ôʵφóô̑̏Ȃ̑ʵɜʵɞ@ƨʳסƩóŎə—óɜƧôƩƧρ˜óôôô@ŎƧƨƨƪѹ˜ó̍̍Ʃ@̏ѹНôޟ̍Ʃóƪυɝɛ—əƨôŎɛȀ@Ȃ@ñɝʶ@Ōρנ̏—õóɛͨƨȂѵОɛʵ@̏ƩŐó߼Ƨల̍φɜȂυτɛОρƦɝƨóƪ̒Ѷɝƨóʶ̒œóƨƨôԪŏφ݇̎ŋ@ŏѺƥôɚɚŋ@ȁɞô̐ȃ@ŐѶ˜óѺφóƦôñòòȄ"],encodeOffsets:[[104220,34336]]}},{type:"Feature",id:"hei_long_jiang",properties:{name:"黑龙江",cp:[128.1445,48.5156],childNum:13},geometry:{type:"Polygon",coordinates:["@@ᇔȂਚНƨŐѶŏöƥςŏñƧƦóƨȁ@óƨ—óȁφӑóóƨ˜óǿ̎̑ôНɞ—ó̑ɜə߼›̎ǿ̒ôڒӑφ@Ƨȁ̎̏ƥƩ̎ρశ˜ôȂςƨφ@נɞ݈˜̑ƥƧɛƨʵƧȃƥ@Ƨƥ@ŏ̑ԩôɝρρóɛƧ›ƩͩƧó߻ʸ̍ʷѹƥɞڕõ̍öɝυ—̍ȂƧ̐̑ŏóƨñŋѹóóȁ̍›̏Ԭõʸ̏ŏ@ǿ̍@ƧОυ@ñƨòȀƥŎ̑ŐѵóɛŌóȂԫōƧŎѹñ̍ʶóОן@Ƨ̎Ѷô@Ȃ@™óŎó@@ó̍ƥԭք༄।ƨͩ̒ࡘς˜ñֈƦʴφͪ@ȂɜɜסԬə@Ƨə̑@Ƨóןô̏ŏ̍ô̑ؼôƨѵɚƧȁɝ@óŐρŎԪО̏ʴ"],encodeOffsets:[[124380,54630]]}},{type:"Feature",id:"gan_su",properties:{name:"甘肃",cp:[95.7129,40.166],childNum:14},geometry:{type:"Polygon",coordinates:["@@ڔôԮࢯ@ō̑ŋ݈ӑ@̑ɞôóôɜŋƦƨôóƨƦנŐɜ̑óͩԩͧѶõѺ̏ɚ@ƨНɜôöəςóɜȀƧȂԮŐѶŏ̒ȄמòƪρړԫôȃƧŋôƩ݈ͩɚ@@ǿɜ@φͩóŏɜӑƧōôǿ̎›ôƥƪóõ›ö@ô—ƨ˜ôƧƦôó̒ɜ@ɞŌõʶ̏Ő@ȀóôƨȂ@ʶע@@ƥ୾ӑó̑óŋôʵóɛړ@@ƩöóƩóρ—ɛƨ̑@óʷƥƥ̎ɛƧ›ôōƧǿôͩѵôɝȃɞȁõƧρóó—@ōƧŏړŐóŎôƨóƨôòƧôóȄ߻ƦõͬƧŎםͩɜНԭ̑ô̒óŌó—ƥ@óƨɝ›σԬƨôעəςƦöŐɝȀ@Ȃφ̒óȀƨƨ̎@ƥƪɚŌ@ƨôƪƧôəͪôôƧŌôȂυɜƧɞƧóəɜ̑›ρͪɛœ̑Ȃó›ƨƥ̍ôסӐ̍ŐƧŏɝôƧȁॡͪòԩρŏ@əɝ˜ƧŋѵɜɝóρŌυ—ɛͪρ›ƩȂѵœ@Ȁڕó@ȄɜʶφࡔڔœƨͪѶͪԬʶôƩעʶɚʶƥôóƨςȂ"],encodeOffsets:[[98730,43740]]}},{type:"Feature",id:"yun_nan",properties:{name:"云南",cp:[101.8652,25.1807],childNum:16},geometry:{type:"Polygon",coordinates:["@@ôɞôɝ̒öôŌƧƨôͪôô@ŋƦ›@ʶƨŐô߻ƪŏ@̐ɜʶѶНƧȁɜͧöô̐˜ςן@ŋɞʵ@ò@ȁɜǿóōɚƧɜ˜φɞôƩ̎ƪóޠѺО@̐̎ƪô̎Ѻ—ƧƩƨƧ@ōóóôóς—ƪƨƨóôɛó̑ԭ—ƥŌɛǿɝƨɛͩô›@ǿƨȁѺŌɚɛ̍ןѶНɛƧôóƥȁƦͩôŎɞ—ƨ̑ɜ—òôφ@ƨʵ@ɛѹōóȃəƨυǿóʵρƧƧŌƩɛ̏ȄñƧƧȀɝ̍ԩʶƧ̑υ—óŌƥʳɚӑóНƥô̑›óӒѵʵѹœƧӐןôƪφõŌƪ̒ԫŌƧؼƨƨס›ρȁƧœƨȂóʶó@@ʴƨôôφ̎Ŏ@Ȁƨ—ƪɚƨœóƨôôôςóޤƧŌƩŋƧԪ"],encodeOffsets:[[100530,28800]]}},{type:"Feature",id:"guang_xi",properties:{name:"广西",cp:[108.2813,23.6426],childNum:14},geometry:{type:"Polygon",coordinates:["@@ƦŋѺ̎ڔʵƨŐ@ƦמȄƪôóȂɜŌɚͩɜ@öóɜôôȂƦôɜȁ@ɞφ›óȄ̎›ƨʶɞŋƨʴɚǿ̐̎Ԭ@ôñ@̏ƨ›ρ۫ô›ɚƨƨНƪŐ̎›ƥóƦʵƥŋ@ȃóƥƧ@@ŏɝǿôυƧȁѵɛ@əóŏ̑@@ə̍›óƧó—@ȁƩ˜ρóòНƥô@Ӓ̑@óŎ̍ƥσŎυ@̍ƨ@Ō̑ôóͪƨ̒óŌړœ̏Ŏ@ŌôȄѺŎ@ɜƧʶυ@ñóɛ˜Ƨ̒ɝ˜óōƥͪ"],encodeOffsets:[[107011,25335]]}},{type:"Feature",id:"hu_nan",properties:{name:"湖南",cp:[111.5332,27.3779],childNum:14},geometry:{type:"Polygon",coordinates:["@@@քɜОƨ@öŐמóƪôƩɚ̒Ő߼ȁςͩɜòƪ—ɜȀò—ñɝò—Ѻͪ@ŏƨŋóɝôǿƨ™ɚȃóəƨȃѵͩó̍@ȃƨóóƥƨƧ@ʵƦ›óͩɜ—ɛóñԭɛōυȂ̍ƧƦō@ɛƥ—ɛȀ̑œóʷóō̍œƩŏƧОəƧóœς۬Ƨœ@̐óòԫ@̏̍əȀƧʳɝŌóɞƧ˜ƨɜóŐƨò@ȄƧŌρŋóôԪОóʶ@̎óȄ"],encodeOffsets:[[111870,29161]]}},{type:"Feature",id:"shan_xi_1",properties:{name:"陕西",cp:[109.5996,35.6396],childNum:10},geometry:{type:"Polygon",coordinates:["@@ςôöƨɝȂɞȄѶóóͪƨȀóŎƨœ̍ɜƦƦôʸ̒@ɜƧς˜ƪôõô@ƪڔ@ôɜóʶôŌô̒୽Ӓ@Ʀ@Ѻ̎ɜѺɛѶôöʶô™ƨšóʴ߼۰óô̎˜ñƪѸƩτʶ@ȁòŋəѹóǿ̑ʵ@ȁ̒ʷυփô݉ôН̏ط@ȁƨóô̏ƪõ@ʳ̐ʵ@ɝɛŋƩŌɛóןôƧŋ̒ó@ŏ̐ƥ@ŏυ@ƧƧôן̏@ƥȂѹɜəœɛóԭ̎ƥóóœóȀן—ɛô@ŎѹōñƦ"],encodeOffsets:[[108001,33705]]}},{type:"Feature",id:"guang_dong",properties:{name:"广东",cp:[113.4668,22.8076],childNum:21},geometry:{type:"Polygon",coordinates:["@@@Ȃô˜ôƨ̎œ@ɚ̒@ôŐ@ɚѶɜƨȂóφɞȀ@Őƨ@ôƦ@ȄƦŌƥʶƦôôŎôʸ̒›ɜǿƦ˜@ɜƥŎ̎ƨφȁɜŎòƥԮŎƨōóŏɛƧɝəɞƧ߼ɜςȃñȄƦŎ̒ōôòƨəƨ˜ɚН@əƨ̏ƪʵυŌəɛóəԭŏəœóŏѹœρʵɝƦ̏™ƥʳѶ›öō̑óóŋρȀυƧƥɛѹōƧôן—ɛŏѵ@óŋôʵɝ›ƪԩõ@Ƨō̍@Ƨ@@ƦɝԮƪО@@","@@X¯aWĀ„@l"],encodeOffsets:[[112411,21916],[116325,22697]]}},{type:"Feature",id:"ji_lin",properties:{name:"吉林",cp:[126.4746,43.5938],childNum:9},geometry:{type:"Polygon",coordinates:["@@נ@ôН̎ʵѺòƨōԬŎôȁɜŋѶô̒ŏƦōñǿòƧφ@ƨН̎@@Ȁ̐Őöʷ̐ԫ̎œôȂѺôòŌôƧ̒Őƨ̏̎ȁφ˜@ŋƩͩםȃƨ—@ȁ̑ʶ@Ōóôɛœƥѹ̑—συ݇@ɜρƧȃࢯƨôœəȂɛōƩɛ̏υρóõœƪʴυφ@ʶôŌóœρք@ɜƧ@ɝǿƧͪρȀƩó̏ŐƨȂ̍غړȃɛԮƨͪ̏ςƩœôɚφȁƦôɜƧôʶφȄ"],encodeOffsets:[[126181,47341]]}},{type:"Feature",id:"he_bei",properties:{name:"河北",cp:[115.4004,37.9688],childNum:11},geometry:{type:"MultiPolygon",coordinates:[["@@Ʃ̒̏ŌѺ̒Ʃ˜óȄƧŌƥͪòôñȂ̎ŐóȂ̒̐̎›ôНɜ—נ̎ôŋɞȀѶ@ôͪφœƨŌɚœɜȃóƧƨƥƪ˜@ʳƩ›ɞρ݈@υНφʵɜ˜ƦρƨƧ̍ɝóɛѹ̍ρŏ̑ôóƨ@œƧƦôƨɛ@ƥƨ@ȂƦ@@ôəŐƧʶƨŌυœ̍̎ɛŋôōɝ@óƧ̍›ƦʵѵʳôʵɜŏςôƪŋƨŌɚ@ôНƥƧ@ōѸɛ̐ô̎ʵѵНԭ@̍̍Ƨò@ȁɝ@əρυͩƪ̏ƩõƧŎƧōóšॡȄɛʶɜȀ@ɞςѶƧœƥςɛŐ@ɚɜɜ@Ŏôôςœƪς"],["@@õə@Ƨɛ˜@ŐóƦφô"]],encodeOffsets:[[[117271,40455]],[[120061,41040]]]}},{type:"Feature",id:"hu_bei",properties:{name:"湖北",cp:[112.2363,31.1572],childNum:17},geometry:{type:"Polygon",coordinates:["@@ñȄυƦöŐƩ˜óנƨƨφ@@Ő̏Ʀ@Ő̑ôƨŌנóɜôƪŋɜŌѶօڔə݈òɞōɜŎôӏƦóƨô̒óôȃƨó̎ŐôƧƪ@ƨȁςƧə̑̎Н@̍Ƨŏρôԭͩԫ—̍ʵƧšóȀôɞƧŌ@Őѹͩñ˜òɞñ˜ɛǿƩ˜ɛñρͪ߻Ȃ̑ŏƪəƩóםôõŏƧ@ɛНƥȄó›̑ѺƧ›ôφóƨƨƦƪóɜŐôóòôƨóφ̐ƨóƦ̎"],encodeOffsets:[[112860,31905]]}},{type:"Feature",id:"gui_zhou",properties:{name:"贵州",cp:[106.6113,26.9385],childNum:9},geometry:{type:"Polygon",coordinates:["@@ɜȀƦŋԮ˜ô̒ɚ˜ôōעƪƧʴɝ@ɛʶ̒ʶ̐ȁƦœóȂô@ôŏ@ōô—ƨʶѸô@ʶƨ˜ɞó@ōτöòυƨ@@əƨô@ɛ̒@Ʀɜôȃ@̍ôʵԩНôóςŌƨŋ@ȃƧñôŏƧɛƨ—ôɝƧʵ̍œôȃυœ@ɝɛȂƥóóȁɛóõôɛ@əͪɛŋôȁƩóםȃ@ƥƧŏړʶѹ̍ƥŌƦȂóôɜƨѵО̎נəɜѹŋƧȂ@ȀóœɜͪɞƧ"],encodeOffsets:[[106651,27901]]}},{type:"Feature",id:"shan_dong",properties:{name:"山东",cp:[118.7402,36.4307],childNum:17},geometry:{type:"Polygon",coordinates:["@@Ʃ̐φͪɚςɞ@@Ȃƨñ̎̎Ԯ@ѶОƨƧڔ@φН̑ŋ@Ʃ̒ǿ̎@ƨɜԬςôʶ̐ʶöԫƨƧנƥɜŎôō̎@ôŏóρƧŏԫôóƧԩó@ƥɜƧԭóƨʵɛƨ߻ӑɜНԩ˜óô̑óƧʳə™óɛƧ@õȀƧœ̍ȃɛŐóŏυО̍—óɝƩ—ԩ@ƧɚԫȄɚʶƨ˜ɞʶԪ̐ړɛƪ̒"],encodeOffsets:[[118261,37036]]}},{type:"Feature",id:"jiang_xi",properties:{name:"江西",cp:[116.0156,27.29],childNum:11},geometry:{type:"Polygon",coordinates:["@@ƧȄôɚəȄ̎ʶԬ˜ԮͪςóƨŐƪ›τɞƦōƥƧ@ŏςôóŐôô̒ʷѶ—ƪƩƩǿ@ō̒ɛôυ@—Ƨȁѹɛəƨѹ̑ƨ̏óƥѵʷô̍ɛȁôŏɝǿƧԫƧ›ôʳƥōòȃρȄ߻ɛɝƨɞɚɜƨôŐƧŎԭōñƦòԮɜôɛ˜ôͪƥœ@ʶƧƨôƦƧô@Ȅô̎Ѷͪ"],encodeOffsets:[[117e3,29025]]}},{type:"Feature",id:"he_nan",properties:{name:"河南",cp:[113.4668,33.8818],childNum:17}, -geometry:{type:"Polygon",coordinates:["@@φ˜̎ƪ̐˜ɞȄɚ@@Ȃעó̎ŌѺ̒ôֆॢȃô™ƨŎƨōƪöƩ̑ڔɜԩ̏ɝʵƧ—əʵԬȃƨəԪ@@Ƨ̒ŏô̍υȁƧɚ̍ôóŋ@ɝƧŋõ̑σ—@ŏɜŋôɝ̒ƧɚôôطρóóɛƩ@óƨ̍ŏƧôóȄ̑ôƧóƥôóӐɛōɝŎ݇ñړɚѵֆ@ɞ̏ʶ@ʴƩöó̐"],encodeOffsets:[[113040,35416]]}},{type:"Feature",id:"liao_ning",properties:{name:"辽宁",cp:[122.3438,41.0889],childNum:14},geometry:{type:"Polygon",coordinates:["@@ƨʴƧôôӔƨô̎ƩɞН̎ͪ߼ͪɜ—ɞɚ̐—@ƨςŏ̒ôƦƨɜœô̎ƪôςǿƨͩɞȀƨ@@ɛςփô›óŋ@ʵφυƩʳö›॥փρѹס@əɛ@ͩࢯ@ѹʵρ—ƩʶφȀƧ݈̒۬óʸɝŎѵ@ԭԫןɛƧƨƥςɛ—υʶφО"],encodeOffsets:[[122131,42301]]}},{type:"Feature",id:"shan_xi_2",properties:{name:"山西",cp:[112.4121,37.6611],childNum:11},geometry:{type:"Polygon",coordinates:["@@ɚѺñŌɚšôȄѺ›̎ֆφóςȂ̒—ɜƨɚ@@Ȁƨŋôȃƪ—ѹ̑̐ŋƪ̑Ʃρρ›óó@ōɛɛ@əɜŏƦρƨ›ρѵ@ɝɛǿɜʵóօѹ̑̍ŋסô@ȁə@ɝȃ̏—̍Ʃυ—Ƨô@Ȃ̐ظóОó݊φք̑ʸ@Ȃ̒ʶôȀ"],encodeOffsets:[[113581,39645]]}},{type:"Feature",id:"an_hui",properties:{name:"安徽",cp:[117.2461,32.0361],childNum:17},geometry:{type:"Polygon",coordinates:["@@ó̎̑Ő@ƨƪ˜Ѷǿɜ̑φ—Ʀʵ̐˜Ƨѵôóƪôôυς—ƨȂɞŏ@̍ԫôò̑ƥ—óȃѶͩƧƥôŏѺœôŏƦ—@›ƥͩƧ—ôȁυó@̑ƧɛѵʵƩƪѵ˜̑ʸóóôŏρó@ŐƦƨƥŎσɝƩœ@̎̍Оɚ̒ρƨƧȂôɜςôóظəó̑ƨóɞɛŌ@Őτ˜ö̒ƨŌ@ɞôŌ̎óƨəφȂ"],encodeOffsets:[[119431,34741]]}},{type:"Feature",id:"fu_jian",properties:{name:"福建",cp:[118.3008,25.9277],childNum:9},geometry:{type:"Polygon",coordinates:["@@̎›óȁƨӑ̒—̎ɚƨͩφŐƨɝ̎ŋóŏρ—@ōƨ›òʳəóƨō̏˜õɛƧ@ƨѵƧōəŏóŋƧô̑ɝɛʳƥ@@óɛõ@Ƨ̑ƧóȁəƧ̑—Ƨ̐@ɚəОƧ—Ƨɚóñ̑ŎóʴƨœƨԬɞȀóŐɜȂó̎ѶʸôƦƧ̐Ѻ̒ɚƧѺɜƨȂ"],encodeOffsets:[[121321,28981]]}},{type:"Feature",id:"zhe_jiang",properties:{name:"浙江",cp:[120.498,29.0918],childNum:11},geometry:{type:"Polygon",coordinates:["@@Ѷʶƨɜ@̒φôóȂƨ˜Ʀͪ@œ̐˜Ѹ̍τȂ̒̑נŐמôƪƧôӑ̑›@ƥρͩƨօ̏@@υɝó@ŋɛ@ôƩəóƧѵυó@ƩɜŋƧ@̍ŌƧɞυŏƧͪ̍ə̑˜ƧӒôȂ̍œ@˜óφ̑ɜ@ŎƪȀ"],encodeOffsets:[[121051,30105]]}},{type:"Feature",id:"jiang_su",properties:{name:"江苏",cp:[120.0586,32.915],childNum:13},geometry:{type:"Polygon",coordinates:["@@ôɞ̎˜φНôŐɜŏ̎Ȅƨ›öǿƨ@ôɜɚšƨʴ̒ôôó@Ƨ̎əԮȃԪૉöͩ̐ƧòʵφƧôʵ@óړɜóŏɜǿƧ›ɝρσȁѷ̎̏—ƥ˜óŐѹ›óŐƨƦѵͪôȄƦ˜ñ̒Ԭó@̎ɝŐƧȁρ˜óφƩóóôƨѶ̏—ƥʶυ˜ɛ̒ѵȀ"],encodeOffsets:[[119161,35460]]}},{type:"Feature",id:"chong_qing",properties:{name:"重庆",cp:[107.7539,30.1904],childNum:40},geometry:{type:"Polygon",coordinates:["@@əȂòɜƨ˜ѺɛƦȁ̐@ƪ—õŏφƥòȃƥ̍Ƨôυ̏ƧôñóóôɛŏƩôƧƥôƧóυƨœ̒ѹôœƦȃ@փƥɛ̑@@ɜƧó@ɚƧ@ñφσõ@ŎɝôƧ—@ʵѷóƧʵó˜@ŎóŐó@ôȁƥ›ó̒υôóʶə˜ƧȄς̎ƧȂôƨƨƨφɛ̎Őƨʷɞ@ςԮóŌôôφ@ɜֈ̎ƨ"],encodeOffsets:[[111150,32446]]}},{type:"Feature",id:"ning_xia",properties:{name:"宁夏",cp:[105.9961,37.3096],childNum:5},geometry:{type:"Polygon",coordinates:["@@ల̒ôޠφӒςôƪͧυևɜŋѺó̎ȁ̍ɛ@ѹס@@ʵƧȁôó@ǿ̐ŏöʵɝŋɛ@ô̑ƥóóƨƧ—ó˜ôœó@ƩôóƦ̍œóȀƨŎɛӒôŐυͪɛ@@Ȁə@"],encodeOffsets:[[106831,38340]]}},{type:"Feature",id:"hai_nan",properties:{name:"海南",cp:[109.9512,19.2041],childNum:18},geometry:{type:"Polygon",coordinates:["@@φɜƦʶ̐ôφô̎@ƨŎö@τʵƦ˜ԩ۫õН̏óƥȃƧ@Ʃəםƨ̑Ʀ@ޤ"],encodeOffsets:[[111240,19846]]}},{type:"Feature",id:"tai_wan",properties:{name:"台湾",cp:[121.0254,23.5986],childNum:1},geometry:{type:"Polygon",coordinates:["@@ô—ƩɝöƧɝѵəޣ̏ρƩԭóōóͪρɞƧОôԪ݈ଦѶɜ̒ɛ"],encodeOffsets:[[124831,25650]]}},{type:"Feature",id:"bei_jing",properties:{name:"北京",cp:[116.4551,40.2539],childNum:19},geometry:{type:"Polygon",coordinates:["@@óóó›υóôƥ@ŏóóə@ƧŋƩŌρóɛŐóʶѶʴƥʶ̎œôƨɞ@óŎɜŌ̎̍φ›Ƨŋƨʵ"],encodeOffsets:[[120241,41176]]}},{type:"Feature",id:"tian_jin",properties:{name:"天津",cp:[117.4219,39.4189],childNum:18},geometry:{type:"Polygon",coordinates:["@@ôôɜ—@ƨöɚôœôôɚŏ@óƥ@@ȁƦƧɜ@óƧƨƥ@›ƧóəН̏óѷɜ@ŎƦƨóО"],encodeOffsets:[[119610,40545]]}},{type:"Feature",id:"shang_hai",properties:{name:"上海",cp:[121.4648,31.2891],childNum:19},geometry:{type:"Polygon",coordinates:["@@ɞςƨœɛȀôŐڔɛóυô̍ןŏ̑̒"],encodeOffsets:[[123840,31771]]}},{type:"Feature",id:"xiang_gang",properties:{name:"香港",cp:[114.2578,22.3242],childNum:1},geometry:{type:"Polygon",coordinates:["@@óɛƩ@ρ@óœôȀɚŎƨ@ö@@ōƨ@"],encodeOffsets:[[117361,22950]]}},{type:"Feature",id:"ao_men",properties:{name:"澳门",cp:[113.5547,22.1484],childNum:1},geometry:{type:"Polygon",coordinates:["@@X¯aWĀ„@l"],encodeOffsets:[[116325,22697]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/chong_qing_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"500242",properties:{name:"酉阳土家族苗族自治县",cp:[108.8196,28.8666],childNum:1},geometry:{type:"Polygon",coordinates:["@@XJ°œlJX@lbl@XbV@VLnJlxnbšƒUU@IVK@lVIVwnJlU@n@J@L@Jn@l_nWVLVln@@blLšmV@@xœÔ‚`nœ™xV‚ÈLlx„LVxVVšƒV_U»VWn_m¥XwVmnX°ƒlmUUVwÞaVƒk@a@mmIUa@™mwk@™ƒm@@U¯a@UV@@K™@ykkmwkV@kU@ƒÑƒVkKWLÅamaUm@kyU@WkU@Ua™IUašVaUUmUUa@aVLXKWa¯UUbmJXnWnX`l@@xkzWÆ@V„LU¦‚x@b@JkIkJ@LmbUamJwm@óxƒnk@V„@x„ŽVnUVmVUVŽUbVlUbkXWŽ"],encodeOffsets:[[110914,29695]]}},{type:"Feature",id:"500236",properties:{name:"奉节县",cp:[109.3909,30.9265],childNum:1},geometry:{type:"Polygon",coordinates:["@@WVXb‚UnK@x@b‚²kxmKkl¯_ƒVV°™VU@bnKVVV@@nkŽ@n›bn‚@š°@VLČUš@°WV@V™nU@InKVl@nU„b˜KnX„WlknLlKUwnalLša„VlUXmWk@UU@UWWIUyķ¹XaWW@X™ƒKUIVm„U@W@UVU@KV@n»VkUkÇmUmVIUmULUbm@ƒwUaƒKkkm¯ÑUL@bWVnx@VmxUI@„klmkkK@aƒK@IlJ@I¯ƒk@mak@mnkJVL@bV@Ub„„W`UUUV™I@VƒU@VVbUJVLUVVbUX„VVxk¦VJUnVxnVVUšJV@Ubl@@bXV@L"],encodeOffsets:[[111781,31658]]}},{type:"Feature",id:"500238",properties:{name:"巫溪县",cp:[109.3359,31.4813],childNum:1},geometry:{type:"Polygon",coordinates:["@@nLWbX‚VLVU„V@KšIVl@b„@lbšU„VnU@JÆU@V@n°KĢUl@VbÞKšVš@„_„V‚KXU‚U@KXƒ@wlkkU@mWKUU@UôJ@XV@œaVmÞIVaVLƒƒ@»kmƒ@ƒUkL™U@aU@WWƒLUUU™™KkbƒwWa@KU@kaƒXmW—LƒamVk@UmL@JmVUšU@¯X™@ċVUK¯@ÅnWK™LkKULWK@UXK@wW@™LkV@bVLƒlXn›`¯xU„°LnŽlV@n°Lnl"],encodeOffsets:[[111488,32361]]}},{type:"Feature",id:"500234",properties:{name:"开县",cp:[108.4131,31.2561],childNum:1},geometry:{type:"Polygon",coordinates:["@@n@na‚I„wš@@VVK„LVbVxnVÆUnanKWXamKmk¯K@mkUm¯KVƒ°w@Wm@UIUUlKUU@a¯KWanwmUXamKkUWUnU@KƒkUwWKXaWLUWkImaUUUƒƒKka±k@lƒ¯w™wmbUƒ™ƒkXm@UJkIW‚XXƒbƒmƒ„UJ™XUV@°šKlšlVXV@xmbnV@blV@VšœU`UL@V™a@bULlb°VXbܚ@V@bƒL@J„xnLVb@lVb@V@@z˜bXWšX„KVLV‚š@@bUVVL@b„„lVna@ll@„zl@@J"],encodeOffsets:[[111150,32434]]}},{type:"Feature",id:"500243",properties:{name:"彭水苗族土家族自治县",cp:[108.2043,29.3994],childNum:1},geometry:{type:"Polygon",coordinates:["@@„Jlb@nVV@bXb@ÆlL„Ul`nVKU¼VxkbW„nlUxlXX‚@°°WnnJ@VUn@J„k°L@VlV@nUJ„x@bVVVz@VnLla„KnalVlIUŽ„¼@nV@@anKUwVal@UlJœƒlI@akU@UWXKVI‚¯Uak@@KmkXWÜkXWykIWwXw@laXamkVUUym_XmlkkmmakwmIUKU@Wak@kaW@kI¯›WIk¦VŽƒUUƒmaUV@XkVUV±aUb¯b¯¥m@@ImJ—@mƒmL@kUKUkkJƒbV¦"],encodeOffsets:[[110408,29729]]}},{type:"Feature",id:"500235",properties:{name:"云阳县",cp:[108.8306,31.0089],childNum:1},geometry:{type:"Polygon",coordinates:["@@lb„LV„VVnblJVXXKWbXLVx„l@LmVXVVl‚nLWbnVmxXb°L@bVVkLVVVJn@@X‚‚œ_Wm„kUK@alUšKX@@xWL@VXLVKlLšKXLÆm@™mœa@ml@mU@UUmL@aVšUU¯„U°`lknLlw±@a@wmLVWaXU@KWU@ak@VaU@™IUVmUUwVmUIl¥UwƒUVWUaVUUKVIUa@UUUUJƒUUm™kƒ„nl@„@VWV@L¯aUb™Ulxƒ@@b@VULUx@VUxVV™U@bU@mxU„U@mUVŽklkkƒ@WxknlxK@amLƒKU„K"],encodeOffsets:[[111016,31742]]}},{type:"Feature",id:"500101",properties:{name:"万州区",cp:[108.3911,30.6958],childNum:1},geometry:{type:"Polygon",coordinates:["@@ĸĊVI„ƒ„n„aWWXlJVIn@lWš„V„našx°xk„l@²Ž‚LVƒ„LnK@b‚LkwlmXw„@lllkUnVV@VƒnwV@@ašVUUVw@UVwVK@U@a„@kwšVVa°b@KXU@U@ƒmk„ƒÇсaml™kUVmn@VULU˜m@kUVkUaƒwUWm@Uw¯„mKUUmVUUULUKU„W@XbWVkaWwkUU™ƒ™k@maUbmbVlk¦ƒxUVUIWVU„kJVVkL@UmJ™UUVU@lLUVU„lx„@@VbƒJ™U™L¯¤@Vƒ„"],encodeOffsets:[[110464,31551]]}},{type:"Feature",id:"500229",properties:{name:"城口县",cp:[108.7756,31.9098],childNum:1},geometry:{type:"Polygon",coordinates:["@@VK@w¯L@m@UÅV@ImVƒU™Vkaƒ@@aUk™J@LƒUUVUKmLmbÅVmUUwUaƒKUL@U™@ƒxJmbm@nVJ@X@VkV‚n™lƒLXx™@ƒb@bUVƒLU`UnƒbU@@ŽmVVX@JX@VLVVšklV—„‚`@bUL@V„LVKn@‚U@„UJkn@lmLmK@X@Jn@mb„nÞWVXnJ‚k„KČÑÆ@VK@knaÜmXlUČW°kôÇÆ@a@yÞ_VmƒUnU@K"],encodeOffsets:[[111893,32513]]}},{type:"Feature",id:"500116",properties:{name:"江津区",cp:[106.2158,28.9874],childNum:1},geometry:{type:"Polygon",coordinates:["@@„InWUUlU@LVašlX@°²lÒXxlK@Ul@@Un@UaVJ@I@W@UƒUUVUwVIUKUa‚UUVwn@Üx@XUlnn‚bœJ@¥VklKUUlk@ynU@kVƒUUVWnI@¥V£VWVIUKU@UVƒa@n@Vm@@nlUaVkUwƒJ@blLkLW@XWmXkmmLn™@m@U@UVm@™„UVUUlakUVa„ƒVkV@@wnaWUk@VwkƒlmVIkUUxmJ@U„™@KƒIkx±V@IUm@K@IUKkbWKUbn„m„@bmVnbmb@xkxUJ@ULW`@bX@WVXL@Vƒš¯„mk¯@UJ@VmLUaWnX@WJ@nkKkxW@UIV@@KkImmkK@UW@XaWIU@U‚ƒIkbWb„xXŽlLVbnV@bWlX@VxVLnl@nÆÞVÜ"],encodeOffsets:[[108585,30032]]}},{type:"Feature",id:"500240",properties:{name:"石柱土家族自治县",cp:[108.2813,30.1025],childNum:1},geometry:{type:"Polygon",coordinates:["@@„š@kl@š¼UbmVXJ@bV@nxVIVJULVVk@@LWbnJVU@bVbUJ@blLXnWV—@mbnV‚@V„„bn@VJVLnaVanbl@„šVšlVXxlbXUWaX@VƒUUVwUUVm@I@WmI@a„mlLœ™lK@alwnUV@kóVaƒÝk@UlbVK@™VU»VUUVWUƒ@U`ULkwm@@KmU@knKƒ»VkJkUmbƒLkbmK@UUyUU@aƒwm@@XXJ@VVLVVUbVnUJVX@K„„k`WXXJWXUbmW@bkL™Um`Xnƒb@JVL@LU@™°VVXKVnUxVLUbmJ"],encodeOffsets:[[110588,30769]]}},{type:"Feature",id:"500237",properties:{name:"巫山县",cp:[109.8853,31.1188],childNum:1},geometry:{type:"Polygon",coordinates:["@@kVƒU™bkKmbVxkLmKkllbV@@LXb„xlašLVšVV„KXXV@@bšVlK„V„@ln@¼°KXa„U@Ulw°JXalIUa„ÝWXW@kVU@ƒVUVWUUUamUw@aVamwn@VUUƒlLXWm£@wÇĉkKklmLUÒ¯ƒWn™@ğ±kwmaWm¼U@@LUV@V@XƒVUnVJ„LWš@‚XXWbĸºVzXJVXV@@VXlWn"],encodeOffsets:[[112399,31917]]}},{type:"Feature",id:"500102",properties:{name:"涪陵区",cp:[107.3364,29.6796],childNum:1},geometry:{type:"Polygon",coordinates:["@@nèVblĖVVnLšŽ„@šx‚V„n@nšJ@L„UVVX@lbUJV@@nn@VVVK@z„˜V@nzVJVUlmX@@_VVVbnaVal@@knW@wnaƒVK@aVI„J@£kUVW@‚wXUVJ„amƒ@Ikƒƒƒƒ_X¥ƒ@WwkKkwmŽ™šƒkUxƒnÅmm¥™WV@Um@UlVL@JU@@Xƒ@UVkKVk™KVk™Kkb@bmJVXU„VVUbU@@`W_UV¯b"],encodeOffsets:[[109508,30207]]}},{type:"Feature",id:"500230",properties:{name:"丰都县",cp:[107.8418,29.9048],childNum:1},geometry:{type:"Polygon",coordinates:["@@Þè@XUK@LlV@blbUJ@„„V@bnV‚@VVVXU@ƒlbXal@VXnKV@maXUރ@amk@aVKXV‚anbš£°mnIVaUKVwUmWLUUš¯V@@KUK@I„aWmn_šVlK@anXVaXWWIXWl_ƒƒ@LUWVIUmVaUUUK@UWI@Wn@VI@mkU@U¯Kƒl@ImVÅLƒwU¤óbUU@wWXkmm@LU@@VUIWVUL@JUnƒaƒx@Jn„ƒbUIWVx@ŽUXlV@¤ƒIUJ@bUL„Žmb@xmX@lk@UbmbUaUU@`W@kn"],encodeOffsets:[[110048,30713]]}},{type:"Feature",id:"500232",properties:{name:"武隆县",cp:[107.655,29.35],childNum:1},geometry:{type:"Polygon",coordinates:["@@l„„w„bVm@IVKXUVJ@UV@@KnnWlX@xVVôaV£„xÆKnUVm@UmIXm¯¯@WkWVwmkXƒlaUwV»ULmk_ƒVkK@ÅWa@aUU@mkaƒIƒb@‚n¼ƒnm‚_@mmK@UƒLUVVmI@aUJ@XWJ@U`UIkm±kk@@lULmUmKUnVšnlUVmI@VkVlx™bkIƒVmLUxkKUŽ‚Xš‚n¦Æn„mVw„lš™nlxlLXx„@W¦„`„„"],encodeOffsets:[[110262,30291]]}},{type:"Feature",id:"500119",properties:{name:"南川区",cp:[107.1716,29.1302],childNum:1},geometry:{type:"Polygon",coordinates:["@@VšUbVJVUn@VLX@WVXVVI@VUVWxU@mš@ĊX@@¼V°aVUX`@_V@VaUUVƒUWnI@alašLUlšLUllLVU„@@WV@@IUKVkn@@VlLVwnK„UlJšakwlU@UnJVUmkU™VmXa@wVK@UUw™@VƒVI@akƒ@alInwlKXUmaUW@wWLk™™KVak_ÇaUƒƒV@šXbƒLVxUlWIk@UK@V™@ƒkU@VbUVUlVnƒLUV@lVXmxkV@L@V@Vk@WbUwmL@JUI@xVxkx"],encodeOffsets:[[109463,29830]]}},{type:"Feature",id:"500241",properties:{name:"秀山土家族苗族自治县",cp:[109.0173,28.5205],childNum:1},geometry:{type:"Polygon",coordinates:["@@XlV@lzn@VŽnbÆbXKlL„U„ÒV@@llUnxll@zšŽ@LU@@V°b@Vn@š„l@VÑUƒnK@UšU@aUaƒkVm@K¯wƒklmnn„Ul`nI@almkIUwmWVkUaƒkkJmUUa@K@aU@@_m@@wUyVUUa@Umƒ@awl@Wka±„UkUykIWV™b@bUVk@›aU@UXU‚UIWakUWmUxUV@nUVWbšŽ@XXVVŽmXXŽ@VƒbVLkVWx"],encodeOffsets:[[111330,29183]]}},{type:"Feature",id:"500114",properties:{name:"黔江区",cp:[108.7207,29.4708],childNum:1},geometry:{type:"Polygon",coordinates:["@@VX@V@LV@VJUL@lVnnxlb@VXV‚XV@@W„@UIVK@kUKna@£VWUaVUUalIVJVIUW„_lm@bXKV@mn@J„UUw@KnIVll@VanLVmUkVKXLVKUIVamw@UaU_lw„KlwUWV_Ua@aUa@KUšwm›_›Ó@wU@™nkK@am@UkUKmXk`m@@I@K@I@mkVmIUxUJ@kUL@JVV™„lnklWnn`VzUVnlWbkb@WxXxlJXzWŽÛlWXnl@Ll@Vb°UJWLX@VlV@bkJ"],encodeOffsets:[[111106,30420]]}},{type:"Feature",id:"500117",properties:{name:"合川区",cp:[106.3257,30.108],childNum:1},geometry:{type:"Polygon",coordinates:["@@XKVXlK„ƒVL@UnV@aValXXK„U@WVwUaVU@IV@@aVW„L@U@anVV@@bVK@UVL@bnJWL@VnUnb˜@@JnIlVl‚@@bXIWbn@UKVLVKXLlaV@VVnK@bVL„m„IVƒ@KmknUUWVI@aVJ@_„WU_VmUwƒU@K™ƒVak@am¯mJU_UJUkU@WkIV`UI@JV@LmmU@@mƒbUzś™@„VK@nUKƒ„ƒb™akb@UWK@bkVVbV„Û@@`ƒXk@WŽ@n@lXL@bmb@VVJUn@JnUlnUlmX@`XLlbkJW@kzlb@`@b@b"],encodeOffsets:[[108529,31101]]}},{type:"Feature",id:"500222",properties:{name:"綦江县",cp:[106.6553,28.8171],childNum:1},geometry:{type:"Polygon",coordinates:["@@@¦‚@X„lVX@@UVKl„VUX@lanVlUVbXWVXVƒ„VVUnKVUlwUwU@UJ@nmVkUV™lwXam@VaUUUw@W@kk»mV@UmKkwVKVUU@@LUKVI@mV@XVWxnXVKUUUK@wWU@UUWnUlLXa‚mUI„am@wI@K@amIm‚UUkI@m‚akUkKWUUanƒ@wƒamLVxk@UVmUUL@Vm@kV@I@ak@@bWVXJlLVbVL@š@bn@@`Un„@WbUKULWVXbƒ@UVmbX„WVƒb@bVmxUKUƒV@šUn@V@V@nmšnKlnnWWXX@lKkK@a„IVxUlVb‚k@mn@@U@m„bVUV@VLUJUXU¤"],encodeOffsets:[[109137,29779]]}},{type:"Feature",id:"500233",properties:{name:"忠县",cp:[107.8967,30.3223],childNum:1},geometry:{type:"Polygon",coordinates:["@@VLÞĊ„U@Wš@¼V‚„@lk@w²mlšVUœ„llšVnI@VlKUUlIVƒXUVJVU„wl¥UkUKUIm@ƒaUƒ@mUna˜@XUWmkK@aVIUa@aUVmIXa@Kl@UUVKUIUJmwU@@aWInUVa™»k@@lƒ™¯n™¤mabWUUL@bnl@b݄WVnbU@mLUWk@Wbka@„WVUU@UmUmVkUULV„lVUx„l@L@VƒbÈÒlb"],encodeOffsets:[[110239,31146]]}},{type:"Feature",id:"500228",properties:{name:"梁平县",cp:[107.7429,30.6519],childNum:1},geometry:{type:"Polygon",coordinates:["@@XLV@VV@b°°nšƒnkb@bƒšnJWVXblIUVšxWnUJnVVLVU„JlUnLVK@UnUVJš²nKVbVKla@aXlJ„k„Klb„ƒ@U°£šKšV„IUa@ƒ@kwVƒVUkKV@VUkk›ƒUVk™±n@xklƒ@U@»™‚@XƒVÝĉUJnxWb@UX›KkVUbUKWUkVmkkLU`›b"],encodeOffsets:[[109980,31247]]}},{type:"Feature",id:"500113",properties:{name:"巴南区",cp:[106.7322,29.4214],childNum:1},geometry:{type:"Polygon",coordinates:["@@nxnVlJlUXLƒ¦@x@Vl@nKVVX@V_V@@KlVXU„@lKlxXIl@ÈĊ@Vl@n_VJlŽnVlnb„²VVVJVVmUUkĕUamçU@»W@@ĉn™V@XwVU@UUJWUXUW@UKm@UVUIVaU™UVmLUVƒUU„UWWXUakVmUkbW@UVkƒUL@VW@kUWƒ@mJUXVVU„@lmV@zklVVkLUl@¦›I"],encodeOffsets:[[108990,30061]]}},{type:"Feature",id:"500223",properties:{name:"潼南县",cp:[105.7764,30.1135],childNum:1},geometry:{type:"Polygon",coordinates:["@@@a@a@_kalyX@lIkaWK@_nWVkkmmV@IVmUI@Una@aWK@k@mkbWaknmJUk@mk@@kUal@Uaš@Wa@aXLlwUKlkkƒ@KmI@VUJ@Lk@@VUUmL@amJU£kKUaWakLmU@bVVUbnbWV@xkL@bUb‚xUxVbXJVbUVWIUVU@kLWxkKWV@n¯VUbU@@VVX@VmaUL@VUK@VVbn@lVnI‚@@lnLULm@Ub@Žl@na„@lK@XVVkJ@b@zl@@VnV@bVb@J@bnXV`lXXmVI@W@InbV@@aVKUblKVLUanLlmnLlK"],encodeOffsets:[[108529,31101]]}},{type:"Feature",id:"500118",properties:{name:"永川区",cp:[105.8643,29.2566],childNum:1},geometry:{type:"Polygon",coordinates:["@@@b܄nWVLX„lxV„VxXxlVn@@bVblK@a@UnLVJV@@UnLVU@VXaVKVXš@n`WUÿ@IUKlaUUUkWyUÛÅÝ@mmkUKUwW@Xk@amUUakKWƒwXaƒK@VVLklƒXVlkxV„UL@bm@Vxn`ƒIVxUVkLVšUšl@@lkXmmƒVUn@VV@Xb"],encodeOffsets:[[108192,30038]]}},{type:"Feature",id:"500231",properties:{name:"垫江县",cp:[107.4573,30.2454],childNum:1},geometry:{type:"Polygon",coordinates:["@@šĊ°¤nҘ¼œaV_lKnllUXVVLValUœLVW‚@XamwVIUKkaÇфa@U@KƒkVwkUUƒVKlVnU@aƒU@ƒVIka@akU@KVL@WÝçUV@Vmbů@L™KƒnnJW„ƒVkxlL@VX@VxmnXVWxUb@bkn"],encodeOffsets:[[109812,30961]]}},{type:"Feature",id:"500112",properties:{name:"渝北区",cp:[106.7212,29.8499],childNum:1},geometry:{type:"Polygon",coordinates:["@@@bVVXL‚a@lnbWn@L„@XVlK@VVLUVlbkLUKVVVL@VšnX‚VL@VV@UbVb@x@¦UxVb@bUJƒL@L„VVxlK@™nk@U@W„UVLlKXV„@VblU@UUKVU@wn@VJVanLlkX@VaVK™¯@a@U@U@ƒVaUK„kUUƒ±maUkm@UUkbm@@Vk@@JƒwU@Ub@I@JmwUL@aƒ@@KkVÇLkƒWkƒ@kUU@@xUVmKUnllUb"],encodeOffsets:[[109013,30381]]}},{type:"Feature",id:"500115",properties:{name:"长寿区",cp:[107.1606,29.9762],childNum:1},geometry:{type:"Polygon",coordinates:["@@VVšU„bX‚lX„¥l@XnVmlxUx„@@blVnnôĀlm@aVaXwWUnmUwW@@UkKlw„UXƒmI„mšL@Kưna@UUImyU@ƒ—@yULUUm@@mU@VIkaW@UUƒV@K™I@mƒmU™wƒ@™mKUnU‚UIƒlVLUb@„@V@V@bš°ULUbW@klmKUbUIm@@xUVVL"],encodeOffsets:[[109429,30747]]}},{type:"Feature",id:"500225",properties:{name:"大足县",cp:[105.7544,29.6136],childNum:1},geometry:{type:"Polygon",coordinates:["@@XUmaVaUU@anVlKXbValU@aV@@IXKš@@bV@VxVK@UXLlUšJXa@_‚@@aVK—ÅWVkwWaƒƒwUa@am@kUWLU@kWmX@ykI@W@UV@na@LlLV@UƒkwWƒUKmXX`mIVl@bXLWVkbkkƒx@`VXm@@J@U@UUKUxk@WbUIVl@VXLW„ƒJUkUlUImxXlmb@X@VUJUnVbšW@UV@@VVX@bnW@LVxUnlJUV@n„@VxVIn@l`„UVVVL"],encodeOffsets:[[108270,30578]]}},{type:"Feature",id:"500224",properties:{name:"铜梁县",cp:[106.0291,29.8059],childNum:1},geometry:{type:"Polygon",coordinates:["@@VblLV¤nI@bnKVV@Ul@@KVI@UnJ@Ll„klVLkxWK@bXb™@Vbk@Vb@ll@@nVlnIlmXblaXl@„W@_Ü@UƒUalU@aXL@Vlašb„a„ƒVL@mUL@ƒUUƒƒÇXUW›X_WaƒƒUƒ»m_™@UWULWb@UUVmK@VU@UImK@V@bkL„x‚„XblxXU˜ÆUL@b@@`Wb™IkVWK@VULUwU@@a™@WL@JU@@bkVUb"],encodeOffsets:[[108316,30527]]}},{type:"Feature",id:"500226",properties:{name:"荣昌县",cp:[105.5127,29.4708],childNum:1},geometry:{type:"Polygon",coordinates:["@@VI@U@WnaWknwVJVkVl„IXƒWK@UUkVJXal@VwVL@V@V@In@UW@_„wlllaXUWK@aUknJW_ۃ@aWaU@@UVm„UUaUImJVnÅUmVUm`kUUVWLnVU@VVmXƒK@„nxmŽULkx™ImJ@nU`@X@Vkn@`@nlV@nVJVaX„VLnK@bVV@nV@lbXWš@"],encodeOffsets:[[108012,30392]]}},{type:"Feature",id:"500227",properties:{name:"璧山县",cp:[106.2048,29.5807],childNum:1},geometry:{type:"Polygon",coordinates:["@@XzVlVVkbVL@JVĀXŽ‚¼V„„„XbW`XœWVȎ„„VVšŽVkV@@UXa@alK@IƒƒU@UKWUyUI@wVUUWVak@VUkƒW¹@WXI@yVIUK@kWwkѯ±W@™kUb@KkVVVmXƒJ"],encodeOffsets:[[108585,30032]]}},{type:"Feature",id:"500109",properties:{name:"北碚区",cp:[106.5674,29.8883],childNum:1},geometry:{type:"Polygon",coordinates:["@@X‚VLV@„„@JkL@bWb@VU@UlƜVy„a@nV@nn@KU@IVJU_lJXV@VlVIV`nIn°@b‚lUbš„„KVI@aUaVw@¥@wUaVaU@@UUKW™m@UUKUUVLlKkaVUUK@UkLWUƒ@@KXmma@kbWKUU@aUamLnÞ@VWLk@@Wm@ULU@@U™KUVWI"],encodeOffsets:[[108855,30449]]}},{type:"Feature",id:"500110",properties:{name:"万盛区",cp:[106.908,28.9325],childNum:1},geometry:{type:"Polygon",coordinates:["@@VIV@@wVJ@InKVxXal@@U@U@KlUnwUW@kVU„KUmVkUa@I@KW@@bk@@mƒU@m@k@a@aƒIUxmJk@ƒwULƒwkKmVVX@VXV@xVLVVULmWXwWUU@@nUJVL@KV@UVULlxnL@VnUl¼@l@XVxVVUbn@WbkxUšlVnU@m"],encodeOffsets:[[109452,29779]]}},{type:"Feature",id:"500107",properties:{name:"九龙坡区",cp:[106.3586,29.4049],childNum:1},geometry:{type:"Polygon",coordinates:["@@XK‚L@Vš@XbV@lW@UV@@VXIV@U™VKlL@KnnJ@VV@VU@I„@@mVUVWUUmL@V¯LUK@UV@UU@a@U@yU@WLUK@X@KUVmL@ƒ@aXI@w@ammVk@WÛwm@UxVVVbVLUJVxVU„V@V@X@JUIVbm@@Vk@@VkL@lVLUJ@zWJ@X"],encodeOffsets:[[108799,30241]]}},{type:"Feature",id:"500106",properties:{name:"沙坪坝区",cp:[106.3696,29.6191],childNum:1},geometry:{type:"Polygon",coordinates:["@@Xºl„UVl@UbVXUV@xVJVzXJVUšL@VV@VKn@@Xl@XK@UmÝnKVbVakkVm@k„ƒUK@UmIm@LkKULVšU@WJ@UU@@VkXU@Wa™@@UKWL"],encodeOffsets:[[108799,30241]]}},{type:"Feature",id:"500108",properties:{name:"南岸区",cp:[106.6663,29.5367],childNum:1},geometry:{type:"Polygon",coordinates:["@@VV„JVL@bUVVnl`XIlwXJlw°nnl‚IXW@UÇĉk@WJkwkLƒ@WVkU@LU@U`W@UXUV@n"],encodeOffsets:[[109092,30241]]}},{type:"Feature",id:"500105",properties:{name:"江北区",cp:[106.8311,29.6191],childNum:1},geometry:{type:"Polygon",coordinates:["@@nLVU@wV@lV„@Xll„ÈKlU@L„@@bVKnx@I@JVaV@„x@Il@@Un@laVVn@mkUIm`k@WXJmk¯mkxWIkxWJk_UmVUUKƒ@UU™@ƒ„@l"],encodeOffsets:[[109013,30319]]}},{type:"Feature",id:"500104",properties:{name:"大渡口区",cp:[106.4905,29.4214],childNum:1},geometry:{type:"Polygon",coordinates:["@@k@@U@w„¥WKkVkImUmwa@b@xWJ@b@„nKVU@L@WVLXKV@@z@V@bVVU@@VVL°K@U"],encodeOffsets:[[109080,30190]]}},{type:"Feature",id:"500111",properties:{name:"双桥区",cp:[105.7874,29.4928],childNum:1},geometry:{type:"Polygon",coordinates:["@@WwUwU@kK@KmbU@@V@XlJ@znWlXV@XK"],encodeOffsets:[[108372,30235]]}},{type:"Feature",id:"500103",properties:{name:"渝中区",cp:[106.5344,29.5477],childNum:1},geometry:{type:"Polygon",coordinates:["@@VLš@VV„@VL@aUKƒIUUƒ@@JUVU@"],encodeOffsets:[[109036,30257]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/fu_jian_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3507",properties:{name:"南平市",cp:[118.136,27.2845],childNum:10},geometry:{type:"Polygon",coordinates:["@@@knyƒk@ƒKU¥šwV@nkƒWƒzUmk@@lKUa@aVI@UƒKUamKUUVaUI‚@Xƒ@UV@K±IUVVlUbUbUL@KWUXmWk@KkXmmkŃKUƒ™a@amUƒbkUkKWUnwUƒÇwV™UUƒÝUKV£U™@ƒnKWwXLVKm¥@wUXkmWk@ƒ@wX@lU„@šyVImaXwVƒƒ@kŽƒnU@mbk@mlUXƒmU@mV@n@bnW@bUIWJ—ImVUKWbUK@nkKƒaU@W_VUUmWmL@UU@™bUWUL@V@bmVUz@`mUUVVbXL@V™L@lmLUxmVamXkW@xWbU„VbUxkU±@ÅUmmkLUbW@@`kLknVlV@lbXxlVUXVV™ŽU„U@UbWŽkIWVUUUJkI@llbUxVL@V™VƒUU°ULUmWXUV@VULWb@™xm@UaVLVKUa@ƒw@V›bkmVambUUm@@VkK@„@b„xlxX@‚„n¤@Xƒ@@lkLWV@Žn„V„kb@bWJXLWx@nkxmm™bXn@VWVUn@VnJ@bVXl@„™VJXnWbX`lL„UlJVI@Žœ@VXV@Vl@bn@@Æmn@VšxXU@mVIlxšVššnI„l@nVJ‚aXI@mlU@aXkVm°klmnVV_naš°@V@xܦXK„V‚nnUlVXbVK‚LXKV@naV@@VVl@@lXblXšWnLlbVK²nš@@‚VLUnlV@lƒXxô°‚V@UnaUUlKXLVUVVUbVVlUnJVX„@VW@an@lb„@nl@VU@anƒšUVW@kƒaUm@InVVKVU@kUW@Uam@km@kVa@a@™nwšU@WlI@mVI@WXaW_nƒ@™nƒlkkW@U‚¥@kV@Uw@wUƒ@@IXK‚¥VIn@nU@`@Xl@VV„LnašW‚bVaUwnU„@VIšKlV"],encodeOffsets:[[122119,28086]]}},{type:"Feature",id:"3504",properties:{name:"三明市",cp:[117.5317,26.3013],childNum:11},geometry:{type:"Polygon",coordinates:["@@lL@Un@VVna‚bnUlœa@U‚x@„VbULUKVbn@šw‚@XaVK@UVUXWVnVKV¯„VšU@UUKVwka@klJVIVVXUlJXVaV@VƒšUUVWkUWwkaU@UklmlK@_X@ValKnnÆV²@lVVwUaVƒXa@wlXnW‚bnUVwnK@kšK@UWKUaVUnV@_VynU@a@UVKVXšaV@@VnKnXVV‚UX`V@„blL@mVLXaVLnU˜JXIVJ@amX@a@mnUV@„nVWnkl@naV@„ml„@@KmKUam@UU@ƒ@UlKU™Vk™U™K@aVaUwV™U¥UIkJ@wmI@‚mbkwkVW@UXƒKULU`™IVKUa@LƒkkVmUU@WlULUWÅU@I@ƒWW™nU@@w@a@ƒUam_XyVIVWkkƒ@mwVKXUV@nw˜VXkWƒÅ™U@ƒaƒU¯KUnƒK@ƒ¯šmUƒLXŽVLnWVbVbUVm@Ub¯¼W@amƒ`kb™amLUUUƒ™aUXV`@x@XmJ@n@L@xkJUU@kU@mWm@kUUwUUVWl@VUkIƒy@kkaVUUm™IWVXbWxU@k„mVkK@nWVX¦WxU@@bkx@VU@WŽk@™kUbmJUUmkUW@_kKWKƒ@knV¤kIUKWLUbV‚@Wbk@@VWL@VkI@lUXVxUVU@@mWIƒV@a¯nUaƒaUV@„ƒJ™b@bÞ°VbUš@X™aUVmL@‚VXblŽnV„°˜n@Vnx„@VUUUlK@InJVb@„Vlnn@V™L@VWJU„x@XlJUVVVl@LUUUJ@Lƒ„@lUL°¦k˜V„VnV@„xV„„l@blLnlšLVaXll@šnVUn@‚xn@nml°‚X@lb"],encodeOffsets:[[119858,27754]]}},{type:"Feature",id:"3508",properties:{name:"龙岩市",cp:[116.8066,25.2026],childNum:7},geometry:{type:"Polygon",coordinates:["@@ša„I@ƒVU„bVb°m@b„UXJ@nV@VUUwVW@klJ@UXK@Ul@Xa‚@UVaXKVLlJU£lm„@XLlL@`VXnlVVnIVašll@XV@@Ulw@aV@XwW¥XU@mlLnUlƒV@XwWaXUšJVnUVlb@l„zlJUVk@UXVVVxlVn@nXV@@lVVlI@w@K@mnI@W@wU_VWšbV„VVnKšbla„_n‚bX@°»Van@VUUaUamXUKW„K@a@Ukƒ@wWkXƒWW@wUU™Kw@_lyƒwUkU@@Uƒ@kamVmƒXašUVUka@Wk@»UUUVƒKkbWU™VUbk@mkƒxkƒƒKnIVUmW@kUKmXUmVaU@kU@m@KUWVkIWJ@ŽU@UI@wUUUa@KW»nU@mVkUmm@XwWU@ƒUUmL@ƒw@mnƒVUU@aWak@@amxU@UxULWVXbVLU`mbUImVU„ƒbn‚V@@bVn@bnVWxLmyUbƒIUKƒ@aƒVm™akbV‚UXW„UlKWbkV@„WLUlk@@nšbƒb@lkKmU@ƒUIWJkw¯UUVVxm@@XkbWx—›XKƒlUzWJkUUL@bmKkVƒ@@VUIUlWV@X„K@VkbWx°xUb@LUbk@@VWb@LXJ@VWXU@@bUVV„VVn@VVlLn„@l„@‚xk¦Vx@bVJXbƒn@JlnXxV@@„nJ@X@V@lmx„bUn@xVL@VVKlL@l„„nLVaVL@xkl@LƒxVl°š„X„WVX„Vl„œJWnxlJ"],encodeOffsets:[[119194,26657]]}},{type:"Feature",id:"3509",properties:{name:"宁德市",cp:[119.6521,26.9824],childNum:9},geometry:{type:"Polygon",coordinates:["@@@LVKVaVaUkVU²J@LVU„@@W‚VJUbVVnLVb„L@VUJ@bVbkL@Žl@Vn„y„XmlU@™xV¦„L@Ž„lmz@lnL@bVVšbVb@l„nšKVk„Vl¤@zXV@šl@XJVLVKnXVK‚VnU@wUm@šKUƒ@UlVlw@U@U@ƒUaUKlU@kXKlmXIWKXaVIVUVK@KU@@k„JVUnLVJUL@V‚IVa@VnLšKUnl`Vb„V„V@š‚Vbn@Vzn@lKnVlI„VVKUalkXJl@XXVWVLVUUmVU@Unm„£lK@Uk@WUXK@U@WVwVkšƒĠkĢǰaUÅUwmaţƒɱUÇa™w„±V¹XalKôx„@„UVaÜʓͿVóbÅLƒJm„¯Vk¦ƒŽk@mamXkKUƒUL›akbk@mV@LkJWb@Vk„mXk@UVmaUV@amLUKUamI@KUaU@WbU@UUUƒUIWJUkm@šƒw™Kk„VJm@kxǁVƒUK@mUVUkmlkkVm@amwƒLVWU@UbVLkšUbƒ@VƒmK@XaVWU_VJnwV@@kUmWakxƒ@kwWakIWxnbUJ™zƒ@kVW@@x@„XllnVW@xn¦ULWKXxmL@„VšU¤VL„ÞVVUšÈxV„mxXVlLlV„anV@bšbV„„LlÆnnlW@LXlWnXV"],encodeOffsets:[[121816,27816]]}},{type:"Feature",id:"3501",properties:{name:"福州市",cp:[119.4543,25.9222],childNum:9},geometry:{type:"Polygon",coordinates:["@@lxna@nJ@xlIVJV¦UšVxUb@bšLšVUlVškL@V@„VVn@Vb‚Ln‚@LU„lJXblx„@lwXbVn@lU@mxUIV`UXWb@‚nLU„„@Val™UKVaV@UX„Knx‚bn@lUkllnUVnV‚@VLU„È‚lwn@UIlƒšL„x‚™n@VlXIVJV„VVV@XaV@Vb@LnJVbVLnK@bVUnbVUl@nWlƒ@UXalI@KnUl@laœbVKV„lLnWnbl@„l¥°Unƒ„IÆKôa΀U„a@UUwÇWǓIUWUÅVkƨm@ƒ@£@KmLU¤ULˣJ™kUƒVǟUUķ@ĉVƒKUk@Ѱwôǚç@īšé@Åţ¥mīÛkm¼Å@ƒVķVó°ō¦U°ƒn@bVJXVVL@bUŽƒakLmx@xmxXzW`XbWnXV@bWLÛ@™aƒ@ƒaXbWVkaÝwU@mlWKkLWWkLUKULW@kVmVUU݁UamV—¤›n@xUVUzkJV¦lJU„"],encodeOffsets:[[121253,26511]]}},{type:"Feature",id:"3506",properties:{name:"漳州市",cp:[117.5757,24.3732],childNum:10},geometry:{type:"Polygon",coordinates:["@@@bl@Xb@bVVUŽm„@n„x‚@nKVV@„XVWxn@VnUl@nmVX¼@LVbVV@xVJV@@XIlJXU‚V@Ln‚@lVV@UbVnnWVL@lnXUVmJ„Ll„„wnll@VašUXVla„LVUVV@¼Xl@lbUV™VWbn„nUlb„@@VV@„aVUšmlUašUny@kU@Wkk@WaUVk@@ammk@@U@UlU@aUa@wl@šmXLllnL‚U@anVnU@L@VVV@KlXnWVnVanUšw@w@wm›nÅ@wƒaUam@Uk„mUl@@a„a@U@¥škôK‚wȯ°w@ŻkwǕaK›ÑÛk@ĕōřċ£ĵƒUKW»kÅŻLU@Ulġw@¤Vz™VUbkKUbmLmlULU¼UxmbXl@bWVƒb@bUnV‚UšVbULU@@VkbVL@`U@WX@ŽXV@b°„@b¯š@¤@Xm@@b@`U„VVUL"],encodeOffsets:[[119712,24953]]}},{type:"Feature",id:"3505",properties:{name:"泉州市",cp:[118.3228,25.1147],childNum:9},geometry:{type:"Polygon",coordinates:["@@Vl„xkz@`‚xšLVV@xXXW„Xl@xl„@V@bnV°™@„„LVm°L„V„bV@ƚX„Wl—UmxU@WVULnx„@llUXUJWzn`Vb@„@b@xV@šmXX@„@JÆVVXVKXkV@nVlU„l@KVbULšJV_VK„LVWX@lUVƒkIU¥lIVyVU@wœm˜£nUVWU@aƒm@UmWw@UX@@am™VUn@@aUUlUVanaWUXWmUnkšK@VšUlVVUUwš@XLWWX™ma@knm‚bVb„VXbVL‚@XJlInlšL„w˜mXóšw@çV»ÇçŋaķƧóƅóKġ°nÅUķƑUÇW@—¯xǰöÆlV„n@llšaš@„Lšbƒ`™@™„VšXVƒVx@V@bULVJUk‚Ç@ƒ¼ƒXUKk@mmULkaWbk@ƒx@UkL@a@K@U@UmKmbU@kV@UmVUbUmmXkW@LUU@U@KmVmU@bVmKkkWK™nk@@xVb@bkV@V@Vl@nn@bl@VUXbl@XlV@@lmz™VVbkŽ™nUVƒb"],encodeOffsets:[[120398,25797]]}},{type:"Feature",id:"3503",properties:{name:"莆田市",cp:[119.0918,25.3455],childNum:2},geometry:{type:"Polygon",coordinates:["@@VbނVVnUlUX@VKVLlKXXlKXL‚‚nkV@ÞxlbXUWa„b„@šbÜ@XK@aWUXmWaX_Wynw@wnwlK„bV@aUKWUUI@a„mV¯Ŏ¥ô¯ĸU„UÆ@n»¯aƿé@ţ¯nĉĬÝK™óó@™ÑU¼@è™xWô—nƒx™KmkkJWI@UKWaƒUUaamn@lnbWšXXWK™@VxUVkU™V@U™LmlnVWXXVmbUbkVVV@bm@UVnš@bW@@VXx‚n@V„n@bV‚UX"],encodeOffsets:[[121388,26264]]}},{type:"Feature",id:"3502",properties:{name:"厦门市",cp:[118.1689,24.6478],childNum:1},geometry:{type:"Polygon",coordinates:["@@@VlUV@nanL@V@V@L@blK@V„wl@XalbVKnnl@VL„W„»È@lVUIVK@a@UUw„WUU™šƒš@„_™aƒK™@™bkkm@UƒkõŁxóL™l@¦@Vƒb@bk@VŽƒnVln@Vb„b@xmÆnœ@x@x™x"],encodeOffsets:[[120747,25465]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/gan_su_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6209",properties:{name:"酒泉市",cp:[96.2622,40.4517],childNum:8},geometry:{type:"Polygon",coordinates:["@@ÇnÅaĉ@ƒU¯¥›UŹ‚ƒ£™WUýUU±JkkUw‚yÞIČxĊĕĊ¯š¥ÆUkţ™UÅÓ±¼™IUx¯UƒÒƑ‚ݐŰƒKÝnğ°ÅU@Žƒ@Vn@þš¼¯šWnŎ°XLWlnVnbWnƒVXxmbƒa—bóUƒlǕUUa™IUmlU™ƒš¥™kƒ¥ĉwkkƒÝɛa@¯™™U¯°mVƒkVnKlƒōÑÇÑU@kl™UġŽkUŻnUW™@š¯ƒk»šmWV£UKnUƒmUw‚w@ƒUIVaX™šwm»Èmmwn¯ċ™¯LĉŽUƒJUalka±Va@U‚k@ƒÛф¯WmnUaɝ¤Ûmƒn¯m±x@wóxÛLġÒUx¯VƒÈ™JUbóz݃ÇKĉ¯ōlÝUŎWl¯nťbÝ@¯ǩLġmV@ƯĢkÆm™ĊkVťLɃmÝXó°@„ĢbVŽóVݦɱ@Ƨaġ„UV„ĠÇÈV¼UVţwmbJÇwˋa™XmǯKkkmŽƒbXšm¼V¼Ǭڲ¤ôŰÆƴô̐ŤǪnɆӨ¼ɆLÆłUĊšxŎƞȘǔˎǬǪnƨŮǬö°»šġ„„ÞÜÆĸÒĊ„ǀbƾèôÈ@¼¯þŤĸƧ°Vb@lÈĊ‚šʠń̐„ȘKǀŽֲॗţÿǕý@ʊǓƨóÆÑǖŃôw@΋ʈƆÅÈVVĊV„óĊÅ@ÞƒĬV@Þīš@°Ž„V@ĸ̃°XτƜĠ@ÈaÜ¥Őƅ‚™nğóĕVġUůƿŋ—ĕƒa±V—UťÇğÑ"],encodeOffsets:[[101892,40821]]}},{type:"Feature",id:"6207",properties:{name:"张掖市",cp:[99.7998,38.7433],childNum:9},geometry:{type:"Polygon",coordinates:["@@ÈÒŎÒk„mLUŽlŽU„¯nV°šš@°ɜb„ÞĠaÈ»ĸl‚š„LVUÈ@Ċ@ýUm„@@ÆVĠ¯Þm„LƯޏƒ„ѰVVwšJ²»ÆÔšVlŤÅV™¦ĉ°ĉĖċwÝJzVxll²IVVVþšX„¤źœV°¦„VĊ@ÆbÈmǔLĸĠ¯Ģaô¯ĸmÆÛUƒlÇĸk°XyĊUǔV„ǩnmV»ƒa@ýnK°n@l¥@»ż„Ċ¤m皃@£ČU@mƒmVkÞUƐ±²¹°‚ĠwÅƑŃU¯™›V¯aÈŁšƒÇ»™ġn_°xŎKlxœklx„@Þw‚„„@Æm²b‚DzLlkšWXať¯ĊaœÑšK±w@wƒUÅçV±Uk™@@„¯š¯xƒU™±±UU°ōxVxÅÔō°ó¯UÝ¦óbÝþƒ@ĉÈóUV‚Ux„„@VŽUVÝwÅÈǎóVkk¯JǐkmmL@„™KÇx@bkš™@U°ķ²ó`ƒš™šmn¯°ƒUwlÅkUƒ`™¦ɛô™Žķz@ŽÅnǰU¼¯KmVk²ƒJƒ¼ƏÞķôš¤ULƒ@mnğ`™šÇnUxÇ@Ûÿ™U@ƒƒkŻŽ@x@móJkŃ¥VŹĉóÒĉlċ°ķ„Uƽ܃@›x"],encodeOffsets:[[99720,40090]]}},{type:"Feature",id:"6230",properties:{name:"甘南藏族自治州",cp:[102.9199,34.6893],childNum:9},geometry:{type:"Polygon",coordinates:["@@ލš™nKlnšwX¥WÝXk˜xÞUnƒ°aĊVnUUKlÞĶWXnĠ¥ô»„™@nmVL@¤°™Vz„JšanU@aÆwna@k›ƒU¯šyX_›aĉb™ƒ„wƒéXkWwÅaš¯V¥mƒ¯UƒƒI@ƒš@„mšb°aÈçšUš¥@»‚knwɜƇ°I°ÑÈmVU™¯Xa@w‚W@wšV¯Č¥l¯Uwnm@k˜aUaóKkk@™Ça™b@ށÒWa¯IÇxÛam¼™VUƒxÒl‚@zÝÒ¯bÝaĉVĉwDށW›zJ™mJn²mܯUƒ¯ĉ@ġ¤Åb@²nšmlƒ@@Ž„„U„ƒLVxšV™„U¼Ålma™b@ƒ°™l@WIUƒ¯@mƒ™@™™ó„™„@U›zţyƒXÇU™ÇVUUVLkbWakVWmUbkkƒKUÆ»nƒ°Knk@aƒUVmšnk»l¯Ģ›lw@_kKVU@ƒnaƒ@lUk@¯¥mV@kmbW™b¯Åõa@mkU@kƒÇŽkU@›`@™óó—bl¼Uxƒn„¼šlVȄx@blVkVVnƒ`XÈġÈ@ǃK£ÝJmUUnUĖmlU„mKUn™VÅaUw›Uĉ`¯n¯wW¼nxVŽ™š@bĉnƒ‚kIċŘkXUŽ±Ò™xšÈ@ŽX°`l„œV˜IȯĊV„ƒšVVan@VašUVażVmšblkÈW„ƒWIXa„alL@wVb„„V„¦lL@lĠ™n҄U‚nk‚šL@ÆÞkšÞšK‚bñþW¦Û„ċVƒ„ULUºkÈlŎUxÆxÞUUxšÒ‚x„@XbšL@lÆ@„ÒlXVln@„bm¼ƒJ@„Ån„šƒx@bnšĠm„xVXmbÈè@ŽĊ£ČW˜w"],encodeOffsets:[[105210,36349]]}},{type:"Feature",id:"6206",properties:{name:"武威市",cp:[103.0188,38.1061],childNum:4},geometry:{type:"Polygon",coordinates:["@@±¯¥@klwU»ƒƒÞÝmwKm¯™™ç@™kVÇUL¯lVUKġ„ġm@a@U„@X£°l°LŎÇ@aōVÝw™ÔƒKUŽÅš„WJ¯lm@ÛVWa™@klĉUmaƒLUanaƒ™ƒk¯J„™™±KkXóÜÅxƒ²Ç‚@„„nUÒĊb°@™ÆkL™Ž™XÇÆ@xÝn—xWxţ„¯¤ƒI@Æn„ƒVV„VlU²Æè„V@x²x™L›ÒĉbŦ°Wb™Xklބš@l¤šXĊ`„wl@ĢÈŎm@bšnV‚Ubƒ„@șÆÛLƒèǚUÒŦlĸ™`°ĮʟÆǓbĉôϚĊƚĢnŤé΀ÑĸĀĊ¦„@@l°lœ¦Ȯ¦ɆÞĊKŤ™ĵĸů„»mفyġ™ķŭ@Çɱȭ¯mƧUĊķnŁŻ»UaU™˜ƛɞÝƨů"],encodeOffsets:[[106336,38543]]}},{type:"Feature",id:"6212",properties:{name:"陇南市",cp:[105.304,33.5632],childNum:9},geometry:{type:"Polygon",coordinates:["@@šÈÞ@l`UmVƒ¼œŽ‚@nnÆwVlnVVa„LVƒÈ_‚ÿރ@n„a„xÆ@„lš_š@VxnK@llLnxmÈŎJnbUxšI°Žl@n¦‚lÈIlmX¥„k°@šk‚J„k²é˜@klaUaVaU@@ÝnIWnmnx‚k„ºÞ„„aV™°„V@nw‚KšxôbÞ£šVšU„bšþšLn»mƒVw„IšJ°Ž@„nb@°°I„ġUkÇKVƒ™™@ů»lƒ„Lnmƒ£@anK@Ñ܍n@»mL@£™yk„UUmbUÞÝ@kyÇbó»™XUxƒWVzb±mÝbXaƒwUamL¯»@wUKVwm¯ĵJ°ÅUWVk„KVk°wÈVšVуlUšƒ¥škmVamknƒUw¯¯ƒbċ¥ÅKƒk™Kk„™VċVk£kKVw‚Ñ„a@kóyÛ¯ÇVk™ów›š—Xō¥Ç¼ów™Ž¯U±‚k„ƒ@x›IĉÒÅVmÈnšÜ@n°„bUbÝV‚ŽUnnJ¯Į@‚m¦nV܃@„„L°JXb‚Ñ@šaÈb@šllôLVb—b@lmnVxk°ċ¦U°™Ž@xX@xWbš°UVÇn¯Ò¯Jɛƈmxl@¼"],encodeOffsets:[[106527,34943]]}},{type:"Feature",id:"6210",properties:{name:"庆阳市",cp:[107.5342,36.2],childNum:8},geometry:{type:"Polygon",coordinates:["@@kw‚ĉ—»VamƒƒV¯wƒIóVkl¯™Km™Vō¯ÝWkL@bÝKō¦@Ž™„@š™Lx›@b@l™a@km@@l¯nm@UaÅ@ƒ„óWUXm¥™nƒw`@UUxķôǰğ¦@„VJš_n‚‚IVŽnalxkX„JWn¯šnVƒLšxl¤nnVbklVX@xnxmV@bUK@nm@@xƒV—°±aÅnƒŽkUWnUaƒx@m™n@ƒ¯LƒššmUĀlU@lV@blLUblxklkIÇx¯°‚UXbšaVŽUnšV@°‚LUlnbšX@`°nVmbnÆmV‚kLmK™¦UŽ@X„y@kl@U„°K@¼XbW„ƒš@b„WnLVa„VšƒVz@xlVČ¥lbUxލlV„U@nÆWôn²™VJlU„Ƨ„LnmÜLXa˜n@mœw@wlUlV²mšblwšVȃlLލ„±@lVnUlxnkma@mškšJ@kXV‚U@mn@š¼VXUƒVƒlLnmVbôaVnWV»ÈUl°È¯ÆIn›ÆU@kk»mKkÆġk¯@»mƒk—¯@óÇlÇ@—Vykkl™Uml¯Þ™@w"],encodeOffsets:[[111229,36383]]}},{type:"Feature",id:"6204",properties:{name:"白银市",cp:[104.8645,36.5076],childNum:6},geometry:{type:"Polygon",coordinates:["@@VKUȚl@šè°šnŽ‚LnxÝބ„V¼kx@l‚¦²°ĊóĠ„™Ċ»š@ÈxšaĊxlwÈVŤa@¯²aÇ£ƒJk£lƒnUÞ@°šô™@y„wl»lIX¥Ǫnw@ÑÞWla„ÅlL@ƒUwĉakƒl@ƒš¯mwna°J„V¯nUVÓÞÑm£²óWaUƒÇ@óÝUçV»ÈkkW@¯‚xV@XlK@wX@Vmm_@wÈݙKU¯ÇwVwÅK¯VƒkƒJ™™™XkWVaƒImޝUk„ÇlVšœĀV°mxóšk„@¼ó„WxĉÜU@Ub‚zÛJÇk@‚ÆnVlԙ@kŽ„x™ô@ĬWL¯ƒƒK@aÛImm™@ƒIUaƒ@™™UŽÇêU¤VÒÇx¯ÒV„šš™lk@Wbĉ¦UbkWV_‚y¯Lƒaó„kŽ@b@nmbkx„°"],encodeOffsets:[[106077,37885]]}},{type:"Feature",id:"6211",properties:{name:"定西市",cp:[104.5569,35.0848],childNum:7},geometry:{type:"Polygon",coordinates:["@@„a‚V²wVJV_@„LlanÅllŦçÜӚ_šlnƒWaôk„xUš„bmV@È°lèšnk°l¦„`@nnL‚@ÈlÜIyVaV@ĊÛXwôƒ@»lƒô™nwU¯›ÿU™Èklƒ°Vn„JUblXšWšš„I„l°U„ƒVƒš—@aVVVmnL@„lƒ„UUw‚mkƒš£„bV¥VUVwۂƒlaÇÝރmk£ƒLUy¯L@WlkKW_XaWƒ—mƒ„ġU@a™k™‚ƒakXkmVwmŹVƒU™b™WƒónmwnWW£„KÈnV¥ƒ¥„ƒÆ_k™lW„bU¯„V°aôbnaVwmaōInÇmwkK@kmLUw™@™`ƒkÅ@ƒwƒb@m݄ĀÇ`U„ƒKUbmUUkÅxmm@›„»nUVk_Ý@™Ç™¦™VÇè¯b™aƒn™@@„„JV„°Žn„U¦™°ÆbXxWl„êƒxš„ĊaœbW`™zV°œ„@lmbÅx@bmV™bƒI™`™¦@ÒUVUI@ƃL@bš¼@ššŽ@„šlmxnL„°ULƒŽƒÞğޛ°kLUŽƒL™°™xVŽ„n„KVƒl@šzX@"],encodeOffsets:[[106122,36794]]}},{type:"Feature",id:"6205",properties:{name:"天水市",cp:[105.6445,34.6289],childNum:6},geometry:{type:"Polygon",coordinates:["@@UyȍVƒVUnn@ƒVU„`UblzšJnk‚@Vb„KU„°l„wš„„W°„nkVŽ‚UÈlš£°V@n¥šV„kl™kU˜±U„ƒn™ƒlw¯UkwmKUlmkUmnkym@ō@U„mWÈU°l°anlJškUKlU„¯Èm@kmWV»kkÝLUWUx±b™@¯ma@ƒ¯™IƒJUxn„m¼™K™ýƒa™V™Uݤóa™wLmxU@¯ƒUšƒb݃ƒ¹lmwmnXŽmJ@ÞV@UbVbkblŽ—@±êƒlI™l¯@ƒlW¦knÇJkm¥k@¯™Jmbóa¯bƒUV°ƒakXlšÅ`ƒ„„¦U¦ÇmƒLX¤mXnxm‚„ôšXša„VźUnŽUxlnlW„bššl@bĢV„ƒ˜nX„WbX`lLXk@ްKVz„Kl¤„nÞ݂Èkb„‚܁"],encodeOffsets:[[108180,35984]]}},{type:"Feature",id:"6201",properties:{name:"兰州市",cp:[103.5901,36.3043],childNum:5},geometry:{type:"MultiPolygon",coordinates:[["@@lW²LššƒŽ°I„l„šmbVb„KnbĊVlkš@XbÜU@Žkn°‚XIƒÆ™V„LšÓÞxŎUlôƒ„b°KzU`lXVaĊ¥Xal@šk™™Uƒ°ÑÈwUтV£ÈéVšš„@Vb„Jš@nnÜJ@b„L°„XK@īšóƒwlš@kÓmUÅmK@mƒ_k¥l¯™mkçǯ@nUƒaV™ƒwólXbm„™k™`ÛÔťèkkmÆkbƒK@U`UI±xUƒbWlX„mbVbÅÒólkƒƒIWJkšƒ@ƒz—Kݼ™@™xUx󎃄¯LWb@ŽÅ҄„±¦U`nbťĀUšVb„LšŽ„U"],["@@ƒ¯lwna@mōȯK¯kW¤ƒ@@V@bĢñVLU‚°k"]],encodeOffsets:[[[105188,37649]],[[106077,37885]]]}},{type:"Feature",id:"6208",properties:{name:"平凉市",cp:[107.0728,35.321],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÆLUxÈxV°šLÇÞ@xn`Ü@X@nĊŽÆwnJmwUx‚aUkšw@V@w„aVmlLXÝl@X‚VĢmV°@nl@UUUWK@w„ÿVI²Òlmš@nÝĊýVV@nšJ°„„šUłm@kV¼nK›ĢȤôK„blnKllVk²aĠ¥È¯ĸóVw@V‚_„xšmn¦VWôX„ƒÆ@Vbn@°m@kn@@lšb@k‚aœ@‚wšK@™šƒ@UlKVaƒWX™W²¹lӄw@_°›n@@_lKōķW™@ŽmLUWƒn™»Û@›l_Ç`ƒÛmm°ÅbWb@š—VWbƒUUKDŽÅaġlmkUġlƒ»—Lƒl™Um¦@ޝU™¤ÇkVUml¯ƒƒX™ƒƒx¯kVƒƒLUa@ml™IkyVaƒ_UV@„mmUVU„ÇŽVzUxUVU¦ƒa™¤l„nVxƒVk„@ƒmKUnUU@b™˜U„ƒ„","@@@Žż@™mlkƒġk"],encodeOffsets:[[107877,36338],[108439,36265]]}},{type:"Feature",id:"6229",properties:{name:"临夏回族自治州",cp:[103.2715,35.5737],childNum:8},geometry:{type:"Polygon",coordinates:["@@š@ż»˜L„y„@l™XI„Jl„ôkÆÑUanaWƒXkW@™yk@U„ƒLƒmUšwš¯„KVlKœ¯Ġ݄݄VKƒ¯mKnw™k@ƒ™@™™»@a„K@ÅVJVU@њ¥š_Uy¯š@£UKmn@‚ƒšó¼ğ¦WmĵXݎkŽVLmVĉU¯bm„ÝV—wWlXÞW¦™xkmmL™šÝŽœ„±U@Vގ™š@„ÅÈW°X„ܼƨyUĮnŽWŽnXÝxUx°lVXJlôV"],encodeOffsets:[[105548,37075]]}},{type:"Feature",id:"6203",properties:{name:"金昌市",cp:[102.074,38.5126],childNum:2},geometry:{type:"Polygon",coordinates:["@@šĢȼ™„Çł°bœU°šV‚ƒń‚ÆǖŰnšÆ„ōĬǔaʠůĭš_kķÆ¥VÑș„çÜKšÅ@DŽƒVaU™m@aōnġÇk@ƒxĉ_™Wk£™@݃±KÈ±aÅnƒ@ƒÝxƒ@kw›lkwōL¯wm`"],encodeOffsets:[[103849,38970]]}},{type:"Feature",id:"6202",properties:{name:"嘉峪关市",cp:[98.1738,39.8035],childNum:1},geometry:{type:"Polygon",coordinates:["@@llĊx„¦šl™¦š„kVVnšJVbǖV„kôV˜a„bnaWw„UXmmamUXkWKō¯Xm°™™»ĉÇ@UVƒK™ķkǼğb"],encodeOffsets:[[100182,40664]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/guang_dong_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4418",properties:{name:"清远市",cp:[112.9175,24.3292],childNum:8},geometry:{type:"Polygon",coordinates:["@@lǯkÿƒaV¯™VaÈU„¥ÆÇ„Ilxšmnb‚Uœxl™„Uôl°kš„„Wl„š@ô™VwUanUl@„xVkšaX¥‚kU»„aš¯±@kka@ƒUwmUkwƒJk™˜„±k@ƒ™™L@ÝWUwV݃—xÇU¯ŽÇX@m™Åƒ@@yĉ£VmUwȗ»ÇšUn„lUnWU¯`Ukƒ@@„™x„Ž@bÇxX¼ƒVVš¯LšĀk‚ÝLƒ„¯@VŽƒĀ¯lnĊW¦kVÇôkUDŽUK@ţ™U@a™™ó܃UU»ƒ@™¦k@Vx„KVb„n‚š@„Æ™„l„@xšƒbWšnlU„lxÈlV„ȰƄ@¼™„@x„šWxœŎ‚V„šK°„š¥ššnƒÆkŎ@ÈÑm™„K@¥šk@™ô@„nôV"], -encodeOffsets:[[115707,25527]]}},{type:"Feature",id:"4402",properties:{name:"韶关市",cp:[113.7964,24.7028],childNum:8},geometry:{type:"Polygon",coordinates:["@@W™Xk±Ñ@ƒUw™mUwĉwlmn@Æwn£mkIš¥ÇÅ@¥šaƒón£nWWwš£V`Þ@šnVml@xô¼„IV¥ƒkUmkamUkVWwÛ»móƒ£UVÅKmn@x™@kbmm¯a™Xka›VĉaUb݃ƒ²—‚lš„IlxnVVx@„lb@l²™°ƒbV¼lW¦™bUlƒwk@mVVbUxóš™@kƒƒX™ƒ¯lókƒVkš›wVma™nkwƒJÅȃ¦ÇVUbšŽU°„bl°ŽkÈ@x™¦ÆÜ™°@„°„¦óa™VUôlUlbXl@nÜV„„nKlŽnIVÞ°Wš„°U@bnm@¥šIVƒ²Ulƒ°VnalzXyl_Vyƒ¦lƒœLlxš„@ŽÞbšKm„knVWanwƒÑVwČº˜@n_ÞV„aVŽÜIœl@„˜KȚ„VJ@aš£È@˜™@km™„aV¯W@_ƒa¯KmbkÇkLmwƒ@Å¥"],encodeOffsets:[[117147,25549]]}},{type:"Feature",id:"4408",properties:{name:"湛江市",cp:[110.3577,20.9894],childNum:6},geometry:{type:"Polygon",coordinates:["@@@ƒkXƒ™@a„UUċlk„Jƒk„™@wVJXUWk°W@nKnwlUlš²ƒ„blU@‚lI„l@„XbW„šxnm@lW@w„wU‚JX¯VU°`ŎóˋkÝÝkÅ@ÇmğÈřmw™aĵV›xUہ»°™ĠǷnýmóX¥ɅĵҏÇ@°²ĊU˱ĮU¤Ç°™Ā¯ɐnżUĊĊĬV@脎@ԃÒU¼l¤nƒĠb„êVĠ°Èy„zVaV‚nUÆL„ašbVl„wÆ@"],encodeOffsets:[[113040,22416]]}},{type:"Feature",id:"4414",properties:{name:"梅州市",cp:[116.1255,24.1534],childNum:8},geometry:{type:"Polygon",coordinates:["@@„‚nԚlW¼x‚¦@lœVl™lLkè„a@zš¤ƒĖ„¼UxlnUKUbÝlU¼lb@„Vx„V„klJÈwV¯š@ĠlÛ˚nƒbkšÆźÞƒUÈôklmšL„¥‚LœW˜„„™nKUkVa°V„x@IVV@x°bUk„a™a@mV@„@y„w‚L„ÑUwVUšV„‚„U‚bÞVVann‚@XwÇÿš¯²aVamkXaÆ»@»nw@¥›UXaƒkbWa¯KUw@¥m@kwmLU»UU™J@kmU@UUWUƒ@ƒyƒanwmçÛl¯ƒŽ¯UƒmKUmƒwVkmÝXbW@XWÝbƒk¯@±‚w@»U@W¯Å@ƒÇ¥UƒU@ƒƒ™IU™ƒakJƒĀ„ꃰšþƒXkamŽ@Žƒ_J°m‚@X"],encodeOffsets:[[118125,24419]]}},{type:"Feature",id:"4416",properties:{name:"河源市",cp:[114.917,23.9722],childNum:6},geometry:{type:"Polygon",coordinates:["@@°VlmX¹laĢÒlm„@„„šV𣂂@¦Ģklynn¼lW°z„W„„°VbÈV@lÆbnn‚JškX„šVÆašÅ„W@™ƒUUw@ƒkaV»ÞkVaVLkmVwƒ»„ĕ™£@yƒblçkKkš›U@k¥‚wX»™kmӃ@Wn¯‚I„`@nlb„W™ý„¯ƒé„ÿlI@™XUmWUwƒ@@UJU„Ç„mKUV@x™„ţk¯¯LWƒƒnUxK@ű»Vwa¯š@¤WX@ŽÛ¦@¤ÇIȼWxXŽƒ@Wx—w›ŽUnVbÅèmVa±²UWl@Žk„lȄ¤nôܼXxlUnVlbVn„lU¦ƒJó»@wnkmU™‚Ý@U_™¤XxmXm¤„ô™b@¦Èƙ¦lJn"],encodeOffsets:[[117057,25167]]}},{type:"Feature",id:"4412",properties:{name:"肇庆市",cp:[112.1265,23.5822],childNum:7},geometry:{type:"Polygon",coordinates:["@@l@š¥„@V¼„Vôۚš@bšV@ŤVLȃlVÈólUX¥mĉ°k„ÿU°@„ƒÞKl™ÿ°KU™„UW»Èw@aƒšw@ƒ„@nm@w›£kÓVUVn„Kš™k¥™£Vamƒ@nkKkbÆǫma—kmLU¥™UmƒÛwmVU™mUƒJ—ÇaUxÇIn`mb@Þ¯b@„nJ@nl„U‚V„lVU„L›W¯—Û`Ç_¯`mš¯I™bĉWċzx±J™x𐝯Uƒƒ_k@™šƒJ@Umb„šXôlLš˜n¦@¼ĊxlUXŽ˜xUbL‚Ġ„UnVĊwlšUš„b@lW„X„‚m²˜@ÞWxXš‚Unb"],encodeOffsets:[[114627,24818]]}},{type:"Feature",id:"4413",properties:{name:"惠州市",cp:[114.6204,23.1647],childNum:4},geometry:{type:"Polygon",coordinates:["@@lbšW°bnnlaš@@wnmÆLVUkÇlƒ@Xk‚V²±‚bnUÆçUaVmœ˜xXw„@WXwÇ»ÈJ@£Ü¥@XW@£°™‚bUx²¼@ƂLVw„mX„°K°Ťlšƒ@wVUnLȃVƒVIky±wkƒKU¯ƒÅkƒ™XġÑۃlwUwlm@m„nKWašÅm›¯óÇmğb¯alĉUwķbmb@lÞÒVn—šmĀŹ@VŽƒbVŽUnmakLm`@xĉkklVÔVJVn—lV„UnmJmaLUbl‚™zmŽkL™a™‚ō@@zš‚V¦UŽV²kJ„nÜU@˜VXUށL@„lJƒL@bݤUnVŽ—b@xVnlK²„Vx°V„xlI„lkVl²k¤@n"],encodeOffsets:[[116776,24492]]}},{type:"Feature",id:"4409",properties:{name:"茂名市",cp:[111.0059,22.0221],childNum:5},geometry:{type:"Polygon",coordinates:["@@‚LnÇlk„KnkÆL„ƒUm™ÈxlUœJló°n@ššanŽš„„a@ƒ˜@X_@mÝóóU@a™aU¯mL¯ƒƒkV¯™ÇVwkw@V±Ŏ£@™™@šalw±Vk@m„Åm¯™ÿŃƧIÇ`ōô¯_UVW°IV‚ƒx@xkX@Žmn™wXƒWa@ƒƒkkJ@kVƒa±„k™kVmxmL@‚¯XXlWVUI@xƒš„lƒIklVȃV@b„šlW@„@nUxVblVxkôlx™n„‚y„šnIƻư„aXwlK„bVnƒŽXb‚L„¤„k‚L—èƒVV¼ƒŽ²IlĠVX„ynz°KVx°@VlœLlblKœš"],encodeOffsets:[[113761,23237]]}},{type:"Feature",id:"4407",properties:{name:"江门市",cp:[112.6318,22.1484],childNum:5},geometry:{type:"Polygon",coordinates:["@@lUXx°JWnnƚXVš„W„X@„šºVLV¯nU‚Vnb™ô„x‚aXmW™XIšŽUb°xlK„l¯œK˜xXÞ°ŽšXÈ¥Ü@„ĉޏU™‚çš»nóƒVma—x‚¯UÅU¥Ý¯@ƒƒç@ș@çĉÅUmU籃ĉKÝxÝ_ÅJƒk¯»ó¯nmèkǀšŽWxœ¼mnUÜġ°@¦@ƒxƒLkŽÇaVnUxV„™šVlnIlbnÆÆKX¦"],encodeOffsets:[[114852,22928]]}},{type:"Feature",id:"4417",properties:{name:"阳江市",cp:[111.8298,22.0715],childNum:4},geometry:{type:"Polygon",coordinates:["@@°„nKV°šb@bôVÞô@n„VlÒôÆUnlnn@lmkmVkƒaÈkÆÆ„™k¥‚ÅÞ»ÆKXkW¥ÅLmÅkamJUkš™UƒVwUmÈbl„K„w‚@@¥Ģ¯VÛnm›»Xw™lƿ™@kbW™—aʵ@óL›l¯ƽ@™ƒƒLn°ƒÆ@nUl‚²kx™b@‚š@šō¤U²@ŽlxUxšÈU°lŽ„"],encodeOffsets:[[114053,22782]]}},{type:"Feature",id:"4453",properties:{name:"云浮市",cp:[111.7859,22.8516],childNum:5},geometry:{type:"Polygon",coordinates:["@@@V„Iš™l@„`V„°Å™šw²I‚wČyĊXša°Jn™°_È`Ü_°˜œX‚KVƒkUUƒVkƒ@mmI@ƒ°a@Ýnam_ÈJVwlĉX@„šlUšómaUmVU°UK™¹@ƒƒWƒXU™™WmÅXm¯IWwkVWlÅLݼÆl¦ƒšÅÅÇl„bUllnknm@kmVmóÅkуUW`—@@„ƒb™ƒm™b@™¯mkô›IkVÇwnš„VƒÅKmlƒLklmȁKƒšVĊK°²„`n˜¤n„U„bWl„xVx™LUx@°nXm`VklVxmnnx"],encodeOffsets:[[114053,23873]]}},{type:"Feature",id:"4401",properties:{name:"广州市",cp:[113.5107,23.2196],childNum:13},geometry:{type:"Polygon",coordinates:["@@Ș¼VxUnĊ¤@z„@šÆ@nÈW°ÈV˜w„ŽUÞVxÞX@ŽšK„šl@ބVaĊbœU@ml£k±lUƒkkJƒw¯UUw±ƒkLUm@w˜aUVmÞ£@a„KkI@ƒ‚KVUW@—ÛVƒmlIU±VU¥™@yğzƧǃƒšƽĠřšÅnī±m@ƒ²¯lƒ°@nÝÆóUll@XnÝVU¦mVV°—„V¼™Jƒn„b@°mbn„ƒ‚@²¯‚¯wVwƒ@@nmxX¤¯L@ŽVLU„m@@l"],encodeOffsets:[[115673,24019]]}},{type:"Feature",id:"4415",properties:{name:"汕尾市",cp:[115.5762,23.0438],childNum:4},geometry:{type:"Polygon",coordinates:["@@@‚„@VxnXWV@š„bVššJ„„V@ÞÅU¥Ċxš£UWU‚wÅUU¥WVUkĊÇnkV`°LV™„wƒƒnU@™„ƒlbĊ¯„Vnalšš@@çkUÝ¥ġaó¯ÅaÅLŻÆUýmy¯ó@ĉÆó„ȯw™ÆXbmLƒ‚@nknVxkx܄ĢҚW„Æl„V°„Ll‚²xlz"],encodeOffsets:[[118193,23806]]}},{type:"Feature",id:"4452",properties:{name:"揭阳市",cp:[116.1255,23.313],childNum:5},geometry:{type:"Polygon",coordinates:["@@V„Ȧ„Æ@X°V@@¼‚x²°@„lÞaWXX@‚aÞWlnUŽ„xVnnL„‚°V„@k‚mĢl@„ak™@mlk°aXƒ±„nwm±™²¯JV²@ƒwW˜—_mƒa„V»ƒU@m¯ĉUф™šJl™„ašbVn„lĸLlƅÛDZwÝ@ĉxó@è™@k™mbƒUĉ°kaƒ„@šmV„„ƒxUš¯KU_mlĉÈVlXUV¦ÆVxVŽVX™¤ĉwV¦ÝÆ"],encodeOffsets:[[118384,24036]]}},{type:"Feature",id:"4404",properties:{name:"珠海市",cp:[113.7305,22.1155],childNum:1},geometry:{type:"Polygon",coordinates:["@@„è@„Þ°V¦VƁ°˜wnb„UÆ»nçÆ@nxܤ²llU°VnÈJސ°UôéšķUklƒô£VVˌKÞV°£n¥ƒ£ȗ™Ýy¯¯mÅkw¯bÇĔğ@Ýn¯ĊƒVğōŁŻƒķJ@Ț","@@X¯kmèVbnJ‚™"],encodeOffsets:[[115774,22602],[116325,22697]]}},{type:"Feature",id:"4406",properties:{name:"佛山市",cp:[112.8955,23.1097],childNum:1},geometry:{type:"Polygon",coordinates:["@@Èb˜Ž„InVVšnUÜxn„šVV¦nK˜lnbÅǬlalL@mn„Ubš¤l¦™šƒLUmUVlԜ¤@xmnVl°_XVVmƒkVmș@kn@VƒUK@°KW£nw@m„@Ux°x°@±„mƒna@¯ƒa„mšIU»˜ƒU¯nUV¥ÞUWmk@Vk¯™Ukn›ÑWݐƒĊÛ@Ǧ™W¯Wݗw›Lk°ƒkL¯wVa™WJXšWnbƒwkVƒ™W@kĊ"],encodeOffsets:[[115088,23316]]}},{type:"Feature",id:"4451",properties:{name:"潮州市",cp:[116.7847,23.8293],childNum:3},geometry:{type:"Polygon",coordinates:["@@°ŽÜknèmx„b„z„@V‚VX@VnV@lšIVVV¼nKlxn@@¦Vx°LXbla„ŽWbœV°£¯™W@nW@™‚aUñVœwWš»@¥ŤÅUÝǓÝóV@ńǎkUVmƒIUwÅVWÇX¹›—@W„¯bkl@nlšƒb@‚kġށn@l"],encodeOffsets:[[119161,24306]]}},{type:"Feature",id:"4405",properties:{name:"汕头市",cp:[117.1692,23.3405],childNum:2},geometry:{type:"Polygon",coordinates:["@@‚@U±°Iš±n²mx²ƒ˜@œWºXÈÆUVx„JUnlVȍ@ŃôUǔÞVçn»VyĢÛVm@»kaÝUǼóšÛÈķKċ¥X„¥Wwğk™ƒ¯@ƒwķKƒkUm™aƒbkš™IƒšVÒ°Ċ@n„VU¼ƒ‚„bn˜`X—„x"],encodeOffsets:[[119251,24059]]}},{type:"Feature",id:"4403",properties:{name:"深圳市",cp:[114.5435,22.5439],childNum:1},geometry:{type:"Polygon",coordinates:["@@ÞLš„@xšbV„šVšK°™X°Kô¥Vw@anU„胐š‚lkĊl@wn_lKnbVmU„aUź@nÿ˜™UmÝѯUƒbk„@ÆkxŻ@™aÇX—wƒJƒƒ¯LķÝUĕ™ó™ĸóêWº@b²nmĬ™Æ"],encodeOffsets:[[116404,23265]]}},{type:"Feature",id:"4419",properties:{name:"东莞市",cp:[113.8953,22.901],childNum:1},geometry:{type:"Polygon",coordinates:["@@Ŏ@ššblKnšykVa‚KnbnIVmUƒ˜kUmUIUә„ƒçmV@bUxó¦¯LW‚¯š™L™UUƒ™a@w™ƒÝKğŚ™ƾ„„ƨÈĠy"],encodeOffsets:[[116573,23670]]}},{type:"Feature",id:"4420",properties:{name:"中山市",cp:[113.4229,22.478],childNum:1},geometry:{type:"Polygon",coordinates:["@@‚XœÒlmšV°ôÞÅ@m„¯°k„±‚@@aX¹¯VݏÇIUmV¯kk‚±Û£mw@‚Őmèżmô™¼èVš"],encodeOffsets:[[115887,23209]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/guang_xi_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4510",properties:{name:"百色市",cp:[106.6003,23.9227],childNum:12},geometry:{type:"Polygon",coordinates:["@@lklWXL@VšI‚l@XnJn@VUUalk@mK@kny@UlU@a°™„ƒUU@VmaU@Ua@UWw@ƒn@KmLm@alkšmnI‚m@an@VIUamWÅImwU@@a@K„X@JVL„UVmUaVkUa@m„@@Ulmkk°ƒUaVUlKXbVwVIkaVmUk@KVk@a„aW¯m@w„¥laœX@KmaškVmnUl@nxVKšInU@yVaVIV@na°KlxX@@_lmXšUV`VIV™V@„n@lšbn@@WUkValK@²yl@„„VUV@@K°L@KU@@UVaXIVVV@naVkVa@K@UUK@UUa™LWa—w@m@K@UVVƒ@mVUUVKnL„mVL„K‚bVK@UUIk›mI@mUIVK@IUK@VkLƒ@WU@mU@WmUk@ƒI@VƒJk@WwX_@amK@UUWkIƒ„ƒK@LVb@mVmakL@J@bU@Ux@xƒbmI@`ƒIwm@UbmKUaUWa¯UkJWV@XƒJUU¯LUmV@ma@kkamKwƒLUUmWVkkm@aVUUkVKnVVUmXK@UW@km@Ukkm@@W@U™kUy@I@aUUmbƒ¤U@kUmL@bmJU@Ua@wkLWWkL@Uƒ@VaU@ƒLUakKWbkUWVkKkLVLUV@JVbƒz@Vƒ„@ƒVmUU@kVmK¯@VƒU_™VWakVmIUKUaU@@bml@XU@@V@LmKUV„mVUKƒƒKƒbkaUXƒKUL@x@V@l@„mxU¦„V@ŽlL@V@Ln@@VV@„nlKUaV@nLUbmJnL@VWLkbmV„@@L„W‚„XLlx„VVIVV@x@V²blUVm„LVUœK@kWWXUlV@Xl`„LX„l@@VšŽƒn@VnbVš@lVUVUÈVbš@@`UXU`l@@XUVm@kš@xmVknUJVXUbmKULmbx@VlJ@LVbkKUbVLÇUUVƒUVmU@VaUkUKƒVUwmLkUUVVlƒbka™XmwƒKUšVVU@@V±Uk@VWUUm»XamU™bƒKk™`ƒ„™U@UnWW_kKmbUVUVmnUV@„nJVUlšUbU@UV@n@JmI@VmbnVUXlx¯ŽkKmnVV@L@V™bkV™Umm™@Ub¯LmlUƒL@VWLkmkLmmn£WmnKU_mW™š™bnbmxƒ@U¦UJU„@Xmlk¦@‚mnUUm@@Jn@lV„ÔVJnIVW„I@a„ƒÆK@I@aVK„IlŽÞnnl@nl`nbÆX²l@xV„@llbVn²ŽVVl@nn„V@IlW@Un@@kVa°KšnÈmVaVXUlaVƒÈU„VlwôUlynIVašan@lVXb‚Iš@n¥la@Kš_n‚@bÆx@XnJV„nKVz@`VXVšU`@bƒ¦UV@VšIlx„UnV‚K„XÈbšVllšbVbnVn@"],encodeOffsets:[[109126,25684]]}},{type:"Feature",id:"4512",properties:{name:"河池市",cp:[107.8638,24.5819],childNum:11},geometry:{type:"Polygon",coordinates:["@@lLVl„bVV@nXVlI@JVX„mšn„W°b„IVV@‚ln„@nalVUb„nW‚@kVkÒlbVKn²°bUŽlV²@˜X@`nb„aUI@ƒ°wlU@aXJVI@aVK@wUamIXm‚@XUV@@bV@Vm„ImnUUwVaVKXU‚nVK@akƒVwV@nL@UV`n@@X‚lnIUJl@X¦˜V@aUIVm@anƒV@UwnL@VlbVL@KVVXUWƒ„wUUVUka@UVJnUlbnalbVVn@°„„LV`Þ@šXVxV@@bVlUVVbXnWlXnmlš@XXWVXJmbUI@V„llUVkn@@VWV@Vnb„@VXUJVnn`lLVk„a„»lVšLnw@WV@lInw@WnU@U@m‚knUVó„K‚wUmUXUƒU@@wVJVIl@XKVVVbVI„J@Un@lŽVLnm„b@U@Ul@nUš°VUVJnnVJV@„@mVU@ƒ@wkUVwkKWk™yUUkU@alkÈ@lJ@x„Ilƒ@UUWVkUw@Kn@@kmaƒVUl™UUL™ÇƒUUKl@UUmL@aXU@mlUUwmKkUUVKVUƒaƒKUnK@U@Vl@XUWU„KlwX@šb@K‚@XkV@UwWJka@aUwmV@U™@@U@wUm@»kLWVkIWŽXnmV@VkbmKƒLUbk™Va@aƒa@@aVU@aVak£@ƒ±UkVU¯V™UUƒJVƒUIƒ@kxmUmWUbL›w@K@aU@@aVU@Kma@aka@_VWkk@UWVUKULWKULUš@KUnƒwVaUKƒxU@UmaƒL—m@kVmVa@UkƒmI@ƒ@KmIkxU@@K™U@mmakI@VƒLkmWkkJ™_U‚@V@L@n˜xXbšKVb@VVL@V@LUbUlmbU@UUWJUb@VV@@L¯K@LU@UVƒƒk@±z@‚kLUbVl@Xm@™akm@ƒU@UšUJU_™VWŽkn@`W@kw¯LmbU@UJUb@zmV™JULmwk@mVUn™lnb@L›Wkbƒ¦@x°nXŽƒb@bUl@LVlUnlbUJUxWakLUVVb¯„llkn@Vƒ@@nVbUlVbUnƒVUK@IƒW@L@bV@nxÆJnXVbUJm@@bnmJ™nkl@b‚nnK@L„m‚@Xx@VVbV@nb@UVVƒ„¯š@bkV@Vmz@lnLl@kŽVbUVm@mI@Wk™J@UWKkXkl"],encodeOffsets:[[109126,25684]]}},{type:"Feature",id:"4503",properties:{name:"桂林市",cp:[110.5554,25.318],childNum:13},geometry:{type:"Polygon",coordinates:["@@nU@J‚X@`XLm¦Vb`lšVXXWš@VblČnVšŽlanLnmVLšK@_Vaƒ¥@kUa„@VmVb„aV@XVVzlVVK@knKVmX£VKšLlbnš@b@llL@xĊôXaV@°È@¤„bn„V@@Wl_„V„U@W„nVamw„wVbn@„K‚VšLX@VmVUxlV@šnVV_nK@m‚I@Wn@@IšUĊ@@wVWX@@I°VVm@wmU@m@IUƒV™kƒlkUmmkÅV@@aV@@Wn_UKla@kšaV„šlVanb@k„@@KlVn@@aV@nIWW™UUaVU@™kKmwU@UImKk@UU@w@W@‚™k@™UkWƒ@mk_W@Ua@a™ƒƒ@—¯ƒmV£@mƒUUam@—kWakƒVama@UUm@nw@alaUmnUlVlIœV‚™šLVyk£Vm@k@UUJkƒK@kmKUw™KkWK@UXImyVwnI@m‚ƒkUlkUKkUVmƒw@kkJWUÈm@_k@@aƒaW@U„UJUwU@@IWKkƒmUUV@nVl@bVb@bU‚UXƒakw@ƒWUkbkKƒbm@™xUlkLm@@wmKUX@‚™UaVW™XVmU@@UUUƒxkmWXkKkUWaUaUb™L@`UL@LV`UXmK@VmakLVbkL‚xUJUIVbUVVb¯KƒV@Xnl@lVXbmÒnV@L@VWKkVUIWJkIƒŽUamUUbm@U„kU@JUbW@X„WxUam@kbVVUnUJmUUV@bƒU@UUV™@ƒVk@ƒbƒmULV¦U@V„U`VLUL@xVbn@UJ@nWJXXVŽVV@bkxVbUx‚Lšš@x„¦@šU‚lXUVVlULV@@šnŽU„ƒb@xl„nJVnlVknUlVUbmŽU@ƒbVš„x"],encodeOffsets:[[112399,26500]]}},{type:"Feature",id:"4501",properties:{name:"南宁市",cp:[108.479,23.1152],childNum:7},geometry:{type:"Polygon",coordinates:["@@lKnbnU‚@Ua@K„L„ƒlJVX@VnL@bW`Xxl@„I@U„Jl@nV@X‚V@nXV„@lK@UVL@JULVJ@nnJlœVJ@VULaƒLUKƒnmKULVVUŽ@nU„š`lIXlln„K@UlJnb@nšV@LV@lwnJ@L@„nJl„@VUbUn@l˜n„KnbVŽV@„wVLUb„xVm@LV™VKXLVKVLXU@VllUX@`lb@bnb‚L@ŽUV@bV@@b@Lœx‚KVanXVƒUUmVUUUaVUky‚UUa„ImK@mUUVUkKU_@W@UVVVIUW„UVaVU@UUKnƒ@k@al@ll@bnL@b„VUV˜X@Vœ@@b‚Knblmn@V_@aUalL@a@akK@kVKUKlwUUnV¥VmU_VWVIVaX@Va„alńK@LVJnalL@LnK„wlVUw‚mX@VXšƒlLUVnblaUmVUVwXU@Wm¯Va@ÞKnw@w™mšk„»‚UVW²a@_mW@U@I„y„LVUUKW@@™„LX@VUV@@yVU@UV@nwUUmJka@IU@ƒmƒVkaW@UwUX@`ƒ@kLWUk@mƒkUUm@k‚UUWkUƒkWxk@@VƒK@nV@UVaƒUUJmIkVƒ@UamLUbkVmamLka™@ƒ‚kmL¯WI@wJmwƒx@akU@aUKmbkaW_nW@_U@Wm@a@wkwUKmƒk@ƒbkb›w@mKUkkU@J@bW@kVWz@bVUa›VUx@„ULkJWbXVVXƒ`@œmJUVU@@Lk@WbU@UJlnXlm„Vx@Ln@‚b@K„LX„WJUUW@kƒaUVUbmV@nnV@n@lVLƒVmLX‚mXkV±@kxÅL›šUbJWIÅJ@I‚mXalkUamKkškL±aVwKƒUU@mÞnbWJX„m„@lbmKULWUUVkaƒbnn@Vl@VVV@VƒbVbnLWLXJWxXLV@@VV"],encodeOffsets:[[109958,23806]]}},{type:"Feature",id:"4502",properties:{name:"柳州市",cp:[109.3799,24.9774],childNum:7},geometry:{type:"Polygon",coordinates:["@@ƒwU™„aV@nVaUVklmkUUmmIkƒ@w„aVƒm@™U@VKUkVUkWV@™ƒ¥@w™™KVwUalw@aUUUWWXI@mVIm@Ua@wVKUKV_UƒV@U¥VK„n„al@„Uš@VU@V„V@aVUnVVIVmUUlan@VbXwWƒX@Va@IlVVƒn@VanVVb„lJXIVJlUXL@U@KmUnÑWakU@mkƒJUI@mk™@wUmmUV@JXaWIXWmaUIƒJƒkk@W„nJ@„ƒaUak@›kkJ@kUKU_ƒ@myUóWUkm¥kUmL@KUKm@k_UmVa@ƒk@@UmU@mm_—JWIUVUŽWLUlbVUJÇVUIVwƒKUVk@mU@n@lUL@Km@@l@L™VƒzJmUU¤m@UbV²U`U@@¼Vn@x@Vš@@VnUVx@blbXIVxU@Wl@@L™aW@kxƒLXVWVk@@U@VmLVŽ„L„bUVULVV‚lnLVxkV@nWV@bnKVVk@VL„VšÈVKšVVk„Unb@lm@@LVxUlVX@Vk„ƒJ@wkIÇ@kl@blVVVšzXllLUxlV@x@„UV@nƒ‚U@UImmUIUV™¯mVk@@V@VƒamnUKkm@@VƒIUJUaUUWLk@UJUI@xV@V„VWVnxƒLUômVV„@VkVVVUnV@UVkL@VVV@bVxla@bkXVJVn„`nU@bƒb@bVL@VnJ@„l@šV„aU@@_lW@UUU@Unƒlll@XLl@@UX@°bVWVanLlknVV@VVX@VVƒnUŽVLmbXJ@nllXX@`VXƒlmaXVWk@Wkƒw—J@„VL@J‚bnU@bn@@bVKUnVJVIVVVL²a@bV@@Vl@nUVakalmš„UL@VUL@V‚a@mXl@nK@UlK„L@Vl@@nkllb@š„Vnn@‚šnV„™V°l„šVInwlKXxlU°Žn@@ƒ‚I@UnVlakUJWkUK@anUWK@_ÞJ@U"],encodeOffsets:[[112399,26500]]}},{type:"Feature",id:"4514",properties:{name:"崇左市",cp:[107.3364,22.4725],childNum:7},geometry:{type:"Polygon",coordinates:["@@@JVzšl@V@Xn@ll@VlnX@@VWLnŽUVmUULVlUV@blnUlnXVV„K‚xnLlb@lnbU@Vn°KVV„I@WXUlI°VXb‚VVbnLVan@‚x„J@_nJ„a@wVwV@@a@IU@UU@WKXwWIXKmKUa„a@U‚UUUk@@Umm„albVUXVVKnL‚a@knƒWƒXImanÝV@„V‚LUx²blKl™nLVbklWbn@JÆIXJ‚IVaœ™ÆKlw²@lUnWWnK„UUK@k@mmU@mnUVaVU„b@lVXVXIWƒƒK@Lam@@KUwnƒWkkmVIV@Xal@@KV@VUnI@›„_UWWUkam@kkm@ka@mƒk@wkJWIUU@WXkW™XkWWLUUƒ@UakLƒW™XV±VIVWUU@anUWaUK@IU@Vak@@UUKWaƒ@m@ak@@wUkla@mUaUklakwVƒ¯¯@WWUkLkKmaƒ™kLUnV`UxWX@Jkn@bmlƒakkk@ƒb@l¯bm„ƒbJ›b@VXn„bVV@„ƒbƒJUkkKWVU@mœÛVUUW@UVUJWXkVkKmUL@WW@U„Vl@XXKW„XJ@XVlmbUxnnm@UlVnV@XVm¦VJb@šmLkKÇbXblVkn@l@bWnX`V@@IVV@ŽV„V°n@@_naÆVVbUVVbUJnzlVUl‚XkV@Vlx@X„VnxƒbƒKUK@b¯VVUV™L"],encodeOffsets:[[109227,23440]]}},{type:"Feature",id:"4513",properties:{name:"来宾市",cp:[109.7095,23.8403],childNum:6},geometry:{type:"Polygon",coordinates:["@@nVlw„@VJU„„IVVUšV°lU²V@„l¤Ub@bUV@b‚@„b@bUblšVa„KnLla@UnUWmXlJXUlKV@V_U±Van@V£nV‚I„yšU@K@kn@@LVK@k@mnVl@VU„LUxVJÈUVIU‚aVkXKVVUXJ˜In`@nnV@Vl@@„UbVnl`n@VL@LnKlVn¦VlôXV‚nz„@V`VL@llIœll@Vb„b@ƒmIXƒl@„l„IVJnbWXXJWb@IU‚nVVn@xlš@nVJ„I@W„U°LUaVUUaVJVIwlKUalKnb@UnLVWU_@KVK@_šKVa„@VKU¯VLVKn@la„aUkU@maVU„J@k™@Um@XmbkyVaUIUU@KV@laVn@KXKWUkUk@ƒaW™UUVw@aXKmƒVaUUkšmIƒlUU@wUa™xUmmU™¯™U@WƒLUmVIUym@UVmUa@wmw@çm@aWLU„™JUIUamKmL@™aƒx¯¥ƒkU¥U@±„k„UVmKU_mJUbkKm„ƒLÅǙ_@WWUXUmaVUkK™„UWW@nVxkUƒxmL@KkKmbUI@KƒLkƃbUbW@UbUJUXV`UnU¦mŽVVkxVLUL@llL@b@bkKVb@bU`m@knmaL@a›@@U—WVUƒU@amK@akkk@@b@lm„VL@VUVUbƒVVXUJUU@V@XV`lLUVVV@nnLƒJVbVlzUVVbVVnUVVU„"],encodeOffsets:[[111083,24599]]}},{type:"Feature",id:"4509",properties:{name:"玉林市",cp:[110.2148,22.3792],childNum:6},geometry:{type:"Polygon",coordinates:["@@VJUXVVXlWX@V™xVnX@@`ššULWŽUXÅbWK@mULUUmJ@n¯b@l@VULVx„x‚XU`VXXJVI„V@nm`@nUŽVXn@lWVn@b@Jn@nU@Lm`@Xn@WJƒ¦U@@VnL„lV@@Xl`nIlJnkVL„w@KVK@UšaVL@bVKX™lUUKVK@I„VšL„a@U@WšLUlVL@bU@@blb@VlbUxVbXUVJ@xVL„U„lV@VU„bVLnKl„XJ@L‚b@an@VanL@`VLšKV_UWl@U_„a@WVInlVUUUVm@I@W@wVakIWm@U@ƒXwlaVbnI@ƒm»Va@aXaVLšU„»@aVa@k™KkL@KmU@WƒzUK@wU@VWUUVUUKUa@mKmbUK@_nWVaUkVaUaVUVLXKVƒVUVmVI@UkKkLm`UkW@UwWW_„UaU@WakXmK@xUXƒJkƒUUWUk@Wl—mJ@km@@aUKzmyVk„a@kkWVUU¯lmU@@w‚kkmV@Vk@mÅIƒ‚Ukƒaƒ@Ub@m@UUU`mUbWaWmb™X™XKWIXUWm@љ@y@UkIUJUUWLUWƒL@UkVUxW@kaWbKWnXxW¦n„m`XLVlUbVbUx™I@JmLUKUb@VW@@bkL@b@VlU@xkš@L@lƒxXxWXX°V@VVVbUVV@UVVbULVnVJUb²b‚aUb@VVVVInlV@VnXaVUšlI„VUb"],encodeOffsets:[[112478,22872]]}},{type:"Feature",id:"4504",properties:{name:"梧州市",cp:[110.9949,23.5052],childNum:6},geometry:{type:"Polygon",coordinates:["@@VbXblVlLXWln„wVV@VV@UnšWUXVbš‚@VWXa@kVK„UaVaVkšUlyX@Vaƒ—VmUwUaVU@UÈymI@aU°@š™nWV@VaVaw@IV@VmnLVK@kmmna@™„™VbVI@aV@XbW`U„„LUVVx„@VbUV@bl@VLXblJn¦lL„°°@n™@K@UlLnK„a°LWbnJ„¦UÒV„UllLlVnKnbWnn„V`„w‚@@Xa±™n™l@XKV_„WVkVa@kVyUa@wU£UW@UIVW‚@@a—wWaX_WKkVmUULmak@UJUI@±m»™—k@m»VyUIm™nmmwnkUmVaVIUn_mW@»Vk„@VwkmmUXa@IƒaVm—mƒ@Wm_U@mIUWóLmUk@laXmmkUK@UmKULUUmWULƒ@VakU™@Ub@bƒ¼™VUKWb@bUbn¼@„mJUakbWx@„@VXnlJUb@x@X@JUnVVUVmkUJ@XƒbV`k@VXU`™LUK@_mKUbm@@b@„U`@nlV@b„UnbVbn@@`VbUbVV¯bm@@mJXb@bVnUllVXUlbUl@LU¦VVmŽkLVb@b™l@V@XlK@V@nUJUz„°mށwmLmlXbWVU@UUUlƒIU@VVmV@@¦‚bXbWxX„WlXVWL@LUmkbU@@LVVVJUblzna@WVnš@@lƒIUVnbV@Vlƒbkbm@ULUKV°ULƒ@"],encodeOffsets:[[112973,24863]]}},{type:"Feature",id:"4511",properties:{name:"贺州市",cp:[111.3135,24.4006],childNum:4},geometry:{type:"Polygon",coordinates:["@@nL@xn@lKVkšwn@„alLlaXV@„lx„bVWV@aUa@aUk@mVUnVl„XL@JV@VxVIVƒX@„b@bl@@`ÇnXVlI@l„xUnlVVLkllV„@nmJUxnzWJ@VXLlŽšLVxnL@l„LlŽVI@V@lUnl¤Uz™Kš@„Vl@š„L‚l„Lnš‚b@VnVVU@k„a‚Knxn@VkVJ@ńUlakmWIUaVanm@_UK@UVWUa@klXam™U@Vmƒ™VIXW„@lUVknVlKVLXŽVXšW@b@VlšnnVL@KXL‚Kn@lb@UnW°@Va„X„WVb°aVa@I¯aUkUaVKVwƒaXk@a„a‚™@wkm@alanUVw@alK@Umkw@UƒaUmU@WXUaUK@UW@UaVWI@¥Xa@w@WWšVƒXwƒU@mKUXUWVU@a¯kl@akU@UULmK¯VUVW@U_m`U@@xVbUz@lUbUlƒXU`WLk@mš²šWb@ށ@ƒxU_mƒXmmamLkUkKVkUƒVу¥mIXa¯KƒbmLkK@V@Lmš¯@ƒ¯kKm¥kIWaUKk@@aVUUaƒ@UwVUƒKVƒX_WaU@@bUJUaƒš@šmbnn@lULmKUnU@@J‚xUbUbU@mX™š¯@VŽ@bnJÇz@VUVVbVxUn„˜UbW@kz™VUlUbVbƒŽUL@lWb"],encodeOffsets:[[113220,24947]]}},{type:"Feature",id:"4507",properties:{name:"钦州市",cp:[109.0283,22.0935],childNum:3},geometry:{type:"Polygon",coordinates:["@@@IlVVlnL‚@œxla„al@n„VLlx@x@bXnV@@`mXX`lbnaVL@blV@b„wnx‚I@xXJ°nK‚l„š@lbnKnblUVanKVb„@lUnJVI„VUb@V‚U@m„L@Ul@Xw„llVVXV@lVnlVn„l@XVlK„@@_VWVxX@lb„U„nV@@JlbnIlmnVV@UwVK@U@k°a@mnIVVVK@nXLÆaVWXVK™™@_W@Umšw@UXWWkUUVWUIVaƒUkJ™UVWbUmU@mkUJUU@UVab±aVaUIUmVKUaVUU@VUUaUUU@W¯XWWw„w@k@Kl™@wkV@U@alK@aX@@UmIUWUIƒ@mmkXU`U_WJUnUJmUk@@amLU@UVW@UkU@@VƒbUWVUk@@wmKkUWLUWX@JmIƒlUkkKWKkLWU@UKWa@bU@@a@_UKWƒUUUmJmw@nV_@ġğKóLmbU¼VÆ@xUXƒ@Um@wklVnUn›lkaUV@„lV²WVklWXXbWlkVkIm`UUƒLƒUU@UWƒx@XU@@lWLU@kbUbV`UXllUV@bmb@LnKVbULm‚šnVVIV`X@"],encodeOffsets:[[110881,22742]]}},{type:"Feature",id:"4508",properties:{name:"贵港市",cp:[109.9402,23.3459],childNum:3},geometry:{type:"Polygon",coordinates:["@@n@VzUJ‚nVŽ„K@XšVš°nVVnšwVb@xVV„knJl™VVUbn„WL@bUxVVXš„bl@lVXkWƒXwWaa@¥‚@nUUUV@„JVkVVV@XUWanknK‚xnƒ¯VyVI@m@UkL@W@Ušk@aUalKnUUV¥@KVkkaWVkUVkUm@aWanI@n@°aUUVaUa@_m@UamaƒV@akU@mV_@ƒa@KWIkƒmLUKƒaUVU@ƒkƒVUK@wUIWVUaVwka@Uka@aV@@aUKVk™K@X@Vƒb™KƒU@JULVLkVWšUL@aUK™b@VUL@LƒxUKmlkImJk_@WU@ƒkmK@UV@„¥XIm@@Wn_@KmVm@@I@aUmkXm@UWV@mn_@mƒUUJWIUWV_WƒwU@mUknVVmxU@@VUV@zU@UVW@ƒK@šX@VLUVƒKƒz@J@VnX@`±bUXVƒ¼™lšn@xmxÝL@‚Ubn°@XWVUxUVVnkbWVXV@Xš`ÆÈ„KnƒlLVanIV`nLVUlƒ²ƒV@V¦„l°¦„w‚b@šnKnLVbVJšIVƒXK@b‚n@ènx@xVbUnV‚"],encodeOffsets:[[112568,24255]]}},{type:"Feature",id:"4506",properties:{name:"防城港市",cp:[108.0505,21.9287],childNum:3},geometry:{type:"Polygon",coordinates:["@@XV@X°°U„lxkbVlVb@nkbVl@xl@@b@n„‚XbVL@Vl@UbV@@JVLXbmV@bVVUXUJU²šW„XlKVb„@VVXKlXšWlXXWV@VXJlI@x„l@nlbn@lln@lbXalIVK@ƒVwœUVb‚U@aXylUX@@aW@U_UJmU™nVKUamL@Kna@aVUkkVWU_ValaV@XK@kV@@W„wVXV@„V„KVVn_lJlUXkWaXWlkXU‚±kU@ƒVUlbœkVmUmlk™¯Ý™™W@mb@¦VxULm™kJUU@ma¯wƒmkX@VóJ±bUVUXÝWk™lWXXlƒxUaƒbƒIğ™Ç@U@mVUKkkm@UJm@XnWV@x"],encodeOffsets:[[110070,22174]]}},{type:"Feature",id:"4505",properties:{name:"北海市",cp:[109.314,21.6211],childNum:2},geometry:{type:"Polygon",coordinates:["@@VaVLnK@IšJVwUaVaUkWKn_mƒX¥WwXm‚LXalbU£UyV„Å@ݙwm@™°l›LÅUƒmk™mwÛaƑLÝUUm@ȣƃV_„Ó@£UƒƒUVƒ„™¼U°W̄™ÞVbXbôx@b@bmV@ǃ™UÝ@@ĢU`m@ŽnxnIVV‚VX„VL@`@bV@@aXbVL‚@XVlKXLlLVl„knJ@I‚WVXXKlVnL@xl@UVVX„a@UV@VlX@VUV@nK@bl@nVVIVmXIV`V_lWnn„@VJVXnJ"],encodeOffsets:[[112242,22444]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/gui_zhou_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5203",properties:{name:"遵义市",cp:[106.908,28.1744],childNum:14},geometry:{type:"MultiPolygon",coordinates:[["@@@UnUlJn„w‚JU°VL@bnVšU„wlJ@XƒŽXVlU@klVUJknl„UllL@bUJ@xULUlƒ„UblVkblbnw‚UXmla@„wV@VK@L@UXaVKVLXWƒUVa@U@Im@@W@£UKUakKWIXU@al@@llUnL@W@Un@@VlUV@VIUanKl@Xb@lmxVb@b°bb@nlJVVnnJ@b@L‚V@ln„@LmV@Vx@blnVK„nlJXIlw„J@҄b@nlK@Un@UL@VVVVUUUVK„l„@VUVL„J@UVUUw„@Wm@™„UV„ÈVlbUb@JšLlŽX@@x„„ƒLmŽk@@nlx@bUJUzVJ„@@LVxUV@bWxnLnVVK@_‚K²xVbV@n¥@aVI@b„@l@Va„Knb@n‚`n„mmý„W@ƒU_šwV@VlVV@Vn@n„˜@nI@Jn@°¦VaUU@™„mVVWVaUńU@aVKnƒVbVUmmU@a@kUw™m@aUUmUUJ¯lakU‚aXaWUUaVƒkk„amkmUnVlULƒVlJ@XU@UJWUUw„k@aU@WbkWƒL@U@WU@@XUKmV@aUVwUĕUJUamUUVUÑm™nIVJ@kl@XalJVn@KVLœ¥@UWIXWmU@mVUKnUWLUKUaWUUKVU@U@anUny@UlUkK@w@a@aVUƒ»UkVw@Wmk—JƒÅmUUVmwXalLXWWUnam@XkƒJ@UVU@U@W„@@U@I@Wl@Ènlw@KXLWb„lVUkalKUU„VVaV@@wnIlaUmkUƒKWU@KkUkLWaƒKUUWUn@VƒK@LnnWJUIƒVkUWVnV@V™@@XƒK@VUIUJ@IWJkX@VVJ™IƒVkK@I@UVaUWk@m„@wnUWKk@mxk@@„lV@b„xmb@x@VUmLkUƒJ@nVV@b@VkLVbU`¯I›l@™U_UW@UU@™™ƒK¯wm@™xƒL¯¥kIƒ™ƒ‚@bkbƒ@Ua@ƒm@kkW@XVbmV@ŽkV@bWbUbV@„¦ƒxXlmVk@ƒ¦™bkaWL@KUImK@wUK@VUI™b@bmK@LÅy@akXW@kbWlXblL@ŽULUbƒ`@U™kUymX¯@mšUJUUJƒL@Lm@@WX@lU„VlšXll„@l@Èk°V°Ž„X@VU@UVll@XUJVXUVm@@VXLWlnV@Xƒšk@mVULnxV@@bm‚kL@VWLUbU@UVm@ƒb@ķ¥UnmJ@UUVƒkkJUšlÔU`UIW@ƒ°kLUlUI@WVI™U@mWKkXk@ƒ‚WU@bXšW„@J@xX@l@LVl@xšLVxXX@x‚KnxVknb‚KVV@U„L„WlXU`@nUlšX@llVXšVU„KlkUKlI@anKVLXKVaUIVWV_VK@VnLlU„»VKVL„m"],["@@@KlKkUUVVX"]],encodeOffsets:[[[108799,29239]],[[110532,27822]]]}},{type:"Feature",id:"5226",properties:{name:"黔东南苗族侗族自治州",cp:[108.4241,26.4166],childNum:17},geometry:{type:"MultiPolygon",coordinates:[["@@VV@XkV@bUbWJU¼Vb@Vnb@bš„@J@bƒL@LV@UVƒlUI@a™KULVb@bkJmx„šlLVxknVJk„‚xnKmnnL@bn`WIXlWLU@UxVbUVmKV„XI@JVIVJ@U„L@Wš@@UmUXUlV„UVJXImm@K„L@UVmVXV‚„LXblKlV@LXV„LlVVnkbmJ@xnXl@šbXa‚@Vana„ÒšL„m‚VnIl‚Þ¦°k@b„@@lV„nJlUnš‚VX_„@lVlK„šV„UUxVLVWVIXJšUlnnWlI@KUaUUVKn@VaVXV@na@ƒmw¯@mUkJUamI@lk@@am@@I„ƒUmVImUUw˜™@anUVaUU@LU@WaWUXWW„wV@VwnU@L@ynbl@@X@a„J@nW@@Vn@„lVLlxnI„lš@@UWKUƒnIlJXIVllIVVš¼XK@aVI„V‚@@bn@VKXLVKVVVInw„J@UWI@mX@WKnI@KmU„UVJUL@V„KW@@k„@aU@@W@InJWUXwWI@Wƒ@¯wkaVaUIl@nŽValIXWWI@UUm@anwWkXWWIUbk@UJmIUamKVUUUVVama¯VkIVVUlKnXVwX@@WVaUUVa@IlƒaVmƒkna›wk™UU@ƒU@mUVƒšUVwœl°LVbnJVU™¯la@mX@@UWKXU@aV_V@@JlkUƒ¯@V™nK@km¯k„U@ƒWUW@mmƒU@™kmlU@wkL@WƒUkL@VmLƒJ@b@V@bknUUVK@UVKUK@Uk@Wa@LUVVnUbmVk@@UU@@aƒV¯K@U@UU@WmUL@aU@WV—w@ƒ˜I„xXll@UX‚K@KXXVJna@wWaƒ£naUKV„m@UU@mUmalm@@XkVm@U@VƒLmWU@kkWxU@@bVV@VkXVlƒVƒ@UUk@@ƒmI@KUw„m@UmVƒUUwU@lwkV@IUa@mUaVIVKVa@w@U@™UJkb@n@bmJ@XmlVUxWXkJmUkUUVW™xUlU@ƒaULUšmbU@@‚WXkmƒL@xUV@nUxÇm@„XLWbnlƒnV‚nnUV˜U‚nVVz„@lbUVVlULVb@V@nUJkwm@Ux@bWbUK@UULka›JbƒU™U@U@lUK@XUJmn™J@bU@UwWa™x@zkJWnUJUUVšVV@bXn@xVb@J™L™m@X™w@`@bkb@VmXUV¯L@mW@@n@V@‚ƒL@K—IW@@aƒaUx¯@U„m@XbW@@L„V@bnVWVkKUzlV@bÆa@lnI@VV@@LnVVKUaV_VJVbnU@bn@‚‚nX@yVIVxXKVLlUVaXU°J","@@@KlKkUUVVX"],["@@UUVUkUmV@ln@VXVK@K"]],encodeOffsets:[[[110318,27214],[110532,27822]],[[112219,27394]]]}},{type:"Feature",id:"5224",properties:{name:"毕节地区",cp:[105.1611,27.0648],childNum:8},geometry:{type:"Polygon",coordinates:["@@UkVƒ@k‚W@Xn@@K„KVIVVIn™°@nWVzšl@V„_VaVK@kKWaXklaX@lW@bÆz@KnL@ašaVJ@UVL@xnLVJ@LXKlbša„¥l@nUWk„wƒ¥U@VaXa@amLkUƒKmƒ¯kƒmkIUaƒKUIWƒkKm@anw@mlwXIƒmƒUk¯@a@amUƒ`kkKWVkxmUUak_mJmw@w„mXUW¯X›_@WnI@aVwkWWýŃU@WLkU™aUbVV@lUVVnm@kUmV¯™kK™LƒwmVUUaWV™aaWw¯wƒÈ@VULUVUUƒK@nWJkI™l@Umxnbm@kbUJƒa¯bUbVxmLUV™aU@VUUWxkVVV@bUV@XWbnlUbƒbUJlbUV¯b@z„`WbXnmbƒaƒwUwVWUƒbUxmbU@Uam™@Vƒk™VaƒwVaUƒWI@mUKóz@lUlÅ@WIƒb@xXxml@XklULWKUmwUa¯KUXWJkaULmKkLWbkKUVƒImƒƒWa@kUaULƒW¯LƒK¯@kbƒL@b™x@J@bmnnlUšlzU`U@@Uƒb@„m‚n¦°bU„Vx@bkVm¼mx@mk™mVV@bkxVn„aVV@bU@mL@b²`lIVV@lXLlš„bVxn@@bl@XllIVšnbVšn°°wlbXw@mVa°lVnU@mš™VLVbn@@b„@@WVnUV@Xlxn`VznJVb@L@bV`V@šUnwšU„@WUXKV@UUlmUUlaXalLšm„bšIVbnJVIlVVaUUnWVXn‚VL‚k@ƒnWnblnlb²x„xVKVXlVXLVW„LlUVJna@wVL„¼@JVX@`@nnx@nWJU@Vx@XXKšŽUblxUš°„LVKVVlL@KnbVUnJ„IlUšƒnKl£VW„x„IlJ@nšVÞUVVnb‚VX@V_°lnK","@@@UmWUwkU@Um@@VkL@V@„„‚V„VkV@nbVa@ƒ"],encodeOffsets:[[108552,28412],[107213,27445]]}},{type:"Feature",id:"5227",properties:{name:"黔南布依族苗族自治州",cp:[107.2485,25.8398],childNum:12},geometry:{type:"Polygon",coordinates:["@@‚V@IöalK@UV@@KUaVIVVœLlaVbVWnX@‚@LnUlxl@naVLXVVaVU„J@lUUanWWI„@VlV@Xbƒb@V„n@VmVVbk@kU@V›V@X„J@zn`ULW@kK@_WVUK@LUb@Jlxn@nnWlU@@b„x@XVVU@UbVb‚@n`VI@VVLUlUIUV@KmL@VV@XIV@@lVLVmXV„@WLXLW@U`šnkb@Vl@UL@VVV„L„llX@`lIXb„J˜IXW„L‚aVL@ŽXXW‚Ģ™b@bmK@L@°@Vnxmxšn„K@xVn@VkL@V™Lƒakbl`VnnxVnUlššV@@VVXV`@šœk°JV_UalK@U@aUU@m„IlVnK‚V@U@wnaƒw@akU@ƒl@nwl@XLmV@xnƒl@VXUb@V@JlL„UšJUI@UlWUƒnLVUUaVwV@XKWkXJm_@amKnmmLwlƒUIlmUwkKƒ™nwlI@aUaVKšL@bVJ„kVUU@@K„K@a@I™ƒ@ama@UUaV»XIVa@alU@WUU¯IWVUbkVUKWLUwUJ@zmWm@@amVUaUIU`VbULmU@KU@@UmJ@kÅb@akUVylLXUmU@aƒU@KX@Wan@Vƒ°@Vw„b@bX@˜J@L„K@@U@mX@@n°KVUnW@Ula@a@_šx@WšnšK@IUa@wWm@aUUU™VVVIXmlI@yšwXbVxV@@ašInmVI@WVL@k@VšV„V‚aœIlbVK@VVLXa@aVwn@lxVI@m@UUaVKUkVUkaƒ@UymUV—VUmmU„mmkXaWK@ƒÈnVw@mVU@w„KlnXW@V@naV™VKUk@KVIUWƒ@mk@KXU@Um@@lVƒk@UVJna@UWaƒL@a@ƒXa@kmmVUUk@mkkƒamJ—ImJUUmIm±aUUkambkamVUU@VlbUbVVƒxX„WVUU@VUakU@UmUV‚U@mnUVVnUbVJ@b—UW¥kLVamVkUaWJU_UVWKk@@nl„UVVJUXm@Vm@UnVlmbnmJUbULU@@UUKWVIWxnJVb@xUL@bUJWIkxƒbkb@xVJƒbmU@kW±LkKUkVa@a¯am¥ULkalÑlKXUWƒXƒaVakImVƒ@ka@UUƒJ¯aƒX™mmb—KWU@wUUƒaUa™KmU@UXlWb—¼WLUKUb°„UlVbkbVL@VƒšƒJ@nVlUbUXmJ@VX@lbUbU@@bWb@VnLVJ@bVVUz„ŽVL@lnL@b™VVVULmKUk™Jkbm@ƒxVb@V—kƒKVnnV@b@ŽWXU‚„nV„l‚VVXVJUXlVXbWV@VU@Ubk@@KWbUUmL@JnXV°XJ@_‚`UbkXVVlÆkbƒ@VLXVV@‚V@k„KXX@`V@@n"],encodeOffsets:[[108912,26905]]}},{type:"Feature",id:"5222",properties:{name:"铜仁地区",cp:[108.6218,28.0096],childNum:10},geometry:{type:"Polygon",coordinates:["@@°a@aÈbVUlU@aVKnVV„VUlyX¹lWVa@U™VƒnUVU@m™@mUl@„mÞw„@‚xnIVbna@KVI‚J@kwV¥ƒUXÇVkVW@kkKWU@aXUWmnIVa°VXbmL@VVbnVVVUb™VbšJVbVKXkVKVanU@aWnWUWa@U™nk@mVIVK@wXxlLXbVJVlKœbl@VI@mšaXalVV„VbX@@ašalnkx@b@V‚b@Vnx@bVVUXn¤WXn@Vl@Vlzn@š`@I@KUU@ƒV£namVkXa@aVK‚nnU@anVlKƒa@UUU@amk@»kƒU¯@aš„VWnkWmkImU@akaVm@»VUV@UKnkW¯XWlkUKnIWaš@nmlIXmWUnwUwWm@wULmaUJkIUaƒaWa—klwkwmJmU@bkJ@XUJ¯W@XbWbUKUkWJUUVKnn@UmmXUWa@mU@@UI@WmXVykwm@kaULWwU@¯ƒlKUUVU@mU@UkmaUbmV@b—š‚xVnVUJVnƒ„@Jn@@bl@@knJVblInV°@nx@„mbU@UWUbm@ULVVVb@LkJmXkm™VWIUJUXUKVwƒV™UƒŽkLkUƒ@W`Um™kVmIUƒ@kƒ@@a¯lÝ¥kmJUƒn™KƒÑmbUb@Wb™ak@mWU@UbƒUVVkLlbUVƒkXaWK@LkxÇmk@@X@J@Vƒ@@X@VUV@V„IWln@mbXVWXkKWbnxVUnV„ƘInl@XUxVl„¼UV@b@b@xlLkV@VmzmV@b@VUVVLXVVbVLXKmVVLU‚@nnVWXXJ@V›¦UK@LUmkIWbk@@lUImJnšVÒVUnVVbVIVĖUxV‚@bnUVL@WV@@X@V„KlXXaV@@bƒlVxXVVIV@@WkI„UVKUkVmlnnŽƒbllU„VbXVWbblVkb°ŽVInVVV@bšnVx@l@bnVVnUŽUam„UL@bƒVVÆUbUXU‚ƒn@šVVUb"],encodeOffsets:[[110667,29785]]}},{type:"Feature",id:"5223",properties:{name:"黔西南布依族苗族自治州",cp:[105.5347,25.3949],childNum:8},geometry:{type:"Polygon",coordinates:["@@VL@Vl@@IXW@kVUVbnW@XlKVVnU„VlL@b„aVbƒb@xX‚°ÔUxV@kbm@VxkxWJœ„V¦ƒŽ@ÈnšVKšxWXJmV@n„Ò@xVbn@@blLk`VX@bššla²JVUlnn@U±lw@wnw@mlwVIX@@m@klKnk‚a„KnwmmXkƍVm„Uš¥l@nb°n@„aVwVmVIVnI@a„¯@mšU°ƒl@@VnI@JV@UV@b@IUbVJmXöºƒzllUbVa@aXUl@„U@llLnKVaUa@UmK@UšwV„bnKV@VwVK@UXƒV@Vbn@‚w@U„WnX‚@„a@m„I„™@UUKlaUaVk¯ƒVaVLXK˜»XaWk¯mƒkğwmW@mIƒVkwƒJUIšÇVwU™UkVKkƒm@UkmU@WÅwm£Vƒ„m¤¯IkJWa™_™lUbmJzÝJk„ƒUÇVU„ƒ‚@bU„Ýn™m¯LUb@`mL@VkL@VƒUmmk@UU±Umka@kUƒ@ķymUkk@mmkÝmUaUakImV@V@VÅLƒ¦ƒJUXmJXšWb@n°Æœx‚¼nV@LlbUŽUbmL¯@ÞbV¤nbVx@bUVlblIœ™@KVVUnVJUn@VlLUlmLUUUxmK@I@@VW@@bU@UJmUkLVVUl@b@V"],encodeOffsets:[[107157,25965]]}},{type:"Feature",id:"5202",properties:{name:"六盘水市",cp:[104.7546,26.0925],childNum:5},geometry:{type:"MultiPolygon",coordinates:[["@@ôyVL@nXJV„Ub„x‚bUŽlšU„@ŽšnŽVbV@naVw„a‚VUXVx„x„bnaWmXaƒ_@y°aVUkaVI„aVamkXa@WVU@aUUlUXwVV@UVšbVUnKUwVa°a„bVIlan@manw@VšklJXI@m„LVVVUVK@U„ǃk@KUa@UkaVU@UVWV_XWVXVWlLXKlLXaÆKšwVL@akKm@Uwƒ@@XUVk@VUI@wWK@aUV™I@UkK@ƒmL™Wƒ@kImJƒUÅVmkXUW@UJkx@nmx@xkxV²m@kmUV±Ikb™™@aUWl_kK@am@Ua@wƒÑ@mnUWIX™wULm™@DŽU¥›ƒXIlwUwn@laU@Vw¯ÓW@w„aUaƒb@akKƒUmVUUkL@WmXUaUV@lWX@Jk@@UUKULmLUJmzkKmVX°VšUnWKUL™ƒƒL@mU@UnVJ@b@„UV@Xƒ`m_@l@@bmbXJmnnš@°˜wnn@ŽVLX@V‚@nVl@nk@@b‚l@nn°WlXzW`XXVKnUlxVbUb@‚V„Xb@Ž‚VxÈbVlnbmn@ŽkVUL@„ƒŽmLUVVL"],["@@@ƒ@UmWUwkU@Um@@VkL@V@„„‚@„V@VkV@nbVa"]],encodeOffsets:[[[107089,27181]],[[107213,27479]]]}},{type:"Feature",id:"5204",properties:{name:"安顺市",cp:[105.9082,25.9882],childNum:6},geometry:{type:"Polygon",coordinates:["@@lL@bUK™xÅLWbkKWLkKUXUWWXU`UX@VUVlb@VVb@L„l°xXx‚bšbXUVb‚VnU„xšKlL°šnUlVn@UmVU@kUUVašblVXKV@ƄXþlXUxnU@mVK@_@ml@UU„@šblU@KnLVyUw„@@UmkšWVw@UVK@VXzVK@n„VVUUW@kVJnlaš@nKW™kaWL@U—™õb@JU@mU@@_WWƒL@lUU@WUUK„@lakÅUUlWVa_@`WIU¯mW@InKVVXa@Ll@VaV@@UXUWakUVWUIUW‚UkUƒƒmVXW@@amUUm„L˜l@UUa„wn@lašIVlnLVKUUšU@amK@kUKƒVyUU@aUImK@UXa@aV@VakaW@@UnIVWVaUkƒb@mWƒX@Vxm@UaU@W„@VULUxU@mLƒaUŽ™x@VnL@VVbUbmLkK@kƒVk@WV@bUbVakk„yõ¹nWUIVa@J@aVUU@@ImJ@Uk@¯„™V@nƒ°@bmJUUJUnUxƒbm@¯Žmak@™¦ƒVUnŎWlnnmxƒLbmlkL@l@nWVnlÆU„VnIlJ„@šXnK@„lL@VšJVU@bXL@xVJUl@VU@W„@Vxn@"],encodeOffsets:[[108237,26792]]}},{type:"Feature",id:"5201",properties:{name:"贵阳市",cp:[106.6992,26.7682],childNum:5},geometry:{type:"Polygon",coordinates:["@@nŽlLX„VJ„LVblJ„n°ln„„LlVnKlU@nUUa@WlX@l„n@‚Vb„@la@a„„šlJ°¦„Kšwn@°x„LVkUmmwUmk_la„bšK@UlK@UUm@wƒL™mnwmw@U@¯@KnL@aša‚ġXWW@UKbƒKWX—JƒIWakJ@_kWƒkƒKUU@UVKk@@Ula™mV_X@WKXKƒ@WUUnUK@kU@WJU@@UnK@LVUVJVkUK@UUJm_@UaVaV@UU@Wƒw@aV@Xkmmm@kw@IVa@KVLXU@`lLX@VKm_@yƒI@WœU@UlVl@UanU@Uƒm@U„aWaU@Ukƒ@XJmXVbkV@ŽƒIUVUbWUUKmbk@kwmV@K@mWUXUakb›KUUUJVb@LU@@VkL˜š@VXKlbXšmL™@kbm‚UI@lVXUVƒU@mULWy@UUL@VUx™Xnl@Vƒ@VxUzmK@LkV™aƒ@VVk@@n@`UL@nmV@bmJ@Xœ`WX°WVƒn@xnxnIl`VbnVlwXUlLl‚„_nV@b@bl°„V„nWJkx@nmx@b"],encodeOffsets:[[108945,27760]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/hai_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"469003",properties:{name:"儋州市",cp:[109.3291,19.5653],childNum:1},geometry:{type:"Polygon",coordinates:["@@஼jpnr’``ŽpRVHʘ̤žZt^JÖA˜[†CâlTébQhRPOhMBcRSQiROE[FYdGNOEIH]MgEAMLLIAG_WMCSL@ED]PCLYC[ZIHgjSxJTMbHNEFCMEE_HSDFHSLECRNSFDRICHNADGPI\\RZGIJTIAHLDQOHG`GTNCOIC@eIGDWHIS[kiE[FMbECZS@KKS[FDWsCeRuU_DUQNOE[LKGUBM¨EDQP@HWHGDImXƒCog_~‹I_fGDG|QDUWKBC\\ore|}[KLsISBHVXHCN`lNdQLOnFJSXcUEJMCKSHOUMDIm_‹DI`kNDIGEYFM\\YPEEIPMSGLIKOVAU_EBGQ@CIk`WGGDUM_XcIOLCJphHT_NCISG_R@V]\\OjSGAQSAKF]@q^mGFKSW^cQUC[]T}SGD@^_ˆaRUTO@OHATŸ”"],encodeOffsets:[[111506,20018]]}},{type:"Feature",id:"469005",properties:{name:"文昌市",cp:[110.8905,19.7823],childNum:1},geometry:{type:"Polygon",coordinates:["@@€hIJ¤Ī¯LQDaFßL[VQìw€G‚F~Z^Ab[€¹ZYöpFº lN®D´INQQk]U‘[GSU©S_­c‹}aoSiA£cŁ¡©EiQeU­qWoESKSSOmwŸćõWkàmJMAAMMCWHGoM]gA[FGZLZCTURFNBncVOXCdGB@TSbk\\gDOKMNKWQHIvXDJ\\VDTXPERHJMFNj@OwX@LOTGzL^GHN^@RPHPE^KTDhhtBjZL[Pg@MNGLEdHV[HbRb@JHEV_NKLBRTPZhERHJcH^HDRlZJOPGdDJPOpXTETaV[GOZXTARQTRLBLWDa^QAF`ENUPBP…\\Eji`yºEvåà"],encodeOffsets:[[113115,20665]]}},{type:"Feature",id:"469033",properties:{name:"乐东黎族自治县",cp:[109.0283,18.6301],childNum:1},geometry:{type:"Polygon",coordinates:["@@ªVLP`@PEdNRAHOPEAKHEVL`GZBJfvdTAXNNTZJFPrHHNpKTD\\ILHbEVd^J‚OHLh@NNBnHP`\\xH@NBRLJTlŽNv_^CTLd@bNDVFbxdFV€UPBTKOGEOUO@OEBXQP[H_EI\\EbeYa@UO_J‹MEJ_IEDKJUGMDcNUd_FMTEJSGoZ]EIYGO[YW‘gEQ]a@WHEDQKUSDUGAbYBUpSCYNiWqOSQEoF[UcQISWWNMSDe_cLQ_UBiKQOOASQAWgS­ā]ZaŽSPÝZ]XMXSŒ[^oVËNgNKlE RôEø"],encodeOffsets:[[111263,19164]]}},{type:"Feature",id:"4602",properties:{name:"三亚市",cp:[109.3716,18.3698],childNum:1},geometry:{type:"Polygon",coordinates:["@@®ĂhTBXTRPBRPjLVAR`dKf`TC‚NXMTXRJVdE\\FpTRrPjXZMTDVoZABaVHTCLVCRGF@X^bFR’hZXP\\ZHHMA[^wBWXJlW¤EJ[bCTOF‹WWMm@ILMGWQ@DQ^QNWFSHEbF`OXNbO„VNKTEPDTLTCCVTREfvfEHNbRAENH^RJXCFHNFRpVGHWISDOTMVCZeGamaLoLÛD¹¹ėgsia{OųE—Tt‰lɂwr}jŸR±E{L}j]HąKÃT[P"],encodeOffsets:[[111547,18737]]}},{type:"Feature",id:"469036",properties:{name:"琼中黎族苗族自治县",cp:[109.8413,19.0736],childNum:1},geometry:{type:"Polygon",coordinates:["@@bRFnHNbHŒgN@NPEnbXP@bND`NT\\@\\QZb@`@J]V@XhžDpW„nCJGHGXO@CR§FANHVKLF\\MPVR`CvVfQtDPKpGHG@S`WJP~^dSTHWX\\RHTFACQTIAUPOU@MG__IaYSFQK‘NSbORHXCZeTFJg„B`YBMNMFi~IVDV[tGJWXGDQRGF]ˆJrALgESLSAYDGIaFeXQLS\\MKSLSQYJY}eKO[EHiGSaK[Yw[bmdURgEK^_kcSGEOHKIAS]aFSU@Y]IWFUTYlkP_CUOUEkmYbSQK@EMWUuAU\\M@EpK^_ZMDQ^OXwC_ZODBrERURGVVZ\\DTXcFWNIAWJWAYUUFYEWLQQaCIZeDM`cLKRGpanJZQd"],encodeOffsets:[[112153,19488]]}},{type:"Feature",id:"469007",properties:{name:"东方市",cp:[108.8498,19.0414],childNum:1},geometry:{type:"Polygon",coordinates:["@@ºŸx‹JYZQ”IŠYXLl@dR\\WZEn]bA\\S~F`KXaDeTiNO^EEKWEDQXITBXaWaDQMUJOIaTWf@NJV@dSxGZ‰Fu_@WMKAUˆ}AQ@MwG_[GOAmMMg@GKP]IUcaFKG[JSCoLGMqGEOYIMSWMSBucIeYA_HUKGFBLOFGPQBcMOF_@KO©UAtERadwZQ\\@ÊJÒgòUĪRlR°KĮVŽLJ"],encodeOffsets:[[111208,19833]]}},{type:"Feature",id:"4601",properties:{name:"海口市",cp:[110.3893,19.8516],childNum:1},geometry:{type:"Polygon",coordinates:["@@ńZƂt̬æßFuz¹j_Fi†[AOVOFME_RBb]XCAKQKRSBQWSPY\\HbUFSWSPoIOcCOHIPkYCQ]GdGGIFQYgSOAQLK`MFUIGa@aQ\\GGUFcHKNMh@\\OYKAigsCgLSF]GOQO]@GM]HyKSHKPW@Pxi@EMINYREXWRQ@MQcFGWIAwXGRH\\yDI`KJIdOCGRNPNtd\\UTMbQYi@]JeYOWaL[EcICMUJqWGDNZEXGJWFEXNbZRELFV]XQbAZFrYVUBCLNFCHmJaMIDDHXHEhQNXZ_TARFHVB@DTQIRR@YHAJVnAbKFUEMLd\\c^ÍÞ"],encodeOffsets:[[112711,20572]]}},{type:"Feature",id:"469006",properties:{name:"万宁市",cp:[110.3137,18.8388],childNum:1},geometry:{type:"Polygon",coordinates:["@@^J@ZTVbET^JBGLFPTHld]`FLQhcVanx\\\\ZbLHTGj\\FLP~fIZRZPVTQFSVAFJE^NDLEE[~LjsxVTG\\NZZNGlLRRGLJTV@hPZANN^@T\\NEPPbDZXO`d^HSvcJDIV\\XZAJUFCLNP@PQ¤@[ïKLÑIÏ]ÇE±I{uƒ­YśUćFcYUmsVeBSVgB[RO@aYYPO^]@UVaNeDShMLG\\EfFVE\\F`"],encodeOffsets:[[112657,19182]]}},{type:"Feature",id:"469027",properties:{name:"澄迈县",cp:[109.9937,19.7314],childNum:1},geometry:{type:"Polygon",coordinates:["@@T\\GJCXJH@fJDDPNCNJENN^NLHBNSx@DDYbBLLDRbjZTj@`XXTlG^Xr@PJLW\\WLTlWR@HDJTD@X_PO@STMDNTMVV@NLDM`M\\XM\\JNBH[PYZ‡úYzŸ`Ċ\\ÎÝd]c[NKVFLEBaUmBIZGQ@JQSR@CUAEGBQ`SWYRMFgWGCGJCbNnIDGMEDKVAZUEqBYRa^WEUFKYQMaFWXEHIFWMYHCrXVIIiaK@aMCUYNSIISTwXALKH@XWXIEIJQCG[IEQDE_XSBaa[AIPW@]RS[FWS[CD]PEBYNGFSaSyJG]@ugEUDQlGHiBKHUIoNSKqHFaPMICK]UUHIPDJMuCA[SCPIDIOILGAEmU[POPBVSJDREBGS[QXWSGcT}]IO_X@TGHoHOLCX\\ELT@LYTD‚aFENF\\lj"], -encodeOffsets:[[112385,19987]]}},{type:"Feature",id:"469030",properties:{name:"白沙黎族自治县",cp:[109.3703,19.211],childNum:1},geometry:{type:"Polygon",coordinates:["@@D\\RV]dTXELnHr]^@LETBBRTHPi^[@U`QTHDJ`MGSogDIPKdJ`WVNHCXHl_DJR@AH`FBVPUJLHKNTJOFFZON[ZEHFCJlMJ_ŒCn`CJVNGPLTNDFIdVTWEIPmRKMc_kDMWGGUTAtJLK~\\f{pqD[LAVXRCH{HC`eŒJ`}@W^U@I@_Ya[R[@MSC_aMO@aWFmMOM@‹haGGMEmaQ[@MESHaIQJQ……MckBIw[AOSKKAMPSDSLOAV_@@`KJRbKRDfMdHZERgAWVsDMTUHqOUr@VQXTT@Tƒfg‚L^NH\\@heTCZaESNObHPƒHeZF\\X^ElM^F^"],encodeOffsets:[[111665,19890]]}},{type:"Feature",id:"469002",properties:{name:"琼海市",cp:[110.4208,19.224],childNum:1},geometry:{type:"Polygon",coordinates:["@@TP\\pATHTGlZDJGAQjE\\Rb@jVBDCN`JZ[NCNHNXbULPrP\\KNbMTLjJJRFP`“pNLZz^FLRHjVPZ@hxVKbHBHMNNJFRlLzGPnNHhIrHHADcPWdUAmEMVQDSKYHY\\EhBN^HpXGNDBNNBnIß‹Å_g{³So]ã@ORO@KMEDIVYB[WJUICudGTc]P_YWaCOOMFS[]@MMYBgOU@ISHKQQkKMHYY[MSHwUit}KF\\KFMCF]EIUBETSROUKTLT[NKTWREfJbCHBZKTFTKh"],encodeOffsets:[[112763,19595]]}},{type:"Feature",id:"469031",properties:{name:"昌江黎族自治县",cp:[109.0407,19.2137],childNum:1},geometry:{type:"Polygon",coordinates:["@@`ZĤd–`òüˆ˜ “BSPGP@VSbQ`‡@]HC~T^SE]N]FkW]E[fY„GGOPaTMbFDYfS@g[MGK]h„e@SSSRW@UVqrPVGNStCXUhBFQGYNcCeLQQaLI@_`@EUwcEaCUaMc@SK]Du`MSkKI‡~BVNL@X`‚EvYŠwHcTU@MIe@SXJbIPNVCRXbWbSAWJCRXFFL]FMPSjCfWb_L}E[TaBm^YF[XcQk@WK‰Z“JYRIZwŒ¹ "],encodeOffsets:[[111208,19833]]}},{type:"Feature",id:"469028",properties:{name:"临高县",cp:[109.6957,19.8063],childNum:1},geometry:{type:"Polygon",coordinates:["@@jD`hNd\\^dZädĒH´Op@ˆùZY\\OAGIMN[[W_NCNMKU@NUMSNCTSP@`O@WSCCI@GXQSkXKX[IK@OWqH]SkWW@_SiiYQaKCAKZaCCw@MTGAMKM]FMMIMDSM_HGHRPKCBGSJJIYH[QOJCHMBDGQJECMTDQKFGTCEGTF`NFEDMFaGSNwIiTGhYJD\\KZODC^@FTKND`XBHKJNKFBNhG^FJMPcHEZF\\QPRjQTAdgNOPgQaRSê"],encodeOffsets:[[112122,20431]]}},{type:"Feature",id:"469034",properties:{name:"陵水黎族自治县",cp:[109.9924,18.5415],childNum:1},geometry:{type:"Polygon",coordinates:["@@R]NC`YL]FoN@V[vBXVFNL@TRZalnVFVP`DlOZkVSXEE_F[EUFeH[NKTgfCbMVU^@P]ZObZP@\\QhATUfAtUasñiāEoI]eYǯ@aKmaeƒWuCºKÜKpnbHbYfUDSNCPJTRAHJTDJSfDNLHXC``VBNGTYCQDIXMDSP@xLNEFRNXBIpVNLXah@RgF@`qOML@LJNSPLbaHAh@Jdj"],encodeOffsets:[[112409,19261]]}},{type:"Feature",id:"469026",properties:{name:"屯昌县",cp:[110.0377,19.362],childNum:1},geometry:{type:"Polygon",coordinates:["@@\\OnVBFKHPJCJOJTDB\\vDINOCGJVVL^JDONEbrGTLpMVJLGjAHGRkVChF@vH^zIbTETMHAZOFC^\\DXT\\EffAP\\PdAV@UIYfS|S@YPICMeM@sC[_A]VQEwyHSMuNcAUlQJMVGMS@mVBZPFO\\CSFQK[LqDMACiUa@[QiFBRIHYCHkGSBS[oSOqB‡IE^QHCRWHIXsHU\\UC}JEjMNAN_ZƒAIhSEYfWDQGaPMTL’ERZTJb``NHV@"],encodeOffsets:[[112513,19852]]}},{type:"Feature",id:"469025",properties:{name:"定安县",cp:[110.3384,19.4698],childNum:1},geometry:{type:"Polygon",coordinates:["@@JjDNdJ\\FbKPXfZ^Ij@RZNaVSc[MsMOHQPDJcLIJ_zCG[HQxWJBHXdENRR@XQFWZQQGOFSWUCI[WCJuRGLXNMPLhCl[Ta@SqGgJMGOmyHkKEQMINMAGaGULgwY@UOGiKQ]EYyMK”oO_QEIIKiNSMa[LqOKOaVMWMGMDY\\_IKrL\\ERT[DEPYOUA@nNTUHINkRBVMdNvGTxzRF^U`BD\\@tfNDNOJ@Z{TeTJZ@VU€cB[OBOeeQT@^OXBJb\\AbWTF`RCJFH\\RDJIJFXW@WLGBKxWTSJJMTVZND@bbL"],encodeOffsets:[[112903,20139]]}},{type:"Feature",id:"469035",properties:{name:"保亭黎族苗族自治县",cp:[109.6284,18.6108],childNum:1},geometry:{type:"Polygon",coordinates:["@@FJp@fxpQ\\ApN\\GNPNBM`HLMrXLXj\\PEHnI@WUCEM\\GTc\\GZYHTPBHRCPTd€H\\K\\@HXi–BJILJJAVNTOZJNtFPC`YxDPWci@IBgbGKaTOIM@KNKrP@_hE@QbgKWUMJoWAQMFEKM@wTONCJWRCZDHSAM_UD_GWMKeCITSCGIQBGXUHQoMEEGWDQIG]FMQBMaFGueFeSQDUSDSKOCSFMLƒUaPWM_PaEGFETMX]RCRR@HXKN@JNnXXEŒSPaDI\\£FkXWIAX]xB\\GN"],encodeOffsets:[[112031,19071]]}},{type:"Feature",id:"469001",properties:{name:"五指山市",cp:[109.5282,18.8299],childNum:1},geometry:{type:"Polygon",coordinates:["@@TCNOLBTLBPx\\AJdl†NR†RIbJTGNF\\@RcIYbmHoLQdKN_fCJYbDRRXKZFVEZVXBXIJBXMdESW[CUYHUVQFQAqsEIMPYMSBUIIJKAIj•GW[@[LGScDOGQOAGSYZ[HSd[HFNVD@XmJFG[OWiWKNqGKN_MAMO[HoM[BoRewo@Y^HpITSFENc`MVCdHNIVCLJFI`NFIŒP`@VZbaf[FFJG`O\\WRFA@PVPFPPH"],encodeOffsets:[[111973,19401]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/hei_long_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2311",properties:{name:"黑河市",cp:[127.1448,49.2957],childNum:6},geometry:{type:"Polygon",coordinates:["@@VÈÞ@Žkx˜nXްVÈa°V@kôw„b‚š„JVškXlVUx„„@ŽlL@xkVV°ƒ„VbxlVUnVxk@ƒ„ƒKkŽVb„Il„@°kVl„@„™lÆnkll@@V„VXƒŽš@V„²bUlƒVlV„U„VÇn@nkJšŽlkVbœ@›x²V@n°VUnlKU„n`@n°bWLnVUblVUVVbknV`°kkŽl@@V°@nz„J@XšxlWXb°n@bƒĠlbXb™bVbƒJ@Všb„a@„„@lbUbšVmnœ@lšVmnIW‚œ@WbÞ@„n@x°@š„ĢaƐéϚnœ„‚lȝĠŻÈwm@ôçU™mm£Xy°UV™›@wÈ£Ǫ¯kõÝçUњ™Uķ‚ƒĢkVфÆšÞU°nŎ¥ČUĊx°m°¦żVƐœx°ƒÇ£@y„UônރÆ@Èĉ°Kô¦šW„kWU—bÇ»@™ÈĕWÇÈ£ŤU@›n£ÆUUKVamanwŃmÝJ¯k@JƒIkaVaUUÇbkaÆÑkWmÝUۙ™Ý@™ƒwnU±ƒ@kkV¯KUkƒJƒ¼U¦ƒšÅ@ówķaķůV¥Uaó@Åwmƒƒ_kVƒwĉ‚ĉmmn_V»™a@U™ƒVwķóƒ‚U¦LǫéóXÇmōLǓÇķxÝkƒƒĉ™kmakbUͰ@W¼„@bƒšÈÆ@Ė™L„l@„°J¯„mkl¯L݃±L—amJ@¼ƒ„™VƧUó„™UX˜ċb¯ńVbkÆÝI@llx„k°V²šV@Uxގ˜L@b„@b™`ƒšÇzkókݤ@ğ¯Wƒ™LĉǙLmmnċVkbUaƒL@ޝ„‚bU°ğL݂Ý@"],encodeOffsets:[[127744,50102]]}},{type:"Feature",id:"2327",properties:{name:"大兴安岭地区",cp:[124.1016,52.2345],childNum:3},geometry:{type:"Polygon",coordinates:["@@k›ƒϙmƏêġb™ƒ¯@@wƒmÝ@XV@IlŽl@bUxl¯VlV™bV@ULVlUV™_kx™VVV™ÈÝJ@„¯šU„™lm¯x@xóÒĉ¼m„¯Wƒxţ@Uz¯ƒWwnUwťƒ@knƒWƒ£óVƒUUwğyó¦WI—Vmm™I@±kwÇ@@bƒ@ĉ¼ó@¯wó@¯aó¼›KՃaUwmWUwÅI@aƒKó@Ua™LƒaƒVÅwō¼UUÝl±I—¤VxÇx@zkJmnn‚mbnz™xlŽƒl¯ČkJl™°@„kb„Žmx@x™@kêmVnŽWxôXšxU°„bWLóJnÇWĵ„V¦™ŽƒUUb™b™ÆġK™šk¯™VU±aXmċÑUwĉKġ„k„™ŽVxk„ÇKkbƒIƒ‚ÛXWl¯bƒŽ™X¯K™bĊš„„ÞVƚnŽĸ²lxUްn°òÈb‚¦—xVbƒŽƒ@¯„Vx@¯VķÞČlĊ°KĸŽȘI°¤ČIôŽò»ƨnȰKǬ¦ôWŎÈƨwlƒnKVXmbX`lbšwkVW‚XXŽ„L°a„ƾaĊ£nƒ°@°¥ŎzÞ¥‚»œalwôkƒJ„a@ĶK„£„bU°ĊxźVÈUĠ¥ƨ™VI@XU°x°Ln¥šw°UmwXm݁V¥Ģް@nU@mÆ£š¯lKœšÜw@aÅU‚¥UaÝIkmV²‚nn@Ķ»@Uk¥VKÞ@ÞÛ@ƒkVmĢa@_ƒJómƒǖ¯Æw—óÇa@alƒUwšwĢřšk@wÆWXUWXƒWa™m@_ƒ»ÇéXaĸwVa@ÝKkUWkX‚kšKXxƒn@lĊV@¯m¯nřÆwš¥"],encodeOffsets:[[130084,52206]]}},{type:"Feature",id:"2301",properties:{name:"哈尔滨市",cp:[127.9688,45.368],childNum:11},geometry:{type:"Polygon",coordinates:["@@°`„_šJlUšŽ@„„@V¦°JUšŽnLôlnŤ@@šÈaUÒVbkbl¤ƒzk°ÇVÛô°IlVUVôU„xÆU„Ž@bźĀ„º@¦šb@l²‚UVlœ@°ÒĠxšnXxÆVô¼Þ@Üx²KލlƒVѰUȰôlwô@²ƒĸ°„lanV@„šVŎUll@bÈnÜm„wĢ@la@ÝÞb°UXb˜lŎ²ÆškšV‚I@ŽnJnĠްknƒÜbĢwna@a˜kÞKƒĀ„a‚™œ‚‚IVbU¥wĠwkô˜xnLƒċVçkaUƒ±IUmnġW„°WôĉšalƒÞÅĵ¯@W¹XÝaƒb¯a±X¯ºLƒaVƒmkLóƒƒbkaƒVUKVkkKV_@aÝykk±L@ƒÅU@yV_™aU¥ówÇx™@UkVƒn@lƒkÅlwšWVwUkĉmkklW@šašbVwnWWƒ—wWL™™@Ušƒ™UƒÇLšÇmƒ„@wƒJĉƒL¥@ƒÝ_@a¯y„UWw¯ƒ¯Uġx¯aÝXVmaU£ó±›¯nwƒa¯óÅVƒXman™„Uƒ›lUXkWa@mkI„›ğaƒm™IklÇU™„kĊƒƒzkKƒš„lU„ōĬlš™„@ŽnX°@llUxʲmKĉVWwk@UbUK@bmVmI—ƒVmwaWxXlWȁšmºšÞÆbUxV@ĵńWÆĉLkWUbƒaWzkbĉ`U„±LklōwUVÝ£™UW`Uwk@mk¯VkaõVX@WbL™K@XƧºWzxƒK@lmX@bkVVÆk¼Vbk@Vn"],encodeOffsets:[[128712,46604]]}},{type:"Feature",id:"2302",properties:{name:"齐齐哈尔市",cp:[124.541,47.5818],childNum:11},geometry:{type:"Polygon",coordinates:["@@Þ@ށĠKV¯a°ƒ@„KVblaČU‚mnnšKĊȚKX„°ŽĠ@Þ£ôllÈy„™š_@a‚ƒ@a—KݍVwU@±™¯Uƒlkw@kÞJlÅUa°ŃČaW—šVôƒƨVšU„ƒ@»nI˜b²Kބ°Klkn°ƒ¯I@ƒƒkšK@ĕÇń™@aƒX»¯@VĵlaÿVamI@aÅÝउýƒĊȗJƒôȁÅkmƑۃ@kxġ@@l™aVk¯»ƒīŹaƒkƒ¥Å¯™JUaWU@@w™aƒ»„KUkÆkUm„UmwÛ±±UUbUŽUXƒwWwÆÝk™lkUanaWwnKl™kal¯ka™ƽa›kÅx™a¯@™amb¯V™lÇwÛĀ™V@x™šmêVƜVV‚aôV„wÈx@šˌx„¦VÞ¯VšlmX@‚ƒL@¯Ua¯LmV@„„°X„ċK™V™ƒ@UƒÈ@‚¥@w—ƒġIU™km¥Źwƒ¦¯lmn@°kxVV@¦óam„n¦l@nx™lĉVóšmx™n™ÒĉĀĊ¼„þ„šǔêÞ°ˌĠÞÒ°ĀɲĀƨźˤȤƨĊ°w@£nymwnkUUV¥ôÑVmkÆmUUVa™mVIkmô„lxkXÞþƒbl„ƒl@kV„ƆƒV„xV@š¼VÒ@šŽUŽšnnނJ"],encodeOffsets:[[127744,50102]]}},{type:"Feature",id:"2310",properties:{name:"牡丹江市",cp:[129.7815,44.7089],childNum:7},geometry:{type:"Polygon",coordinates:["@@U`lLUlVL„Ulb„aô„lKnŽU„„b‚K°¹²W°b„aÞb˜knyUlUkamř²L@m°@lšmš²n`ôÅlK„x„ÜKnxV@„l@œƒ›ÅXyW_k@™wm™ŹĕmƒX™»‚ƒÛ™l°ƒôšÈ„»š—ô˜ô_WW@Uœal»šwU@@wšUVƒš@VƒXI@w‚Ģ͑ÞȻ›aU_@mUkly@¯óV»XmWUXUWmnm¥nUUaWLk»Æ²IÇa™wÅaݰ¯nUa±a™ƒ™@¦õÆğ„@„™@Åb›xU܁nÇłlb¯¦„ôó»mƒ—@±ƒUk@Wwƒa¯xU„V°ƒxXbǎŁUV™™ƒK@¹ƒKUaȯ@ōݙXƒal™ƒlÛkalÇUǫÇńÇakbÝƆ¯nlš¯Ž@¼™VUx@x¯W¼™Æ¯šmĖ„Ĭ¯ČƒVk‚ķÅmxœ°ô²V¤‚bUnÞW°bĢw°V°„XxƒV°z@bÞ`@„‚¦„KĊŽ„I@xƒŽn„™ÈÈK‚„šV™„@VššXK˜xX„mXUx™a™b@‚kXllĊnVlUx™XkxlÆk„m@U„Vlš@ÈwôxV¦šbU`@zÆV@„²KllÞz@b"],encodeOffsets:[[132672,46936]]}},{type:"Feature",id:"2312",properties:{name:"绥化市",cp:[126.7163,46.8018],childNum:10},geometry:{type:"Polygon",coordinates:["@@ऊþÆÞ@bnJUb‚ĀnblŽĊš„„ÞlĸwǔÈŎKÈnôWǬê‚KV¥„ĸôUxš„@VšbU¼m`nnĊŽĊ„xlUšmkaVÿšLšwš@°»UmbKmݙUšwUmVknKUUl¯ƒKU™ƒUȃ‚™nK@ĠkX±lX„°„L@¯¥@wV_m›ĵ¯Ww™L¯ƒUkōƒÇVU™l›w—V󁱃¯aƒVka°wVk°mÞ¯Ŧřƙl™²™Ŏk™U@ƒmUkb¯ƒķޱ„ó@kxȯó¯VUÒk„ÝŽ±LÛwÝ@ó»ÅUWw™mğw¯Ñ›@UkV±@k™a@¥ƒ¹Źÿ@aƒÅVƒwóVVUkU¯JÜóÈUl¯„yk£laUaVÑÇb@™ţ@kmómK™V¯IU¥ƒ@@ƒ™kV™Iƒ`@ô™¼„blU„lƒ™bÈb@xÇKkĢɳaÅɆō@ƒŽVƒK@z™@@¥ÆKnÜ@@aۏUw›wnU‚ķ@ƒ_ƒV°Ž@„klVššnULVVÞbVl@°™@nx™n°LŚÆlV„ȃmU²@VmĠLƒx„n¯xkWƒzšJ‚wnLmbXbW°šÆ‚™²™@™Žšx@JVx„L‚Ā²Æ°I¯º‚È@ÒnÈ"],encodeOffsets:[[128352,48421]]}},{type:"Feature",id:"2307",properties:{name:"伊春市",cp:[129.1992,47.9608],childNum:3},geometry:{type:"Polygon",coordinates:["@@ƒKƒ¯kWW²ğl@ŽmLšÇ„„VVš„Lk°VVmLUlVn™xšVnނLnaVޝ¼™@™x™KUĀlb™n„`n„Æxô@VbU¦ĸŰĸbôxÆ@„™V¥„»„IVl°LUŽll@²„mV„x@ššÞܚÞVnŽlXÅÒlbÈaVVUblb„J@I°lÞIn‚Æ„mxnbUbVLÅVm¤@œţVǤXÈÇĖ@šÈ¼˜aXVÜaXbWŽnzŎašř„KôbšUlw@¯naÆKnUU¯Üa@mkkVUĊm„™żÝ‚ǖŽ‚K„™°L²lÆI@ƒ¯¥ĉƛVaÞk@ÝVaĠlnUVwƒœómaƒ@™wĉ@™a™VƒxamX@aƒ@UaÅLƒaVWƒ_nWm£nWm_ÅV¯ƒm@m„󤁚ݦƒ¯ÅalmX£ƒ™VWUŚw™mÇ@@IV™„WUw@ašI@„k@wŎ»Wƒ„ƒ™ÅVaœK›Ika@¥lUkUlwÅwVyÈwWU@a¯U°m—Ç@UçƒaVa¯mV»ÅwÝUlƒUk™V@k„mUk‚X£šw°@@ǃaÝIƒƒam™Ûam„¯lğmmI@J™U™l±ÅōŽ—kWa¯VÝa@Þkbġ@ƒxÛnÇm@akkōVōl±škšÅšťŚÝ°¯nUl¯xlb„U°b²„ô‚˜Uœxšk‚VÈUŎ„Vl°„šKXxͰnœU`@x°¦@"],encodeOffsets:[[131637,48556]]}},{type:"Feature",id:"2308",properties:{name:"佳木斯市",cp:[133.0005,47.5763],childNum:7},geometry:{type:"Polygon",coordinates:["@@nš„b‚„ÞJ„b@ȯ@™xW¤Vlƒn@lšUVlk„ÞVÆxU¼°nUb„bVèÈ@˜ŽnIn‚@šĢmlUw°™żƒ‚VUn@lnL@VôbšwĊ‚lœ„JķĸĢl„wôwƨxVVUƒŦšxšLź™Èš°`nnĠwŎJސĶwôJ„@¤Xn܄ĸlšn°¼È°lŽ„„Uš‚b„xš@„l@ÞÞÈm°„lôwšL°¼ĸ‚°Þ²nĠ@ôwÞ`ŤI„V„ÒĠU„„@„VJĸbƄ²@°ŽĊKšœ„JĶa̐Ȱ@ô¥°nš¤‚bČUš@Vx„mUw@a݁ţƒÇ™ķƒ@ĕķīU¯²@ÆmVÑô¯X¥ċç@™ĉ»U¥ÝţKWVÅkUVÝŎUmǍÝx¯aķxÛUóL¯a±óōb¯™ƒÑŃVÿƒ_Åķ„a@UƒK@wm@Van@UmmLVa—@VImmXUWƒÝUřƒKUwÝUUƒkVƒk@l¯X›‚Å_ƒJ¯k™Jm„ÅLƒa@¥U@¯Vƒz¯@ƒ`@¼šmxƥšŏKÛk@±laÛ@@Xm@™ƒ@xƽ@WŎnšˣĕÅ@@aÅ@@nÝbǏ¯@ƒ_U›kUWƒkb™wÝU@ç„Wlw@anIƒ¯lyœX°m°VšašÛšm@„mVwÞK°ƒšXlaXmm_ƒ@UƒkwÝK@ƒVI™ƒXmV»ƒI@aƒ¯ğW™bġaU_¯JU¯ġŽƒ„ĉ„k„ō`±nÝÆk„™bóĊ¯Xƒ‚ĢX‚mVn²JV„lbUè„ČmK—wlóğx‚xV¦UaJ›šƒbƑÿÝL—l@bmbġx"],encodeOffsets:[[132615,47740]]}},{type:"Feature",id:"2303",properties:{name:"鸡西市",cp:[132.7917,45.7361],childNum:4},geometry:{type:"Polygon",coordinates:["@@‚LšKVVnkšbVšÈb‚²U°VnklVlaÈL@anU°ÜmXV`œnôLƒèšxlŽšLX„˜L²ašVVmÈX@ķ˜lnU„Èl`ȹš@ŤŽ°U@x„KnnV„mlnnUl‚lVnnaŎwlVÞ҄@n¦šLVްlšwVk„Lšaގl„n҄š@xmLÞ¤Wnœ¼‚WÈLVVUxlÈô„„WVaU_VKšKXUÆbn™‚nôK„bÞw°bÆWXamVwœK˜™Uw¯WUk„UlJUwVUa™@@kmyzm›ĉw@kVwškƒW¯ÅKU_Vmƒƒ™xU@aW@@kK@w„a@Kƒ@@kVUƒaky°_Vm™kna¯K@™ƒL™wġk@@IÇóX™ƒwVakmV@mwXUWanƒlĉ@ǙUw™KƒƒóšܛNJۄm°@›w—Å@ƒ±b¯Wƒ¹„WVwŹĕ¯kVmōb¯w@aƒwmV™UUb™V™IkaVwķ™xk¼›b@VXXó`󗙘ƒ¼Çó™¯„kŽÜš„š¼WŽn„źĖnššxl@X`WzœÆ"],encodeOffsets:[[133921,46716]]}},{type:"Feature",id:"2305",properties:{name:"双鸭山市",cp:[133.5938,46.7523],childNum:5},geometry:{type:"Polygon",coordinates:["@@™UƒƒUwó™mÑÞÑUÝÝUkmmŃyV¯ī„¥ƒUÿĉ¯mÇkaWbÅX¯aÝxƒaóLmmšÅaWV™LULV`UbƒXóƒkÇVwUUÇKX›»XmÝ£nK@wƒ™mÑkƒÝ™bƒKUl™x¯kU™Km¥ƒ@ÝÑkUōxmbUmkVkmmnkUƒmmƒL@w¯Vţ™@Ǻk_ƒÇmV—k@ĸVx‚VȰlLkllšUbōwƒnVW¼nlUx¯XmWUnÝ@™xÝUó¼¯J@LVbkJWnkb™W¯„ÝLUxƒn@‚™n™Ü™b¯U¯n›Wkz„°mJ@bkxƒX@èÞVšxlaX„lVVœ„`°@ȐÞa@mÆ@@bÆ@ˤĖm™Xōƾ@@wš„n@@WÜ@kb@²ÜlŐLƦ™nw™@»„_°@„y°UV@@¦„bÆKnƒšI°l„IÆ`œ°W@k„llUV„ÞVVx„LƚÞVX„WVnnUJ˜@UbnKVnm@Ubn@@x„L@VƒbÆĸ„`UĀÆ„„Ò°šŎa²ô°bôKÜVĸw°bÞwȎVnÞōVUÆlXU"],encodeOffsets:[[137577,48578]]}},{type:"Feature",id:"2306",properties:{name:"大庆市",cp:[124.7717,46.4282],childNum:5},geometry:{type:"Polygon",coordinates:["@@mÇ@сǰ¹¯J±ÅÿƒKUw‚I@™wšš@š±Å‚™X¯WanamKx™I„ylX°wƒm„wğKUn±@nVDŽUƒÅkƙ¯Kšmmwš@@¯UkÝaUUVK™mU™lk@ƒ¯„U„`ĸ@V‚mœxVxܐ@bÛ@m‚ÅL@¦š@@y„L‚U„Ŏ@ÆɅɴblġÈL@wÇaša„ƒkkVƒaš»@ó¯_ÝJ™wÇaÅXny›U¯¥Å„@w™bÝa™Lmm@@ƒVUŽlbğVmš™¯Xƒm_ƒ`¯_Ux™m™L™a¯b@mƒaó¦Çk™¤V„@bóJknVx™VXx±aƒLUbVxkLVlLWlƒ@nX@VÅbWlÈnƒx„bWšÅbmŽ@xœbml°b™„XbW„XVmnn`ƒLmšnbmb@šk@mwU@@š¯Jlbk°lbkšmLXxmbVbkllšÅނxX„xVWVVa²VܲnxƒVVnÅlVlƒL„¼šb@xV@XŽVbšIư„¦„lźb„Ĭ°¼Ulšb@kĢ@lw„@ƒÜlnȂƄóȘI„ĉ"],encodeOffsets:[[128352,48421]]}},{type:"Feature",id:"2304",properties:{name:"鹤岗市",cp:[130.4407,47.7081],childNum:3},geometry:{type:"Polygon",coordinates:["@@Þ¥‚™ô£nƒn@°„ÆUn`mXn¤mX„`UX„bÆKVb„@@bnW‚b„wšUšbĊ@šx„@nbšWVmƒ_mm@ó»Um„ŘWXkĠ»²¯‚¯nķšwŎ@ĊšŎK°bĸUnјKȦĠÈbÆknJššÆUĢV°IšŽšVƾƒwaV™ƒƒkÇ¯¯»™mķkۃWm@£ƒóIĵxݏōIğxmm¯_Ç™Źš™K™wťŽ„UVUŽƧwóxƒxġkĸķƒIk›ĉ™xóa@UmK@kVmUŻ„¯šVxkŽġn™‚@mmJ¯n°V@bXVÇxUzÆxkxlVkV@¦lbœJ›LUbšÆƒ„X„ō¼@xƒl@™J@bVxƒXUš@JÈ@šn™xVÆUXš‚„W¤knÆb„°"],encodeOffsets:[[132998,49478]]}},{type:"Feature",id:"2309",properties:{name:"七台河市",cp:[131.2756,45.9558],childNum:2},geometry:{type:"Polygon",coordinates:["@@²mŎ_lƒĊƒ„ƒĢV°°IV`ĢbšaĠX„°@b„JU¼Wnš„UJ@„ÞLlxV„„@n`lIUa@K°Iô»ÞVšwÞ@VmnX°WVwmkX»‚U„mŎxVak™lkkKǯUUwÇWUn™U±b—KWƒ™Kk™w„çóK›mU_nW¯ÛmV@bÇKkbkUml¯U±VÇaU™™amlUU™LK›„k@ƒU@mwÛLƒŽƒwkLóÆm_™±™nkޝ@@n±KnŚlbkVV‚mz—lWXº@Ķ°"],encodeOffsets:[[133369,47228]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/he_bei_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1308",properties:{name:"承德市",cp:[117.5757,41.4075],childNum:11},geometry:{type:"Polygon",coordinates:["@@lLnlmxn„„IVVlUnb@VVxXJWL@LގVnnV„J˜_@wkmšK„b‚x„wXk˜WXXšKlb²K@nVVVb„L@WlU²„lKVnUJVz@VVb@lżmVUVnbôaVX@°Ub@lWbXš@b@bVb°x„@VxÈLVlšaÆ@Þb²k°@lVUŽ@Xn@VW‚LXb@¤VXšKVVVLnm°_ƨ¤@aUIVa„alkX›°k„™V@„alwUVy„U@k󙰃na°UVUUmUÆw@mkLVUƒWVI„WšLnn@xlVnK„myU@ƒU°UXaV@U¥ƒU@Uƙ@aVUkWU¯ƒaU@WLUV@bkbmKULmKkUVUkmVIUwlWV²™Uml°U@W„LUwVm@UUK@_ƒKUUÜaXw@ƒVKUU@mVIUUlmnIVVVbÈVlKnbVKš@nI˜@nVnwVLVK„K„„˜Vnb@aUIVW@In™°@lVnIš@lWĢ@°UVL@b„@VyUUƒa@w@WUnU@Wǯ™K@UkkJWaÛbmk@mVaÞU@amkWƒ@mXUKkÿƒ£@a„kl@Um°UXwla„al@nmlXnW°znW@aƒwV™@ƒakbĉ¥VmU@ƒIƒVƒUƒJkUmWU™KbmkUaƒKkUVU@KV@@klw—™WaU@kmƒXVènbmlUUƒKƒX¯JkbƒI@JmIUWU@ƒLml@XkJ@U™kƒK@aVKwWa—IWwƒmUƒ@mU@J@UaċU™aUUƒVkI±ƒk@UUƒ@UbVVm@UVKƒLƒlkIWaULUWƒXUJU„ƒ@WbUb@lkXUxm@@JVn@J@b„nƒb@Vkx@bšLU‚Æn„JšaVXnKVVmzX‚°V@_lJXxWXƒK¯bÅamUƒ@lUI›bñJ@LÇKkIÇ`kxWL@„ƒ@@bUVUb¯xWKk„Å„VlULW@ƒŽn¦Ul@I™lmUUUVm@kWƒnkKma¯XUKWmnwVwÝL„mŽ™VUbUVWb@Lnxm„xVŽmbXx›¦@„nb@`™„ƒVƒ@kbƒLU„mVUlkbVXkºmnm@@xk¦šbĢÜlš"],encodeOffsets:[[118868,42784]]}},{type:"Feature",id:"1307",properties:{name:"张家口市",cp:[115.1477,40.8527],childNum:15},geometry:{type:"Polygon",coordinates:["@@k™ġۙal¥@wn@nml¹UWlaVknUVƒ„Kla„@„Ušƒ@_ma@ƒœ¥WwnaU‚wnƒmw@KXaVUVašUnmWUk°™lƒnUVUXWVw™IWVóKUI@WXƒxUU@mma@kUKWLkw@yk@ƒaVkUUċaUU@Wk@Unm@UVmLm±IUƒkJ™kWƒ@a„I@m@U„ƒVƒ„Ula„@VXVƒXmVwnkWKƒKU_k@m¥ƒmX_™JmnU@km@U@KmU™VƒU@U™@Umk@@LƒmW@Û£Wƒka@wk™@aƒI@mmk@mUa@UmUƒIƒwW@aWUƒbU@kbÇ@kwƒ@makVUk™U@aƒm@aU@mxkUƒbƒKUXUƒ±KXVWLUK@wkU@V™@WXUa@WbUxƒJIƒŽ@¦VèVVX@±ê¯KUIƒ`¯UULVx@Vƒ@UKƒIƒVkLmVkKmš@nUJÝbkIUJVXšVVxVbU„VJ„Un™°bV„mlU°„XnK@Ul@lVÈVUXšx@W„@VXšV‚KÞb„n@VnbV„m`ƒUx™kW@UVkL™Km¼@lUnUJVnV„XV@Vm@@LV„klƒIkl@VƒWlŽULWKUL@mJ„@blbUVUlmzUJUxm@UUbċÜk@Ub@VšLVV„¦ôbVŽmšUKUkU@m„„@VlVn¼WbUJ¯@@„°šnIllÈl˜@nXšWlLœk‚J@bkxlxkxlXUlklJƒšXL@bW„n`@nƎXxlL@xl@Xb‚LœKlVlIXblVUbUJW@lX@VL@VVŽšXšJšw„n@WnL°K„bVbl@VI@K„@U@nmVmV@XUWI@aXm@™VUUkWmn@lmUUk@mUmK@UnwVĉ@ƒƒmU_V@XJôVVUšLVUn@šllUnJl_n@šml@XŽlLlw²LVJUL@VmbVblVXmVnlš@Ť¦„nn@܎@bšl„@@XV`„Unb@VlLVb²J‚Xn¥ÆÑ@¥Þ@"],encodeOffsets:[[118868,42784]]}},{type:"Feature",id:"1306",properties:{name:"保定市",cp:[115.0488,39.0948],childNum:23},geometry:{type:"Polygon",coordinates:["@@VbXWš@@UlV@xVLXKWU²LV„VW„L„alVnwV@@b„n@bšVVllUnb„@lxÈ@laV@„aXV@b‚X„x„J‚nV@VVb@nnl@n„J@blšl@„ašƒU_VWUwVUškUm™Ukb±mVwœU@VIUW@UWk„@VU@ynL„m@IV@‚bnK„LVaVmnIlaXwV@@WVL°@@xnX„@V`V@VbUVVLVKnwnL@ll@@_V@VVnaÆ@œKVXÆ@nƒ@wƒKmU—™Wm@km@kÜKXU@ÑW±nIUwVƒ„Kla@I°wU±kškmm¯mƒ_ƒJnƒaƒwW@IVaUama@wƒUƒmU@mVw@aXk@mWa@£km@aƒ_kVmUnWW@¯bƒkUmk@ƒVÇm@@kUU™KUU™@UVUamVUaWIkb@xU@@amUkKƒVkam@@kVUkUWmKmUkLUb@xmJƒ™U@UImVÛVmnUwƒJƒU@VƒX@UWm@Ub°¦UšmxklmX@`ULU@@UW@@xkn¯@makV™UmxUb™°ƒlUšƒbUbƒnUJƒUUVƒa™LkbUU›JUU@mUUUƒJkaƒ@™xUIWJƒUnƒJ@V™zƒ@kb@`@bln@l™bƒŽ@X@š@š„@Xl‚bnbVb„@„„VJlInlšbVw@U„K„l@lbnan@Vb‚JôLn‚UzlV@lÈLVbVK@LVx—VWXX`WxXz‚bV`UXV¤nx@„bVlVnVlUL"],encodeOffsets:[[117304,40512]]}},{type:"Feature",id:"1302",properties:{name:"唐山市",cp:[118.4766,39.6826],childNum:11},geometry:{type:"Polygon",coordinates:["@@„@VVl@²„lJ„UVVšbČVVb‚@@InV„@‚V„nXx˜JXb‚xUL@b„Lšl@VlI@Wnk„KV@VXnJ@I„Jla°I„W„LVVnkmaUç„WVkôaܯ„@nV°wnJlaV@VUnUUaW¯wXWWwna@£UaWKU¯ƒ¯@aVUkKUamUUƒn»‚an™„IVwUWlkš@„LlWVakU@K„_lƒšbÞU°@šy°n„@„KÈkWW™ţ¥ĉōƒkġWUw¯£¯ƒÇwţwƒ@kK@kƒ¥ÝwÅbǤېťV™lW°@ĸ™x@VVVULVLkl@V@Xƒ`Ub@Xm@UWbƒk@ÆVbnLWV@lnXUbl‚@X¯lmU™VkKWLkK@_UK@U@UmmUxmVXLWVULkU@`W@ULUK@XlJXzV@@xml@VU@UX@Kk@WbUK@Xn`ƒXmJnšmškxUVbUVlVVxUbV@nKlL„kVKÞbVKXI°KVšmVUIUKULVxVJVLkV@Vƒ@UbU@WUU@UbUK@b@nƒV@VkLmb@b"],encodeOffsets:[[120398,41159]]}},{type:"Feature",id:"1309",properties:{name:"沧州市",cp:[116.8286,38.2104],childNum:15},geometry:{type:"Polygon",coordinates:["@@@ln@UȄŽl@Vn„l°aX@mXnVlU„`@bln@¤Xb@nWl@bUx@nnV‚„„V@xnbVbUb@J‚X„x„b‚mXa@k„UVwlW„k„KôVm@w™kkK@kl»Èƒm™VKXkla°@XVV@VI@ml@@Vn@VX@V@J„@VxUzVVšš²blVk¦@šĠ@@»š@VK@VÈLlK@XnJ@alIUl„a„VVbš@„n@a„U@WUIV@mUn@mKXml@lL@LnWšb@XV@@a„VVb„V„@VV„IVWÈb˜IÈ»ƒǟlWšaVUÅUƒƒ™Um@kVU™WVkaUwmaóUƒJUU¯ÑU¥mk™¯UaƒKÅnÇyóXmWÛX¯aċbÛa›J—W™ÝU¯»ƒaóóUm@IƒšVVl@bƒLUJWLX@@xšXUxl¤V@V„nVUV„XVbVš@Ž„@@VVn„°VŽ@ţU¯VƒUmƒUWV@mUXƒaƒbUKUwUaÇKn„ƒVk¦Wb@VnLmV@bkV@n„xW`Å_UVƒV@bƒUklVX@VmlUƒx@VVL@x—VWVL@VW@UUm@"],encodeOffsets:[[118485,39280]]}},{type:"Feature",id:"1301",properties:{name:"石家庄市",cp:[114.4995,38.1006],childNum:19},geometry:{type:"Polygon",coordinates:["@@la„@šy@U„I‚m„VXIVJšw„@lb„IVVnV‚@VVœIVVlašK„bVU„VVI„mVa„aV™„kš¯VanwšVlUnb°@lm@wX@@VV@VK@_nWlknwV™¯¥Van@VX‚@„W@U„V„IVxnmÜUnUVJV@„šnI@wValKnV@k‚mU£na@mVk°K„LVa@UU@UƒmknWWkXU@aWW@@km@UaU@@klK@UkaWaUnamm@U„a¯wWU@UkƒL@ŽUn@x™V™lUXVJUb™LmU@aUWUkmKkLUUm@mW—XƒaƒmmkkWUm@@U¯JUUm™kU¯@mKĉxÝwÝ¥LƒUóŽmwkUUUWVkKm™kKmLX„lxVLVxXJ@nVJnz@VWL@`nX@šƒxƒ@kVUUmJmIXx„JV„ƒnUVƒ@UVV„@LUšƒ`UXVVƒ„ƒlXL@l@b@VmX@b™xn°™UƒbkKWLXlW@@bƒK„mKULmakLUlmb@šXb@xmXU`V„b@`lLx@nWVXL@‚°WlXnlb„KVK„XVb@˜X@l_lJ@V@XnŽ„I"],encodeOffsets:[[116562,39691]]}},{type:"Feature",id:"1305",properties:{name:"邢台市",cp:[114.8071,37.2821],childNum:18},geometry:{type:"Polygon",coordinates:["@@nKlLnšlLXUVVlVnxô„V‚KÞ¦ÞxĊwnL°@lVnšVV°I@Vn@V‚lXnl„n„b˜WnXn@VVlKnLVlVX@bnVšKVaUIVWškšU@wVm@¯@U¥VmU_°lšK„k‚w@LX‚Va„U@wšUƒUUKlUóW@UVUœUlƒ°K„wlKU_na„KVnlKkkšWWa@IœJVa@IlJnU@„KVUUmVlaXUl@lm@kXWÝÑnkƒ™±™k@wğ›@@U@mKĉLmVJ@zmlnŽWLUÝJU_ƒ@@šmJkXUVlbklÝ@Ýa™b¯@¯±JÅwġaUU@ƒkU™@mVI±bUKƒL™WUXƒJkaƒLóKULWbUVkKmnk@@bmLUŽƒl@b@mnmJkUULƒaƒbnŽmn@lVV@¦n@„l@b‚znx@`Vz@b„xnV@xl„lbnKVx"],encodeOffsets:[[116764,38346]]}},{type:"Feature",id:"1304",properties:{name:"邯郸市",cp:[114.4775,36.535],childNum:18},geometry:{type:"Polygon",coordinates:["@@„bVKlVnInm‚@@a„kVnK@al@nmlLVUXaVKôL„Klb„IVWšX„KVL²a‚JnUš@lV@„VVĢbÆx²I°Ž°@šaÞbÞ@lkkaVUlWnI@™„@V`ÞI‚VXKmnk@y‚InUĊKƒÇkUUamUUkƒƒ@aU@U™ƒk@WUwVkVJVkkw°a@„mK@UX@VV„LVW@wšwVa@¯Xm@@lUIWaU@UWkXWmU@UwmUkKmn@lkVƒ²™VƒaULUVmJUUUwƒLma@™UmkIUm›L—mVšmx@b™LUamKÅL@VmbkU¯KÝamzkJUb±Vkb™L@lU@WIkJƒzkKmKƒnUalWkkKW@@nkbk@WW¯XUVUJ@XlJ@Xƒ@XlWLkUƒ`VUnaWa„UV@UVIƒaUxUUmVƒK@I@W@DŽU@@U@bƒ‚@nmKXmx™@UxkVWUX„@`VLlL@`™zX‚Ýb@b‚„@VUVkIUJVz°KVlnLlKnL„xlLVVUVlXUJ@nn‚„I@mVUlbn@@Žm„@bV„nV"],encodeOffsets:[[116528,37885]]}},{type:"Feature",id:"1303",properties:{name:"秦皇岛市",cp:[119.2126,40.0232],childNum:5},geometry:{type:"Polygon",coordinates:["@@lnV@Xb˜škx@lU@@LUVlV„LVbnl‚ašLXVVn‚l„I„V„U„JV@UnĊ¦la„bš@nJ°UmƒV@„wn@VU„JVI°bnWlXnWVLVK²b‚akk„lI@aUaVƒUwVUUalaVwnUVak¥šX@W‚kœLVÓm„mUK@_lWš@n_UK@alÅ@ğÅƑŃݍmƒ@їţÇlƒLƒ@¯m™z¯@ÝV™ak„ƒ`@LlVUbkXƒK™@klVXUxƒJmšbm¼V„nVVblLUV@b„°V°XLVb@¤mbXxWX°xXŽVbmVUVU@kbmI¯xmUƒ@Û°óbUl"],encodeOffsets:[[121411,41254]]}},{type:"Feature",id:"1311",properties:{name:"衡水市",cp:[115.8838,37.7161],childNum:11},geometry:{type:"Polygon",coordinates:["@@„KVlV@X°xƒb@VnnmbVŽXblb@VkL@lV@Vbn@@l‚@XX@bWVXlmXnlV„V@@VUbƒK¯LUl@nmbV¤n@l‚LXnlVUV@ln@lb„UlLnV@bV@@wlaXJVbnUVbVUš@VVšLVVn@VVX@@U‚KXU˜U@wUK@U„wVnk@UUWlk„V@a„UVUÆ`X_ƒw@mlU@anUmK@UXal¥„UmƒÈLVbVxVL„a„bVW@nXU‚Vn„„V°UŤV@Uƒ¯Um@Uƒ@@U™UaƒWVUmUUƒU@k£Vw™W@wW@XKƒIUa@wU@@al@UK@_mKXKƒbUU@aVKmš@Xmƒƒ±@kbÇakLğVaUw@a@ƒmkUJƒk@ykw@£ƒWX@lknk@WVkbUŽVnUVƒL@‚mVkI@JUb›I@JXb™XllkLUmƒLmbV`kLƒx¯Lk„›VUV@VôXkVVL„V™V@xƒVUbW@Kxƒl™L¯kV`UnV¦°@"],encodeOffsets:[[118024,38549]]}},{type:"Feature",id:"1310",properties:{name:"廊坊市",cp:[116.521,39.0509],childNum:9},geometry:{type:"MultiPolygon",coordinates:[["@@la„Ušš@šUnL@VWbklWxnIVV„V@X„JlbUlšXVbn@@K„mV@@X°WVInJmn²@lmVbnL@amKV_kwlmX@@LVamaXaƒaVU@UnJVanLlUkaW@UaVakK@IlKUU@an@ln@alKUƒkIVa@a@klaUKUV@UkUV¯šKVƒV@kUmƒU@@a¯ImJUU@VV@UL@Uƒ@@WXUWa@Ukwm™@ƒX@@w@al@@aVIUmVUUUVWUknK@I@™l¥kU±a™™UUVyUwƒ@@I@UUWm@@Uk@@nUJU@WU¯@kbWlULnšÇ„k¼@llLšl@xUnóŽƒLƒlkXUxƒV@lWb„I„`°nnn™llŽV²¯x@JkbƒLU„VxmJX²@ÒWVÛL@lln@‚Xn˜šnV„L"],["@@@kX@Valaa@KWI@UXW@WanaUIW@UaUKķŽk_W@UVUKUš@bƒ@UamxVXnJUbWVXLVbn@W°kb@U@Wó¼mIU¼k`V„@bVbl@„lX@lUôVlUœIV`lX„Vn@lUlVn@„l@UVaƒIUWl£Um™VWU@@UUKlUUUnƒVL@KšUnLVWUa›@™U"]],encodeOffsets:[[[119037,40467]],[[119970,40776]]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/he_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4113",properties:{name:"南阳市",cp:[112.4011,33.0359],childNum:12},geometry:{type:"Polygon",coordinates:["@@lKl@nVV@„bn„@VVnm‚nL‚LXx@š„‚VLlKVU„IXWÜ@șlbl@XUĊUlwnW„LÞw‚m@ÞUVmnVl@nX‚JXLm@VnnJla„I@VkxVb„@VŽln„J@knKVn„@°aVanal@XK°b„‚@š¯VJXIš„VK@al@nV„k‚@nK„a‚b„@XL@blVVKVLXK„@VaVI°mVaX@V_@a@yUkVw„VšIVašJ°™@anIlaV@nKnXÆm@wUUV±UUWUKnaWwXUWmٝVƒam@kakImƒUKƒ»lan@VXXa˜W@@UlUUa@a@UlwUƒV@Xal@@anIVaUK@V™XmwVmUmV„LXl‚@nalLnal@„šnKlkV@@UnJ‚UXnl@nVl¦V@@VnJ@nUVVVVIn@Va„JƗn@@K@m„kƒa@kmWVaUI@a@™k@@aUL@mmaVIUKUVƒ@@IU@mƒUmmL@K@UUUU@mW@@nU@ğ»mVmbk@klW@UXnV@LƒJm„™lUnUJ™UUUWƒƒ@UnkKƒxmLa@ƒ@@lUU™bmUVWk@@nkUmam@UakJU_ƒVm@ÅlÇLUVmVUwULƒKU@ƒk@UƒVUlU@@Uƒ@UaUUWaŎƒzJƒaWLkl™b@bmL@„kKƒabWŽUVƒ_@mV@b¯JmXUbUK™¤ÇLUU@b@JkLWmkUWIkJ@VmX@JUbVXU`¯VV¯blK@LXKl„UV@Um@@Uk@kxWŽkbƒL@KkbmL@‚UXmaU@@l@x@blX@xUJ@bULUlULÇ@@VšnU`W@@nÛ¼U@@VmKUkm@VVX@@xǚ@bUbVb@VX@@x‚LUb@lƒ¼XLlbUlVVU„Ub@n"],encodeOffsets:[[113671,34364]]}},{type:"Feature",id:"4115",properties:{name:"信阳市",cp:[114.8291,32.0197],childNum:9},geometry:{type:"Polygon",coordinates:["@@VllInJlknJVkVU@mXlUÞ`VnV™VU@U@y„@nXlKV„nJVkXKWaXI‚b@yVk„VUkVwn@‚K@nW@k„KlUXVVUlbnUV`n@V_V@llX@@V„b@bV@@nlVUb¯‚WLnbmb@ŽnLnK˜b„U„bVWnLlaX@VVUX@Vln@`kL@ll@VXVJÈIVl@XÞJ°Una„LlylU@UXKlnn@lanLWWnbVI@KXKVL@LVWVL@UVKUIVWX@@XÆJ@In`@lJVI@a„WšÛnK@UlK@UU@VK„nlm„nXal„UllLUbVVšknJ@nV@Vm@a„l@@xnV„„lJVUU@™w@aƒk„@XW@_mWnUlŁUmVKV@VXwW»XƒWaUwnkWUkVUƒU@@@WlaUkkaƒIWVkm¯xmIUmƒLUVƒaUIó»m@mmwXk@a›mk¯¯l™@wƒmkLmmU@UbkUWJ@XUbƒJ@b@l@znÆmK@Xk@Ub@lm@ƒI@akmVKUUVUkU@U±JUbkƒ@IWmkxƒa@UUV™UWVkIUaW@UlLWn@VkJƒI@VkK@L@bmKƒkJmUUaUKWXk¼VxnJ@„V@@VULV¼ƒ@@UkaUlWL@U@W@IkKmL@KULUWULWKUXUJmIƒb—KƒŽƒ²UW™nWKUUkLUƒmUUam@UU™@ƒmUL@xkV@„VV@bmV@Vk@mwkUƒVUx@mbX‚ÇnVb„‚UL¯šWŽnUVLVb@xnlWnU@UVUVVUbVVlVkn@llVUXUWUXVbUJ@bmLUJnb@nVK@bl@@š@bVJUbnX@l„b"],encodeOffsets:[[116551,33385]]}},{type:"Feature",id:"4103",properties:{name:"洛阳市",cp:[112.0605,34.3158],childNum:11},geometry:{type:"Polygon",coordinates:["@@VVUllLXl@LWn@J„@bƒKUVmnL@`VblLnbV@„b@JmL@LnV@VV@¯„VJVnXL˜@nm@aÞ@‚a„k@m„IšmVbXL‚ynLšk°@°aVJnUV@UVVXk@WJ@VXLlUnJVnnƒ°U@»°U„wl@šb„WmUXƒÆ@VLXU@m@U„a@I›mkb™a@naWW@_@WXUV@@U‚ƒ²@„K@I±U@¥kKWLóLlƒa@£Um@kWKXU@mlLXUVKUU±J¯_@`UL¯Wmk@Wa„kkƒlUnƒVUVaU@KUU@mmK@_ƒa@KX@VaUIm±™k„aVKVUkw™@kaƒƒW@kbkL±UUaƒK@UUKVak£ƒ@UmmL@lƒIkmUƒ@Ualw@UƒJkbmIUmn@WKImWk@mUUnÝV@ށnÝxƒKmXkxĉVWVk@kaċšÛ@WXƒJUV@zŽm„VWnbUbVbšLlUnŽ‚lUÒnWV—VWnk@@Vm@kxm@Un™l@Ll@@V@šXnƒškJV„šV@nlVXx˜U@l„n@aš@VLnWĊ¦nxš@lbVKXLl@ރVLƒ„XJl@XXl`lIXVl@Xl‚XUVšK„wV@lanx„zUbVJ@VVX@b"],encodeOffsets:[[114683,35551]]}},{type:"Feature",id:"4117",properties:{name:"驻马店市",cp:[114.1589,32.9041],childNum:10},geometry:{type:"Polygon",coordinates:["@@n@„b°UƂXnVlnLÜ@VLœm@n˜@na@J„„m@k„@lVšVxXX@„V`lLV„XVV@VVÞLVV°„²@lašbnxV@@b„Lšmlm„_VWnIWUna@lšLšbnV°ƒVL@KšV„LVUVaVLXK@mÆXna@wVm„a‚@Xw@KlL@a„@Va@wUkaWnIVƒla@Kn@Vn@VUl@nKVn„J@LnK@aVkVUUWƒ@VakUVanI‚²X‚W@UUU°KnUVLl@XaVK@ašU@KUI@W@_lm@KkLUKV_Uƒ@»@UVJ@XV@@mVL@K@U@Kk@VwUUm@kmWL@VkVkzƒKmb¯VÝI@WUkÇJUIUWk@@klK@_km@UVWUUW@kbmKUXƒaƒV—amLmK@namaXK°VakU@mU@@aƒa@UW@kkU@U`m@U_mVkaUVWUkVƒL@lmX@ށLm@UxVlƒUUl@zaWJXbWLUlmIUƒkLmWƒ@@z@VUVUšUmÝ_kVWŽ@nUVUlmIklmIkJUkƒl@n@Lm@؃IUbm@UJUUVU@mmI@UU@k¥mUk@WmVmI@VU@klmLƒ™k@mbkKmb@WkƒKUŽVnUnnxšW@UVLUbmJ@bk@WbU@V„kx@V@bVbkV@V‚@‚—XWbUWm@kb„¼VLn„lJlb"],encodeOffsets:[[115920,33863]]}},{type:"Feature",id:"4116",properties:{name:"周口市",cp:[114.873,33.6951],childNum:10},geometry:{type:"Polygon",coordinates:["@@lšnb@xlJ@UnLlKXUlJl_„KnV@xVL@bkbVVUè@šWb@„Ubmš„ŽkšVšmbX„VJnUl@„a°@@b„LVbƒlXx˜InmnLVw‚anJÆw²IlmnXVl°VVbÈaVb„@lkn@VWnLlUVmÞUUklƒkƒVkUaVaVaUw™K@kkaVWmw„_„‚l@nU„VVb@b„aV@VV@zXJl@@kl@šlœk°WVnÆbnbUšVJ„Iš@VKVm@k™K@_kK@a@aU@@wW@@k@aUW@IUWVUnLlUlVXKVwmk@W@—VWa„¥@k@lnƒUIÇKUaU@ƒUUVmIUV™Uk¥ƒVma@¯k@Wanwmƒ„@@n@@m@UIVƒkUVamUXWƒaV™U_™@ƒmUVUImW@aUIĉK@VmI™b@lU@@n™JƒkU™@KƒIUmmLk@UVm@UŽm@@LkbU„mJXlbV‚@xUbƒ@@bkK@LWx@ƒbUn@xmbÅW@nWLUKUbUVƒK™U@LUK¯„mU@šVV@xULUŽVL@bU`WšUz¯aUamKUaƒ@@xkX@x"],encodeOffsets:[[116832,34527]]}},{type:"Feature",id:"4114",properties:{name:"商丘市",cp:[115.741,34.2828],childNum:8},geometry:{type:"Polygon",coordinates:["@@XVl@lLȃ„@VkV@V»UanƒWX@VaÆÇô@ÈaVX@xVJXUÞU‚aVLĸbXKl„V@šm°Vn_ny˜XX»mUk¥lK@a„_@yšInaVKVa°_@WXI@ƒ@K‚VnIlbnaV@„l„@‚a@_w@ƒlwUKm™Xa@UV@š»Vƒšw@kUKVUUm@w±VUXUKUwmJUUƒ@km@@±mXkmUI™@mm™KUwkbWakLWaUIkJmŽƒX@l@@VUX@JWbX@VbULWbƒlUVULknlV@bVJk„mb¯KknWmk@@nmVkx™@ƒVmU¯KUnUL™@ƒJUIV™maÅaUm¯X›l™kk@@lk@WI@yUUU@ƒb@aUaƒUmVk@ƒƒ`nxUXlb@lšLVxUbUbVbUll„k„VlÝVUnkVmKUXm@klƒ@ƒnUx@xnxƒn@`VX@V²x@V@b@„Wl@zU`VUVVb„L@Vƒb™W@bkXllkLWV@V„@VVÈwlVœ@@X˜K²Llb„WnnÆL@VnJWn"],encodeOffsets:[[118024,35680]]}},{type:"Feature",id:"4112",properties:{name:"三门峡市",cp:[110.8301,34.3158],childNum:6},geometry:{type:"Polygon",coordinates:["@@WKUmUI°ƒU@@UmU@KnK@IƒaU@makKUa@_‚KnmVU„L@a‚ƒ@IXm@KWkkKVkUU@aUW@UUIVaƒymwkbU@ƒx™LVUWWkk@WUkJk_WWk@WI„ƒUK݄k@WKULka™@mwĉ¥mXUK™@@bƒm@k—VWwkU@m™UUƒlI„™Wm@™@Uk@@KškVmn@lwn@@Ul@Xm˜UXUmVсkmkV™KUaVamaUXnƒ‚@ykLUKƒ@™WwKmKnUm@UmƒƒaU@mUk@kL@lƒxċxUnkVmnXxWb@`kzWJ@V—LmVUn™lmUL@lW@Ub@VšXUbš`VLUbUJ@nmnUlUUm@@bUJlnU„š‚U@lxkbƒ@@XƒJUnƒ@kb¯VVVmlXXlJlzn@VlkVW@bkK™bmškŽUbVb„lƒXVxšKÈnšwÞlĊKlšVnKlwX@lL@xlUnVn„@šl@lmX@ƄÈb°¼ÈwVJlx„_°xšašlšUÈxlUnbVxnL@lllšbm„n@nb‚@@V„L@V„@@„VLšJnIVVlKnV„_"],encodeOffsets:[[114661,35911]]}},{type:"Feature",id:"4107",properties:{name:"新乡市",cp:[114.2029,35.3595],childNum:9},geometry:{type:"Polygon",coordinates:["@@XVlL„K°bUblbUbšl@nX@W„XVVKVkš@@Žmb@„Ubn„W`kL„LƒV@VVLnKlVXIlVš@@a„@l£nWlƒkVa„@°bnUlLVlna‚bnUVUXKlU@ƒ@lk@a„I°y„@ôkUU@wšmôšnkWakml™UkVmkUlmUUm@nkUKWanamU„LXW@U‚VnUln„`l„œblL°KXV@ĠJ@L°„šJšUVw„anK@UUImmƒkK@¯±Um@IVmUmmÅnWaUK¯aUk„w@W±kVƒx™U™VƒwƒnÅJUIWaÝJóI—bm`ÝbÅImJUI¯¥¯@mU¯UƒJmnUVóUkl±V@zXl„bWVXL@bm„mº@@XmJUXU°llk„@nWJk@U„@¦U`m¯ŽWx"],encodeOffsets:[[116100,36349]]}},{type:"Feature",id:"4104",properties:{name:"平顶山市",cp:[112.9724,33.739],childNum:8},geometry:{type:"Polygon",coordinates:["@@l¤UbVL@V„LVb²VlKlaX@„„lbš@lxUVULƒbšln²VJUbW@@L„b@`nL@nVV@LVŽUbUVm„kVl„ƒlXbl@Xn°ŽVK@_°`²IVVV@VUVJnInaWK@Uš@„K„LÆ@nmlXXWVUUw@klKVa@knyVkVanI‚JXUl@XbVUl@@aša@mXk‚bnK@UlK@UUUVaXaWmkUm¥n—WmXaWaœkl@VmÞb„KVL@aVI@mUwVm„@KōméUL™KVaUk@kUK@U˜WXI@VlKXU‚@VVnInVV@VLlK@UUƒkKU_@ƒWWUwU™@klƒn@ƒƒ@Imb—@@m›nUKÛ@mKUkWVXxmbVLXŽVVU²VV@xÅnmWmLU@kbmJ@b¯š™IUb™JƒUUxVl@z@bU`W@Ub¯nUJUbƒ@WLUKULkU@aWKƒ@aƒbmL@ƒlmUk@@bUL™ƒWJUI™°@ƒŽ¯aWLk@mbUb¯b"],encodeOffsets:[[114942,34527]]}},{type:"Feature",id:"4101",properties:{name:"郑州市",cp:[113.4668,34.6234],childNum:8},geometry:{type:"Polygon",coordinates:["@@@nWVUKÅ@W„nVnI‚ŽV@œkƂšwV@šnn@lxÞlnôJ˜zXJl@nalUČVlƒl@²UlkôVVUnm„I°VnV°@°¦VJnIÆJÞan_VmU@ama™@kU˜¥kaUklw@UIV¥kVUI@ƒmmUÅmUlƒwVU@amU—JWbUakVƒ—Vé¯Im`ƒk—@ƒwVWmLkU¯ŽƒXkWmLmx@UUƒbm@@x™J@LbW@UUVWUkVKƒ@ka™IUamKUkkmmLƒUkJUVWXkWmnÅ@ƒKƒL™@@VXLmbmJUIUVU@ULWVkK@nWVXL@lVn@¤„b‚kôKXKlL@¦²V@JƒL±@„@VU@WV@X@`XXmb@Žšblaœn@Jƒb@V"],encodeOffsets:[[115617,35584]]}},{type:"Feature",id:"4105",properties:{name:"安阳市",cp:[114.5325,36.0022],childNum:6},geometry:{type:"Polygon",coordinates:["@@°kVaV¥kVmUkWkWVkVKUwkkmKUU@a„wWWXWakKWkXmlašIVmX¥ƒU@a„@WnK@kƒƒ™V™I¯ƒ@KğI@WU¯LkK›akƒƒ_kmmVU@VWXƒKnVmbXbVLmln@VVknlVUnVlkšlnXbmlmlXblnÈlWbn@@nšK@V„L„bVV°VVzšlnš@V™xƒI™b™ŽU@WLUa¯V™UkWõ@¯kkmxk¼l‚„XUlVbVLnlULmU@lƒLkVUlƒX@xW@¯mUƒ@UmIUW™L@aXa˜kU™¯anƒWk°@k™kKmmUIWaambUkkKmV¯aƒ@UblŽk„mXk¤ƒ@@b™@UbULWVnb@lUVVnmšnVVU„J@bWXX@WJkL@blVU°UV@XlWnXUbW@UVkVšVWbnLUJWLUK@Lnn@blVU‚„nUblxVUVJXU„a˜@Ub„LnUVV@mVIVVn@UbV@‚XbmbUV„_lVXUWanJVI@WkI@WVIVU°WXXl@la@mX@lLXl‚kVbœm‚X„ylIXJV@@kšKla²UVa„IVyÞb°LlVna@UÆKnLVbšK@anwU™"],encodeOffsets:[[117676,36917]]}},{type:"Feature",id:"4102",properties:{name:"开封市",cp:[114.5764,34.6124],childNum:6},geometry:{type:"Polygon",coordinates:["@@lUVbXa˜InV@bUV„x‚knVVÆnn@„VJlUU¦VJ@kxVllb—¦lVš@nb@bVŽUn˜aôJÞIXbVJÆI„m„xšUšV„w‚U²l@XƒxVl°bVLXb‚`XklUnmVblLœ@lmšx°LVK@UXIVašWlL@Ukƒ°KkVaVUXmmI@UÅKmmƒXka±K—L@W›@kUÇxUUƒ@@UXUlKkklW@ašX„a@UƒKUaVUUV_@yXk@ƒ@a@U±w@UUW@_„mmw@wVw„mUaÇbUa¯UUkmWkn±JÅxmIbUxmKmn—JWw„kUaƒK@a¯@ƒbk@mVUIWƒ—Lmwm@Ua@WJUb@LUl™@UUmLUbWJ@VL@VmXWWzUJUꄘ"],encodeOffsets:[[116641,35280]]}},{type:"Feature",id:"4108",properties:{name:"焦作市",cp:[112.8406,35.1508],childNum:8},geometry:{type:"Polygon",coordinates:["@@V@VL@x@bXŽWV@XkššlUŽWX@J„@nI@KlL„KšUVaV@œJlL@KUk@KÞL‚l²_‚@nWlL„UVVš@nLWVUJVn@anV@a„wÞUVLVx„b„@lW„@lbXn‚Vn@@¼šL°mšKVn@bnl@nVK@blb„L„W„U@VWLXV@nlKn@lVVbXw°nV_@¥Vƒl@XI@mlƒkkV¯VWnI@W‚@n¹nƒ@aWKXUƒaWk@yk@k„ċUkVmbk@WI—yóImÝkkwm@™mU@™xŁ›lU@mJƒX™ak@ƒx¯V@¼¯Vm„UmmIkVWK@UXIl@UWVUU@mVUI¯b¯@™lmKzWKUa™nƒJ@nƒlbÝ@@b"],encodeOffsets:[[114728,35888]]}},{type:"Feature",id:"4110",properties:{name:"许昌市",cp:[113.6975,34.0466],childNum:6},geometry:{type:"Polygon",coordinates:["@@lI„VnKlnVlnLVbšJlb„@ULVlUXVVX@‚a@KšI@wn@„aVV‚@nwnKlX„W°lVnKUX„x˜@„ln_°JVIXy‚XnW@U‚K@UXIVanKVVš@Vk@KVaXI‚@Vbn@nx˜KnaU™l™ƒn™Va@ƒXa@™VçUUla@aUK@wmUƒLk`kIWVkLmK@V@XUlƒn@JXV@nm„™bU‚óIƒmUa±@@ÑóVUUk@UlKVU@akWVUUlUUaUK@UUKWbUkÅJ@XWaƒ@XbmJ@nUJ@bUKƒLÝaUnk@›lXbWbXnm˜n¦lVXnWbUbVV@VkL@VmLaWl@n™b@bk@UVWak@WVImJUbUlmz@lUbkL@lVx"],encodeOffsets:[[115797,35089]]}},{type:"Feature",id:"4109",properties:{name:"濮阳市",cp:[115.1917,35.799],childNum:6},geometry:{type:"Polygon",coordinates:["@@lLXbW‚XXƒx@bVVnLllVxULUl‚XXlVlUnlŽU¦Ub¯l˜nœK@V‚bVb@šXbVL„KVxVVnIlašb„a„¥lU@wnalLnVVlVLXnlWVXn@@lVI@WnU@mƒÅW¥—aW_k@WwXy@kmƒ@wU„mš„š¦šlUxVLV@UwšJ°xš@VX„@Vb„@š`VX@VX@llšIVbnJlI„bšV„l„˜J@ƒmѯLóa@ƒƒKUa„k™ƒ™Xƒ@UK@wU@ƒlWUUݯImW¯aƒLUKU@ƒkƒ»k@mƒwƒa@UnKWI@ƒUU@akVWK—k@a±ƒbóUWKXUmk™KUmLƒbUx„„@lmLXŽƒ@@b„VW¦Un™JkbWnXl"],encodeOffsets:[[117642,36501]]}},{type:"Feature",id:"4111",properties:{name:"漯河市",cp:[113.8733,33.6951],childNum:3},geometry:{type:"Polygon",coordinates:["@@@Lƒ‚UnVxnIWa„@Xb@WÆIVlXaVL@VVLVbkVVŽUVlX@bUVkLV‚l@VVôU@Ò²@Vb„nôJVšanƒ@mWU@I„mVk@WkI@wmak™@wlW@w„@VbnLVb°bVyX™V_@aUKVVK@wUU@™™a™K@kmbXVmJUXƒ`kn™nƒK@aU@mw™akb±@¯ƒUUÝKUUU@WU@VkLUKU@mUmJUU@WVkL@UWJ—X@VVL@lVlUbšLVKnêÆŽ"],encodeOffsets:[[116348,34431]]}},{type:"Feature",id:"4106",properties:{name:"鹤壁市",cp:[114.3787,35.744],childNum:3},geometry:{type:"Polygon",coordinates:["@@ó™™n@xVVólƒ@¯zƒJ@bkl@@„kVWLUVmVXbVJnnlLlš¯@Xlm„°bVš—lWb@bšKVXnJ@VV„°nX@@w„WVklU„K@knVVKmkUKUaVkƒWkl»nwlްlö@lXšV°UVbXKV@šša„Jšw@Um™™kUy¯UUUƒaƒK@U™L@mm@XaÇkkmWank"],encodeOffsets:[[117158,36338]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/hu_bei_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4228",properties:{name:"恩施土家族苗族自治州",cp:[109.5007,30.2563],childNum:8},geometry:{type:"Polygon",coordinates:["@@VK‚bX@lbUVnL°„@VlVnUl@VUX@„aVƒmaXƒlašUUU@wmaVUn@Vƒnmmk@m™U@kna™aU¥Vam™X_@WƒU™mW@_kƒVaVKnL‚lœ@VVal@k¥@kUW@kUKVUlUVсW@kÇaU»ValmkUVUVak™@aƒV¯_@W‚UkmVUlU@aœƒƒalI@akkVWUaWXUWwœWVbÆ@„„l„alIVK@U™m@UU„W@al²a‚¯UağÇm@ƒbkk@wƒ@@W™aULmxƒIU‚™ƒb¯@U`UX™JmL¯aƒKX›WUL@aknmK™@aWUXaWm@I@UÅmVU@™™aUV@b™VƒI@WkU›bXkm@VakwUKULWKXmJ@XUK@ƒmL@KUwVaUI@KU@mmn™mXka@»V@@UUaƒw¯yVk@ƒUUVmmkÛÈU@mWUnmx„šmlUbV¦UlbWVUL@UUƒ™IUmÇKV„VbUVVxkn™LUxV`VX@š„„kJVVUXWaUVVlUnmKUbkI@WULmK@L@LVlƒLnmUIWV@aknƒ`VXUJIVlUVVbUX@¤mbnLm‚m@UXk@mm@Ukaƒ¥@kV@@KkU@aUKWbkLWVkIVŽk@UbVlmX@bU@@mmL@bn`@Ln@llVLVk„@XVVU@`VXUš‚¼k`VULka@VllVIn¤VU@@bl܃bkx@bkL›škKƒn@bn@@b@JUnV`UnVbVKlVXUlbn@°ƒVx„@@b„nVbUllVn@V—VK@UnW@UVUšlnk‚VÈޚxVb„VVI„xVaÆ@@aka@UVaU@@a„k@Wl@nbVIƎ@Jk@„L@VlXnlla@VJnw@UmwXU@aVK°ÒnllnLlb„xnKVaV@l¦²nVl@llL„x@XVVœ‚͐š@našx@U@al™XUVa‚LÈþV°XxWXkK@šmLnlUb@b‚xnLVlVVkb@UJ@xWXXš"],encodeOffsets:[[112816,32052]]}},{type:"Feature",id:"4203",properties:{name:"十堰市",cp:[110.5115,32.3877],childNum:9},geometry:{type:"MultiPolygon",coordinates:[["@@@a@w@kV@nbVK@ƒnUla„@la„Ål@nlVakwWX@WkLšaVmšwV@anK@UlIXmWkk@@mmLkWlwk@U_mKXwWK@U¯K@UU@ƒVUa™kmƒkI™yUUVUmanU@mlwkƒ@_mWXaƒUWU@ǃ@U@aUaVwUKUIƒVkK@UWIXƒmaV@k@Vm@UnwlƒUamk@V@„ULUamxUJkU@Iƒ`WkkK¯XWak@@W@IUV™LWJkXkaÇVUKƒ@kUmbmUUƒUKƒbkKWUkI@ƒkKÝ@@aƒUm»nI@mƒU@UnWV_@aUmWbkLUl¯b@a›kkk@WkkJm_k@UV±@J@b›nU@@WÝIUJVbXL@nlJkx@„Wn@VkJmb—LmUƒ`VbUL@xVn„@XVƒŽ@„mVVnnJVbU„ƒx@„V„nVUbVVƒx@šn„™bUK@bƒ„@bƒJ„šm²„VU‚lbXzVJV„„JVbn@@Xmb@V@bVJÈ@‚Vnkn@°aVVV@šX„KnalLVmšUnnVKVlnLWlXX„Klk°š™šXŽWškLUVVV@nU@ml¯nmbk@W`Å@mb—LWm¯UƒxnêVèk@mbƒVƒnUK™@kKmXk@@JUI›lÛLllnbVnlJ@LULnlÆaVLnŽV@nkVJ„@lkô@²bÆm°w„L„WV@VXšKšVXI@W°ÆVšK„b°U„JVIVV„¦XKVL@l‚InaVÝnUl@@bX@‚™nmVL@lVL„lVLVUnbVW@xXn˜bœU°¤V@š™„a@kWKUUn@VlnL@UV@Ü»@mX@V_ƒakaÞ@VK‚¯@kkW"],["@@mUkUUm@nllVKXXVK"]], -encodeOffsets:[[[113918,33739]],[[113817,32811]]]}},{type:"Feature",id:"4205",properties:{name:"宜昌市",cp:[111.1707,30.7617],childNum:9},geometry:{type:"Polygon",coordinates:["@@°`„U@blšUbUVlVkn‚ŽUbV¼Èb@l‚XUÒkVUVVL@lVX@ll¦k@UbU‚›@kmKULUbl„@`nXšŽ„V@XW`nšUbV¦šbmb@lšV@nnlmnU„m@UVnb@xVV™VkbW„nb‚VnVa@an@UaVU‚JXnWlXX@l„¦@ŽlKÆX„bX‚V@VV„@°¯°xXx‚XV@nV°UVWU_VWXkmaVnWVkn@lln@lb@UVLXWlnX@˜aXUmaVK@UXU„U@WVI‚W„XXV‚U@¥VKœ@‚Uގ„„‚a²LlV@kV@UanKma@UVUnK@UVLXyVL‚knJ@UV@@UXKWUXaV@Vb@mVLnKW„m@aUUm@@UkK@Ula„LXKWaXI@alKlmUk@wVKXL@m@WWn@UVa@K@wna@aW_XWWkXbVW@k@U¯WWwka@UUaVIVƒkU@m±@U@@wVKkaš_@VV@XUVwU¥‚šyUkm@V±ÈUKk»ÇL„m˜mLk@ó£kmWwƒm@U„IkWKXwWU@ƒkLƒwkbmaƒbkK@VƒLkmWIUKkUUƒÇIǫJ™XÅJULVŽÇLUVƒ@UK™@kI@WVI@UaƒWmXVVUL`±kÅLmKkƒƒkƒÅ@Ua›XXxWVXŽVbUXll@bkJ„b›„@bkVUVlnV@X"],encodeOffsets:[[112906,30961]]}},{type:"Feature",id:"4206",properties:{name:"襄樊市",cp:[111.9397,31.9263],childNum:7},geometry:{type:"Polygon",coordinates:["@@@Xl@Xb°WlLXl„_@JlVVInwVbVK@ƒ@UnlVbk„mx@VUnl@U@nbW„XJ@VlL„UVJVLUxVb@b@VȄ‚@XV„VWbnX@`l„kx@nmVnbUVVVšzlJn„šlVb„UV@@V°L@VXLWxnLV`l@kxlXnK@nl@XlWn„`Xnl@@UVa@VÈKš£VLVanW°U@UVU„@„`VIn‚mV@„nV@Xa@aVW@UšalkXKšblI„yƍXnlJXbl@@VV@nklU@`„nVK„LVKVb@V„U@UÈK„UVKšIlUX@V`lIVbn@nblVVmV@@XXJšUVV@knKVn@`@X‚VnK„wlLVmUUU@ƒU@aXL@WlU@UUW@UmU@KkLWaXkWmXUWm@U@ƒnk@UmK@U@UaUVUUKV_@al@namWUI@KUƒK@aV@WUIƒbƒ¥ULUJkIm™ƒK@U@K™V@U@a@UkU@K@wVaUwlU@mUƒULmKUkV@@anIWmUK@I¯„mKkl@LUb±lUakLmk@WwUKÝVUIm`¯n@Uk@makJU_@ƒƒJma¯ImwUVkKƒb™aUÅ@wWaU@VU@mXIVmmUkJkwm@mIlUKWzUK@VmLUV@VnbmLVbU@@lkU±KbƒƒÝV›@UL@¦VWUƒWXUJ@XƒVWV@VULnbWV—bW@kmWXUK@Vkam@kkm@UlmXUŽnbWlUXV`UX¯VmUU@Ul@Lll@nnJ@LƒnWmbmš@b™`ƒš","@@kUUm@nllVKXXVKmU"],encodeOffsets:[[113423,32597],[113794,32800]]}},{type:"Feature",id:"4211",properties:{name:"黄冈市",cp:[115.2686,30.6628],childNum:10},geometry:{type:"Polygon",coordinates:["@@VVUnWVXnVJ@„‚U@V@VXŽV@@IVJUnŽ@V@L@KlIVlVanLVbnVlI„ƒn@@a@Kl@@I„JlI@aXU@KlK„kVblJXU„VlU@V„bVkVKXn@VlxVa²I@VlVUxln@bšJXklaVWnLmÅ@y@k@ašI@W@aXIlVVaV@nnlKnLVW@IUa@a@K„UVVlI@wXKVV@IUƒla„@lUXwWƒnƒnalLlxXLll°@XwVKVaXIl™nb˜@nln@Va@U@k°ƒUmÆUVaXI„JV¯ÇUmmkU@WaKmakVm@U@aVKkkmKkVmIkǰ£@aUUVaVVnKlkX‚mkƒ@ƒlUVaX@@Um@‚™UmlUXV„UVU@w‚K²¥Ua@I@UV™l@U™V±UIUǰ»VkUmVI@a@U™m™ĉ™¯V±bŹĖğaÇL¯lmŽkX@‚óĀ@ŽmšÝêb±WkLƒn@xXx@Ž@b@V@LW@UbƒlţXƒ`kxWnXô¯¦ÆV@L@JVLƒxkK@V@bkz°l‚lXz@J„UlVla@XUV„bVKXnW`XXV@laVV@V„X@V¯xƒx@xULVbUJ@n@LU@VmmakbUK@b™IWWUUVkUmkLm@VJkb@nUJƒ@`V@kX™aUaVmmLkUmJ@Uk@U„±lkzmJUb@b„VUxVXU¤ƒL@JƒX@VlL@JkLUVU@mnUl„¦@V"],encodeOffsets:[[117181,32063]]}},{type:"Feature",id:"4210",properties:{name:"荆州市",cp:[113.291,30.0092],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÈJV„lVVLXJln„K@UlL„anbla„xlK@„XVWxXLlƒJ@V„nXxlnô¤l@nKn—‚ƒÈKl¼VL²Ç‚Un@Vl™zŽV¦UxWVU@@U™`lbUL@xV@²@@nlVU„UJVb@VlbXx°XVWX_VKUwVKVa@UVKUUVk@KnblaUU@wnWl@UX@lÆ@@a„IVmUk„™šxVJ„U„bܙ@Uk@WWnk@Vƒ„™Vm@I@m@Un@m™XUlVlUnJ@knJVU°@@aÆLX@ƒllL@¦nJV@XblLVa²U@UlWš@VX@`@LV@@bXJlIXml_lJœU°b„KÆLnVVl‚@ö—Vƒ‚mXaVIĢllUlVnLVlX@@b‚ašnnxšV„L‚bn@°ÆXmmkĉƒ¯w±™™™Uċ@KÝÅƧŃÝ癙Uw¯ƒm™¯k@W‚kV@¯UIUJW¼kb™Uƒwk@W`@¦Uônb@VƚlÈ@VU@ƒƒ£UWWnUÆUnmJkUÇ£VWUI@aUU@WkI@Uƒa@JW@k£kaWVUKmnkKƒb™kkVWb—VmUUmwU@kk›@UakUUa@V@nlx@lUb±lUbnnWLUyk@UamœUK™@mlk@Wb@VXL@x@xWI@a¯Ž¯V@bVn@LkKmL@`XmKmVU@@bkL@V±bk@Uaƒa™L™KUVƒIƒ„™W™XamVVbUK@b@Lm@UWkxULWVUnm@UlUX"],encodeOffsets:[[113918,30764]]}},{type:"Feature",id:"4208",properties:{name:"荆门市",cp:[112.6758,30.9979],childNum:4},geometry:{type:"Polygon",coordinates:["@@n@lxlInVUnWJ@nUVV@Xb@xVƚb„alLVUnx°Jnb„I@„V`lInbl@@V°mn_VJÞUVLXx‚@nllKVb²kVa@KlknL°ƒ@JVLXnmJ@bU@VlnLVKV„@nX@lUšKVaXal@VKn@¥°L@Unw˜bnašV@KV@VUX@lVXI@KW@@IXWV@laVL„„KlaXUVVnkVWV@lwXblIXWVkVmšaU£VaUmVIkU@y@WakKUamU@UUK@kmK@w@@mK@LƒV¯™U@WwkmULƒamVVUU@ƒƒIƒbUKUa™kmƒm@UakLmxU@UÒWlULţÿmwkIUm@a‚kÈblW@UVƒUUk@JW@XkWWUkUKUIlw@aUWknWUUmnIWƒ™aUwVaۚƒaƒVUI™wƒšVlUnƒJ@bÅ@@kVWk@mX@xVVkbma@LUlVVUL@VUbULVxULW`UX@V@lUXWaXlWXX`@bmb@x@LUb@VmŽXX@‚@nWKUL@xVlknkL@bWJXbWLƒKkb@VlL@Vn@VV@bƒnX‚mLUK@nUaU@WbXVWL@VU@@V"],encodeOffsets:[[114548,31984]]}},{type:"Feature",id:"4212",properties:{name:"咸宁市",cp:[114.2578,29.6631],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÞÆ‚LČ@šV‚š²š°xĊ„nlWnŎ¯m@aƒK@„„°‚n„Jšwn™VIUaÆJšÅ@wšwV™XW@aV_l@²V°lĊwlaXLšwlUkalVVaX@lVXI@a˜UXJ@U°UU¥VIVKVklanLVa@VÈIVV@nk@aVa@mV_@a„K@klKUa@UnKWk@@lU@@UW@@nUWUwmaVIXƒ„lV@mLXblJ@kV@kk@KU@WƒkUWVÅwkLmW@UmL@lUL™KULƒak@maUUÝwUJƒIb›KUUƒ@š™aWK@kUWVkUwVw@™mÝ@™I@wkW@a›ww@LU¥™kƒJ@nVJƒIkVVnkV›UkyUIUl@xWUkaW@@°kz„ŽWxkLUWmzk@@bVVVš„b@‚@XlVœ@Vl@bVbUn™`Wn—@Wb„VVI@`„LVbXLV`mnU@@lƒL@LUŽƒak@ƒLk@WbUJn¦@lVb@xVb@n"],encodeOffsets:[[116303,30567]]}},{type:"Feature",id:"4213",properties:{name:"随州市",cp:[113.4338,31.8768],childNum:2},geometry:{type:"Polygon",coordinates:["@@„@nš`lw„k„ƒ„UmUVWX@lk„@VanUĠ¼V@@mX@@nVV‚VXLmJVLnK@b„V@@J„@VUn@VaVUUUVWVLV@@Kk_@almaVkUU@WVƒVUVLXmmk@wUaUKUV@°™@kmaUaÈmW„mUƒVklaX@lVnxl@@UnaUk@ƒVUVwVK„nš@VVn@VbVJUknUmmVmk_Vw„KUUm™Vak¥@UVKVIkW@UmIVWkIVƒkmmLkwmVUƒ@LƒUU@VVXL@JmLUbmK@UUKmkKUUmVUaUnÇlk¯™mJUnmLUaUJUaWL@UkJ™ƒUƒ@ƒaklkU@¯@KWLUmUUWVkbƒLƒŽUKkbU@WX@JX@@LWJkUW@UVU@@L™Umb—amx@V¯K@¦mŽULk@WbUb™LkVW@kVVxUb@x@LlV@V@b@VšU@L@V„LnšlJVIVK„¦„aVJ@XUŽ@b„LV‚@LVJnXmbk@@bU`VLUVV‚b@V@VnL@Vml@„@VXnWVXnWlXblK@LnV@VVX@VkV@XWK@b„VV@VV"],encodeOffsets:[[115830,33154]]}},{type:"Feature",id:"4209",properties:{name:"孝感市",cp:[113.9502,31.1188],childNum:7},geometry:{type:"Polygon",coordinates:["@@VnXK@L@°lVlk„b„@„VšlI@VXKVbVIVbnKVmnI°šlŽÈkVmVbnUVVlLnVL@VnLVanK@IWKUUV@„V@KV„nUlxnKlnU„lJUXnJ@VlXUJUL@Vl¦UbnšVVƒLUxl`UnnnmVVlnVK„bšmVX@a°Ý°LšaXJV@VUnKVXVK@LnKlLUbVVX@VwVJVn„@@UU¥V@@UUK@ƒmaUVUkkJ@L@K@UmVUI@JU@W@U@UV@ƒUIWmXUVmUUÇ@UVmIlmnmakK@akaW@UwVUkKVnUlKVwk™ƒVU_WKUkVW@UXaWkUa@w@VU@XaW±@IkbƒKƒb¯L@WƒXkWƒ@UakL@UV@UmVUmL@UXWVL@ašUƒVUUUVU@yUUƒIUa@wUKWVU@kƒ™™Wk¯UkwVKƒLUx™K@nVxUlUUWVUmw@wƒUUyXWlX¦WbUV@„U‚@blbUVVbXXƒl@lVL@bk@lxkVVnVx™¦ƒ`UnkL@V@L@Ž‚@@xnL@lVL@VnVVblLXb@‚@zlVUJVnUbV¤™bUnUlWXkJWakxU@UXml"],encodeOffsets:[[116033,32091]]}},{type:"Feature",id:"4201",properties:{name:"武汉市",cp:[114.3896,30.6628],childNum:1},geometry:{type:"Polygon",coordinates:["@@nbnm‚knJVUÈ@@Uƒ¥VknmV@VUlK@IkK@U„W@I„KV£UWVwƒU@aVanIly²kVƒl@@VnIlVnKUnVbšblWU@@_„‚VI@mlaUIn@lKVnUlVVXXšJ@aVLlanbUnV@@K@mVIUaVK@w„w°w@UƒW@UUUkbU@WWX_WmULƒaVU@WkbkUƒV@IWyk¯kly@a@UlL„wUK@I@KÅUW@ѱUm@wl¥kaƒ@@_Vw@ķƒa@akw@ƒkKW£XVUVwVwUaU@VUU™™xWKkbĉx¯k±Uk@U`@bWXUš™x@x™ÆÅIVbUJmš™xƒImƒ¯@ƒ™Umx™nUVVbnJV„@Lƒ@@ŽkV@bVnƒ@UVULlx°VXlššl„V@XUVL@xVb„JVV@zUVVVUV„™V@bUKWX@VnKUVVnU@@VlKVb„@lX„W@X°K„a„Lla@JX²Wb@ŽUV@@xVbXlWb@VUXVlXLV`Uš„lŽUxkLmVUŽlLUVVxX@lb@blL"],encodeOffsets:[[117e3,32097]]}},{type:"Feature",id:"4202",properties:{name:"黄石市",cp:[115.0159,29.9213],childNum:3},geometry:{type:"Polygon",coordinates:["@@VšUVV@VbUx„aWUœblUVmnKlX@bXJVIlVUxVVVIU‚zlx¯š@‚VbnL@x‚x@UVaXK„b˜@Xk‚WU_Vm²klW„XVK„Žl@nXV@@w„mlK²X‚aÞén™@ôÿ@lWn°kUKmmUљUmm@ƒwkImWU@UakL@bVLUVċ@™bUK@alIXKWK@™nXnKmkUVwƒ@¯b@L„lUL±W™n@KULUaW@kL@lƒL@bU`@nUb@bmlU@UÇJ@UUbmKkblŽUULUJV¦¯V@VWI—V@bWJkUW@UbkUlbkV"],encodeOffsets:[[117282,30685]]}},{type:"Feature",id:"429021",properties:{name:"神农架林区",cp:[110.4565,31.5802],childNum:1},geometry:{type:"Polygon",coordinates:["@@n`lIXll@lœl@b°aVklKXaVn@bU`mX@V„V@nmJn¼„V@bÞ@lL@„lJXVlL„aVLV„nVnalV„@VLÈUlblWXIšKVU@J„™š_‚@an™na‚X„m@KmI@mkk@KVkWWw¯w¯°ƒ@UUU@WƒaÅWkL@ƒ¥@kWWXkWmIUVVbm@@bUbmUU„ƒbW@UVk@mVkU@U¯ƒmKVUkaW@aULƒÆVbƒb@VÅ@Un@VƒLWl¯Lš„"],encodeOffsets:[[112624,32266]]}},{type:"Feature",id:"429006",properties:{name:"天门市",cp:[113.0273,30.6409],childNum:1},geometry:{type:"Polygon",coordinates:["@@@K@UlKVm„_š¥UwUmlUkwl@@aUK@k„kWWUaVUka@aV@ƒVUXaW¥Xk@WWIklm@ÅxmI™VÝUkxkaƒ„@bWJaUL@„W@™l¯UULU‚ƒbƒkV™Ua¯bm¤UnÇUkmUšUx˜b@VkXÇal@bVnlJnxŤĀVKXkVÑV@nwlKVbn@n„šlVbVL„a„J@„VV‚UnU„bVKlnXxV@°š„U@KnL"],encodeOffsets:[[116056,31636]]}},{type:"Feature",id:"429004",properties:{name:"仙桃市",cp:[113.3789,30.3003],childNum:1},geometry:{type:"Polygon",coordinates:["@@VK°VškX@@ƒVK‚bXI@a„ƒlblwÞVšUnJÆwn@lkXJ@X‚WVz„V@xnx‚VXUVVVkUw@mšLVw„KVU„@Um@alU@„@@KUƒmIUaVUšmnwmw™mb@aW@UkmKkUkVġkUJWbnU„õ˜@UkmUÅKƒL¯a›VkIk`WnkJƒ@xVLUVVbUbk@WlXbm„VxnxUblbUV™@@VUV@nVL"],encodeOffsets:[[115662,31259]]}},{type:"Feature",id:"429005",properties:{name:"潜江市",cp:[112.7637,30.3607],childNum:1},geometry:{type:"Polygon",coordinates:["@@UbVxšbX„mJVnXVlmVX@bkxVJVLVlXXWlX@@IVl„V‚U—aVwV™lnÈVVmn£°aVbUš„l„aVUK@mVU@Uš@VUkaVamwUwnƒWaXkl@VaUaVUUK@w„WI@aU@@K@_UW™@kX@V±VUbkKWaU@mI@¥kK„kW@ÅK@b¯@UVmI@lmIkVkUWVnšm@@V@n@JUnƒšU„@ŽmlXXl@@V"],encodeOffsets:[[115234,31118]]}},{type:"Feature",id:"4207",properties:{name:"鄂州市",cp:[114.7302,30.4102],childNum:1},geometry:{type:"Polygon",coordinates:["@@°¥WóXmlw„_ŤW„kVaX@@K@U@a@WwU@mWk@ƒULƒWkX±lUnV`XWl—@ƒaWLUb@Vw@wmKUa@°™kw‚yVUJUUVwkUUJWI@akWmLUnkV›aXVƒbUxUVWX¤lL@„lx@b„b@ĸUx@`„@lbk¦@x‚n²VƄX@"],encodeOffsets:[[117541,31349]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/hu_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"4312",properties:{name:"怀化市",cp:[109.9512,27.4438],childNum:12},geometry:{type:"Polygon",coordinates:["@@@n„‚@b@XnJ@k°x@aVUnl‚UXnV@@VnJWUJV„nIVV°ŽUbVVVL@޲LUVa°V@aV@nm‚UXblLXWVXVmVLVK@an_„`@X@l°„VlXXW`nX@Jmn@b„@nV@Lm`„bUb‚n@VUVl@nIVbUlƒV@LkJUnVV@xVblVUbU@ƒzUKU@mx@xUnn@@WV@lbUb@šnVWXX‚V@VIV@VUnJ@VUz@JWbXllI@VXVVL@ŽVn@„„Wlb@„Žl„XVlL„aV@VJ@XX`„kVwVl@bk„‚bUŽlVXIlƒnLVa„mVwV@@nV@XaVJVbX@lwV@n„@nV@VWnIVVUŽÆ@Xx‚a@I„UUKmk@mVƒ„IXmWUš™VJnUVU@anaVwk™›U@UXa@W™@m_@a¯@@K@UVƒ„bnK@blIlbXa@WW_n@VƒU@¯bmyƒUkUJÇÅ@WU@kWKÅwƒnm°KVkmankVWnXVWV@UƒƒwXkV@mƒ„UlLnaƒVaX@VUn@VnVK@xlnXWšU@a™@@klak™Vw™mUaV@™wmIÛ`m—@mVUXmlIXƒV‚I@K@aU@UaV_UK@wkUmmUKWXŽmVkUƒL@mƒƒU_nK‚™@aVU@Ukak»@U™™@ymUƒ„¯™ƒUUƒVKkam@™nka@ƒmwkLWb¯mkaƒ_VaVKUƒ™IUw@kKmU@WK@UnƒmaULkU@wUalWV¹U@@WUI@WU@‚_@W@U@mƒU@WbbUK@Um@@UmbUwWWkk@WU„a@anUUwlWUwUU@wlJVUnnV@@mnI@m‚K@U@w„a@wUm@_mƒVUUaVUkƒƒƒ_kċUk™VWLƒ@mlU@kn¥W@UwUWV@VÝU@lXLWVUbVLXlVIl‚knmU@VUJk@@„ƒ@™kVmwmVkxU@@XmVUb@xnKVLl@VxUxkIU`@bWVXX@JWL@bkb„¤@bmUUU¯Kƒkmb@V™VU„VVn@@„Vb@`lnœxmb„lUn‚bk„@xU„mV@bmWbUV@VJ„Il@nVUb‚K@nn@VbnJVIlJVkXJ@X@lmx@bnnWVXJWXU@UlU@mk@@llb°x„IUbnJ@VWbXVmI@JVX@bk‚@bWL@JUXUK@U@Uƒ`n@@Xm@XVW@@nX@@`ƒImxU@@JUI@KƒLmK@UÅUUV@VW@™¯kUU@UamVUUmJ@n„xmLKƒkmJkwkKm_mKXU@aƒU@b@Wk@ma@zUJVUmbUlU@™xnXlWlXXblK„¤V@@nUVVLkVš„l@Xb@VVK‚nXKVx@znW@X‚@@lVK@X@JXbWbnn@JUamLVVXIVxnK@aWUX@˜x@VnI@WlI@anV„IVxk‚l@lbXXšxVVVJVInbV@@ln¦ml@XXVWbkJWb","@@XLVKVXVKUa@UUUmV@l"],encodeOffsets:[[112050,28384],[112174,27394]]}},{type:"Feature",id:"4311",properties:{name:"永州市",cp:[111.709,25.752],childNum:10},geometry:{type:"Polygon",coordinates:["@@lxUXV‚lXUVnlVĢ„JVbUXVJV@XUW¯„VIUK@klW@Un@„nl@V`XUVL@l@šVx@„XXW`UnUbšxUlVnUšV„lb@VnJšUVVVInJlUšVnwVklKnw„LVJVšV@nIV@nbVa@KVVVUUa„KV_nVVJ@_VW„nV@n¥lI@anƒl¥X_VKlwVlULUVVVš@šU@VXL˜ƒ@IUmn@VU@wmKXUWU@m²šl@VIXWWkWUkWlkIVamUXamUnmWUU@@Un™lK@XJl@kVUk@mWKXkl@@aVU@UVWUUVa„In`VUVLnw@U@K@Uƒƒ@w@UVmUUƒ™°K@UnV@bV@Xk@KVm@amk„aU£VWUUmUUwm`UbULka›KXU@kVmU™@aV_UWVIn@˜y„XXK@klmV„V_kWVUn@WUU@UƒmaU@™wnwWanUmmXkƒam@UakLmK@b™xUUUU@Km¥Vaƒ¯@ƒkUaVUlm„UU@mUUÇmUk™Uyƒb™bUa™XUWWbÅLmL@V™aL@WWXUKmmk@a@UUK™XW¥kU@VƒUkxmVkUWbUJnVJ@nVJXzWxkŽ@lVbUX@VVL@`mbUnšŽUn™VV¼k@Ulm@mwLƒb@lmLUK@UamƒWkƒK@£Ua@ƒ›UkJkUmbVlkX@bWbUŽVŽnnUVl„@bšbVK@VX@lb„V@nU¤šx‚²„Knblb@x„V„ô@šlŽ@b@l@XWxnVl@„VV@XLVl‚LUŽUXV`šbXXmJU@@bm@UUkLW@UlUKWUUb™wUm™L@nklVVmVXXm@@bUKlÆn„‚XkllVUVVL@nUbV‚@V@nnV@xUn¯U@JW@UX@xĉ@™`m@@LV@b"],encodeOffsets:[[113671,26989]]}},{type:"Feature",id:"4305",properties:{name:"邵阳市",cp:[110.9619,26.8121],childNum:10},geometry:{type:"Polygon",coordinates:["@@XIlJšI„VVK@n@VVVKnLVwVmnLVK@U„@šw„J@wVIƚ°X@ÜȄUÈxll@kn@VwVaXJWXn@@WVL@UUKVKV_U@@aVK„x@U„aV@lk„@XylbUaV_šVnal@W„U@a„I@aV@@aVUl@Xm‚UXWaXml@@kk@ma@V_UnUV™UUWJUa@kkaWLUmk@@LUVWUkJWkK@¼UnWJƒIkV@b@JUIm@Ul™V™m@Uw@a@kWƒXWKUknW@ƒWUU@k™mx™UkVmIUJUU™VmI@UkaUƒV™UmVk™wVaVmX_WW@ƒUw@™@kUKWVU_k@ƒmm@@VkX@lVLUJƒX°WVU@UIVWUaƒIUġmkVUkWUVWkwWXk`mI@¥kUVƒUƒUn±@m›XkWknV„UVmmU@@XƒVƒUk`@Xƒƒƒk@¥¯»mbĉó@mkU@kU™ƒƒ™KmX@˜UnmL@lULkKUƒWUU@ƒbUaUnƒ@Vb@l„¦Ub@l™@UKmnƒKUnl„UVVbUVn„@`Vn@xƒb@x@VL@nmJ@nU@mmUVkI@xVVVxkXVxmV@bƒbXVl@Xl‚XVxna@Vn@@VVL‚aXaV@n„‚@@V@X`V@@XVJ@XV@UºkXVb@xlVVKnbm„@VXLV@n‚lL@VxšJV„ULUb„`lb°nXalKnx@„lbšmn@lbULV„„V°š„ƒnV@zšš@Vl¼lb@VUV@bšmLV`„„@n„KlVnU‚XWVLnnlV@xVLU`VbV@"],encodeOffsets:[[113535,28322]]}},{type:"Feature",id:"4310",properties:{name:"郴州市",cp:[113.2361,25.8673],childNum:10},geometry:{type:"Polygon",coordinates:["@@²zVaVlnVl@nšVk„Jl_XJlIVmnL@mV@VXn@lV@‚XzV@lyV¯²U@UlJ@XVKnVVIXl@UVLV`@n@J„I@mlI„KVLnUlVUVVLXašKVLl@nb@ŽW„XV°KUnVV„L@xVJ„L@b@LUVVVU„˜VXbmbVbn@@lUbm@x@XVVVŽ@@˜@bkImx@Vm@Xbƒb@l°XU¤„a‚L„mnL@bl@@™VUX@VxnV˜anLnƒWƒ¥XKVwnUWXmVIUWÆLVx„L„w@wVmlU@¥XƒWUkwlÇn_Uw„WV@VU°wnU—ƒy@aVškVlnL@lVn„w@VlJ@b„X„x@bVKnb@U@WVUl@@Vnbl@XLlK@aVLVKnxÞn@a„LlmUaVU™ƒm@ÅknUmaUKmVk@m™kk@UlWUkVm@w@kUU@W™U¯™¥@w„Ç@aVIlUV@kUWU@UUm»@k@mKVkUKUwƒaUaUa›@k„kUWJkImaU@UK™@maUzk`@zƒy@XmJkL@UUJmUkV@z›@kŽkVmK@¦UbWL@a@UbmKmwUK™Xk›VUUkmVkw@UUKmL@WUIWa—JW_k@@WmI@mk@WkWULUUVKUUVm@šU„bš@‚nUǃ@U@w„™V@Ua@aƒL@ak„›l@k™UƒJƒwó@@L@V@„™`@œƒJ@xnn™šmV@bkJmUó@ƒn—JW„UUmƒU@UV@Lk„WlnnmVXbmxšxV@nbV„V@XVm@UVlXU`ƒUŽkn@lWLƒW—zm@UJVXU`@bVšUn@lWVœLlbVKVan_VxnVVVUXV¤ƒbnl@bUn@LWlU@@amU@V¯L„šVVUn@V@x„„@V@L@VmxUKUVm_ƒJUbVV"],encodeOffsets:[[114930,26747]]}},{type:"Feature",id:"4307",properties:{name:"常德市",cp:[111.4014,29.2676],childNum:8},geometry:{type:"Polygon",coordinates:["@@l™U™mkUwUyV™@VW@¯Va—VmUU@KVUVUVLnaWƒnkUÓV_@mVU@݄w@ƒka@kVmƒUmK@IkaUamKkXWaUW@WUk„™@@KVU@aU@™L@J@XÇVUKVak_mWkLWakVUbmLUUmlUVKUU@kUWW@UImJ@xkLkKm@@Xƒ@ó݃@UUk@UKƒV™ƒULƒKƒXkWWbkaƒIUƒWU@mUk@WLaUJġ™ƒ@@XÈÆVIl‚„Vnz°aV@U„m@X`@XWbkakJ@amLƒaU„@V@L°@@bn`š@@XWb@VœVlšUxmb@bUVmVUI™šXVWnƒJU„@nnlVLƒV@JbWzk`m@UVK²V‚x„k„LVl„@Vn@V„„°xVKVkœVVlUblx@bU„‚Æœ@@nVnUll„kx@VW@@VkLWxUL@bÝ@kKkVõV@bkXVVUVƒ@ƒVkUkV›LkV™a™@@™ƒ¯xUxmX@JVb°WXkK@Vm@k„Vb™bn¤‚xUXkJƒblxnXÆK²l‚_@Wnašn@ŽUL@b‚JnIlV„@lUœ@@¯ô@lWȂIVKVm„U@aXaV@lwVXn@@K@UVKUUnU‚bn@lWšX„ƒlJnUšLšKV@„„l@²a@UlK@aV@naVX„WV_nKlL@KUm@a°U°@VXL@a@wWmXal@„k„@VLn›V@@bl@VnX@mwVa²aVU@mk@"],encodeOffsets:[[114976,30201]]}},{type:"Feature",id:"4331",properties:{name:"湘西土家族苗族自治州",cp:[109.7864,28.6743],childNum:8},geometry:{type:"Polygon",coordinates:["@@@KšL@wnK±nƒnm‚—@WUk„ƒÜÈn@n»@mVamk„mšU„„l@V™nmmU@wUan¯VKšLn„VWlInyWUœI@WWk@KXU˜n@mnUmU@WœƒmkV@ƒkXašaVaUm‚Ikƒƒ@kaƒX@ƒUm@UKWU@UkJWkXa@IVy@UmIUVU@UJU@WXWmU@™VakaU@@Xm@Vm@wnwV@VL„yV@VakUUa@wUUVmlI@K„UVkUamJk@VU@UmVaƒan_@KmUƒ@@anm@ImWX_WWUk¯ƒ@k@Wƒ_m`@bULUKUnUWWXkKWaVmnU@@b¯UUbVޱK@UKUUVa¯UUmJUƒVIXmI@UU@WmVmkUV@b¯w@lmI@W@aƒ@m¯LXbmJVLklWL@V@XXŽmbVVU@@VU²Ul@VlX@bš`Xx›zUmkUVÒlŽ@bXLWxXVlš@V„bkLma@nmVmULVbmVUb@lnzmbUÒVl@°nLV„lJkn@bmJk_ƒVmmkblxÈx@LUb„xVb@V™n@JmLVŽUš@„nV@¦VbnJ@lVVbkx™bm@UxVLV@n`UnVVV„kl°z„xVb@VU@@ÆlXnWm¦nbVK@XVVUVVl@X„KUV@nVL@WnIWŽXLVKVLlxUbVKXVWbn@@UnKVLVb„JšU@aVU°b"],encodeOffsets:[[112354,30325]]}},{type:"Feature",id:"4304",properties:{name:"衡阳市",cp:[112.4121,26.7902],childNum:9},geometry:{type:"Polygon",coordinates:["@@lšV@XV@„mXVlXL„W‚X@l@bVxn@šŽšUVkn@VJ@I@alU„JXIVm@»‚LXllIXVVU@Kl@VnXKlb@lVbXIVVUšmVVU`@nbl@@lXLVVVKVbnXWJ@VXbWxXb„Ul™VK„¦nLVVUVVbšb„K@U˜LnK@Un@VxlUV`UnnL@VVL@JV@VUnxnKVbV@@VšIVUnJUVUl@nW„XllIUa„KVbÞLV¼²`V@VIUwlaVmXa@IWanK@U@m„kVƒVUVaX@lšnaVLÈ@‚¥@kkJUWJUaƒXkaUm‚wVXJ@_lWUU@¥n_‚KkamUK„™@amKƒnKƒbV£¯W@k„aWan@@UnwlJ@a@—@UUU@W‚wn@Va@km@UanaWa—UVƒUUVU@K@aƒKUI@wƒKUUVm¯LWUXƒ@mak@UK™LWbUKVUkUmVUKƒLkJ@nƒJ@I@mU_UK@VWkUJmUUL@WkI@V±VU°kzU@Wy@kUm@UWU@@nmKUnkJWIk`ƒIUlm™k@mUUkUb±yUX@VUV@bk@WlXL@nVlUl‚k@WI@ŽkLmš@VV@XVmnnVWbnVUblJXkVl‚XXlWXUJk@±™@nXVWVnL@xUVm@Vn@J—„WK@U™V™@UUVUVKUkkxULW`k¦m„@bkJm¦U@ƒmUX@`UImUU`ƒLVbUVUU@LUbmaU@mJU@U™UIƒKmxkLUl"],encodeOffsets:[[114222,27484]]}},{type:"Feature",id:"4306",properties:{name:"岳阳市",cp:[113.2361,29.1357],childNum:7},geometry:{type:"Polygon",coordinates:["@@@wUklmUUmU@@UVm@wUaV_mmUKmwkIkJmUUnm@™™@UUƒbUKUƒmÛamm¯xVLkbÇÆƒUƒVUzkVUlƒUUKWLX¦W@ƒVUUUaƒKUbmLKm„@akU@aƒmVaUUVIVWkk@wkƒƒ@@xmLlmÅwmbVlXlÝIWVkK@kkVƒL@VWKU@Ublnaƒƒm@b@bšnW`@XUJk@UUWKƒk@UKƒnn‚@xmLUVm@kbVbV„nV@V„b‚@KnV„LWšXŽÆV̦VblŽš„n„UJWz@ƙVóUVbkV™aÅx@¦lVUbVVknWKƒ„k@ƒwƒK™VU„Å„ƒl@zkb@`m_mJ@xX„mbVbœ@llV@n„@llbXL˜UXalUšl„alVnwnLVKlšVbX@@I„V@blJ@bVL@VVVUXȤ‚VnkVÑXmlbnš‚„VKkÑř@UmaVç@±XUlI„xlV„@VaX¯lUVVUšVJn—V@°°nް„Vxĸł°¦šb²¦lJ@U@aUK@kUm@_m±VIXal@„Kl@„bV@K„K@k„m@UmUUaƒK@_UJƒaXU˜@Xmš_VmUk@WUk›@kU@a@m@UƒaUUU@al@ny‚XXWWwkly@¯n@@bnV@k@mVI‚„œVlUUmlU„JUw„I‚bXƒVaUal@K„b@ƒVKVkXVl@VkUU@ylUœVVaVL"],encodeOffsets:[[116888,29526]]}},{type:"Feature",id:"4309",properties:{name:"益阳市",cp:[111.731,28.3832],childNum:5},geometry:{type:"Polygon",coordinates:["@@„ŽÆxXL@l‚V„@̚VI‚bXKl@nVV@„XVŽ„JlbXalX„W„LVKš„„UVLl@VV„@ôބ@@Wn@lLlK@wnIVJX@VX@lVVUL‚VnkVVnKValUXblKnXl`UbVLÈU@W@IšKV@@bUV@Lš@lƒXV‚@VXXblWnLVblb@JnL„VUn@llb@„ƒx@ÞUV@nU`VÔmlX„mbUKUVUV@LVVUn˜ŽUb@°UXš@U‚VzVxnlVškšVnlVnaWƒ@wnIn`@_la@y„kƃVƒšU„L„xl@„ƒXLlmUUVakU@¥ÆwšblUUaôVšU@ÅXyVImƒ™ƒkUaġ¥ÅUWX™ƒKmU@Lƒa@UmUUƒUalan@VUnK@wm„m‚L@V„lXLVVl@VI@WX_™m@a™¯mKUkwW¥UK@_UWWLUVkUWL@WUIkVƒU@JƒwkLUUmJVI@WkXm@VmkKUIU@mmm_@VUV™@™„kJċwUU@KUWkkW@IWW@km@klwkWVkkU™V¯m@kWLU`mIkmkXm@@`@L@xUKWkU@VL@JUU@mbUKVa¯WVnL@`lXUVkU@xW@UbUWVU@UJ@„lnU@m‚nÈmVƒa@bUL™wUb™@@VkxmUUƒ™UV›K@IƒUƒmk@akm@wmIƒŽkK@b™VWXkm@wULUmm@UVW@Ub„mbkKƒVn„U@Wl„xV„U@UXmWUXmlnbUl¯Lmn"],encodeOffsets:[[113378,28981]]}},{type:"Feature",id:"4301",properties:{name:"长沙市",cp:[113.0823,28.2568],childNum:5},geometry:{type:"Polygon",coordinates:["@@lVUllXkx@lln@‚XX@JlXXl‚V@LVVČxlIšƒš@VU@Un`nnV@VJlLUnn@lW@XUJnIVVlK„x@I„VlUVJ@XXKlVVUXKVX@`VLX¦lxVŽnLš°‚an@„„‚bkmVaV@XL@U„KlU@llLXUÞJWkUknaÆxnŽ‚knK@w„@l„@xllUXUJVVUb„n@blV@bnƒ‚LnKVa„LVbVV„UX@W¥XKVL„VVklUVy„U„VÈÅlaUK°wnnÜbn‚V„VL„aVVš@šn@VmnVlIlJna„@Valkn@na@amwm@„UXw˜K@aUUVUUaVa—wWK@kU@UaW@kKUUƒƒ@k™W¯XWan@k„™mmÅ@@I@U@KmLkaVUƒKkLWVUƒk@UVmU@am@kkk¥ƒUƒVUK™„maUb@ŽUb™I@aƒKkkWm@W¯K¯b@VmaULVxUXlVk@UxVJVbUb@xULƒ@ULWW—LƒĕmxVVL@šVb™KUwƒaŲWwX@@WƒUWLU@VbkV@aU@@VUnmJ@VUn@VƒLUK@U‚mUIk@UÇmU@@UW@J@LƒbUmVI@aUmW@@bkXUx@lmLUbm@UbkJ@V@XmlUbkKm@ma@kUaVU@aUK@mImJUIkVƒUƒVUakbWwka@UWKkLUamKUXm`Å_U˜ƒULmaU@@lUV@X"],encodeOffsets:[[114582,28694]]}},{type:"Feature",id:"4302",properties:{name:"株洲市",cp:[113.5327,27.0319],childNum:6},geometry:{type:"Polygon",coordinates:["@@X‚‚Unw„Ė˜KXXVK„@VK@wVaUaUIVwl@kUVWUwVKnb@U°a°LXŽ‚@Xnll„L@bšJVa@VanbšƒVL„U„V@al@@UV¯ÅÇ@Ummk™w@¯ƒyVwnUVVVUkmWV—nKVUƒa@WXkVKn@lUVU„VVVXIlV°VnI@VlKnV@mwVm@LXKWkU¥wWwƒƒ@k@m„X@KX¯V@VUVa@VnKWkœƒV@VUkm@aWa@wkUWwkmV£VÿXUVL@mVIXaò@nW@ašUš@@am™@aUU„UmXmWUk@ƒƒnUW@_maVm™wUkamaUL@aƒwƒW@akI@UƒxUm@kmKUk™lUŽ@b„zV˜m¯xUVU@ƒXVxm`kÈlxXVW„@¦kVUn@xƒxƒKUwÅKVXUJWnXŽmVUxWL„¦XŽm„mK—bmUUwW@UV@šk@ƒšVLnŽlbLm`@¦VVkX@`WIUށxVnlb„WVbXIV‚lI@l¦Ç@UKmbk™W@UbUVU„ƒl@n@VmLXb@JWbUnkbVxUJUxWXXlWL@V@V@XXJWx„zUVVVVKnXW`@bkIUl‚„nLVJUbUIWVXlWV@XklVbnn@xlš"],encodeOffsets:[[115774,28587]]}},{type:"Feature",id:"4308",properties:{name:"张家界市",cp:[110.5115,29.328],childNum:3},geometry:{type:"Polygon",coordinates:["@@@InWVw°wš„@š@šblUœKlUlV„U„@VUUUlW@aöUlUlLÞ@@aVKXwlK@UX@@UlwkƒVkUm@m›@ÅVƒ@akwVaUk›UUlUL¯wƒƒ@UUmƒ@UkƒKƒlw±UULVn@l_XyWwÅ@VUUmJUXU@@mmƒU@kxW@UaUIWbU@@mU@UxƒnUbmKk„WJkUValƒ@aUkUxƒlW_@WUIU@ƒbkKWUJVnUb™bWb„lU@nl›„@XnVmV@n—mWV@LXl@X›JXVmzkJUXmƒ™KULm°Vb@xnVmnUšk@ƒƒ™VƒnnlUb@nm¼m@Ûǃ„Vl@X˜mnm„²ŽmL@x™K@LUl@nULÆx@V@VXVWbXX˜l„@nLlm@bVKœX‚W„L°bnUš@VaVUš@šmšVw„JnwVK°zn@V‚Vb„a„@Ċ¼"],encodeOffsets:[[113288,30471]]}},{type:"Feature",id:"4313",properties:{name:"娄底市",cp:[111.6431,27.7185],childNum:5},geometry:{type:"Polygon",coordinates:["@@lL„nJ@xln@bnlV„‚„@JœLVUšŽV„nVlw@Uš@VašxVK@a„bnUmÇnV@km@ƒ‚I@VUVVXVaX@@wlVVUkW@_mKXU°‚UbVLnaV@‚V@IUKV@XlVL@w@K@_n@lWlnnJV_XK@l°nšU@WVU@kV@nbVK„V—lƒ@nLlƒ„LXU@ƒlmkw@nW@UKVa¯IVn@@aVUUKl@nXVKVn²a˜ŽXblKnLlmVI@KUU@akLUaVa‚UXm@aƒ@wVUVKnLnWlXl‚n@@U@anUVm@U‚Inm@IUK@UmKVmU_kVUwm@@VmL—K@VƒL™aUaVUUUmKƒ¥ULkšƒVWaXwWa@UXImWUaULUUWKk@WnXbWށVWnk@UV@bU@@bƒJ@bƒV@XkŽmb™UU`VbkaWzƒ@klU@ƒb@VƒwUL@bV@U`ULVL@VUK@Xm@XWWIUbUxm@@lkkÇwƒVÛÇW@¯Å™UJ@xƒI™xƒ@@VULmKUnUxmKULUUm@@‚ULƒU™JkIWJ@b@LJUW„kJWnUV@nn˜Ü_nJšxU@VbšnUxlškb@lš@"],encodeOffsets:[[113682,28699]]}},{type:"Feature",id:"4303",properties:{name:"湘潭市",cp:[112.5439,27.7075],childNum:4},geometry:{type:"Polygon",coordinates:["@@Æ`n_VWnLVblKXL@VlbXxlaVb„U„VlUVJnInJ‚@VL@bUVVb@lnbn@lLVank@W@UlIVan@VanK@kVwlW@aX@Vn@bUJVn„a@K‚IX@@VV@nŽVÈl@VJn@VVL„K@UVm@UnIVm@UV@@blUUaV@XK„V@XW@XxƱ„bVxšLUa@™UKWk™@wmmUalk@WXUWkXUVJVaUImKƒVklJ@aX_mWULUUVUƒyXwWI@W@U@UXKWkXWVwU@±_U»ÝKUaƒLVbkJkƒWmXk@UVVŽmIUV™J@UU@UamLmwUVU@mnJ@VUnmV@b@Vm@kkWmXmKULUV@x„Ž@bWnVUbVblK@bVV@LUJknmKkLWa—±bUmULmWk@VLUV@bm@U°JUbVLX@@mlxkn@„WVƒKk„mK@k„"],encodeOffsets:[[114683,28576]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/jiang_su_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3209",properties:{name:"盐城市",cp:[120.2234,33.5577],childNum:8},geometry:{type:"Polygon",coordinates:["@@„n@‚°ĀÞ°@¦ULWKkx@bkLWb@lUlVXXJVbƒnUKmxXV@bm@@Xš‚„LޚܦXlVnš‚mzVJ@n@‚²ÞôkƃÞaȰĉ‚wnljÜó„éVÛnĊīČlj‚ĉ@ō@KÞUlU@ƒkklÇÈњÑlġXɛ@UġƒƒaU@U_ƒW@n™@kaUL@VW@kKmkUV@bkbWW@bkzma@ƒJWI@KUKULƒ@U¦™`@XUJ™U@KmXƒw¯KXkmy@aUIWJXXmV@K¯UU@@bVL@¤VLXbV@@JVXVK@„„JVn@bkKmakVVXUVVVlI@`U@nzVVƒb@¤n@@UlKXLVVšI@V@nV@V‚@ÈUx@šóVōšƒkÅWó@mU@bk@Ýwk@WbXxm@@J@zV@kVƒbV‚nLWVUX™WUXUŽWLUށ@Wl°z@VkxU@UVWIxWJkbƒĬ„nW@@bUl"],encodeOffsets:[[122344,34504]]}},{type:"Feature",id:"3203",properties:{name:"徐州市",cp:[117.5208,34.3268],childNum:7},geometry:{type:"Polygon",coordinates:["@@XKVX@WnIVx@K°Lnll@@I°K„nVašU°x²mlxš@VanU@aƒk@akmV@@w™@Ua@aUwVwUw@w›@UK@£kaĉlóIÇVkޱ@@kUKmVkIkxW@Ua¯UUm@UVI@WVI„JV@ƒ@Um@Uana„U@m‚I@J@XV@XaVlkXƒVaUUWLUyVIXmWak@ƒXkJókƒJUL@KWkk@ULU@Wa™lUIkJmI™mk„VbVš@lV°kXUKWKULU„mb@VUlVnƒb@VV@IVKUUmU@ak@@bmV@xklƒUƒU@UKmV@nƒJVbkXƒKUamLUJ¯UUVmI™bVV—Ll`@LƒLU`m@kXUVU@V„lxUK@xkIWbUKƒx@V‚kVVn™b¯@@U™@ƒxk‚mbkLÇK™b™@@XnJ@LmVklƒ@@XƒlUƒVkxƒakVVb@bVnUbU@@x˜VUšVb@š„ŽnIĊ`šXVVôJš_„K@xlU²Klk„U„@VaVVÈm@kVUVmnamUUaVƒXIVJ„@‚ç@¥nkVLn›„@@XVK@VUX@JVUV@UnVJVLUJVLUVlšnI„b‚KnU@m°™VanI@anV‚KVL„an„lK„blš„KÞk@¦@¤@„VKnLVK„L„KVzlWšLX@VmV@VbnU°@Ualk™˜WXLVU„KWkUUWšƒ@£Wa"],encodeOffsets:[[121005,35213]]}},{type:"Feature",id:"3206",properties:{name:"南通市",cp:[121.1023,32.1625],childNum:7},geometry:{type:"Polygon",coordinates:["@@VJ@bnzWl°L„xnW@LšVVI@Wš_V¥„@VKVL@LXJ„I‚@nbly@aXXla@aVUnllLX@@UVKlbš@@m„XV`V@„bĢ„lkČÇÆƒȘ¯šwnĕVĉVÿšUƒUĠƒŦğlXÑVǵ@±ōLʵ˝lÇbÝÞ¯xk@Çkķé™n¯@ğŽġƴǫ@kVVlUbƒL@xULǂóLUl¤@nkVV°VLkxVb@l™aUXUKWĖklVX@¤UšƒUkb"],encodeOffsets:[[123087,33385]]}},{type:"Feature",id:"3208",properties:{name:"淮安市",cp:[118.927,33.4039],childNum:5},geometry:{type:"Polygon",coordinates:["@@šnźUôÒɴ胚l¦nĖV‚kbmš„X@xVlVL@xUb@bUJVnUx‚šœ„lKVLÈx‚m„zXV@lW@XV‚b@bȚVxnb‚ƒVIXa°L„aÆVVaXUlK@aXIƄVlXKVUlIXalK@alwXLVK@¥Ý¯¯ÿ@ƒmVk@aX@ƒm„īlaXI‚wXJVUV@lw@U¯yb›UaƒUġUÅaUKVknaġm@kUm@wÆIV±nLÆw„ÇnUUkƒ@ƅÝU¯JÝI¯¦Ul@bƒ@@VVL@l@LƒLÅmƒL@b™@UaVaUWmLUKV¹KƒLWKX¥WI@mXk@UmaUVUU@VmL@W™bkIUWƒUmVóIkbmm™@UbVLUxmJkU@bkJWbnXU`Wz™KUÞÈlVb™Lmx@„kè@Æ"],encodeOffsets:[[121062,33975]]}},{type:"Feature",id:"3205",properties:{name:"苏州市",cp:[120.6519,31.3989],childNum:6},geometry:{type:"Polygon",coordinates:["@@ôèĊVnX°¤²„lxƒÈÜ@²x@J@b@X‚`nIUƙUUV@bl@VVnL@L@xƒJ@X@blJXnW@@`XbW„kVƒ@UbVxƒXUxkV@LóxVbUVWš²šVJĸklUǬ@ĢƳĠ°@šmƒī°»ÈÇ¥ULUU±a@bU@¯ƒU@KnImUVWUk™mXUVU@lIVaUUVWKUbUkWKU¥n£WakJUkUL›K¯L™KkƒVIn@VaUƒVUUƒ›UkVk@ƒU@amUkJƒ@UUlwX¥W@@UkVmk@JUakL›@kk¯ÝmJUn@nmVXlmbVVkn@„UJ@±WUxV¯a¯KōbżÇxUxƒšUUlWL"],encodeOffsets:[[122794,31917]]}},{type:"Feature",id:"3213",properties:{name:"宿迁市",cp:[118.5535,33.7775],childNum:4},geometry:{type:"Polygon",coordinates:["@@XbWnUJVzXKVVUbW„klUWbU@@W@IJ@nƒVmbVbn@@V@„UŽƒIUJ@XUJ@VVn°VVbX@lwlJnUVL@l²@lÈUôJĊklb@¤VLœ@@xVxUxVx@bVbš@@xU@ln„mnX˜mXLVmV@X@lxVnVJôL„LXa‚x@b„@@KVL@bn@@m@™@alLUUVaU¥nIV±‚I@mXI@aWWXU@LlUXWW_XWmaUwǙ@aaWUX@@kWUƒynÇwUKkL›ƒ™VwUmVI@aVa@wUKUk@wƒWn™laUmĕk¥„™ɳçóÑŹV™mmzkVmm@a@Ióƒk@@LWU@`—„WbXLWlkImJVn@`nXVbXŽmL@Vn@‚l@nUVl°Xx°U@LVĠ@z°˜@¦UV@Xn@VJmV"],encodeOffsets:[[121005,34560]]}},{type:"Feature",id:"3207",properties:{name:"连云港市",cp:[119.1248,34.552],childNum:5},geometry:{type:"Polygon",coordinates:["@@@‚lzXxmÆV„„@@¦„@l`XnlKšXXm‚KnLla„b„@„xmbm@kL@V@Vl@@VUXšJX„mbš@@„°Æ@èÈzlW°XĢJlÈ`lInbšWV_@mš™@UUķnƒôw°ÆmnaVƒVÛVmĸ»Ģw±Ý@@mUIny™UmWkۥݙƒK™@Wn@@aWUnwVL„mUaWIUWVk@kkJUVWLUkŃWJ@bkLWVUbÅUƒb¯KWbUJ„WXX`WXkV@KWVXX@bWJ@nJU²mJV¦UbVVkK@b@š@nm@@aUK@Lƒ@@awWbƒKóKUIUmkwW@U@UnWK—nmWƒn@b„l@bmVUb™@kw±n¯w™VUb"],encodeOffsets:[[121253,35264]]}},{type:"Feature",id:"3210",properties:{name:"扬州市",cp:[119.4653,32.8162],childNum:5},geometry:{type:"Polygon",coordinates:["@@VUXblVVV„b@xV@kz„V@l‚wVLUbVV@VU@VbUbl‚b@nkͰIÞV@Ɔ„VlmVƒÈÅxmKU²ÅJ@xVn@lĢnmbUlVLÆbĢV„V‚bœV‚aXk‚@VXKVVWšXVWXUmKU„aWaU@™¥@£XW‚UUV@@ynam_VWkUVUna@ÆV@mnkWmXkWU„W@k„@@akklƒlWUI@UnKl¥™I@VVma@a@I@U@a@anK@UmK@ÅVUnJl™kI@aVwka@mVIUW@UWL@WÅbmIƒƒULka™UWƒUxkLUKWlXL@VƒImƒÅVƒU™mĉL™Uól¯I±l@ÒUbVbUVVXUJUnVV@lnbl@"],encodeOffsets:[[121928,33244]]}},{type:"Feature",id:"3201",properties:{name:"南京市",cp:[118.8062,31.9208],childNum:3},geometry:{type:"Polygon",coordinates:["@@k@ma@kUUVmVIUWVUUaVa@Ѳk°Jôk@Wmk¯KmX¯aUakKƒƒWU„@XU‚LXaV@@mUaVUUl@VmkaUXm@ƒWUUna°IlmV™m™IUW‚@Uk@@aV@VVX@„V‚I°»nm„U@VKVan@m»UaU@U_@WlIUa™aVaUala@¯n@‚ƒkaUkUUWKU@mwkUUmmL@K@ƒLmUUVƒKƒVÅImU—JƒƒVkVVLšèVLVU@W„L„V„š@nVÜULVŽUL@bW@XbWbkJƒUUVUxVXmVk@WUUkVmIƒV@„nbnVWbƒJU„kUULƒa@Jma@XkK@VVL@L@JƒLUVU@V¼ƒnXlƒbm@kbUKmn@lVb@VXXV‚UV@b@LVbÆxXbl@@lV@U„VV@XVK²VlIš`„UbVbUlVVn@WXn@@VUV@„@KmbVLXқLkKƒV@nX@VVUV@b™nVllbšmnb„IWVXU@`lLlknVnmlLlbUmVInK°nUƒU@l@VU@Vn@„ƒ@alI„`VIXaVaVa"],encodeOffsets:[[121928,33244]]}},{type:"Feature",id:"3212",properties:{name:"泰州市",cp:[120.0586,32.5525],childNum:5},geometry:{type:"Polygon",coordinates:["@@lUU@@y@In@WwXal@Þxl@@anVô@ÆX„lŎ™ôU@™Vw@ÇUU@@m@U™JUUWKkL@Vm@@£„aUUmyV@@_kJUUVUUWlUnblL@aUmƒI@ƒULUW@IU@WaUK@£UK@aV@°V@LnUWWXIla„VV™@£UWlkXĕVLVWšb@kUalwUKU¯lU@mk£VôKȁVK@w„KVaUkķlUI±™ğ¥ÝUʚ™Ž¯ôm¦ƒĸ™‚@XXK@VVXUJ@nlbUx@blJkšmIUV@ÆnL@VmL@b@b@V@J@bnb‚U@UšJk¦mL@VVJkXk„ll@bƒ@@lƒXXVWlXnml@nÅU@ŽmbUVlVUXn`mb@zU@V‚VWX@¤š¦V@Xb"],encodeOffsets:[[122592,34015]]}},{type:"Feature",id:"3202",properties:{name:"无锡市",cp:[120.3442,31.5527],childNum:3},geometry:{type:"Polygon",coordinates:["@@nLƒÒlxUVkL™am@™ƒkVWUULUxVVVbUV@bVLU‚nnź™ÞVĠ¦X™VUUaôw@KlUVw„WUwVa„@lUXƒWa@_X@WmkI@a@W„I@w@KmKUUk@@aVUšVVÅmJ_@W@a@I±wÛ@ƑÇkw±ƒ¯£mWĉUóçƒK¯VkUWK@XkV¯UWabƒmUa™UUb™lln@b@xƒbXŽWX`@„VxUblL@bn@Vb@`m@XbWnn@l¤„n@xnVlU„™VLÆWœkV@VbÞJ‚_nƒl@nKVU@aU™U@mVk°WVLUV¯bVXŽ˜bXlVn@VmL@x—V@bl„š‚@œnW@X@VVJ@²VJVU"],encodeOffsets:[[123064,32513]]}},{type:"Feature",id:"3204",properties:{name:"常州市",cp:[119.4543,31.5582],childNum:3},geometry:{type:"Polygon",coordinates:["@@„L˜ŽnxUbVVƒL@xnnW‚nn@VVXn@‚yœImx„„°ƒšL„a‚¥n@VkšKVw„W@nX„VJ@b‚@UVn„ƒ@UnUV@L‚b@`VLklVÞn„Æ@VaXLl™ÈJšmmVUK@aVUUaUUVwVKXVlUš„n@šblKVUkw„ÑmKUVUI@±UI@U@WmX@›™kƒ@a˜U@wnK@UUmWk—aWU°aVUUK¯XUl@nVŽVš@bUVmLk@m„`ÝIUaU@›lÅXUKƒškVmU@wƒmk£m@XmWan@@_Uam@@akKVaUw@ƒW_XW„a@w@akmm@mL@UJmnUKƒ@@XnJWLkKUb@„Vxk„WƒL—aWVUImVULUK@L@lkLVVVllb„m@@°kbVbUbšbVbkJ@XV`V@Vbn¼"],encodeOffsets:[[122097,32389]]}},{type:"Feature",id:"3211",properties:{name:"镇江市",cp:[119.4763,31.9702],childNum:4},geometry:{type:"Polygon",coordinates:["@@šVĊKšn„VÆUn„„J@UWKXkVLlKVwX„šVlbVK„„nJÆaš„ķn¥°óÇIkšWKUbÅ@mƒUÝlkUK@_a@KVUVm„@mƒVU@@aUIWƒ@mƒXUx™LUlm@¦ƒb™K¯„ƒƒnw›Jzm@UW@UmmXmm@w„KUUVamw—ƒKm@UbUL@ŽƒVmn¯¼JƒUW@UUU@@bl@@VŽVXšJšnnU‚‚k¯JmbVV„Xn@VWlbUnk@VVUŽVb@nU@WbKWVƒ@XV„„lLVb°bnW°Lnl@X"],encodeOffsets:[[122097,32997]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/jiang_xi_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3607",properties:{name:"赣州市",cp:[115.2795,25.8124],childNum:18},geometry:{type:"Polygon",coordinates:["@@„`l@Èbln„@„KVLl@„V@bȎlnšKXkVlVL@„lJnb„¦VKVVnX„W@w°@VU„mln„UV`šU„bVUV@„xnKVI°KXKVkVL@al@Xa„LVlULWV™VVL@b„x@VXVmb@x@V™VV@nn¤„šlb°b°KXXWbX`lbXx‚z@x„`VIVUnK„L‚x„WXLVKVbVLVU@wnW°b„@nalX„‚mXVJn@U²mKkVl„U@@xlnœaVmlKnœ@JVLlŽnVššl@XXÆèVlUX@xVLXVšb°W@wnUWmXk@K‚LVwUmUkUKUw@wVaVK@kƒ@WnkUKWkwlmXL@KVUlLVKXmWU„L@ašL@malaVk@aa‚ašƒnXš@VVUblb„Jn˜ƒXa„V‚wn£„K@UWmUk@ƒUaWIV@b™JW@KmmU@aUUUkmKkVKlUU™nKVU„lVaV£Å¥WUUK@UkUUw@m@mIkƒƒUUWƒLƒK¯Uw°¯@wUKUbƒKmƒ@kkKUL@UUKV¥U@manw@k@U@Wm@@U@Wwkm„wWaUU@UUmV¯kwƒ@@kmƒkKkUW@UK@ÅV@XWWkXa@Ul@Va@KVaUUU@ƒaXwla@UkVWaXk@K@lmkUmV@Vmbk@ƒ»XIƒ¥VUkƒVUVU@anKVUƒKUalU@wX@˜™@a@K—@ÝwƒL@ŽUnÇlUIkJmn@ŽƒbVVb@VmnkLƒV¯U@ƒ±l—IWmƒ@kaUI@aÇU@K@KUIkbWbƒJUIUyƒX¯ƒUbU@méUUmUk„WK—xWIkJm@V¥U_UJUwmVkšƒUU@ƒƒƒ@knƒwm@UmkWJkL@n@VW@@‚U@knm@kUml@xÅxƒ@@XUJlb„@VX„JVxn@lbV„@lULnV@VlnV@bWV@bXL@lVLVb„V@blLn@Vl„K@xln@bX@lašLVbnKUVVb„KlXVVkxƒV@nnVUb‚lV@@z—°WWkbƒIk‚WL@LUJ@bUI@b™`@UmI@mkK¯XW™™mUV¯@UUVUUam@@VULWUJƒIm`IUJ›KUkW@Uxn‚WbnnmlXbmIUVmV@Vnb@V™LUKWLnÒVVV@V„UL@„kJUV@bƒÈ@ŽšV°šŽ@XVV@l@xUz"],encodeOffsets:[[116753,26596]]}},{type:"Feature",id:"3608",properties:{name:"吉安市",cp:[114.884,26.9659],childNum:12},geometry:{type:"Polygon",coordinates:["@@lxnb@V@bV@ln@‚n„‚lInš@blVXK‚nk¼@VUKWL@b™L@`UXU`ƒ@V¦XLĠ@lJ„¦@„nV@l°nn@‚mVXnaš@nb‚K„n@l„IVƒš@VanJ@_lKVVnš„L@L‚K@Vn@VbšUVanKlLnbnJVbšnWVnVVanI@‚Vb@L„bVKVanXVbVJVU@aXLll„bôlƼXxVLVK@Xn@ƒxnVVVmb@LnVVKVXV@@mnaVXUVnV˜K@_UaUmšwnKV_‚anKVLš»„K@¯ÝU@›™U@kWlUn™lknK‚VnaUkma@ƒUIUwl»Åw@ƒVwV@n™‚n@ÈXlKVmna@kVw@anm‚@n_WWk@™™mUkUK@Im›kLUn›bkm@wV@kƒlUnLV±m@UInWƒkWmbƒ@¯amX@xUVUKUaULWKƒXwƒKmLUVUJƒ_@wyWwkaW_XaWW¯L¯akaƒ™m£@mUUš@U@wnaWU@Uƒw@aUKšUXUVKUkƒKWbk@@bUKUlWL¯LUJmLƒwU@UVƒa™VU_ƒVkmƒnUV¯@@xƒXmWUUULƒ¥makI@ƒUKUkWl™LkmǍ@aƒUk@UKƒLƒ@kmÇak@ƒ_VlkL@`lbnšlLVanLnbmVÆln@škJlbknmKUbÝmmwULUK@bkLWKULUUma@Kk@UV@L@llbVzšxUxnl@bVLmŽšŽ@IVJXœVlƒLV`@bn²@J™@™V@Xmbñ@WbUJ@bm@@LUĬU‚„¦lV@xXb@blnUV"],encodeOffsets:[[116652,27608]]}},{type:"Feature",id:"3611",properties:{name:"上饶市",cp:[117.8613,28.7292],childNum:12},geometry:{type:"Polygon",coordinates:["@@„„@„V‚š„„I°`nm¤²@bVJUVVXUl@Vmb@xV@XbmVVœ@lkLmbn`VbnU‚@Va„UnbVllUXV„a@w°VW@_VWšLššnVlbšLVbnl„KšnVK@IUW@_@am@™‚ÑUólK@U@WU@VwU@UI@aUU‚aXƒƒ@kwmJV@yX@k‚anƒƒ@mkwVmmI@aUU@aUUW@kVkV@@anKš»„XVWnIVUl`@_„W@wlUœV@UWKnU‚bnްInJl„UV@VnI‚b„Wn@VklL@l@Vn²m@U`kI@bWJƒnV@°VXnJm„XVmx@VVL@bkLmWULUmU@ƒbWXb@llnX@‚xkxVV„nVV@¤nL‚nVxnJVXX@˜ššbn`VI„b„@„blmlLnaV@„blWXnlUnbl@„ƒšKVanUVmm_XK@kWWnašU@UnaWUXa›ƒXamUkKmXUWƒLX¯WakKm™nUWwXa@KW_„aXWW_@WnIVl@XU‚LnWVknK@ImyUUÆbXK„Û@W@IÆUnƒVÝlkVK@mUIVwkUVaUm@aVIVyXIƒaÈwmmk@UnanVUmÅaó»lwšW@kkUVmUK@WKLƒUmWULkamK™Lk@Wa@wk@UU@U@mbUIWVKUXWmkUmVm›U@LkakKƒw@w@U™¯ƒ‚ƒUUn¯l@bmn@xkJWxkL@VkI@mƒkmJUI@V@b@VVxnbWlkÈkVƒLƒbkKmVƒL@V@²nxW‚kLUL@xlKVx„bXmVnšWJ@ޙ°@n™xUKUw±`UImVmnU@kalm@akwƒU@UUJmxU@@Uƒ@kU@Um@@Kn™ƒVm@k™KmkU@@WUnkLWxkVUwmKmLkU™bmKUbVŽ@xUnkJ@n±ŽšUxVXUšWJ@LUb™lUnm@ƒW@nknUJUVm@kXllknVbÆK„VVbš¼V„@šUl"],encodeOffsets:[[119194,29751]]}},{type:"Feature",id:"3604",properties:{name:"九江市",cp:[115.4224,29.3774],childNum:12},geometry:{type:"Polygon",coordinates:["@@WUkVUkmaƒVUb@mVUam_nalK@kU›nUWaU@@wna@UVkUWVUUI@a‚±n£m¯_ƒJ™ƒU@ƒƒƒĉ¦Ul@UV™Km™mLlm@ğ¹m`Uk¯@@UVK¯™@UUK@amkmKkVVUa@UkUƒKƒŽUa™L@VVXUJ™@ƒnƒ@™š™WUbƒnVb¯V@LÅlÝIƒJÅkݙm@Ua™WUU@UmUXmmwVUUKWUX±mUam@kWƒzUaVmÇw@aÅLmKXƒ‚UWKkL@W¯IƒwVw™lkUƒJ@Um@ÛÈWށKUxWkƒaUU@KkLVl@„UKUX±KUb@nVVUbUVmaUlUL@„ƒaUL@‚@nUlWzX`@„V@lx²„@Vlb@bšVÞ@°nl@UxVL@lUbVV@n²xVUVmnUÞb‚a„J@IšV°xnbl@nbÆ@VwnK@VnXlK°xnUlVX„V@Vl@L@lk@W_XK@KƒkWxUL@J„nVx@aX@VVUa˜IXlmL@bVVX@VbnK‚a²XVWƒk°a„@UnV¤nbmLmW@XbmJUbVL„aÞK„L@K@U@aVKlbV@nXlJœxV@VnšŽVȚ„ÞKôbźĕČmV@ĊšŽ²xÆIšV@Þ¦ĸ¼ÞVlŽVÞnxln°Jœk‚LXWVUVUVwnJVI@yn@lXlaXmWI@w—»ma@UmK@akKkXmW@_kaWakKWk@@K@IšWƒkUa„ƒ"],encodeOffsets:[[119487,30319]]}},{type:"Feature",id:"3610",properties:{name:"抚州市",cp:[116.4441,27.4933],childNum:11},geometry:{type:"Polygon",coordinates:["@@°V°UnÜ@n@lnLlV@bšV°L„lnLllVzVVXlV„V@@L@xX@WlX„m@UVƒL@V@n„°škVmVUnKlaXxVbšnlU@lVVnaVI@aX@V„šJš@V„@b„b@šVbš‚@X@lUL@Ž@VlIVm@wUVanLšalVnKnLVxlUXwlKVm@k@Una@mWIXKWUÛVƒk@a@UVWn@@kl@@W„XlW@_Um@UVK@a„LnalInWV@@xnI@¥‚K„—šm@kKmƒnk@mlI„¤laXbVblknV@U‚KXVlUXa‚@@Unw@±mU@ak_±a@ƒUJUIƒVKW_Xa@aWU™šK@mmUVa@IXa@UWmšannlmX¯WKXwVUVwƒ@XUlK@klJXa@kƒkmm@Uwƒw@¯ƒW¯kw@WmbULƒaUUU@mVUU™WmkUb™KmkkK@aƒkUƒ¯¥Uƒl—ƒm@akU@mš@KVIVV@KUkUVUkaƒUWb—„mƒIkaVaUU™@mW™„b‚b@bUlkb‚b@n™K@bƒKXVWnULkKUV@LWKknlxXŽVLml@X„Ž@lULUb@xVxVLVlVnUxK@LWlXnmV@x¯X™aWUUK@wVWUkÅçm`@mn@bUx@lmbUnkLÇWm@mšU@Ux@„Æxk¼VxVJ@„nbVlmbUmLklmškVlX@‚VœšV@°Þ"],encodeOffsets:[[118508,28396]]}},{type:"Feature",id:"3609",properties:{name:"宜春市",cp:[115.0159,28.3228],childNum:10},geometry:{type:"Polygon",coordinates:["@@@VlbnK@b@JšLlUnx±ĀXxÆW„X@lš@V„@@blJ@nX@˜xUbVVUbVV@b—VmnmJœ„@bmbm@klUbƒLmbœš@lVb@xUX@bVVVbV¤@LVV„bXlVw‚LXÜÇn@@V„IlVškUx„x°J@XlKXLV„‚WnLÆK@bÈxUnVb„ylXn@Vbn‚W²XV‚LVVUŽnxWnnV@VVVšXVbn@ޚÆl„IÞJÆk@K°UUa„mVa@UUUš»@wV@VƒkkUKUVW£U@UmW@@aXkVUnVlKVV„UUkVmU™@kWaUanU„VVamIX¥W@@aUaUVW@_mW@UnIVVn@VbVm@bVL@anKVUkƒWK„UXV‚Ikx‚@na„bVK„b@nVJ„_V›@Vw„‚VUVVXUlUUaV@X@VblašbnKlkVaXaƒ¯@m@U„KVUn@WƒXkW@@w@KU@UƒWkUUUykkmKƒk¯K™U@akUmK@k@mmÛ¯V¯U@‚ƒL™¼UKmLbU`mL™xVnVb@`—LmUVUUWmb@nU@UWULmU@KnaUUmU„wmJ¯IUJWIkVkaWVUIUlWaUIUVkKmbUIƒÒlVUnnŽ@VlLUJ@bUX¯@ƒaWVUKUXƒKUbm@UwKWa@a@VkUWn™@Uak@mbX„WJXbm@mL—aWVk@™wƒL@WmanU@knwWmkaWL—KWUXaƒU@¥l„UVVVbnwƒ¥nKV™»@aUk@a@UƒJ@kƒmLma™@mbUWnm@ULǺ@LXnmxUŽm@UbkbW@@akLmWk@UXmJmUkV@VUXVlULmKUxkL@lmXnJ@X‚l°Vnb@bU@WbKUX@VmKUX"],encodeOffsets:[[116652,28666]]}},{type:"Feature",id:"3601",properties:{ -name:"南昌市",cp:[116.0046,28.6633],childNum:6},geometry:{type:"Polygon",coordinates:["@@šXš™„@„mš@VIUW@UšKVb„„LlV@VVbUŽlUnLnl@bVL@V°šUL@V°@Vln_Ġºn@‚knKnššLVU@VkĊ¥Vk@™Uƒ™»UaƒUÅLUalmkklWn@VUVIlm@m„Xn@VmškVa@KXIV™UWVw‚™²@m@U@VK@k@W™Ua@™ƒa@aUƒ™@™IUƒW@@bUJmbUU@kkV™mUaWwkbmLUVUn™lWbUbklmL™akbUaW@U@VbkVWVUUUVƒUx@‚Uœƒ`UI@mƒaULƒamb@lwJWUƒVXLl„UVmL@bUK@aUnUam@UUmJ@VnX@`UXVŽVb@bX@W¦nJUbƒUmVVbXb@lVšUnVlƒVUUkLmUUVWl@bX@VnV@X¤VUVLllU„U@@x™¼VV@V"],encodeOffsets:[[118249,29700]]}},{type:"Feature",id:"3602",properties:{name:"景德镇市",cp:[117.334,29.3225],childNum:3},geometry:{type:"Polygon",coordinates:["@@VVX@Vbmz„xUlU@mbmL@V²xVbUVVblbX@šVškVykValKVI@bn@n`lVWnX@l„L@™WKnƒVIVa@¯nK@alIXJVIVWUw‚ƒn@nU˜„nK@alI@a@anKm_™a—™W@UWmIUwmmK@£UUƒmUUlwwW@km@kWaX„aV@VnVKnXlK@aUK@UnwWUnƒmIUW@¯mU„XI@alJV_n@m±@U@kkKUlm@ƒXamJ@UVUkƒmI¯JmamVXL@V›UkV@xƒX@`k_UVmJUXƒW™¼mL@bU@UllX@VV@bVV@bnJUnlx@n„Žm„b@lWŽ@zU‚nIlx„@W„bVV@bVJV@UxV@@X@VkLVôÒ‚šn@@b@`VX@J"],encodeOffsets:[[119903,30409]]}},{type:"Feature",id:"3603",properties:{name:"萍乡市",cp:[113.9282,27.4823],childNum:4},geometry:{type:"Polygon",coordinates:["@@VWnL@UVW‚LXaV@@ama¯Uk@WmInW@klKVwnLVKUkVW@UlUnVnIVWl@nXlK@bX@laVan@VnwWm@KȹVK¯m@kmU@ƒƒ¥kIğ@WKU¥„@V_VW@_šK@aXKVL@Ul»mWLkU@am™kJƒm@kmU@@a@UmakwU@›„Xlƒ@VXk`UIW¼kWWX@‚œ@l‚xV¦XlW@Ubn„@ŽmUkL@UmJ¯UkUWVUaƒUlm@UXWl„nUJ@LmLU˜nXll@bUVUUmVUn„Ž@¦šxlŽnn@VÆÈU°kbV„VxllnL@VnVVUl@V„„anL"],encodeOffsets:[[116652,28666]]}},{type:"Feature",id:"3606",properties:{name:"鹰潭市",cp:[117.0813,28.2349],childNum:3},geometry:{type:"Polygon",coordinates:["@@@XV@nlšL@lUnš„mŽ@Ln@@VlV„@@VV@nwVI@V„Vlx@bknlbV@nmnUVJ‚_²‚VxVLšw@mš¯@ÝXIm™nUWƒaUwkL@wVKlKXmw@±@U„KnUlL„a„KlUlÇXkmaUw@U@a@Uƒ™UkwUJ@zWJ™w@WbkVWUL@VmUklUaWakbƒ£kJ@nmln„lL@Ž™nƒ˜L@¦mJ@wU@mXkJmbƒK@bUL@VVn@`kXƒW@Xk@@lm@UX@V@b„lÜUXVWLXJ@nmb@V@l"],encodeOffsets:[[119599,29025]]}},{type:"Feature",id:"3605",properties:{name:"新余市",cp:[114.95,27.8174],childNum:2},geometry:{type:"Polygon",coordinates:["@@m@@WULUKWwÅ»ókƒakkWK@bUVUIUamWUbULƒa@KUa@mJUbmUXU™mUamImakKmLUb™VUam@@UL@KƒKm™UUkL@`mIUb™@U„@V@bVl@bš¼UŽmL„¦mxUaUUƒVkŽ@¦„VWbXV˜LXKlbXnmx@lmVnb@X„Kšxl@XU˜bnKn@WaXIWƒnal@Vbš@XmlV@U@bXb‚LVxn@Va„LVWVLXU„b°@VW@aVIkK@UmVmkU„ÑVJnalLVUVJXbVkVJXUlblUXJVI°JnI"],encodeOffsets:[[118182,28542]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/ji_lin_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2224",properties:{name:"延边朝鲜族自治州",cp:[129.397,43.2587],childNum:8},geometry:{type:"Polygon",coordinates:["@@Wxĵ„mš@„ó¤VX@@xܼƨš²xWxƒV„V@„XVƒ„„„ƒbWšXllaÞU°Ċ„@ô¼„LôÝWanV¥ƒÑnĉ°¥šÅX¥°¯@w°w@»°k£°mÈŹ‚mÈbƃŎ¦„K°z@Žkxl¦UbU¤šššklV„KŤÞȰ@@bšV@nVVUlÞ¦lUllœVlU°ÑU¯Vƒ°w„bXxl@V޲„˜@n„ô¼ƒó°™kmVk²ĕ‚w@wV™ÞÞ@@Ġƒö»˜¯œ@‚„šbnb°mÞ¯°V°„ÈJmX¥mam™UřƒUƒlaU¯™ƒ@w™Kk—l±n@@wƒkÝVUUl±¯I¯b™a™lƒ@™kLmakbƒ@ġƒŹé°™Þb°šékƒƒLm™„wX™‚aÅb@bVlƒbVb—ÒVbUb›UUanwƒakbVŽUV›ak„¯„UŽƒLmxV°UxnôŻX@J„Xkl‚bkbĉaƒbƒWU„ƒ@ƒk„WUU¯@@klmƒ@@™Å@aƒwWXlKkI@WbUaVIUanUƒƒ@ĕƒ¯K™„mUnWUwm@£ċèkUmbUmm@@nkJUalwk@@nmWUan_óaWmnw±KœIƒwl@UmƒI@an@@mlUÅmV_™KUkƒ@U`@_ƒKUmU™@U¯™mmb¯@kb™ImV¯ƒƒLkbƒKƒƒÛ@ÇnɱJóaÝĢkb@„›x—ÒÇllœ@‚޲V‚„ÆUVV„UÇ°X„óxlV¯„lV@bƒV@n—x›@—¤@„șŎnxV¼knšJ‚nšKX°˜¦UlnVbUbÆVnÞWVX¦llšb@l°œVJôÒnLVbšbXŽ"],encodeOffsets:[[131086,44798]]}},{type:"Feature",id:"2202",properties:{name:"吉林市",cp:[126.8372,43.6047],childNum:6},geometry:{type:"Polygon",coordinates:["@@ôl‚zšaÈV°„šK@„mŽ—LWl™nšVxUV‚È@ŽÝĬUÈn‚ôLša‚„²VmĀkV@„ĠĊnU@b„V@b˜@nl°UVnÞaôJ@bš™V„¦mlkššbmVXx¯@Vxm„nbƒ„šbÈK‚V@bÈL„wĠyônšmnbÜ@nn„V˜x@n²K‚„„J@k„al@nxÞU„Lź±Vwkw¯LWWUš™kŎīVwƒw„°y„Vĕ°wÈVlkÛ»@wW@Uô£@ƒn™ĶƒXwW™aUamKóÑUI¯›@k™akkW¥XUmÝÅUVaUa‚mVk—¥W¯™Lm™IlmU»mwȚō@ƒ˜£kJUÇk@am¯y¯UVwƒa@wġx¦ƒKƒƒ¯X°Ċ¯¦U°ċWULÅa±b¯@UkÅWmVƒ™ƒkIUlóŽċ¹™`óIƒlX„WŽXxmbUƒLݏƒbƧ@ƒx¯bƒÈ—l@xƒš¯zƒaݤ@nšm„VWb²bmn¯J¯Ò@n„š"],encodeOffsets:[[128701,44303]]}},{type:"Feature",id:"2208",properties:{name:"白城市",cp:[123.0029,45.2637],childNum:5},geometry:{type:"Polygon",coordinates:["@@ó™ǩŁ@WlwUaƑwÛÅÇéĉamKƒōÇ@Iƒ™ôġVƒȁÑŹçƒ™ÝUƧċĉwóóÝ@Ƒ»ğL¯ll²@ƆÅV@¦m‚Åb@nmlU²VxšlUn™@VbnW„bÇbk҃š„n@èlnlšU҄ްLšx@¼ĉb@҄šUŽċxՃènLVxƒÒƒbÅJ±a@_ÅJÅnƒŽVb„Kl„nUÜĊ@„Uš™xXVÆn„mšVššJÞ¯V™ĠwšƒXw°xWL„x„KV¦ôU„wVÝǬóÞޙ¼‚‚„ÞkŽVôȘxބU„lVn¦ÞšĊa°w„b°@šbÆw„lŤL²`„z°@V@@™nJVnl@@¥nUmmn„@mwnmmUnk@mlwUaƒLnƒ›wn¯°anƒWakI„ƒÇmXwÆamUXUlJXa‚UUklKUknmÞV@‚K@VWÞ@VkUwVƒ"],encodeOffsets:[[127350,46553]]}},{type:"Feature",id:"2207",properties:{name:"松原市",cp:[124.0906,44.7198],childNum:5},geometry:{type:"Polygon",coordinates:["@@„šźèȂÒU„óĢ„š@JŎȄ‚‚LnŽĊbÈêÜÆƒxVbkx@XǪłôš„kÞ`„šW„b@n°ašbšKšnVw°`š_X`W„š¦„ĊIkmVšakw‚K„x°UÞb„U@lšƒl@°¦œVW„šaÞbšxÞI@mVI@ƒVkŚUWK„¥nL‚a@ƒ„@ȍ„@°ƒÆ@nU@KÞalkUwVékUWw„™kU›VkkƒJk¯@»ókƒV¯ÆÇI@bĉô¯@™ķw¯nmmÅL¯wƒVƒUÞy@UówÇLkmm@@UóxkkĉmL¯wVwkWWX™mLõm@kűV_ƒƒô»ÛƒÆ¯@™Va™VšaĠVlmğwķUóÝƽ£ÇJkbǫaƽLW@nxݤkzƒy¯XɅm@VšôÇX¯Ė¯ºÝnUŽnLVlUÔmV"],encodeOffsets:[[126068,45580]]}},{type:"Feature",id:"2201",properties:{name:"长春市",cp:[125.8154,44.2584],childNum:5},geometry:{type:"Polygon",coordinates:["@@„U°xÆKnn°mĸxš°@Ċó@aÈJ°Å„Uôl@¼l°„IllœUlVƒšXxlVUêVxkllnÈUVll@Vx²IÞ¤VUlVnIôlރlwô_„›„bVaĶLXÅÞÇ@K˜¯@wÛaƒçn¥š¯WXyW¯XwƒUmmÛ@ma™nómğzƒxÇK@aUÇL™a„ƒmanƒUw°@WwnU™al™nkƒ¥šU™@aóIÝbUm¯Vmk—@@aƒU@amVğĉ@ƒlUnÿ±Uƒ™bóKmVÇÞī@ÇVUUw‚™šmXk˜Kn@ƒ™L¯ƒÇU™byókōè@b‚n@lÝX@x¯ô@ƙUV_maXm@aóƒJWxnX@ŽVVnĖVnUJ@nōÆÇ¼V¼kxƒLklÝw@xƒx@zV`ÅbmxU±xU„nnm‚kn‚ŽğU™bUŽ‚šUb@šÅ°Ü„󼄄U`Ʋ@lön‚KšnXWlXUx°xnKĊllôw@Vn@lnÈKôx@VÝz„V"],encodeOffsets:[[128262,45940]]}},{type:"Feature",id:"2206",properties:{name:"白山市",cp:[127.2217,42.0941],childNum:5},geometry:{type:"Polygon",coordinates:["@@Ušl¦kÒÆ°„IlÒU¤ôz„¼lJš„U„n‚ÆXVl°@²aÆbVKČXV¯°¥¯ĉ°W„„„L‚¥Ģw@x„bUx°V°zn‚‚b@ÈlVŽlIœ@˜w@m„U@akU°ƒkUôwWƒÈ¯VUƒVUƒÅ±U›@kÈk˜Ñœw@ƒlaÞġƒUÞ£@ƅ‚KnÑ̝@W‚aUaVUVkkw@a¯@¯™Ý™ƒVXnW@@WkXmK@xkKUb@bW@Uw¯„mmb@WKUbmUbUaWbƒJĉIVW@I—l±LkšmU™bUm™@ƒnkKWa¯n™@„`Ubma™„ĉL@bƚ—@W`ƒL@n¯‚Xb‚@kb@x™Lƒ„™@V‚kL±™™mlUIU¥mL@lÅx@_laƒƒ@U—aƒV@kmmƒK„£ƒƒLƒƒmKUnÅKVbmXVlèĉUUbml„ĢŤƒIlޝbǦœl‚@ô¼Ģ„@x°„l¤„n„a„l@x™b"],encodeOffsets:[[129567,43262]]}},{type:"Feature",id:"2205",properties:{name:"通化市",cp:[125.9583,41.8579],childNum:7},geometry:{type:"Polygon",coordinates:["@@ÆlXnĠx̰lȰš„K„°kXm‚@¦Vbk„ŤJšnݤk„VÞVVkȄb°y„™@w˜k„ǰa„wƨ@„aސ„K‚VnaWwXWƒ„kôJš_ČºôVkƒ»óyV£kуJůlÑk¥V™ša@wƒkƒbƒmk£¯ƒ@wġƒó»@›kÈ¥°ak„JÆ£ƒġnkVaĊVkçWUnUaÆLVmnL„„‚KU™±@—„m@a¯U„bmV¯m@_ƒK™™U™ƒaƒÅ™Wó¹ƒ@UanmWak@@wmI@y™@mk„JVa™@UaƒIkJ@n™@Um±kkxƒm™Ik„ƒbÇm@ްbXn„V@ްÈmlÞ¼¯XVº¯Lm„kWWXLmVVlknƒ@@lnWƙ„Vxbmšnšm„¯lÝaVȁè@¼V„„b™„ÆŽ°ÞUVšJ„„kx›I—xƒƒƒIV¤™ÒXxmn"],encodeOffsets:[[128273,43330]]}},{type:"Feature",id:"2203",properties:{name:"四平市",cp:[124.541,43.4894],childNum:5},geometry:{type:"Polygon",coordinates:["@@Ɇn°W„zlyÞ£mwX@ƾKǬblaÈIƾ¤ôÞĸVĠxnmmVƒ²w‚VnwÆaU_@y„w@wÞxlk„KlwU»È»ŎÅ@mVIUmmĕUU@mWXw„Iô‚@bWnnbU`‚šV@Űó@wÞW@km@aŎ烙@m°Ñ°Inm±aXaƒU™n@mƑšU¦@šÇޝaU£šaU™ġ¦ÅҙJōUŻókUÇ@™¥¯ak¯mUVak@@aċçÅaUƒm¦Ý`XbƄ@n`ƒI™xĊÞōÞml@šUb@Wl™_¯JkšÇUÝÆÅb@n™„llUb¯„±a@ƒ—ƒWĉJġ™Unóšm¤œxôaVnƒxôI@x„V@bmƙ„@lnLmޯޙxVb¯þ"],encodeOffsets:[[126293,45124]]}},{type:"Feature",id:"2204",properties:{name:"辽源市",cp:[125.343,42.7643],childNum:3},geometry:{type:"Polygon",coordinates:["@@żôŎVšIÆÑĢ¥Vš™bV¤°bȍ@™V¥ƒ™Þ£lÇUUUÝlƒÞ£™mţIlƒUa@¥nlWƒ¯ƒL¯™kÇġ¯ğwWmÅk¯UƒVU„„bWlXlmnƒbUx¯xVVknlŽUbV„ÇKUb@„™VnbmlnzUº±bmJUbWÈnèm҄š@X`WL"],encodeOffsets:[[127879,44168]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/liao_ning_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"2102",properties:{name:"大连市",cp:[122.2229,39.4409],childNum:5},geometry:{type:"Polygon",coordinates:["@@‚IÞmVk@wXWÜbnwlLnU„@‚nLlbXW@a‚wnbl@XL‚aš@Ċ¥@LULnJ@xVnmV@VXXV@VJkn@VÜKXXôJlb„xl@„IVbnJVLUbn‚lnVw„JVU@ƒXU‚aUUlwn@°ƒn„VKnV°_VJšwl@nwlV„IXWlIVVnK@IWmkIVaVU@WÈUlmU@U„WUalkXġŻ@kIƒ»mm™akUm›ĉUŁV»²ġVĕ@aUU؍IɃ`ȃ@kƒw@ƒUƒmwĉ™@ƒWķсIĉÇbÝLkymbIƒwÇmÛbmbU„¯ÜõÈkÆVbŎxnXVÆnšǪ¦„bš¤Uš™xÝnĉÒmĊVȄ¤Èš„bƼ„Ā„„ÆÆÞ„źb„VVbX„‚°²¤"],encodeOffsets:[[124786,41102]]}},{type:"Feature",id:"2113",properties:{name:"朝阳市",cp:[120.0696,41.4899],childNum:6},geometry:{type:"Polygon",coordinates:["@@na@UVI@m„ÑW™kaV¥UI@wl@„aÈbšm@wVašk„@@K@kƒ™@a@UUmƒUUalmU@KÇUű¯@±kUKVkUaƒaU@¥m@@¯k@WLUmkn@mmIkm@amU@wVmkU@Klk@U—m˜aXIWWUL™aULVbƒmk@UUmUk±™_Uym@mbkImaX¯WW™xWKzU@WƒkJWwkV™@Um@UbVVVVXb@VWX—@WŽ@Vkb@V™nUK±aUUlwX™ÇWKknU@mmUkƒLUVƒVUUVƒUaƒw™bkKmwnIƒ™kJ@nmbƒ`kmVkLWwUm@UUU™K@UmaUa@UUaWK@mUƒ¯Wkk¯VmUUŽ„xVXUVmL¯ymXkWUbmXUKƒVknWx¯JVnkLƒl@VVxnxlĀVL²WlX„l@bÝVUn@bnlÜaXblIVl@šš@Ȧ@VmbXV‚@@x„VVnUn@`°@VnXU@K@„VV@VmbnVn@ln@b„xƒ°Ub@bšLV`Ånƒ„W@@lUšnnWVU@Vbkl@Xl`XxV„UblŽkX@ް¦V„UVVbUlkV›@UbVbkLUxmJkXšš@b‚bœxVKÆlXX˜bnŽnala@ƒUk@U„VVklKVUXKVU°KVan@VUnLšKVL„WVaU_@mmUXa@m˜wXwVkVWXk‚k@›„k@klm@wXKl@U@KVUUUVaUƒV@„alL„xUx@b°°VnnVšxlIXJmx„LUVlV@bnX@Všb„aVx‚@XJ@b‚n@VŽVXȄl@llX@lU„Vô°°@ބVbn@‚V„k„@VW"],encodeOffsets:[[123919,43262]]}},{type:"Feature",id:"2106",properties:{name:"丹东市",cp:[124.541,40.4242],childNum:4},geometry:{type:"Polygon",coordinates:["@@lzXJ‚U@š²x‚@@Vš„@bUVmKUn„°n@lnVK„„nV@n@VlV„°WbXn@‚VzƒJ@¦@bkb‚bUl@bkbƒJ¯zƒWULWbklV„nb™¦VJ@„„K°U„kl@@W„bVn°@„Všm²U˜nX`„UÜLXmVXlKVbUVVnUbn˜ƒX@VUL@lUbWxš@²kl`n@Vlb„@nUVWVLVU@aV@²bl@ÈmšxWX„VÈU„JV„l@„„la„WnX‚KÈkÈ@Va°bÆm„@XV°IVV°UnalƒVUn@UwVU„@@VVJ„I@bl@XK@wWmXU‚UVbkJVXnJVI@mƒknwlKXL@`l@VI@UUaVKÞn„aVm@aÇ£XW„U@aÇUU@mbkKm£™@WW™ƒL@@Kk@kl›U—bWKUkUU¯UõÛƒmUUaVU„U@WU_W@kVkJƒ_WKkV@bUL™¯¯ƒ±mk¯ġƒğÑ@UmwƒKUakƒ™ƒa@a„m¥ÝƒIUWmk@w™mţ—L›KʝbȗKWĢklVbƒX@VV‚knÇV@XUVUblJXn@J"],encodeOffsets:[[126372,40967]]}},{type:"Feature",id:"2112",properties:{name:"铁岭市",cp:[124.2773,42.7423],childNum:7},geometry:{type:"Polygon",coordinates:["@@XJm@¯šmXUlnVbUJƒU@bV@UJWL@VXLmJVbkXlJXxVL@b@V@n@b@`Vbk@lxknV@VV™V@bUL@bV@@bVK@VXLWLXJ@LV@nbWJ@IUV„x@LVJUXVxVx@VV@@LXJWL@VU@@L@VnL@bVVmVX@@VVInJmbnLWVnVULVVU@VVmX@@JVz‚l@„nVVKVXރ@mk_lm„UUWV_nJlUÞÑÞVVUVƒVL„UVJ@I„Vna‚@@KV@XwWknwnKlalU„w„aĉݚwšJl_@aUaƒKUUU@WU@WXUÆ@@UVK@n@UnVVšblK@bœllb@b„bW@Xbl@UlnLl°°bš¦nKlVnI„V@UWU@WXkƒw@am@nm@aVw@I@KUaVIm±XÑlknJVnVJšaX_VaUaVKmwnkmmn@lU@U@mnašXlKUmUIVmklaUK@UlUVUW@U™kVm™a@UUU@JmUU@@bmb—KWV¯XUKm@ka@UVKVk@aUKmLkKUUÝUmbXbÇJ@k@WU_@m™™@klm@UXKVaUI@KWUXaƒÇWk™aWUkWUL±U@lUU@ƒUJƒI@V¯JmIm@@aU@Uwƒa™@UV@VkI›V¯aUkƒWkb@bVL„@@VVVUXW@Uaƒ@@b—‚ÝbUV݄@ŽƒLmUkVUbVllLUV@LššXŽWbUXm@U`@„kxlnnJlbnIllšLX„lVlUXmVK„n‚V@L"],encodeOffsets:[[126720,43572]]}},{type:"Feature",id:"2101",properties:{name:"沈阳市",cp:[123.1238,42.1216],childNum:5},geometry:{type:"Polygon",coordinates:["@@ȚĊܰ„b„L‚lÞxUbUn±‚@ÈnVÆL@xnLšlUVƒbƒxkImJkn@V±LUxkV@bšbšKVKnzVl@L°@Va„xÞUlbôxVVœ@@V±bnŽ@llXL˜ŽöXĶŽnal@nkVJVI@aU@@aVK@ašUUUU@lmkwl@Ua@_@a@m@U@aUKWwkIlWUanIWK@UXKVIU@@a„VVIUa‚mVknW°™n@WI@KUƒmULWnkVkUWƒ™KkkmJkamIkmlw@ƒV_n@VWXaW™™@KVUkKUkValUnV„K@ÞƒVUÞa˜@a„@VbX@VWUU@Uƒ@UK@ala@IkKmUUa@U@ƒVƒkk™WVwU_@KÜUXbl@V¥XUVmƒƒƒXa‚kŃlUUkIm`UIUJW@UIKmkm@UUJƒImmU@ƒVUXU`mIUbUK@LƒJUU™l@Xƒ@UbƒJ™kU@ƒŽn„m@Uam@@ƒ™aUmLKƒwƒ™mWXUK@kUaÇa@JUIUa@aƒKVUƒUXmƒUy™_@lmbkLUKWLX`‚n@bVL@JXL„‚WX@Vnb@Vm@UbnVmL@V@x@LUbVV@V@LƒUVl@mb¯U@xU@UVVV@X@VVblJ@bn„VKUn„x@llnL±¤™b@k`VXÆK@„kV@¼kl@bWIUl@VmLnbm@@JXXmb"],encodeOffsets:[[125359,43139]]}},{type:"Feature",id:"2104",properties:{name:"抚顺市",cp:[124.585,41.8579],childNum:4},geometry:{type:"Polygon",coordinates:["@@„XVl°bœUlJ@UVUš@„bVxV@@bn@nJ°I@U„J‚I„VV@V@k²VVKlXXVšb‚lÈX„ŽWbXV@LVJUbWL@Vkn@lšš@nV`@X@lÈIWanaÞVVVlLnKVL@bUlUL@Vlbn@VL°WXU˜Lna@aV@nV@IVV@VšbUnšl@V‚XnKVa@U„UnyWkXaƒaVk@ašašbnm@_WKXmWanU@alaU—l@XJVLVxX@˜wnKnVlwƒƒ™@V_@a¯¥@UkKWUaUU‚anK@IƒaU@WUaVw@klUVyUUVUUÇ@Iôbša@mnUma@kXa@UWak@Wa—l@a›@WUƒLmU@U`mIUU™`mUk@@UUK±nkJƒbUam@kwm@@a@UU@Ua@@K@ƒVK@kmKU_UKƒUUaĉWmkkL@`™LƒnmlkLkbmK@k™@Ulmb@b™„@Ž„xUVƒIUlmVXXƒxm@™JUUk@WUk@ƒakx±@¯x¯Umb™KUUVmUU¯UmVVn™WkÆ„lWb„„„ŽUnWVU¦k@WaÛV@LV`UxšXllU„@„@VVbnVlL@J"],encodeOffsets:[[126754,42992]]}},{type:"Feature",id:"2114",properties:{name:"葫芦岛市",cp:[120.1575,40.578],childNum:4},geometry:{type:"Polygon",coordinates:["@@ll°X„ŽnV‚@XLVb@VVbnb@VšLVV@VVnXxlKnU‚l„_na@mlI„šmJnxlLša„xVbU„VV„UVU„KVlnnV@lmXLšÈWŽkxVV²bVLšm@Ula@UX˜@XW@UWaUUUUVan@V‚š@lUXxlIX„V@‚yXLšw‚ŽXXW°nblJnan@Vzš`l²nVVVl@„nUaVKšbVKnXVaUaVUšyšnXK@kVK‚@X@m@m‚LXa„LWƒU¯„w@™ƒa@UVw„¥°™ó¯¯y¯ƒUǯ»›w¯Iƒm—¯Ç™UUl™¯»ţKċÑţķm¯w@mU_ómk¼VnU`±IkbVlƒnnŽU¼±Lk`@X™Wl¦UbmVUxkXVlkbllU„Vb@bkVmx@XVV@Jb±aULkKWXkWmX¯aUJmIkVm@ƒxU@n„"],encodeOffsets:[[122097,41575]]}},{type:"Feature",id:"2109",properties:{name:"阜新市",cp:[122.0032,42.2699],childNum:4},geometry:{type:"Polygon",coordinates:["@@šXnb°lš„VlnXVJ„LlVnl@zÆxnK@b„blKVLn@@V„aVLVK@L@Vl@XVVInVVKVwlUXwlKšL„ššVVb@aV@X„lUXbVW@n„lWnXKV@@V@XUVVLUVV@@bVVV@@ln@VbVUXV‚I„xVanJ@UšIVWšL@UV@@¤V@nInw˜W„k„lnIVx‚lnzUVÇJ¦VVÜLĸUnW@aV_šWĊXXa‚Knkl@nm™L™a@alUVw²K@UlmnIlJ„w„aVU™kmK@wÅKmU@DzVmVaÝwkƒKƒaÛ¯șĉķ¥ğ¥ƒ@kUWkƏī݃ƒ@@akU„K@KWIUm¯nƒU¯JmwUVmIkJÇLm@™UImJUU@aW@U@@nUb™JƒaƒbXVWn@UVmX@V@b„š@l@Lƒ@™lUb@x™nÇaƒbk@@xVJU¦lbXšƒÒ@nUJ@Vmb"],encodeOffsets:[[123919,43262]]}},{type:"Feature",id:"2107",properties:{name:"锦州市",cp:[121.6626,41.4294],childNum:5},geometry:{type:"Polygon",coordinates:["@@nJ@nlmVnXKl@@°n@@¦‚V„bVbUlVL²l°@ƲÈV@LV‚knVb„VVnnWVU‚@XmWU„a„bšIVa@mV@X@@bVVnIVJ@š‚nÈKlInJVUnx°I„V°mVnXJ@LƒLlV@b„@ބƐĬXllV„@Ġ¦ĸ¦naWW@In@manK@UVkXJ@alk@»lU@ƒÅLUWl_@ša²£‚Kkm@kƒwVmULmƒ@akIUa@U@WUUVU™aÝ@ğ›wkƒƒmĉ£UWƒ@@bÇL@m—a@_mKƒlƒXUwKƒLţÓ@UWw@K@U„I@m™U@UV¥„@°UnJ°@@_™KUwƒW@UnaWUmmI@m™ķwUaÇLóVĵwݙUUW™¯šƒ¦Ux@V„b@šƒxV°X„ƒKWbK@n@nW‚@UL@lWL™m™zUVVbUbmWXXWJ—b˜n@Vkl@LlVUn@xnV@bln"],encodeOffsets:[[123694,42391]]}},{type:"Feature",id:"2103",properties:{name:"鞍山市",cp:[123.0798,40.6055],childNum:4},geometry:{type:"Polygon",coordinates:["@@l„œxĠŽÞ@šbV@@w°Vna‚@Uk„V@K@UUUVa@K@w@UnKmUVan@@Uma@UXWƒWK@IUK@amW_XKVLlKna@kmKVak@VU„@VmšU@anIÆan@‚a„šUVnb@blLV`ÞLlU„bna‚Kn@naVU@¥°IVK@anUUKVaƒUVak™@mJƒkXƒ™UVwkƒVUUa°U@Wƒ@WlkXWlIXUlJlaœx‚IVVXLšll@nLV@lLXl„KĊzš¥maUƒlkXaVK„X°y„Ila@aVkala@a@¥„IUy@WmXaƒ¯kU@U@mmUƒƒULkmm@ƒ¯VmnLVU@a™ƒ@U@±w@™VWIkymLUUkJWXƒJkUmxk@™xUI¯`mUULmƒ¯„m@kxVVbWV@„UVƒIUx@bkšVšVVšxUbVV@V@zšJVXU‚lnk@@lkLƒlƒLUU±Jkšm@UIUVƒLUVU@™K@UƒnnV@l@Ll„ƒaUJ@zn`@nWlƒIUVUUUV±Ln‚@nmL@VUVkLVlUxVLVlÅXma™@@akLmWUX@JUnVJVkXJ@X@`WX„VUVUIlb„W@bVUVL@`Un@¦U`@bUV@z@Jm@@XV`„LUL¯J@IVKmKÅI@J™nWVnLnšVxV¤™z@bmV@VUV@bUL"],encodeOffsets:[[125123,42447]]}},{type:"Feature",id:"2105",properties:{name:"本溪市",cp:[124.1455,41.1987],childNum:3},geometry:{type:"Polygon",coordinates:["@@lb@Vn„lnVVUb@šVJ@nnJ@bmXUx@xVbkbkŽWLUxnl@Ul@„xWx@nUV@¼Ull„knkK@bmbnl‚LVJX@VIVJn_lJVVšXUmnU°VVVUnVVšLna°V°w²@lw„bl@XVl@VVšIn@„wWWnUVk„JVUƒw@šƒ@anaVkš@@lnLlalKnk„mšK@_lKnlĊXVb„VVLV`nL@lUL@„@L@‚VbV@@V@bn@lxn@Vb„alI²mVL@Vl@nVš_VVnJV_‚@nV„K‚V@Xœ‚@b˜kXbl@XblylUUkš™@Xa@UVIlK@UUWVU„Llm@UUUnKWU@K@UXm„XVa@U°KVUUWUk@ašUVKkaWkƒKUknaWa@U—@m@mk@ƒaUJk@@_WKkLmx„l@nUJmIUWlIUaVWVXn@xWLk@@aƒJUI@Uƒ@UVVxm@UVk„mb¯VUU¯JWUƒ@Ån¯aUbÇ@ÇlLmWƒXkbƒƒk@UƒƒIÇVƒUXW™wÇnk@±aU@@bUVUKUXmVƒ@kaUm@k_±l™@XwVa@kVK@U„Wm—VaUmVUUakLUWWnÛKƒVW_—m±V™nƒU¯@Umƒa@Xk@ƒl¯V"],encodeOffsets:[[126552,41839]]}},{type:"Feature",id:"2108",properties:{name:"营口市",cp:[122.4316,40.4297],childNum:4},geometry:{type:"Polygon",coordinates:["@@ĊĖÆn¤„„°Ċ¯ŎWšô„@xXb‚wnKl@nX@VUVƒKmL@VU@Ux݄@Vlb„x„U@VUb@b‚kœ`‚IUlVUn„V@@UV@@JnXlK@bš@nbÆWUkUKVwUklKVU@UnK@mm²KVUVVVU„JXk@mm_@yVI„bkƒ@K@kmU„m@VšLV@VU„KVUVJn@l™²IVV„K„klK@kl@kmVUW™I@y@UUUVa™wUUU™l™@akmmVaUKmIUaƒJk@ƒwkaóIWWÛL@UlmUIU@WW@UnUUm@wmIVK@Kĉ¦™@bWKk@max@bWXkamKƒ@mVkKmxÛaWX@xUlÝnJ"],encodeOffsets:[[124786,41102]]}},{type:"Feature",id:"2110",properties:{name:"辽阳市",cp:[123.4094,41.1383],childNum:5},geometry:{type:"Polygon",coordinates:["@@š`Vz„‚Wn„VUV„L@bVbVJ@IÈbVb@lVLXW‚n„š„x‚LnKVŽšb@„n@Vbn@mƒ„V@šl„IVa„@@WškVV„I@KVLVanJV_VW„UV@nn„JVI‚Vn@na@alLlmkƒVk@»VU@mXwƒwk@@VmkVwXKllaUa@wVwnW@amI@mUI@™VaUUkmmƒ@UkaƒL@ƒUIĉyƒLWkkKU@mKk@™kWKUUJ›wkbkIWVkJWXkl@X„‚@X¯VVbUVl„UxšVW„„lnIš@l‚Ub„VUbVLmV@bUL¯J@¦UVmbm@LmbƒakVÝKU_kK@amaVUƒ™bm@ÅbmJ@b™VUnƒ@UVl@UbnL"],encodeOffsets:[[125562,42194]]}},{type:"Feature",id:"2111",properties:{name:"盘锦市",cp:[121.9482,41.0449],childNum:3},geometry:{type:"Polygon",coordinates:["@@Vbĸx‚š@nnJVnXŽmb@V„XVxšL@`¯@mI¯Vƒ@U¦@VšV@nƒJ@V@LXx@VŤÔ„K‚LVx„W„knL@`˜b@nÈK@a„@VXĊ¤„nVK@aVU@UnU@ašyU£Uwm™mKXUšm@IÆJnLUL@J°IVKƒKU_@Wn@@I@yVU@aV_@¥Vm@_UKUV@aƒXkaVJVUƒUXW@_@WWIUlUIVm@IVW@IU@@VU@mƒUVVkJ›_l@aVa@UƒVƒwka@UރVwV@@UnK„LVU@UmWk@mLxWa@wóƒUVUIÇÆĉ¦¯¦¯xʟJ"],encodeOffsets:[[124392,41822]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/nei_meng_gu_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1507",properties:{name:"呼伦贝尔市",cp:[120.8057,50.2185],childNum:13},geometry:{type:"Polygon",coordinates:["@@„m@Łkƒ™Žƒklƒôƒ@£kJ°ý™ɅķÑó¤ğLĉÅlÇğŁW¯¯›™ƥóÿlwkţÈéÝƛó™°ÞÅxV¤ĉĖWƒ¯lȭţυ̃ɱÿķƅˋğɱřÝţϙȍƧĊţ@¯kWKUKm¹Å@ķJU@ƧÑƧ„ō¥˹Ɔ@L@„Þ‚VLnš@VōČWJX¦@JŻbU@ţÞmVU@ȁýóbkWWLƒƒÅ™¯UWġkmóƒ±UŹôV¼ƽ¼ƒł̥ĖƽǬʉxĉŽŻȗKΕ̛ʵƨʟÞ˹»Ƨţ»Ǖō˷Ȍ±ȚʊĠUɾɜɨmÜ֞߼˸ƅȂ¯ǖKˢğÈÒǔnƾŎՂ@šĊbôô̐¼ƒ@ĊôĊŽÞĀ™xšĖƧL±ŽœŽ‚Uš°U„°ĬƒČ°ÜƒêɴȂVł°@ƒ„nxŎèƒbȄÞȌ΀Ǹl޲IlxĊl²ÒmšôĖ™Èl„ĵºm„ÈêVþ„xɛČʉÇĵVmš„ÒƒÈɆôƐŰǀĊ°ÆǬĮƾb„yĊ@ĠšƒXǀċm»ôw°Ûk¥Çm¯ç™kkÇǫţǕéX_ĶWǖīŎaÆĵĸĊ@ȚȘ‚™ĊLĢĉ„VÆĉʊÇĕóaU¥šĉ°mkŰġUĠřk°mƒÑČÿ˜ÛƒWĸ£ʠšÆxÈÞŎÞ»ʈ²ĊÇČalÒ°Ť±ĸz„ŽĊKȲm¤Ŏ@Ò°¼nyȂUźīǖƳÈē°@šÝ̓@ƒÈkl¥Ççkxk™›JXÇƒUÅ@˜£k»„óƿīÛ@lÅJl¥óý@¯ƽġƍÅan™ċ™°é¯¹"],encodeOffsets:[[128194,51014]]}},{type:"Feature",id:"1529",properties:{name:"阿拉善盟",cp:[102.019,40.1001],childNum:3},geometry:{type:"Polygon",coordinates:["@@™ƏnǟƨʫšŹɆÿ°¯ÆV²ˢ™żÿ@ÝÆŁȰ¯ȀƳĉó™™@ğkyš¹@īš›ƒwl£Źƒƒ¯Ŧé@™ÇÇxŋĉƩUUŃōL™Ç™ĵóÝnƒóç@™™ó@ġƒƱ„¥ƒç™WUçÆōƒ@é—çťK™çȭVһƽ̻aW¥ȁ£ʵNJǓƲɳޗǔlżÞmĠóĬȂɲȮ@ÈĢŮźÔnĶŻǠšŎȭœгŃċóȭţΗÆƑÞƧÅΫóȘǫɱȁġlÛkǰȁÈnšõl¯ô„ÞɛÝkĢóWĊ„zÇɼʝ@ÇÈķlUČÅÜķnέƒǓKȮŎŎb°ĢǀŌ@ȼôĬmĠğŰōĖƧbЇƧōx@ķó£Ål±ĀƧīXÝġƃêĉK°Ýʇƅ@ΌʉżÅÒϱʈ@˺ƾ֛।࡬ţશóЈèʞUš¤Ґ_޸Ƒʠɽ̦ÝɜL׈ɛϜóȂJϚÈ@ǟͪaÞ»Ȯź"],encodeOffsets:[[107764,42750]]}},{type:"Feature",id:"1525",properties:{name:"锡林郭勒盟",cp:[115.6421,44.176],childNum:12},geometry:{type:"Polygon",coordinates:["@@ʶĬĊIȘƨƨŽ@ĬÛĢșŤĉĬƒĀóšU‚ÈŚÜènŦƐȤȄłϰUƨťƾÑ܆ğɲƜǔÈèʈƲĊƞƒšɆ¯̼V˺Ò˺ȂŤVĢêU܃x„Āˌ˘ƨ„ưѢmÞżU¼ÆlŎ@ĊçŎnÈÒͪŎźƒĸU°lżwUb°°°Vš£ÞlĠĉĊLޏɆnźÞ„n¦ĊaȂīġѝIĉůl»kƒ„™Çý„¥Ŏ¯ƒén£ġљÝȭxƒÇ™@Åçķ»óƱŎ¥™çWÿmlóa£Çb™yVÅČÇV»ÝU¯™KĉýǕċţnġ¯»ÇōUm»ğƒÑ™wƏbċÇŎċwˋÈÛÿʉѰŁkw@óÇ»ĉw™¥VÑŹU™mW»ğğljVÿŤÅźī@ř¯ğnõƐ@ÞÅnŁVljóJƒwĊÑkĕÝw¯nk¥ŏaó¦ĉƒV¦Å`ğуÑÝ@mwn¯m±@óƒÛKˍƏǓ±UšÝ™a¯lƒōšșk„èƒĬގn@ŤġŰk°ċx@œĉ`Ƨĕ°@ţÒĉwmĉ@ƒƒnƒƒa„™¥ķnƒÞĉVóÆókĉŽķ@ÝkƧƧÛaƒ°Ç@ÝÈU˜óbݼ@„ÛÒV°™@V¼ˋL™ÞɅŤŹǠVÞȗŤÇĖŚōbȁƜ"],encodeOffsets:[[113817,44421]]}},{type:"Feature",id:"1506",properties:{name:"鄂尔多斯市",cp:[108.9734,39.2487],childNum:8},geometry:{type:"Polygon",coordinates:["@@ĶL²ĬVłƑkkl@Ȏ™ŘWńÈĬȗ¯™ºlz@ĠššĊôŦô„ÒĠ°kÞܚ™n@¤„UĸèĸbŌÈXŽĸLlÒĢxɲÆ¤ÈÛƾJÈݰUšÅĶ»²VW¯ĸJôšbk‚V@ôlbnĊyÈzVôašb@ĸ‚ÞUl°yǬ²Ǭm°ššk„±lbn°@È»˜JX„VŎÑÆJ@k„LšƒÆl²™Ġ²ʊůĊġ‚řóƛÞÅ@m„ƒmLUÿóĉƧ@™»L@„›`ČĸmšȗÑţů±ĉğl¯Ā™wǎƒçƧŤÛI@±ÜĉǓçō°Uwô™ǫůķƳř±bÅ£™ÓÇwnÑó@ȁƽ@™ƒÇƧĢón»ŏĕóĊ¯b„Å™™VȯÅImƒōKU„™LǓ±Ýxċ—ŋ˜V±Āȗ°™„Źl±šÛ@WÒȁŚŹНŚÅèŌô„¼°ȰɞȂVĊ"],encodeOffsets:[[109542,39983]]}},{type:"Feature",id:"1504",properties:{name:"赤峰市",cp:[118.6743,43.2642],childNum:10},geometry:{type:"Polygon",coordinates:["@@ɲŁĢljĊwƾōÞĭ°_ŎŃźȹƒUČÿl»¯ôķVÿǬƽ™ɅġÅÑǫ»̐ʟȣU™¯wVWݍÈġW»Þ¹m݃ɛŎÿŎōͩůV¹›ō™éċ™óŹÅVVĢǩʈ@Ėċ@ķšÛšV°¯xÇÅţ¥™»°Ûô™ĉʟ„¥WýČ¥™w‚灻±mnÅķ¥ˋVƒbUÒġ»ÅxğLƧ™ƒbWĖÅxš¦U°ÝVóŰlô²@š¥ÜÞÛô„V@²±`𦙄™¯Ý@„ŽÅ„VÒō¼ôš™¤V²ŹĬÇĊƑƒţxƒç¯Lk»ʟlƽýmłÝÆƏ@mö°Ġ@ŚŹĬţÆUĀĠNJĠŽX¼šnźVUҚ¦Ċxȼ@ôlx¯łʊÒÜĀˌÇČxƍČÈƐašx„ÒĠŽn¼ŎVȐ‚¼Ģ°ŤmǖČĊþšLV°ÞŽU¼ċÈUƚzÈa‚¤ôbkŽ‚nXšè"],encodeOffsets:[[122232,46328]]}},{type:"Feature",id:"1508",properties:{name:"巴彦淖尔市",cp:[107.5562,41.3196],childNum:7},geometry:{type:"Polygon",coordinates:["@@²@Ζǀݴʶհĸ„˜ƒ¦Ķ™̒Uˌ¼ӾÇƾ¼̨UÞĉ˜Ƨ—éÝ»ƒĕĉ—ƐȍœōǪakó‚ó¯a@™ôţ™aV¯Þ¯°@²él¥ĵğťwōxó¯k±š—Vó@™aóbUÇyĉzmŽkaóŽU@l™aó‚ķIX°±Uĵ¼™Æ¯VÇÞƽIÇÜÅ£ɱŽġwkÑķKWŋÇķaķçƒV@£šmۙlÝğ¯ƒÑťóǿƴȯ°Åł@ÞŻĀˡš±ŽÅU¯°ɅĀ™źƧʬmǠšƐ"],encodeOffsets:[[107764,42750]]}},{type:"Feature",id:"1505",properties:{name:"通辽市",cp:[121.4758,43.9673],childNum:8},geometry:{type:"Polygon",coordinates:["@@ôƲĸ¼Æèš@„ÈȮwƾ»ʠĢ¥VÆ@²¥@»Ŏњ¯ĊJŤ£k»ÆÇX¯̼ōšī°aX£ôƒƾȁꥄƒ™aôŤ™ĢL°ƒĸ@Ȯ¼ÈÒʈŚôVXůÆaĠƛÈKƒķšĉôÿ@ğÈĉ™»ÇVn™ĉV›wXĠݰšČÿĸwVƒ™¯¯ǵ±™ĉ‚ǫ™ÅÅm»²Ż±ƽIm¥ţÈķ@¯šƧJV»ÞUÝç¯UġºU£ţŽóaÅÅlƒƒ™Ƨī¯K¯Þ݃ğL̑ȍƽ@ōŎōĀƑɜnÞݺX¼ÇĢގUX°xVšʠȤ̏Ǭ¼ÆÒɆ̚ŽǫƾUĀóĸ°‚k¼ċĀƑVŹȺōń¯`ÝĮƽŎĉxġNJɱłō¦"],encodeOffsets:[[122097,46379]]}},{type:"Feature",id:"1509",properties:{name:"乌兰察布市",cp:[112.5769,41.77],childNum:11},geometry:{type:"Polygon",coordinates:["@@ʠǠÞĸɲȺƒÒȂƛŎaƙÈĕȘţUÝźǟɆţšÝˌKU»š@U¯ÜÑ@ƒÞ»ôaV—ÞÇÈ@„¯ÜbƨƨÞlĸ@ĊôlôÅĊU„Ýĸmš¦ƒŽ„bm„„„Ċ@n‚ĊxŤÑ@¯‚ƨĖĊ_@›Čwl¯™ƒȭL›Ý„»ƽ¯ķů„Ǔ@ÇǓbċ™ÅÅÆwÿĠÇU£óaƒ¥¯aŎğĠţkw°»¯ůlÝĵkǻݰɱƧǫaóôɱ»Çk¯ŃóƒʇŐŻ›ĉNJŻĢ„ޝÒÈUl°ƒx°n„Ò™Ĭón™Ċğ°ÇŚĉ¦ʵVƒ°°ĬÛżÇJȁńʇʹó˂ƽŎ›Æţ¦"],encodeOffsets:[[112984,43763]]}},{type:"Feature",id:"1522",properties:{name:"兴安盟",cp:[121.3879,46.1426],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÆXnlŎ°@LVLĠþœxĊUȮĊnU„ĠV@żaW¯XIŎġƒ¥Ý@K@w@K@I˺ŻŎ¦ƨƒƨÒŎIÆ@X@VºnX°lŎ@ƾĉˤƒȘǷȘÑÝݚÞbVţĸÿŤxÈĖƐށêÇKnĸ¥ô@›ķÞUnÒl@UŚaƒīˋƒ¯ÑƧx@±kXřƐƏÛéV™ˋ»lō¯ĉ„ÅÇÓǫޗĖġV@ğ»›°ĵ„ÇÞǓ¼¯m˜ÛÅŃĉĠÇƾb²çƒ™šéż¯VƒƒğÞml»ōÑV痻V¯™¯šĕÆU¯y°k¯¯V»ôDŽѰa@Źk™ġKţšóŽšbƒ„ʦƽȂó„W¤¯b™Ĭ̻ŎW°ÅÈl¼ţ¤ĉI™°ōÒ@¼±¦Å@UŽġ¦ʟŽƽ¼šÞĢÒm¤„êō°ƒ¦Èþƒšl„k¼Ċ۰JĢńȁĬ„°ƒżn‚ÇbV„ݼ@¼óĸţ¤@°Ånšl"],encodeOffsets:[[122412,48482]]}},{type:"Feature",id:"1502",properties:{name:"包头市",cp:[110.3467,41.4899],childNum:5},geometry:{type:"Polygon",coordinates:["@@źxżĀǔÆǬVȘĀŤ¥œÅƾōôˁʈͳȂŃÈIÜŻ¯ī„¯ōm™¯ɱ˝ƒķÒÝIÝ»ÅV™ƒlÅôфġ™ğVmÞnnƒWçkW܁XƝÆwU»Șĕš£ĉÑ𱱚Åk™„ƒK@lÅIō҃UW‚—IǼ¯@m‚kaƒ²™l¯™ǫnǫ±¯zkŽÝVķUô™˜l²ô°ŎwŦxĶĠk¦±ê¯@ݰU°šbóŤ@š°bôlôǩb›ŎƏȎĊ˜„ĖÞ¼˜ê—ƨÝĊ"],encodeOffsets:[[112017,43465]]}},{type:"Feature",id:"1501",properties:{name:"呼和浩特市",cp:[111.4124,40.4901],childNum:6},geometry:{type:"Polygon",coordinates:["@@ʶUĊ¥ÈřĠ¯šĉômšīƒÑ¯m„wk¯ÇV°ÑƒżġĊljǓɱţǓ›ƝóX¯ƒɛÒóa@nÝÆôƜŚĉĢʉŰĊҙ¤ȗĖV¼ÅxWƞۂlXXèm„ÝmUnšĠƒĢóÒkƚ„ÆUÞ¼ÞJĸѰ„ɲĕš°Ŏn"],encodeOffsets:[[114098,42312]]}},{type:"Feature",id:"1503",properties:{name:"乌海市",cp:[106.886,39.4739],childNum:1},geometry:{type:"Polygon",coordinates:["@@Ș°ÇīXњŗ@ȍlkƒlUٱīĵKō¼VŽÇôXĸ¯Ž@šťê„°ź„k¤„x™œ@Ĭ"],encodeOffsets:[[109317,40799]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/ning_xia_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6403",properties:{name:"吴忠市",cp:[106.853,37.3755],childNum:4},geometry:{type:"Polygon",coordinates:["@@nLV‚@šVLšaÞbn@@l˜š@bUVlUV„zVx™¤kÞVèšXnš‚@nm°a@UƒÑ„@VŽXnV@Va„UšŽVKUUU@@U‚@@KVa@U²@‚wXkWnk„±lLnU@UmmVKnIVWnI@UK›@UK@@UVKXkmWLWUXmlkVwUyVa@w„w@aVI„K@aVÈw„KlLVV@LnV„VVnU‚ܲ°WÈIUÆ@nÞ¼‚‚@¦™@UÞUVW@UxUxVn„b„K‚b¯ÞU`VbǬ™V@XXÆVVl°InmnUôƒ°¯‚anam£œWVX‚KXmškôaVU@ƒVak@@wmaƒn@K@UÛUWKXUƒÇƒ@UI™b@alW@akLUKV@@Ukw±Iš›nL@kmwkWmk@JUIƒůVmnnU@m@UƒK„VKlkUwkƒƒnVUKmbkI±š—KƒkmVkKƒb@U@aƒVkUmn™`kIlaUK@UUKmbUIݚUa@mUa@aƒ„m@UUULUK@bmKkbWI@WXwlkXƒWa@k@kKƒLVkkK@L@JUVmzUKlwUUnW˜£XVlKUwVU@aXI@aWaUw@W@_nam@¯‚UkWVkUWaU@nwmJkUVkWVUmUkJ@ImbUaƒ@@WÅ_mJknmak@@mƒXƒaUV@„ƒxUšƒ„@‚ƒ„@VUnkVƒ@Vn@`ULUbWLXVW@kbUJ@XW`@ƒnÅĖWJƒ@—m°@xƒxšbnUa‚w²lƒÞ°xŤIVVULۂWbšbkVVXÆ`UbVL„@kx°LlV@Vœ„WbƒJn@bl¤ULV„°@lmL@ƒƒ£U@@aUwmKULVxUVVx@„™@kU™@mK¯LÇa¯@"],encodeOffsets:[[108124,38605]]}},{type:"Feature",id:"6405",properties:{name:"中卫市",cp:[105.4028,36.9525],childNum:3},geometry:{type:"Polygon",coordinates:["@@°@Èb°KnLš@lVš@@ƒUwVUUwVKnLVx@bV@„¤@„nK@k‚¯UƒVKk£@a‚m„IXa›ƒ@UkU¯Klwƒ@UKVaÅ_UWlU™aXa܁VKUUţJ¯w„ݱkxVbmŽ™a„w@wn¯˜„@XIÆĕ„m‚@X_@WVIlaX@WUXKVaVK@_Um„@lUVm@U„ƒ@„ƒV™„w@ƒVUÛwm@@W@ImKUkU@Ua‚aXƒ@wWaUKkw@UVaUamLU™nk@»±`¯@k—W@Ua™ykbƒI„„@VWJkLWUkJƒwU@ƒn¤mL¯wm@Umƒ²XVWbnV@bmxƒVkxUblLUV@kVWKU¼ƒŽkUƒ@mn@JnV@bUnmJUn@„k‚@XlxšLVVnKlLVV@š@LkKULVbk`WL@lkXW@kVƒ@UÞUlÇX™lkaUbmV¯@@L@šƒV@bkb@xƒlW„—bƒbW@—±@UJ@IU@mVk„VxV@@l„Illœn@Vm@ƒVUbl„@JLmKÛXmVkU›KULU`@LĉwƒKUX„lVUl@Vb„JX¦̼bÞxŎxɜĖĠ„Ŏaô@"],encodeOffsets:[[108124,38605]]}},{type:"Feature",id:"6404",properties:{name:"固原市",cp:[106.1389,35.9363],childNum:6},geometry:{type:"MultiPolygon",coordinates:[["@@Vnn@°xnK‚£„mV@„xlIXVlKXI@Uƒƒ„JlašzVbX@l˜°@²_@¼mlVšnKVbUb@VlxVLXb@xW„bVbV@VlnL@J@Xn@Üx„b„W@nl@nblmnIÆ`@X„@Vbna@aVUUWVkƒ@kbWakbU@VwšW@_l@nmn@@alVlk@UkmVak@@a‚UXaƒL@¯@KVa@axWI@KnkVaVJn_lJ@„X@‚m@nVanUVb@mXLlJ„VWnLla„VVaVX@KXVVkVKlknKVa@aVU@KXb@klJUknUmƒ@K@_UW@alIUamaU¯kJma@IUK@U„@@UW@@aXLVƒVJVaXIƒKlaUkUV@ambUUJkIWJ@wUI™V@JU@UwV@@Um@™nU`@UkUmVUxWUUV@aÅb@aWXkKUUƒUUaWK@wnm@IVU@aXwm@UmVaUalk@anKUwlƒUwlkK@wmaƒUkmmIk@VmkUUbW@UVUnW@kV@xkVmbVnU‚™@UbUV@a›k@kkW@„kLW¤@„nV@VU@W_UV™UU`VLUV@IUVõVULU@UUUJ@wmkUJ@šWI@l@bkKkbVVƒbVbUL@UUJ@Vm@@L@xbVVVLVlVwX@Vb@bmUkbk@@JWIUVÅw@Km@UkWKXxWLÅ@UVUnWK@xkVW„@KULwWVXVWzXVVKVXkV›V@VUbV@U„VV@š@LXxVL@V„b‚Ž„LnKVLVxXVmb@l"],["@@@J@aƒU@LWK¯UUxVVn@Ġ„„LUW@UbUUUa@KUX"]],encodeOffsets:[[[108023,37052]],[[108541,36299]]]}},{type:"Feature",id:"6401",properties:{name:"银川市",cp:[106.3586,38.1775],childNum:4},geometry:{type:"Polygon",coordinates:["@@šUšwVK@UVWÞUšbšw„V@knV˜@@KU_VK@K„ƒn@W_XWlL@Vn@Ċw@Ulaœ@Wanamī@aƒ»ŋó@aÆÅɲÿUaV_°ÝaƒLƒaUmVwVwX@VUVݚ@@¥Ý»@mVÅÇJ¯XÛ±VUmƒUmU@KUUkKƒLÇxUŽ@bƒLUJ@bƒx@xUbVzUxklWnXV‚KnXWlUL@V@ŽVLœ@VL@ŽmJUXmJULnn@VmVkKƒ²mlXWlx±@@VUb@L@@VV@VVUL™ƒVUbU@WmUƒ@„Ò@V¯bmn@VŽƒ„@lVnUšnVWŽXVl@¦VVUn@x‚š@‚XL@¦‚lXxš„Vb"],encodeOffsets:[[108563,39803]]}},{type:"Feature",id:"6402",properties:{name:"石嘴山市",cp:[106.4795,39.0015],childNum:2},geometry:{type:"Polygon",coordinates:["@@U¯ķó±ÇÛ¯™ķmbXb›@kb@Vĉxm@@UkKWXX`m@ƒ„@LULV`@L—@mU@lƒU™x™aÝVUX@VUL™x™VkLWVšš@J„nVLXVlŽUV@zl‚VL@V@b„„n@lU²WVLlLVbUŽVxUx@xǀL˜xôҜk‚K²ŽVa‚U@wXa@W™ÈĉUa@‚bÈk„m@¯"],encodeOffsets:[[109542,39938]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/qing_hai_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6328",properties:{name:"海西蒙古族藏族自治州",cp:[94.9768,37.1118],childNum:7},geometry:{type:"MultiPolygon",coordinates:[["@@„V£°š@laœXô±źwš™ô@„Ulƒża܍n™Kƒw@U„aƒ™ša²L‚mÈLƚÈxlaUa„wÞmÜbÞUšnJ°a„kôƒ‚ÑkwÝVğwÇ@ÝkkV¯¥@ò„»„nŤ¥XImw@mVwša@Åw™mLkaW—wƒ¥l»kçƒó„»@ƒWÑĉŽğ@ĉ„™‚Ń„UwóřVómĵ»™™Ý@VǕ¯kšÝĊÅk™°ÓUklkU±šI„ÇÞkƒ±@šƽJƒ™@UġIk@W¦™VÑșÓÅnťKULnޝX›ƒ@¯mUÛ@WřmóKknōbƒxÝ@ƒŽU@kw@ÿÇLţšÝUkšmwƒŽk™lċVŚU¦™ŽƒLkUWlÅÑ@aƒ@ÅѱUóġʼƒÈĉmŻ@@wkw™Kl¯U™ġ@—„lÇU™Ó¯_ƒ‚Waĉ²Åló¼VbknƒKǎÅ@ƧĢō°Ý@ğ„W™ÅxUUm@™‚ÝXۂW„ULUè¯@mbUaƒLƒbUWġxIUJWz™a¯b™y™@ōÈóLU`ÇXUl™UĉV¯n›mÛbǕLklƒUĉVƒšóaġ„ƏbġKţnkbÝmmnÝWȭȃŽÝXţWókUÇl¯U¯‚ġUɅĀ@°¯„„š¯„VÆnmJ@ĊķnóJUbÝXUlVškL@lVxnnmb@¤Vzš`ÞÞŤ@„VnÆJV„°b„UôJkzlŽkl@²óš@ÆÇ°k˃šÇbÛU@lmb™XV˜kzƒV™ŽɅĀXˢlń„ĬŹ@›éÅ@ĉńưğbUšlŽɜ_°‚@xŦ˜škbVbƒKĢ„ŤVŎް@żÈźlĊ„ôKôb@nôxŦ„Æ@ôŽŎL@þÆb@šnnšWˌbÈx‚InaŎxlU@Ѳ±ƒğVŨƨbɲ@Þ¥ôUUķWVô¯ĊWʶnôaŤˁ@£nmnIôŽǪK°xUXô@Ŧa°m‚kXÆÞVŎkĊ°ÞLȄôyVašIlwX°UVwĢÑÜKôw@nV@œm°nmŽn„Ü‚ɞ£VbmŽXnƒ°ÜÒ@xx@V‚b²UlbkxVnšJUnVVĊ°KȚm°nxÇnn¤±¦@ŽUXVV@„lV„„bmVVȁŽVxšÒ™°šIšbźaȃšbVwš@šƒVL„™ƾÑ@ƒŦô¯ĊkôÑ"],["@@„@šƒ„@n„òVœa‚w²bVxšxÜaČVô_ĊJšIVmšL„a°@Ŏ¥XlK@ƒšk„l„KVbUb˜@nUĢn‚aÈ@lmǬ»Ġ¯œn‚mnƒƨVy™Ñǖ™Ġ»ɲInŽ‚@@ÅĢƳ@¯°™ôV„KÈbVIÇ¥¯@Ýó„™@ÑnīWKšƒk™‚k@¥š™¯™Åa™Xƒ±VÅw@±Ġ¯@»™š™n™Wmw@ƒ™@¯ƒVƒUUWçƒKĉ„a±VkkƒV¯w™x@šUJ‚x@bknÇb™mÅ@Uw±U¯¦UŽ™Kmš¯I¯Žť¼ğĊ™@ǃŹÈ¯@Ý»ÇnˡJƒbÛèÇnƒ„ÅK¯„ġĠʐW¼Ålm„@¤n²ƒŽÝb@b„š¯lƒ¯@ƒšÅ¤W„™¼nV@x„„°@Vx„@lbUblbX¼W‚œšÇ²lšUŽ@¼ŽV¦@bÇlVxUbVxÞbVšœbm¦ƒVV„"]],encodeOffsets:[[[100452,39719]],[[91980,35742]]]}},{type:"Feature",id:"6327",properties:{name:"玉树藏族自治州",cp:[93.5925,33.9368],childNum:6},geometry:{type:"Polygon",coordinates:["@@ɆÿĢV°°VÈklVôŤXÞW„ȮÇÞXnmÞnlaŤmĢLƐãôb„™ĊU„VlkǖKÜaœn°mĊUšVVkÈWV_ôKŎǚ@šz°ašbXyVI‚JĢwVX„a„KVbna°@VçVKXƒÜÞWšn@VVÆwXšĠƒÞ@Ŏ¯ƨġÆ@ȍ„LlmUaô»ÆkĊ±Xb„°`šÔV‚kȘƒĢ@Všk°šLlx@xż@Ċn„Çź»ô̲VÆÒ„@@bÆÒXklV„KšV¥Æ™ČUšk‚l„nxl™çƒ¥ċç@±m¥ƒwÅJƒ@™™™Vƒ„mÈIléÈa°U¥™™@kÞV‚K²ÑWƒ°w²Ñ‚K²ñšyƐ„ÝšVmw„»kkWĉ—JWUƒVÅwƒL™mÅ@@ƒmw„kn¥Vу»°™°@@»„¯„Lla„JônV‚UůƒU@W¯Umѯ¯k@WykU@¯„wV¥ƒkVwţƒk»šwWǜĉĶçšK„ƒÞ™ÇaĉbƒI™lUƒ@kwƒWƒXUƒ°w™±@UšKn£Wĉ—KWxƒkĕVƒšamwXw™@™„Wmnk@aƒVkƒ™bĉLƒl™Imm„wUÇ‚Wx™nÝJn@¥Æ™kwƒaXƒÜĉ™¯ÅV¯¤mkƒx¯kķܙ²VWôŹVUƒƒ@V£™¥@ƒ°wn@™m@¯@UbUôķŽmn@ÆÛ@ÇýVaUÇĊVƒ@Çlğ—¯xÝŤ™lVÈÈVƒx„ƒ¤Vx™„kK@™@ƒx@„kVƒĖġ¥kIWbXŽŎx@nƒxÅUW`ƒ_—@±ŽUa™LUxƒK¯„WbkVlb—bmŽƒLÛÆWIUwƒWkwÝV@kI›ŽéUb›UUk™V¯Km¯k@Umݐ¯m¯›m—L›Þĉ‚ÛUm™ġ£UxkKm°™Lw›šk@kšƒVm„ƒKVUk›@¯a¯Ģ™móKUU™x™ImlÅn™™ÇbXèVVU„°„@ŽšŽ@„‚xXnmš™ššŽ@¼ğ°@²ÆxU‚„²šWÆb°š™š@¦llš™„XLmĬ@҃šÞô°@ȦUJÇaƒLóU¯š@°ġƴ@Ɓ@mɱJğ¼ǕššÒUzƧ‚m„n›mğ°ǫ¼knÇ@bġmmV—@VaUaƒLƒk™l@„kLW‚ō¦¯@ƒb™KUn™JĉIó`ċUÛb™wUw±ax›bñUmƒƒ@™„ƒ@—bƒaƒbǏÅXm˜„ƒÝ„ÅôVbގ™bl„UšÞVޚ„U‚°„VUxƒ@U„V„@l`™¼nL@Ċ„LW„„¤kXķWġXUVVVķ„UbVb@°kVVxÈa‚@ȦĊbšaźJ„U@Ț„„˜Vœƒlš@XkôaWƒĢ™Þ@laĸUÆb²mÞLĠ™ÞÑôbšÒĊa„JVbm¦"],encodeOffsets:[[93285,37030]]}},{type:"Feature",id:"6326",properties:{name:"果洛藏族自治州",cp:[99.3823,34.0466],childNum:6},geometry:{type:"Polygon",coordinates:["@@ÞVŤ™ÈK@ĀlxV@„Þ@„wŎalmôLšnXÆÜ@nV‚°@œ„°WmVKŦLÆmȚԂҚUX¥l@ĢJVš@„ŽƾI@w™W°™™Ån¥›kÅÝVwôƒÈç„@lÑĊĕša„JnaÆLVw°kny°UnkÆVȍĊll¦„Vƾ@@™nUźƒÈǂIn°X„wÞKô¦VWV£„@£°ókċ±I™™am¯Va™»ČĉV¥°™@m„k„¥l@„Ċm@ašU™mwXƒ@wÆxšmĢ_„`VnÆbšKVw„@@ƒnUVğVmVVöIlŽl@@çÛmƒ£UDŽw°@VUƒ¯»m¯ƒJōĖÅLƒa@»ĉ̱`U_k`ÇçšóƒkX™lK@ƒakÝރš£WċkÝ™kxƒJݯÅw™xķxmIÅx„@k±J@ýŋš›¤UœkŽmV™°ÅÝxkwmġƒnÝVU„š¦ƒŤlmšóXk¤™UKƒç™@mVkK@klīƒ£mš¯VUbƒW¯¼ċb¯ĵam¼mVX„m@k¤ÇX‚ÇbƒUƒ„¯J¯„¯È@˜™bVXVҙ¤V¼kxݚV„@l‚V—„WxÛ¦Wš¯šmKnlŽkŽ‚šU‚@nƑUĉ„Ý@ǺۄċUĉ¥™UƒÞŏ™z±òL±Ò¯xX„±ÒLÝU@lššV¦¯‚ÇbkêÇJƒnU„šš@š„‚ÆI„xn¦‚‚@²Č脦‚è"],encodeOffsets:[[99709,36130]]}},{type:"Feature",id:"6325",properties:{name:"海南藏族自治州",cp:[100.3711,35.9418],childNum:5},geometry:{type:"Polygon",coordinates:["@@VxƒŽńƒš@ĊĠŽĊXÒ°UƾĕÞm°£nb@‚@LUUW„Ûº@nlÆǬšĠ£ÞV°UXb‚VȂǵ„éƒ@kWanm°@™x„z„K°¯ĠVšƒVƒkw™Lnm°kÞxÆa„¥@‚wnĉƏ@™œ_l›š_VwšmĸèŤÅČU@™˜Wn@ÑmKU™nğƒK@ƒ°¯UÿV£nmšLl™„UƒUÛé±óókkmƒnƒakV@ǰóÝXƒWəÞťIţxmm™VÛUVȂÓnWyȁĉkƒVš°WnkĊa„¥‚_œK°ÿWna@ƒmU¯wƒlÝIU¤UXó¥ÝLƒx¯WmJÇÈŹ„mV@šƽ@ƒUk¥ĉkċŽÅUml¯Vmz¯lUxÅKmbƒI™bĉĖk҃@Çèó„UxÆÞœlm¦šÆ¯ššX@x™Ž@Ž„²ÝlƒÈ™JV²klVl¯ÔlšĉƙްlUǖÞ@ššĶ¼nŽUôôŚ"],encodeOffsets:[[101712,37632]]}},{type:"Feature",id:"6322",properties:{name:"海北藏族自治州",cp:[100.3711,37.9138],childNum:4},geometry:{type:"Polygon",coordinates:["@@ōmġxƽUm±Lǿþġԙ@kxmWƒb¯I¯‚mIUx@bƒbŹVǎƒkĵbƒlĉI¯¥ƒUšm@ƒÆ¯È@šašóšUlƒČ»@w›œ»›wXaƒƒó°ţç݄kUƒaV¥ÅbÝw¯lmnšKlxU„™„ğU¯°ƒLƒyšw¯@mnXb‚l„@ƒêȁǶUWa¯VÝUğ¤ǫ™kÅ@mܹXƒVV@K@ma¯¤Ýnƽ˝V@„ƒ¼„ôlèk¼„¦˜xXŽlbnKšÆx@Ž™bUx@nnxWJţ¦ƒmƒ¼ñ@ް¦lUÞlÈ@ĠxÞUlxÒó„ƒl¯bmI™ŽÝVÛaÝnƒxVbkbÇwřÇKn±K™b„šƒb@V„xšLmŽÛŽŻbk„ƒVó@™šŹxó²›Wkb™@¯U¤ƒźĊ@lUX„°lÆôU„ƒlLX‚aœV°wšxUb°xÜôÈKVkÈmlwškÈKšwšK™™VUŤĉŎ»„»„Il¥na°LV»²¯Üy@w̃°ĸwlwĢw°±„_lVkš@°ƒbƒÆ¯zƒ‚„š„@l_„@̱lŚVlUaރ„LVƒnKlnȏ°IllČa˜wÞѰx„UU™@wƒVkmĠLô»„KÞýôaÞ¥ôĀÞmƁ„™‚mUƒŎV¥Èl°²°a²¥V„@@w„amm@Ñn@Æ£żƒVƒĠ£@W„¯Þƒšl@š»@Uk@"],encodeOffsets:[[105087,37992]]}},{type:"Feature",id:"6323",properties:{name:"黄南藏族自治州",cp:[101.5686,35.1178],childNum:4},geometry:{type:"Polygon",coordinates:["@@ôl²ôÜê„VƒVkš™KmnU¤V°@„„LmĠVšnLÈL@alb@al@n°Vš_XmWUÈamaVIn@n‚aV£œóVWƒ™U£°ašxÈ¥@™‚aĊwȹ@óša™ƒğbm@k„w@mƒaÆw@ƒ„In¯mmƒ@UkkWƒÑÅ@@kċÅçVkÝJÅkVykŹl¥@¯š™ĢU܃X¥òý—mmX™ÝÅlmU@£™Wly™XW»Åbƒl@aI›»k@klm@UxUUƒVƒ¼¯Xƒl™aUnķ‚ƒI@x™@¯„ƒK™„ĉUU`óšlȝô@¤ƒÞJ„k°xVŽ„n@ŽmbXޝ›L`ƒ¦ĉbml¯X™ŽUŽl„ȂĊXzm‚ȁÔU‚ÜVšUnnŤwŦJɚ݄XÞW¯ô@ÈlU„b„mln"],encodeOffsets:[[103984,36344]]}},{type:"Feature",id:"6321",properties:{name:"海东地区",cp:[102.3706,36.2988],childNum:6},geometry:{type:"Polygon",coordinates:["@@@҄bš¤ÆI°ôU¼š°UŽnnWx™š@b¯L@lUUWbXxWl„ƨnxVUllš„XVŽUŽnL@lȀý²KVnƾ‚ĢwV»ƒ@mÞ£nÆƒÞÑmL™ƒKUaVżĕƒWVk²ƒƒÆÝ@ƒXw°@„ô™@a°wóUUmIk™™aVmÞwmknyƒ¹VÿƧnŏm£X»˜™naV±„Ýw@ašb@aƒm¯„ĉVó¦kÝWKUU@WanU™b@ôǺĉxb@šÇ¦™w¯bV¤„šUX›ôU¤bmm@UJnbÇbXVWn™`¯Umk@@bka@bÇK"],encodeOffsets:[[104108,37030]]}},{type:"Feature",id:"6301",properties:{name:"西宁市",cp:[101.4038,36.8207],childNum:4},geometry:{type:"Polygon",coordinates:["@@@kmKVUƒWk™VkUmwƒƧXkWwXaVV@k°K@aš™XwmmV™¯V»¯óÅJ™£ƒamŽ—X@šċVţÆķç™nUx™`kœ›`@šÅmĊx@Žƒ¦U¦„blVރŤèô¯„„Wbœx›¼œŽ@xċ¼k„™V™ô™bÇ@Ű@„™n„V°¦ĊJ„kĶa„lȍźU„a@aVwnJ°°J„anXlwš@ĢÓ"],encodeOffsets:[[104356,38042]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/shang_hai_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"310230",properties:{name:"崇明县",cp:[121.5637,31.5383],childNum:1},geometry:{type:"Polygon",coordinates:["@@uŏu»GPIV±ÐɃŜ{\\qJmC[W\\t„¾ÕjÕp‡nα|ěÔe`²„ †nZzZ~V|B^IpUbU†{bs\\a\\OvQ’Kªs†Mň£RAhQĤ‹lA`GĂA@ĥWĝO“"],encodeOffsets:[[124908,32105]]}},{type:"Feature",id:"310119",properties:{name:"南汇区",cp:[121.8755,30.954],childNum:1},geometry:{type:"Polygon",coordinates:["@@`y”ĉNǕDwǏ»ƒÖLxCdJ`HB@LBTD@CPFXANC@@PGBKNECCBB@EBFHEDDDSNKAUNBDMNqf[HcDCCcF…@EFGLEBa@ACoCCDDD@LGHD@DJFBBJED@BGAEGGFKIGDBDLBAD@FHBEF@RFDMLE@SGANFFJBANPH@@E@FJjRIACDMDOEKLFD@DbDAJI@AP@BGHFBCBGDCC@DCA@CECGH@FKCEHFJGBFDIHACEDNJDCVFBDCRKRLDLITB@CjNJI^DBCfNVDHDFKHAFGDIICDWBIF@@CFAjFJNJBBHD@CJ@AEFJ@@DH@BFBCPDBMFEQGDIFCNDHIP@HDABFACBJFHEBSZC@DP@@JDBƤ~"],encodeOffsets:[[124854,31907]]}},{type:"Feature",id:"310120",properties:{name:"奉贤区",cp:[121.5747,30.8475],childNum:1},geometry:{type:"Polygon",coordinates:["@@~T~JjZdDbLXDLCB_J@@FHFZJJIAGH@HGR@BENBLID@@LFCDF\\FpDBDb@FAHKFE†@dEDDdC\\GreNMACVMLBTMCCFCEGFAA@DAFDLMHA@OD@BMEWDOC@AS@KGAI_DcKw„ÕísƝ‘åĆctKbMBQ@EGEBEJ@@MBKL@BJB@FIBGKE@ABG@@FMFCPL@AjCD@ZOFCJIDICIlKJHNGJALH@@FPDCTJDGDBNCn"],encodeOffsets:[[124274,31722]]}},{type:"Feature",id:"310115",properties:{name:"浦东新区",cp:[121.6928,31.2561],childNum:1},geometry:{type:"Polygon",coordinates:["@@EN@JJLNHjLJNR^GRYVBNZJRBV@PDvbLNDN@LGNER@nCNQNuT_TIVFV\\Z\\XnDrI|[Ʉś²ÏJUHOƣ}CA@IO@@CYDATGFIEDAEBBAGCO@GJMCEDCJRHEFANOCADAEG@@CI@FE@BDIC@AGIAIMiEEB@DE@AJCXJDCJEHGBELGCUCeMAD]CIJiM@DSAKJKCLQDQACUECDMIFCBDJGECHAEIWCK@GLMCCGEACNKCEJG@MMBMC@@CIJUINT@JAJSTEPZZCP"],encodeOffsets:[[124383,31915]]}},{type:"Feature",id:"310116",properties:{name:"金山区",cp:[121.2657,30.8112],childNum:1},geometry:{type:"Polygon",coordinates:["@@L@BIHFN@@EE@@EFBDGDAADVDD@@EF@CA@IIsRE@GDAF@BF@CV@|FBCHBLCNHAFCADBMDCFZXHILBVEEQA@MWFARJJ@DCX@@TEFBLHAAERE@AJABRPBNK\\BrJ\\VHGND@CNADKDADQjGAGNC@GJ@FCFFHC@JF@@dLBDSFADHVG\\DTEPDDHJALIJkJDJCDIPE@YDCBiK@DONE@EH@BAF@HLJA@EIA@ALKNA@@FIFAFHR@NALadsæąyQY@ƒA±DʼnXUVI^BF@FFF@HBJEDFFGFEBSRkVEXGHFBMFIVW@GAEEFOIAIPKABGWEKFSCQLQBSEIBC\\FdBLRR@JGACFDDEF@AWB@LJJYNABBA@CUEGPaO_AIE@MYMFIGAEFECHSAAKAO\\[JEDB@E@MMA@@AGBKMGDFFCDDFEDFJF@NPBAFLHFH@EDDHBADDC@DDCDHHCDDFDABDAD@FEFOBCJ[D@HEDDNJBDDHABJIBBvGLBJAH"], -encodeOffsets:[[123901,31695]]}},{type:"Feature",id:"310118",properties:{name:"青浦区",cp:[121.1751,31.1909],childNum:1},geometry:{type:"Polygon",coordinates:["@@RUNKdOFDJCbRFMLAHPLDN@JGL@@APBWYCKN@TU@SHGCEJIDIJKVIZVNM`iNY@CIE@CA@KBOEGEUFCCSADEIEFCDDDIDDHC@CKIeDCG@IG@DHWFEEGCH@@GO@@O]CNpeEQDBFME[JC]DGF@CKOA@QSB@GB@@GW@@ED@AQIJIAAFE@@DO@CFI@KNG@CDACAFEGKGBEGBDCCAIFCCLIECFI@MBCLDHGNAHSF@DMB@EEKBA@@C]DEICFG@ADBHGFKCDAKKHKD@@FHGAANGEEFCHKCECBCKG@ADKCNE\\[A[I@@mGBDQQEO@BCE@AI[AML@JGACLOAFKEMM@EQKC@CUCBCCBCHEA@FF@@FM@GEAJK@GNF@EXPH@FD@M^@HIADJCFDBER@DK@@DE@CAKFOCCBDHIBCNSB@GFC@GQEEOWFICGDUAEJIDBTAHJHEB@DIF@NE@H|HBDBEH@DKBAHEF@HEEUB@FGFGCCCE@AHOB@NH@PRLVNNFBX@RC€PbAvMtBfH@DJF@ELBFA@EH@HNED@FFB@HLC@CJ@@DJ@PIRf@HE@CFF@GPHD@DKE@FFBEFFD@DEFCA@DD@IjCRFBAHFDKD@HF@@PM@H@BlbDJDBFEF@DLXB@HCD@@IFCBIFEJD@FDC@FBALLF@PAACJERACAJCBD@EL@JD"],encodeOffsets:[[124061,32028]]}},{type:"Feature",id:"310117",properties:{name:"松江区",cp:[121.1984,31.0268],childNum:1},geometry:{type:"Polygon",coordinates:["@@@DLDFRN@FNELPBDKHB@INK\\BBJF@ADP@RFCRHA@nJ@B\\[\\MFLDBCH@DLDADFGLEDFFMHBBGH@EC@GLLLCBLDHEAGBCH@DEFJ^C@DB@LAFFA@CNE@GTMBGHKCAD@NEJFDKJDDJEDBCDHAAFLHFHBEBDDCH@LMJ@DEP@@CF@BEJBJIBRC@@FX@@HA@@HTA@RPBDLE@CHD^\\INFAERCfFMo^D@PP@@HG@HDFFXECGH@@JDHfCLJ@DGDCCCJCCEDJFCFTBDDVEHFPFLAB@NBFCFKFC@CHIACNOHWHCAAFIDD@CDAGEI@ACFMF@R@R_@GQED@EGFEQEDE_IAHKAEXCQUOQCUDEN@ZI\\DDmAMHCICDSOC@EG@BKHIGMIBCGOCSF[CUHCGEBCTKA@cE@@IGDEEEDI@@HMDBHiHCRCBCLMB@DMCGH[UqI[AMLOAAQIB@BQFBFGBAKFE@SW@CDI@QIEBNXB@FRUFKAGJYWDENCCADBBEMGKDGAAD{EU@@DAEE@CB@HQFJt@JDBE@@FC@"],encodeOffsets:[[123933,31687]]}},{type:"Feature",id:"310114",properties:{name:"嘉定区",cp:[121.2437,31.3625],childNum:1},geometry:{type:"Polygon",coordinates:["@@F@LI@IDKJADKIEJICADGACFECCJ@HKCAFOHAJI@aCBEE@ICAEB[GFGCKL@FGEIFADMLCAEJM@ELQECEIG@BE^QKKLQCA@EHBIGQ[GEHOMGGDHKH@JOECFCjCBEFDNCACMBCILGTABDLEEOEIG@GFIMM@CGKFBFCDE@@GEAGEEACIcGaHMFITIHDN[AKF@FS@OA@BK@IHM@KCGOKBENaQIDECcPMLQVFHFB@BFBKLGD@FAJOVGIACQ@A`LPCB@JEF@RU@ANS@@RCL\\HIFpRBFRBBDKLLDADJDGBFDABHBEDNF@DGBBBADKDAHC@\\JJFBDEH[DEFDH\\LX@XLBLbT@DNJLDCEL@VJABJNDHB@HBHYFBAA@GNFB@@AFB@AFABFLFBHFCL@HJBAFBLC@DN@HN"],encodeOffsets:[[124213,32254]]}},{type:"Feature",id:"310113",properties:{name:"宝山区",cp:[121.4346,31.4051],childNum:1},geometry:{type:"Polygon",coordinates:["@@ˆmÖoÖiƒ½[s[YEUJU`SCIEBCCWJY_LIICDWU@@FaBCJIB[ICH[@@CDKEE@MK@@IMCAEBCH@AMFI@SMGEFGB@FK@BHCAIFJNQD@FEBDFMBKGACG@ECWH@@CDDTOEEBGEK@GC@EE@GPHFR\\JHGA@FDBKRLL]RAFH@FJFDKR@FINBFKDCNEBFJEHK@DLEH\\HFADB@JFFDA@bIJGBEPDBGLI@DDEFBDCHDBIJJFCLIBCL@JKJE@ADHDBHJ@HIBBDFHBBAEIJ@BJFAVL¢ˆ"],encodeOffsets:[[124300,32302]]}},{type:"Feature",id:"310112",properties:{name:"闵行区",cp:[121.4992,31.0838],childNum:1},geometry:{type:"Polygon",coordinates:["@@T@@ELE\\BCMJGJSNEbGdHDJFBJAFIEIFCEWG@@gMENSFCVJFAxR~B@IH@AIiI@GE@FGEAFQPDRiV[\\DFSGMHAXHDOMCJCDETBBNVJJI@DD@ANNNH@FILDDMFBDHNDHKL@XDFGLD@EHGFD@DDB@CDDHCDAEAHG@ABOJ@BIaC@CECLKPFNCDCJBiQEIF@@@OGBMIAEEBMTHF@NKEC@QFEGA@EBCKAACHCLJHEFHHB@AFCAIEACIC@HG@KCCDC[ECEED@KC@KJMAAFQ@GHG@BHIJYIGE@EI@A`KDWCaKcCiY}I}S[CYJM@CFDVPRRVWDFžLBBG`JCFRFEFFHC@RF@HQ`Q@E@ENBDJ@HFCB@DCCEJBBGDGXMPBDGJ@DEDELEDMA@DJF@DMZ_jMNYUUJILCJIJDFGH@TSVM@DLXZ"],encodeOffsets:[[124165,32010]]}},{type:"Feature",id:"310110",properties:{name:"杨浦区",cp:[121.528,31.2966],childNum:1},geometry:{type:"Polygon",coordinates:["@@V@CXJDKJZ`XIDDFADJvSRMDM@mFQHM@KCMKMuaOCU@BDAJSX@HKJGD@PNJCJWAGT@R"],encodeOffsets:[[124402,32064]]}},{type:"Feature",id:"310107",properties:{name:"普陀区",cp:[121.3879,31.2602],childNum:1},geometry:{type:"Polygon",coordinates:["@@F@@FHDL@HFFAPFCSDC@@XGFDH@BDLHNACEFA@ERCIMJEDBAGL@@EHAFENHHJ\\ONQBQCIBC[MKACKI@GGGH@I_G@CW@[DMHCDIBMTDHN@JNHEH@FJFPKFACSBKHDJNABDMDECAFiDEDFDIPG@GLHCNH"],encodeOffsets:[[124248,32045]]}},{type:"Feature",id:"310104",properties:{name:"徐汇区",cp:[121.4333,31.1607],childNum:1},geometry:{type:"Polygon",coordinates:["@@RADL\\NCPHFfLJaJ@FWLGMGIK@IFMDOYYFOTSBI@IMSAMSACFIDNDCPWGGBHNET[CU\\QjOCERFBEHF@@HjJBJG@@J"],encodeOffsets:[[124327,31941]]}},{type:"Feature",id:"310105",properties:{name:"长宁区",cp:[121.3852,31.2115],childNum:1},geometry:{type:"Polygon",coordinates:["@@HFFB@HF@DCAELENSJADCNG\\CX@@D`H@JHGHHJ@BINBFUGEDO[MCKQB}AwQEBUIEDMTNF@hH@FXEDFJEJIB"],encodeOffsets:[[124250,31987]]}},{type:"Feature",id:"310108",properties:{name:"闸北区",cp:[121.4511,31.2794],childNum:1},geometry:{type:"Polygon",coordinates:["@@CSG@BQGODUPWTOBQAAFMECKBGEMFKEOHADDJARMR[PGI@TEJBNG@ADBFND@JL@@NFFCL@D\\@DG\\JJADI"],encodeOffsets:[[124385,32068]]}},{type:"Feature",id:"310109",properties:{name:"虹口区",cp:[121.4882,31.2788],childNum:1},geometry:{type:"Polygon",coordinates:["@@bA@E@QHSXBDIMI@OHCLI@GTWBIACQAYIOFGCENBBARSPOXCVHPARH@DT"],encodeOffsets:[[124385,32068]]}},{type:"Feature",id:"310101",properties:{name:"黄浦区",cp:[121.4868,31.219],childNum:1},geometry:{type:"Polygon",coordinates:["@@NEHFLAFDHDPEAMZUHQQ]IMKJG@EPERABHBGRUCCNGV"],encodeOffsets:[[124379,31992]]}},{type:"Feature",id:"310103",properties:{name:"卢湾区",cp:[121.4758,31.2074],childNum:1},geometry:{type:"Polygon",coordinates:["@@VDHQGABAFQFOH@LIiKKHEXI@IbAFZB"],encodeOffsets:[[124385,31974]]}},{type:"Feature",id:"310106",properties:{name:"静安区",cp:[121.4484,31.2286],childNum:1},geometry:{type:"Polygon",coordinates:["@@DLLB\\NPGLFHUDMYABEeKEVMAAJ"],encodeOffsets:[[124343,31979]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/shan_dong_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3706",properties:{name:"烟台市",cp:[120.7397,37.5128],childNum:9},geometry:{type:"Polygon",coordinates:["@@ŤLšLllVń²è°xżĢĠÆl҄šŤbœ„V¤ĊXnŽlĢVĊ„Òš„ȰĊŰÞè˜L„±@џn»VUźċ²»ÆkôVɆkĊѲkŤVVwUUVmUaƒ@KkU@ƒmUmmk@UwUkmW@UVIXa@ƒmw@a™KULƒaƒx@Uk@UbWU@yULmK¯@kXƒVUwm@@JUUknWKUVƒLUbU@™wWykIƒa@w@mUI@ašUVynIWa„k„@@W„bl@@knmƒK@wnIl™°Kna@V¥ğ@ġUķ»™¥@UōJƒX¯¤k@™wmI¯‚k@mwƒak@@šlX@bUJ@VƒbknWxkLkxlŽšLVlkLmŽšb@bU@ƒbU@VbU`Vb@n„L@Žmb—U@˜VnUVmnU@mm™@kIUWVIUK›VkkUJUnmL@VmLUaVWaXamU@™™U@KUUmVƒU—JƒU™VÇwğn™mƒ@mXĉV@l¯xnô"],encodeOffsets:[[122446,38042]]}},{type:"Feature",id:"3713",properties:{name:"临沂市",cp:[118.3118,35.2936],childNum:10},geometry:{type:"Polygon",coordinates:["@@˜bXlƒl@zlV@lXXmŽkbVVlš„U@Vn@@Vmb@XšKšVX„WJ@XXl@„‚ŽÈbVLšUl`„@XXV@VVUxVbUxVbš¦„@‚WnXVJ@bnVUzl@„°Æx„U„KlU@mUUnUlUVWVUnVV@XX°V@Všll@Vk„aXVl@Ux@bmbXLlKlb@b@bUJn@@„„b@n°x°K@an@@UlLVKVbXb@bVVnK°LVa@UVa@™Xw‚KVxnLšU°@naV@UWUkWƒULmV—wÝKUUla@aó_@mƒK@aUU@ƒWUkwVm@aVI°W„@@IUw@a±¯@¥kUVUm@a‚wkw™@ƒK@kVKk@maXalI@alL„WXblaVLVU„V@LnKš@„l@w˜aXašLlnUl„LšmV@n°J@_VmnIVym£UKmI@WnIVm@anUVmÇ_kġIÅWUXÇm@U@ݯÅ@ƒ™@naWƒ™IVW@IkK@klKn@naWIƒmk@ƒaƒbkKkLWn™WkLWmk_ƒ@UaVƒUKmLUw@mn£WwUmU™ƒaóV@UkUm@UKULUwmJUX@WW@XҙzVblJXŽWXk@UVWK—X‚¤UL@xU@ƒ@ƒVUaU@@XmVkLmWkXUyÝLmKXnVŽ@n@l™x@bWLnVVn™`knULmxUl„„WLXŽVb@VƒK@z¯x¯¼Wx™KUn@bk@ƒlƒVVVz"],encodeOffsets:[[120241,36119]]}},{type:"Feature",id:"3707",properties:{name:"潍坊市",cp:[119.0918,36.524],childNum:9},geometry:{type:"Polygon",coordinates:["@@l@@UšK@Ž@L@bX@@VlL@JƒLUVnX@`ÜXn`V²mJ@bU@@n„b@l°xnnĸVƚ°@„ƒĊ£Þ@lWnÑnkʶJmó°w@kk»V@»ƒ¥k@V@kw@wVm„a˜Å„mšaô£ŎƒXI@mln„Kla@mV_UKƒ@kUkw@alW™IU»™mƒ—@WUIl±UUÅU›bkJƒ@a@wUKUaVIÆmXIWaka@m@Ul£XKVw@ƒUIƒJUkmJ™ƒVkU@a„ƒWK—ImVƒ@UxmL@bX`WXU@U`ÇkUak@@°UblXk‚mLUKmL@VULóƒƒVk@@Vlbn@Ub@ċaUJUbƒIUlVLUVVbVKX„VlVXU@mb¯@™VmKUwLWx@šUb@VUb¯KmLUU@aWaUaULkK@Vm@@b¯L¯w@mƒa@ƒm@UUU@U¦lJUXƒVƒmkb@nm„XVWŽkb™IVxUV@VUbWLXVƒLW`Ux@nk@Vn@x@VkJ@œV`mXkŽ@V„xV@lVššI@VULš˜VU„IV`°bVXXx„V@VWVnL@xV„Ub"],encodeOffsets:[[121332,37840]]}},{type:"Feature",id:"3702",properties:{name:"青岛市",cp:[120.4651,36.3373],childNum:6},geometry:{type:"Polygon",coordinates:["@@„@nU˜JXLƒ„@blVU‚š„nIVl„IVJ@„UxWLk¤@V@nlbXbWJÅnUJVbVL@x@b„ŽlIœaÆVVVk²VJ@X„˜šnV¼šJkX@blxlV„@VLU`@nkbƒLkm@nWJō„ó¤™bƒn—ƃbUn@xlxU@l@„¦@¼UŽl¼ĊUnW„@šnĠmÈxšU„V˜I„VnUVV@LšV@šnVWbXb‚UVbnK@UnKVmVIllœUVLUJVXlJš@nnV@nmVUUm@—˜Vna@ƒK@mUaV_UaV@„aV@@a™anlKUk™KklwlKXwlm„a@UVI@akW@™l@„bnxl@°nJšxl@°£„WŎIUÑn»lašmô¹Ŏ¥VaUUkƒmkġWɱIUUŹ`›@kk@ĉƨřV¥_Ç@™Ĭƒ¤ÝL¯m¯£ƽóķwUW±ī¯kōaĉĕ™kğmó°ƒbW@UKkLUaƒVmz@V@ŽUxVn"],encodeOffsets:[[122389,36580]]}},{type:"Feature",id:"3717",properties:{name:"菏泽市",cp:[115.6201,35.2057],childNum:9},geometry:{type:"Polygon",coordinates:["@@@¥šIVUÈmÞ»@UlU@Un@VW@UVmkk@aVUUKVÝ@UVknK@UV@VVnIVƒ@wnƒmwmKXaWaXI@UV@Vy²blkVKkam™U@kb@Um@VmUkmƒKmkXKWwkU@Ulƒ@UnK@UVUUm‚KXwšUVL„w‚K„U„@@Wl@@wUkV¥—@@I@W@_V@VWUw@UUa@aƒaWa—@@_mKUw™l¯amzmV—@WK™nU@kƒWLķaUKbÝVmV@UWÇbÛ@ƒX™°UbW@XŽm„Vlk²UJUbmLÇxÅWUzl‚¯Ll„@VkK™XUbWJ@bU@¯@™ƒkbƒLmKka™„@l™_WšXºVbUz@J‚n²V@¤lX„Ž„nV°šLn`WbXLôVlKVUšxXn˜lXLlU@bVV@„XJWLUVnVV@„„@n‚l„°nn‚V„KÈbVXÆJU°VnXV„kV@@xVL„@šWlb"],encodeOffsets:[[118654,36726]]}},{type:"Feature",id:"3708",properties:{name:"济宁市",cp:[116.8286,35.3375],childNum:11},geometry:{type:"Polygon",coordinates:["@@nam_nKlVLXa„Il`š_@KVVXI@m@w‚ƒ„@@k@Kšnô@n`VbV@@L„L@KVVn@VX@‚VL„Jl„š@VUUƒU@Uam@Uk„wšKWaXamkJmIUVUÈblašUnV@kVKl@@lXL°kVJ@VÈnVJUX@V‚LXl@xVLnU‚@VK„V@a„IUaV@„bĊU„x„K‚kVJXUlV„ƒ„UVašI@WUI@KlUnw„mWk@WXIWƒ™U™L@Wna@Um@@UƒVk™UUlanWW@kkU@y„kWk—aWVUlÝbUU@kƒJUIU@@ƒ™JmaókƒLKǃUUkKWLk@WbkUUaƒbmKn¯°¥V@XwV@VanaVaU_@Wlk@WÈ@VUÈVVۂm„aklKȯlLVUX@lK@aX@@kV@VmV@VwnJV_UWUwƒX™am@kW@wVUkKVIUUVmU@UV@IVK@aUL@aƒV@Lm„UKmx@ށômLkUWJ@šnXmlUxUL@Vkn›VUšU„@V™L™`Ub±LkV@kUKÇbÛ@ƒU™Wó_mJƒ@Wk@@Xƒ@ƒVLƒxUK™VWxLVnUV@VmL@Vk„@VlVXxWLnl‚Ln„VlUnn@@VlaV@nšlbULkl±aUzU@@VWJXbWbnLnxm„@xU„mJUUU@@VmLUl@VUÞVLUV@bllUn@VUXm@@VkV@VݼÇnUV™J@¦nnƒlnVlL@„Þb°KVV"],encodeOffsets:[[118834,36844]]}},{type:"Feature",id:"3714",properties:{name:"德州市",cp:[116.6858,37.2107],childNum:11},geometry:{type:"Polygon",coordinates:["@@„¤@VmbVXnVVbVJššX@Žll@z„lVInl@„@bVxUbĠ‚l@Èbla„IšxXVWb@L™@n‚ULWVXXšWWLnL@`@LUVVL@lVn„JšU@UUk‚a„™nš‚Vôô„b°¼V‚ސXš˜‚œIÜbČa˜bôW„XÞWÈzÆmnLVJ°ÈnlV²lbnW@™@UƒUV™šmnwmkkKWƒkla@mVIUKUa™aUwmn™JU@@amIk@@bVlkX@mmUklUUƒƒa@_UaUUƒV@wƒw™WkXmW@I@WUaÝU@UXaWUU@UUVW@UUUWUn¥nUVa@m@k@alU@wk™LWa@UUm@@wnmU™wla@anKn_@alK@ݙ_ƒ@@WUUUmlkaƒIƒyU@UwU_Wa¯yU_mWUwkImm@InWWUk@@UVWV—kW¯U@VƒL@b¯b@l±¦@šVV@lUbV„@škxVnUšl¼XV@b@lV@nIWxnbƒ‚™@UU™LƒxÅxm¯ƒaUƒ™wU@mUÅVÝKULm@bmKUXó@"],encodeOffsets:[[118542,37801]]}},{type:"Feature",id:"3716",properties:{name:"滨州市",cp:[117.8174,37.4963],childNum:7},geometry:{type:"Polygon",coordinates:["@@Vb@`„bV„kVlnV@nlWUk@al@nJ@bV@šInmVxšbVbVLUJ@nkb‚lX„lLnlmx™nUš„V@V@šmXn˜lbĸ@nnVx‚b@lnXV@UJ@nVxšxnxVbÆVn¯ƒĕ‚@@wÈçUÇlķVIœb‚@„Çmk@¥k@UkUK@aWakUóJW_UW@wkkWK@U@Kš@XUƒƒUkmUUalKXala@U@kkWlkÈl@kšV„mVIVmU_‚a„ƒƒwnwVW@wƒwUƒ@wU£ƒwkJWIyUI±bk‚VUJ@nmV™Ukl„Xmx@lnbW„kVƒUkLWŽƒxkKUUmUkb™J±—LÇxUKmkUmkkW™™a„mUaVkšJÆ_²KĠ@U„W@w„U‚¥nUWwK@aÝUkÅVaVK@akLWƒƒƒ¯I@bnbVx¯JW„ñšWbUL@šƒŽnV@VmbkUUV@IÇak@@bWak@WJUœJWL@bXV@„‚@„V„Jlb@zUlUŽUImšnbV‚mz@°UV@V™bV@@V@L@xLmKUnmJVX„J@VkLW@UVUL@b"],encodeOffsets:[[120083,38442]]}},{type:"Feature",id:"3715",properties:{name:"聊城市",cp:[115.9167,36.4032],childNum:8},geometry:{type:"Polygon",coordinates:["@@ô@VWnL‚an@VKÞLÆUnVV@šxV„„bn°Æw„wšKVVš@„maXwmJU@@k@aWUk»V™Umlw@™UƒVa@kUU@™²¥@k°a@a„K@U›ƒU@mmm@ów—ѱ¥¯@@w™Kmw—I›¥kU¯UmakJmIUaƒVkKUkm@VUUa™Uƒ@UaƒKUK¯@™w™UVŽUIUKVw™k™¥™wƒbVŽ@xn„@lWnXxlL@`„XlJX¦l°XxW¦@¦Ul™n@Ž™@@Um@@VXVmx@¯bllUnUJ@VULVn@b„xV‚VL@b„„VlnVVblV„ÈnVlIVJœLô„lJ@xl²„"],encodeOffsets:[[118542,37801]]}},{type:"Feature",id:"3705",properties:{name:"东营市",cp:[118.7073,37.5513],childNum:5},geometry:{type:"Polygon",coordinates:["@@ͬUǪlô@°Uœw°ōĠ¯š»Ģ炻XÇ@w™wƑa™ÇƒkwVƑ¯@řķUmm¯w@kƒa@mV@@anIU±m_ÛW@_mWVU„K@IkK@UW@@a@K@™L@Vk@±U@UV@lm@mUU@kLm„„xV¤@xV„„x@xUXmx„xƒ„bV`UnUJƒn™U@lÇkkllX@l@VkbWbkLVbnVVl„„WV™@@L@VXLll@xVXX`ôIlVXb@bVLVll@@¦nlƒÈ@›aUJkĸVÈÇè@x"],encodeOffsets:[[121005,39066]]}},{type:"Feature",id:"3701",properties:{name:"济南市",cp:[117.1582,36.8701],childNum:5},geometry:{type:"Polygon",coordinates:["@@²¦˜Òôxn@nn‚@V‚œ„°VlXU˜UX@Vl@XVmX@JnnlJVxnXV`°zXbV`VxV@„z„JlbkŽVnVV@X„@š`@ÞkL@bm`mL@bkbšxnVm@xn@VV‚@XbšKl@xkV@b@l@nUbmVm¦XVVV@VUXVVV@XVWb@VÞVVb@X@JnXlWšX„x@x„UVV@aVKVUX@lK@UƒIUWnIVmnL‚K@w@K@UU@ša@UVU@¯nyUman™VJVVk@ykaƒIƒU@@ƒWU@aXK‚IV›XIl@Xb@al@Èb@JVUlVna@UmU„@™VKXaò™Xƒ°IUwma@aU@UU@wVW@фw@a™I±`kbƒUkw™UmJ@UkmÇUUkmKknUVƒ@mJUkaWkƒa@KmKkUƒLmyXa¯_@WmImmbƒLmUkVUbUVƒJ™bƒUkkWJkUƒl™IUm™k™Lƒ›„lK@knaVmkI@mWaƒLUK™UU@@VmLUVLWK@UUUƒWUkkVmx@„Vl™¦"],encodeOffsets:[[119014,37041]]}},{type:"Feature",id:"3709",properties:{name:"泰安市",cp:[117.0264,36.0516],childNum:5},geometry:{type:"Polygon",coordinates:["@@n¼šŽW„nxšL@x°@š¥Uk@ƒnwlUVl„XVV@VXL‚KVUnK@UV@šVVL„KXb@nlJUnmb@lkLƒ‚„œšKšlVnšJ„klVXIll„Vša„IVUValUnV„K‚annnJ@X°`Wbnz„KlVnL‚Ž@L„bXl‚bVlnI„@VUU@UmVƒ@U@Uš¥@VmV@@_Ua@m°@@ƒ„kmUUm@UVmn@nX‚@@a„anJVUVL„mlIVJn@nkVLVa@KVmVLXVVLš@@U°bn@VaV@@K@aVkœbWaXUVymU@aUImWXƒ@™¥UaVwUaVwUUU@WWƒ@k_™VUKÇa@ƒƒnmxkV@LVJ@X™JUbƒVƒ„kUWVUIlƒLƒwĉVƒaU@VbƒJ@bƒUUL@mVUK@wWkK@UVWUIÇm@UUI¯lWK@kk@UL@lmU™VkbÇaUVVnJlIn‚WbXb™LƒxVln@VbV@V„UV™@kƒƒIUK@UWm@UU@LƒK@KU@Uam_ó@™m@L@lƒ@„@x@nWJUU@L™`k_ƒJWbUKkmLn`mb"],encodeOffsets:[[118834,36844]]}},{type:"Feature",id:"3710",properties:{name:"威海市",cp:[121.9482,37.1393],childNum:4},geometry:{type:"Polygon",coordinates:["@@VbUnVVUxĊ¼š¼ô@Þф¯‚WǬLŎUÆW„¹Uǃō¯ÑƒÝkţ™™ţóġ™óL™ł̥U™wm¥kÝmkkKóbÝ@U¦@‚mb¯LkšmJ@x„Lmn@lk@ƒa@Xƒ@ƒlXbmJUz™V@bVJ@n@x„blJXzšxV@Va„KVUXLlmVV@In@Vx„UlW°@nLVK@zXVVal@@V„w„bVKšL@bnx@„WbUJ@VnXVlVxl@nnnV@„lV@L„‚"],encodeOffsets:[[124842,38312]]}},{type:"Feature",id:"3711",properties:{name:"日照市",cp:[119.2786,35.5023],childNum:3},geometry:{type:"Polygon",coordinates:["@@UaVUUKVk„JVaVIČb@Vam@ka@Ul@„Uô„VK@UnKVLnKlkWVa@¯l@VbÈlV_V@XWW_@anKVwUmVw@@Uny„UVblKVLX@„aô¯ó¥mÛĊÿÈ¥š™Þ¹lUīƒ¯Kĉ¼ʟbÇV™U™ŽUŽ™XmakJUnmV@bUnmJ@XnJVLn¤UzmJUn@`¯ImŽU@™nƒKVkkm™KWb—b@xƒk™@mL@KƒUUVUKkbWaƒXkK@bkJWbnbl@UL@l„Lš@lxx@b‚nUVlV@¦²°@bVx@Jƒ@¯XUJ@bUnlxVŽ„X@‚VV@b„L@nô`@bkbVVÞL˜xnU"],encodeOffsets:[[121883,36895]]}},{type:"Feature",id:"3703",properties:{name:"淄博市",cp:[118.0371,36.6064],childNum:4},geometry:{type:"Polygon",coordinates:["@@nƒlKV@nVn@@kVU‚@²VVaUƒ@wmKXU@UƒUWwUW¯aU_ƒJUV™—VK@U™JU™@kUƒw@UlnWU_@›lI@U@wUml@@mVwX_„KWUXKVa@UVUUwšJlaXWUnƒ@mla„n„UVWkIV¥V@VVVI@a@akakLWKna@aVwk@WUƒbUlk@™k@U¯UWWU@mUUVUXkVmVVV@nkVƒLƒVÅwƒ¯k@WVXb›aUl@bV@@b@xkVVXVxkJ@nk@@ŽVLUlVb‚VXUVVUzV‚™LVbUbV„VWVkLmškJ@n±@UxU„VVkV@bƒx@ÒUX@xVVV@°J„„X„lK@bULUblÆÞV@b‚LXxmV¦ƒV@xƒXVŽğ@±LÅ`™IUlVbƒnšbXšllVnnlVLÈw˜K²ŽšIlanVVVlL„wXlK„VlUXƒma@knwƒWlkšVnU@mVIUl²aVJ‚zXJlI"],encodeOffsets:[[121129,37891]]}},{type:"Feature",id:"3704",properties:{name:"枣庄市",cp:[117.323,34.8926],childNum:2},geometry:{type:"Polygon",coordinates:["@@‚yUU„U„kl@@aVmšLXw°»°w@y„L@UUaWXKƒƒVknwVKlmš_UmmUXK@ašw@k@mUWmUL@ƒ@™@£@KƒbÝV@akw™aULmƒƒbUK™LUU@lm@—°mL@nUJVxVXU`mIUxU@UnU@@lW@@bkLW@UVkKǰkLlŽƒbnUÜÇUUVÇ@@Xkl@XV`UbmbUbU@WxU@¯¦m°nL„aVblVXal@XKlLVVȄ‚L„KôlnbšI@„V@VJ„I@lVVÞaVkXU"],encodeOffsets:[[120241,36119]]}},{type:"Feature",id:"3712",properties:{name:"莱芜市",cp:[117.6526,36.2714],childNum:1},geometry:{type:"Polygon",coordinates:["@@lmnLVlÈVln@VnIšVlx„Vla²_šJlUUUVƒVw²@@mlIn™lKXU‚UUƒVaUašKUVyUUWVUUaVkUK@l@@mlIUwUWlU@w@aU@@LU@Ubm@¯a@V™@UKWUUKUn@LUbUKmlm@UIkJƒnUKUVmIƒb@b@mWm@Un@VVnnVƒl@„¯@@nVb@`U@Un@Ž™¦@V@VU„VnV@"],encodeOffsets:[[120173,37334]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/shan_xi_1_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6108",properties:{name:"榆林市",cp:[109.8743,38.205],childNum:12},geometry:{type:"Polygon",coordinates:["@@™ýVƒnIW»ƒW@»kUÇL—݃U¯¥ÇIUWWїUWwX¯mƒ@»n@ÜÈķô™@a±kȱƒw„ÑmwçċmU»ÆkkVyIm™ĉÿ@ƒÝ¹ƒWnwÇVš™Åaƒzmmĉ¦ó™kVmx™xU¼VškVm_UlVlk„°IV‚kmJa›¦k™™LmmV@XmKnšlUô›VXbƒbƒ@UaÇLğܙ™Åwƒ£mKnmċwÅ@UkƒbmaVƒƒƒn@m¯aU™Jm_k˜@kWXyl@@kÅamw™LU™Þ™ƒ™mWÅzUKƒš™Uk±@™b@nnK‚bX¤mzVšŽVxÇn„‚¯„@ÒknWƒƒVUbkķÈÑWkk@Va™™U@„mUkbƒÝÅ@Ý¥ÇbkĬ™XV`kLǍVmalUUa™nV±nwmkƒJ@Inƒ°KVw¯UnÅ@¥™ƒ™U±bUU˜±œmWbÛKWnUm`UƒVK@bmnœm‚Èż@V„L@xƒxmš„Ť°nŽ@VmK™²VlšlKk„ô@„êÜV@VXLlmš¦UššV°Ș¯²ÿ@¥š@ƁĊ˜²IšmĶnnb°b„KVƒĸLl„Þ@UȮš™Ü°IVƒÞÝސlŽœx@ŽķĀWŽ„Ux„èƐ@š°ŽXnšlĊ˰m„nƒšV„²V°ÒƦ„aބ„˜@zll@bÞšlš¼nKĊ¼óȂb²±šIǪÒ¯ĖV@„lxnVlk„JlaXwŌĉ„„@VnŽššlÆĕ„UÆLœèŌŤôxȚlUœ@šxlaUċĕXm„IWmnkšVVƒ„VW_@aÈWUUmk@ƒ¯çVm»™±W¯n¥V™mkXw±ÇVwƒ"],encodeOffsets:[[113592,39645]]}},{type:"Feature",id:"6106",properties:{name:"延安市",cp:[109.1052,36.4252],childNum:13},geometry:{type:"Polygon",coordinates:["@@@kkÇmIšmUwVkUƒƒU²WmšVkm@m`mIĢĕUƒVa@™mXƒƒÿVVkyUýšĕ@l_UmnƒW„KVkţ™™¥™aƒwğ@™@aôƒ„ƒWa„kUmƒa¯¯™a±£kx™mmxUwÝ@xmU™b¯K™wó„Ý@kmm¹Ub@lklVbmnnVUV@x›UknƧJUX@ŽƒLÇWkw™LķƧÅwWJk„ƒLkþĉxWz™JUnǚkš@Ɛk¼ÜÔÈKšè@°lșÆk¦l„n@l¼@l¯L™°UU™Vǰƒ¹—`m¼mXk‚™bUaƒV@U¯x@¦™Ç™„UUmlmUVm„nnmlkw™@@šƒ¦Å‚ÇLmx¯Iklš„@¦mưVUx¯Lm„@J„InlmxU²šmVbkV‚bUnȎlKU_šWlīÈaÞ¦Æ@„ÞlanV@ƒšVšUbl@XlÇÒĸlŽVa„UX„lm@ѰƒƒÈmUw‚U™nyW£amL@mša²@lšV„™VLÆynX„šÝšVššKnxÆb@lk@WzXŽ@ll—n`šIV‚°b@n„m„„‚Unb„aVlÆ@ČxmnnL„¤ÆxššĠÛÈKVb„@„aWaœU‚ókVm™nL@W‚UnnšKlšœ¥‚bnIlU¯JlƒUkVkn`lUU™V»šwnwlUôšĊ¥nn„yÆb"],encodeOffsets:[[113074,37862]]}},{type:"Feature",id:"6107",properties:{name:"汉中市",cp:[106.886,33.0139],childNum:11},geometry:{type:"Polygon",coordinates:["@@lKnb@n„lWb°bkxĸwVb@ł„nlŽ„ƒĊ¥šL@XŽl™ÈƒVblÈK‚b„akVwôml²`‚nœ@‚nVKœl˜k²xŎƒ°¦VU„JĊw@çnWçރVkUóÛ@¥kwš™šUmƒX¯WšÑkƒ@UymIUwlUn¥‚mUk²a°¯V»@™ÝVș„ÝċÅÅVl»@l@a°±@_kammÅb™a@ƒƒm@ż™KknõĠ—@mšƒ„¯LÅw›‚—LVxmb@¼kV™@mw¯wVakKW»X±¼¯Vkxƒb„¼WŽ@nx@x±bóakbƒ@ÝmU™@ķÓÛL™kƒVUm™k¯¤ÝLUlÝ@Ýz™š„x@x™°™™™bƒmƒX¯aUJW¯—k@bÇWƒwÛwWxƒ@XWlb@Žƒ„VŽÈUlwšLnl°VlUô¦œU°¤VšUxVXUxlbkVVlƒI„°„ÅVlU°m@k„ÇU¯xUlƒLUlVL@b™°ĠInĠ°ÈnK‚„@xÞa²n‚aUyšXUKVkšWô¼Èa‚z°JXUVÇV_„JVƒšz@Žnb"],encodeOffsets:[[109137,34392]]}},{type:"Feature",id:"6109",properties:{name:"安康市",cp:[109.1162,32.7722],childNum:10},geometry:{type:"Polygon",coordinates:["@@„bĊaƨèšwôô„¼šb°ašXVƒÞVUÞ@‚aXƒm¥kImx¯¯ƒV@anU@UÇéğL@ƒ¯¥V£mƒ@ÝÈb„K‚™„X°wČÿ˜ƒ„b@xÈblxȯĊ„„mÆUVƒ„nÈ@ƨÜLĢ¥ƒŹnƒ°Vnn˜K„aô_ȃšwU‚aXmnW‚¯kl›LXƒÇ™ō¦ÝaÅVmbğUn¥±wÅéVƒan¥ƒ„U„»°am¥„£ƒÝ@ƒ„wVw™¥nU„уUmmVwmķIÅaóVWxkblb@ból@œğÒĉ¤ċXƒ˜¯X™xk„Ç@óÆÅx@š™xķ_kmݎǣkblb@`¯²@bk‚‚@k¼ÆUČÆƒÞǚÞU@šU¼¯°±bVlnm¦kVVxnJVz@‚l„™ÒXW°n„™V™šlx@¦ôÜVUl݄Xèm@è"],encodeOffsets:[[110644,34521]]}},{type:"Feature",id:"6110",properties:{name:"商洛市",cp:[109.8083,33.761],childNum:7},geometry:{type:"Polygon",coordinates:["@@²nl‚ôbš„°aVwnKÞIš`°wšXôw°VĊ°@ŽÅš„ÞÆV„zÞK@xšŽ@a‚LŚ@b@ŽnLlƒ@šln„mnLVw„a„bVƒ‚VnbU¼„Vƒ°„bl„šbÈ@ĶŦb˜@nÇ@amIyUI@ĠVmôƒU™ƒVwkwlanJ„¯lwó¥@an°Jš_„‚@š™nóƒó@£l¥UwmašÑ@ƒUm±V_ƒJ—£›J—UW¥¯@ƒ_k¯¼mUƒVUè¯b@wmL™»ğVmağI¯¤ċIUW™XƒKĵ¦ķaƒJUb™IƒlUóVmk@WÅÅÇ@ƒmU„ÅVƒnĉƒÇ°kwÇa@wƒa—„ċxƒWšƒLÇa@Þn„U¤°¦@„ĠKÈê@VmV@b„U°°nwlJn¦W„bÝ@VŽ"],encodeOffsets:[[111454,34628]]}},{type:"Feature",id:"6103",properties:{name:"宝鸡市",cp:[107.1826,34.3433],childNum:10},geometry:{type:"Polygon",coordinates:["@@@ƒ„£@›°Išb@¯°ynʃaUƒlƒU£„Umšĵĉ@@ylUÞ@@£kWU¯WaU£¯ÇV¥ƒ@kb¯wƒn™¥ÇkUÇnUƒ@¯±›kULm›@m±_kŽónUxlŽƒbaÇLkŽUaDŽkšW@™Kĉ¦ƒ„kƒm@ŁUaķxlw¯aXaƒk@mmakL@šmšÛŽ@¼m„@l„XV`ƒn™KUš°°@²š¤UÈ@VxmôƒxKl„VV²aVw„Xla„Vlx@UVnŽÇnk°ƒVVL™lkI™šƒJÇk¯V@šknƘn@lznmlVkzVŽ„VVxš@Ux„z@x±¼VxxU„l‚kb˜@„¼Čk˜VXlĠkôV²w‚LUKlwœJ@a‚IV¥Þƒn¯Ün„‚„@nk˜l²kÆ@š°„aVbnI@™š‚Ťn"],encodeOffsets:[[110408,35815]]}},{type:"Feature",id:"6105",properties:{name:"渭南市",cp:[109.7864,35.0299],childNum:11},geometry:{type:"Polygon",coordinates:["@@@ÈôL„xUް„Þ@mŽÈnl¤nUôL‚wX`@ÞÝL™ŽUšmLô„„ŽôbVbnºlnÞ@ôƒšx°LšanV‚wÞ@Vxnwšnlw²¤šb°°„bVnƒlXbƒ„ó„@bš‚Ġ@„xšbš¦ŤšV™Xġ„£W¥ƽɽƒó@ýóƝÝ»„£X™mƅšĊkUƒ„@™™šó„kťaĵŽÇ@™akƒƒa„¯ƒUV»maUU„ƒaƒbUxmKƒnkm@™k„mK@ƒxó@¯n¯KǦ@ôÅèlxkx°nƒƾ¯KU¯WķL@VÝIUb™yWbX¼Ç°"],encodeOffsets:[[111589,35657]]}},{type:"Feature",id:"6104",properties:{name:"咸阳市",cp:[108.4131,34.8706],childNum:14},geometry:{type:"Polygon",coordinates:["@@šIXyĊwlý„KlƒXIVaķƒ™»a›£„¯aVU@a™‚wÈō‚ašL²»‚VœUln°WȯW»XašzVaÞJ@Uƒ»@¯Ýbğwly@£kÑţ±Wу@ka™IUƒƒnƒ@¯ƒómţU™b™U¯lÇIÝb@¤Ý@kV@zĊ@™ĶnƒVV¤k„V„„bmź¯z@°™a¯J@œƒ¤@„„bUx™bƒ„@`™xUÔ±ºVXœW‚„UnUJ‚L̝ÈKlblmÈXŎ°šU„°LšŽlkÞKš@Èxl_°ĶUÒkblš"],encodeOffsets:[[111229,36394]]}},{type:"Feature",id:"6101",properties:{name:"西安市",cp:[109.1162,34.2004],childNum:5},geometry:{type:"Polygon",coordinates:["@@°²@‚„mVVÈÈlš¦„m°xla„@U¦°ÈV¤XbV°lXÞaÈJ°kšVšaŤVôn°„„@„mV„šJlb„@XÒŤ²lÒ@¤kzĠxÞa@°„¼ĸK°XV‚°L„ƽ¯mlwkwÆç@óÈ¥°L°mô@„w@aƙK@b™@wÝLƒyÅUƒÝƙ@ĉ¯¯Uóx™W¯x™_ÝJmLUx¯b™ƒóak±mÝUU„™W¯b™aƒ»óó™xƧçĉbƒaĉxƒIUV¯¥ō„±w—l"],encodeOffsets:[[110206,34532]]}},{type:"Feature",id:"6102",properties:{name:"铜川市",cp:[109.0393,35.1947],childNum:2},geometry:{type:"Polygon",coordinates:["@@ÆxĸƨšKlxÈX„K@VWƨIlmœV@wVUmUnmUalk@kVaUaóaƒóƒnKV™šÞK@ÝW_xóKmVk£ÇmnÝ@¯ƒVƒwóK@ǯXkm›VU±¼™KbÇŎx‚š@bUV°bƒœ¤‚bš¼ĸ„Ub"],encodeOffsets:[[111477,36192]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/shan_xi_2_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"1409",properties:{name:"忻州市",cp:[112.4561,38.8971],childNum:14},geometry:{type:"Polygon",coordinates:["@@Vx@lnbn¦WlnnUšmš°š²VšV‚VVVnUn„ºlz@l„„@Jƒ@kXWVXl@Lƒa@„ƒKUL„ŽlbnKlLnK‚LnKÆXn°šbVV@bUVl°Un@LnaVJUbW@UX²l‚@ČwlVVIšWnkÆa°„„anV‚Kn°™UW¯@™aVUVk@Un@„aV@ValwUanmWU„k@WVUUanaVwnLVl°@nk@mVU@UVK@w„LVKVU@ƒ„K@UUKVUV@@bnL„a‚V„aôšlIXmlKX_°KVV@bVV„@šzV`kblI„V„Ul‚šL@bnV@V„Ċll„„VlIXW@k„a‚U²blKšVnIlJ„albXXlWVn°JnšnL@l@XlJlaX@„X˜W²@l_VmnKšU„blU@mnkVK„¯@U@ƒma@kX¥VƒmakkƒLƒa@aƒ@WIUUVXWWnk@a°a@kkm@kUUmJm@WUUUIk`m@V—kaWWkX™KmƒXk¯ƒ@WKƒLkak@±bƒw@ƒaƒa@akaƒ@ma¯@ƒL—KÇÅkKWbkmġ™±ÅUƒLUK™VVkƒm¯LUVVbƒ„UwUW¯bm„ƒULƒxWJ—@ƒklmkUm@@KnwVkVK@akwƒ@@a¯bƒKkn›VUI™b¯mmbk@UbmKUL@xUUƒ@klmLUŽlVXI‚VVVUVUœU`mLXVWbXnW`Ų°xmށxU@mĉƒƒwU@mbU@UƒmbkVW¦kJ™@ƒX@`¯Im@UlUVVnb@bWJXnmbƒJUU™UUaƒ@UamIkaƒxƒ@@x@b"],encodeOffsets:[[113614,39657]]}},{type:"Feature",id:"1411",properties:{name:"吕梁市",cp:[111.3574,37.7325],childNum:13},geometry:{type:"Polygon",coordinates:["@@@a@w„@„wlbnJVb„@VbšVVV„InaWmXI@a‚aUmVUVkn@°J@_„Wš@lIX¥lUnaV„V@naV@„xĊ„n‚V@‚wn¯wƱX_WmXaWUnKV_V›VUUUUWJkUVnKlk¯™@@kmKUaٱKkU@WmI@WUIlUUmVwXƒ‚w@ƒUlUVwœV‚@„Lnb‚W@anU@UšaVkô@l»n@na˜JnUÈLVaƃUUVm„VKVƒ²L@mU_lK@UVWkU‚a@a@U¯aUaƒÑóÑUb™„ƒKk@@aƒk¯mVaUwVƒÑkWUmK@UUKmXUWÝwUa™LUU@aWJUUU@Ua݄U@WL@VKVaVI@WnU@alIVKƒƒ@kIƒmIkJ@™m@ƒ™@@_™K@xƒ@kaW@U„@Vmn@ŽUK@mIƒJUXV¤XXWlkKƒkkK@XmJVakImJU@ó™¯LWKUV@nUVƒLkxmKkLma@kXKmmƒLƒab™LmK@V@mXVÆUxƒX@`nL„aV@@VmLUVnLlLš˜„b@„šŽ°²nx@b‚VUxlb@V¯bUV@zV‚XVĊXVx@lVn@VnnmŽUš@LlJXVƒz¯VWVXbšV@bmn™VUVk„Çþń@XVxmbUlV„Uln„W„@„Xl‚@VLXÒ@bÞJ°¦„L˜ò„@nU‚b@°„X@ŽXbmVU„V„nb@x‚x"],encodeOffsets:[[113614,39657]]}},{type:"Feature",id:"1410",properties:{name:"临汾市",cp:[111.4783,36.1615],childNum:17},geometry:{type:"Polygon",coordinates:["@@nW‚@@UnLšK‚a„b„KnnWL@lnblKnLlw„KVU@mVUXL°KôšV@nIlJUbnI@WlL„llLXkWWU£VW„InJ‚@VL@nm@UVƒX@lb„@@wšL@`‚@„šn@V@lw„@n„VmVX„WmwnUlƒœa@_lK„wVlUn°xVKVXXWlUšVVI@K@K„n°KœwlVlU@kna@V_„Wn‚m„UVm@kXml_@m„LlKXw°m@_ôJVUV@X™l@UaV@Va°I„lk»VwUkVmwUmmVn@V¯@KƒU—wmK@U¯wUVÝ@mJƒU—nWK™@@UnKVa„_lykUmKÛnm@™x@ƒUUlwVk™ƒXW@ƒa@Uƒ@@K@ƒkIV™nammVakUlƒ@wX@@kƒ™¯@ƒVVbml@„„°UbULmlVbnbÅK±VƒKVXUJWa@ULWaUU@@U@aWK@UkxUKƒLUUUJ±UkL@V±kk@kam@UV@l@LWl@n@VVUx„LlUUx@VUV™U@aƒIUl™L@°mLU‚ƒbkUUaWUUaUU@aWK—LWJ@bUL@VUVVbU@m@a@kmKmnĉlUK™XƒWUblb—xmIkƒƒU@xWb@lkšVx™LXŽmzVV@bklVVUzm˜@bk„@Vx@xlŽU„@lUbVnl@„Wxnl@n@ŽUbV„mL‚mƒb@`X@lUX@@xlnkLWaUJnnWV™Vn@l„@bULVV@l™V@XnJVX"],encodeOffsets:[[113063,37784]]}},{type:"Feature",id:"1407",properties:{name:"晋中市",cp:[112.7747,37.37],childNum:11},geometry:{type:"Polygon",coordinates:["@@@šlInJ„lJ„@‚„ULkJ@bmV@XUJUb‚L@UXKV@ރVbV@VVXI@bVVšKVbÞxVXnWVL@VnLV‚lX„ÒUŽVxUb°n„l@bl@„LšƒVaô҄ÒVb°b@VnLnnV@lmn@lb„U„V@„‚JœUVV‚Xkl@lUzmJ@xšXkl‚bUn„JVšUb„nU‚lb„V@nlLX@lakšV`Ub°š@XVJnU‚L²KlxnI@KV@lbUbVV„KnVl@„zlm@Uš@nŽšI@WUaVl@@mVU„@XkW@ƒnkVKVƒ„_Vw„y@knwVa‚@XalU„@šVnml@„X@V„L‚KVaÞbnnlJšI„mVKn„VVVInVlU„@„m@™mXK@UmyUI@mWUUakamw@wUwmLkakwVƒmK™w@wUam£y@am_ƒW@™UU@knmm„amU@WUa@knw@ƒUUUUV@nƒJm@mVUkKVUUUkKmwƒKULƒKUImV@lUn™nŽm@mbUK@°™bUnmbUmkkƒWUb@am@UXkK@a±@™V™@ĉř„V‚UXVxUVkLWl¯@@bULUlm@@nm`—XƒlWakIkm›VUbUL@Vm@kIƒ@@Kšm@—VaX‚I@W@aU@kUƒVU_™KƒbƒJkkǎ™b@nkKmL™wÅW@kVUUƒVU@WUIƒJmIXmma@_kyVaUUlkUm@ƒkU›x¯Lƒm@L@LUJ™UkVWXUWUL¯wVmUkƒxkL@`›bk„mVnxƒXUWUnmƒƒ@kxU@"],encodeOffsets:[[114087,37682]]}},{type:"Feature",id:"1408",properties:{name:"运城市",cp:[111.1487,35.2002],childNum:13},geometry:{type:"Polygon",coordinates:["@@„Vl„nJ˜wkaVa„XšWVLĊknmnL‚l@@bn‚V@UaVU@UVK@aXI˜KXL@bVVVbXVVblV„aVnK@¯šKVk„J@bšVVU@UVwkVƒKVwUUm@@Xk@K@kVUn@lbl@²l@UlK²VVIVV„KVLlw@VXL@b@VV@VŽXbVK‚@XbVIUW„L‚U²ÆLmaUankVKVaƒ¯@ƒnkUa„U°@„š‚n@@kWa„UVaXUW@IXKVw@U™ƒ„™WU@W@@UUƒU@mn@ƒ`m@UUULkUmJ™IUƒ@@UƒK@U@›anƒ™ak_@wmKUwmakV™kmK™V™k¯b™wƒ`kwUIÇx¯»ÇaŃmn@@™mƒmUkV@wkKW@kxmL™UkĉLÝk™xÝw¯lóVU„mV@ĀVVX¦W¤kz@`Vx°„²ĸ‚š@„Ul@x„êĸNJ°¤V„VlXLWnXxmV@nUl@„"],encodeOffsets:[[113232,36597]]}},{type:"Feature",id:"1402",properties:{name:"大同市",cp:[113.7854,39.8035],childNum:8},geometry:{type:"Polygon",coordinates:["@@²£šyl@Ȑ˜Ė@bĸŽĢbĸ„˜X„a‚KŤnn@ŎôllÈx„nVnÞDŽV@b‚nXllL°KšbVb@J@b—„‚„@ŽU„„xlKXLlKlXk„@Ulk„JlkUƒVKXUƒÇVIVm@_nǚLšašl‚w„VnU@UUwma@aƒaÝaLmUk@@Wƒ@U@@X™wVWÝUUUk@@VmLƒKV»nwUw™aUL@`mzƒJUIVƒUaUw™KUaVIlJôanÑlLVUn@ša„@VV„@@UUwVK°Vn_lJÆLœéW@UUUÅ@»lm@aÞIVwXW˜UUkkm@U@aƒU@mwU£VWU_kWmƒXwW_°yUkkK@UÇK@kkUVymóK—U@KWIƒbUak@mJ@bkbmLkŽ™UmƒkVU„W¦@lnb@„@Vƒ°ULml@nkVƒa™VmLUnk`±@—XƒWW@kbǦXޝ„WxI@xmbmxXlWV„„@bŎUz@J‚b@bÞb™ŽU@Wbk@ƒxk@WX¯VۙƒWÝbÝUkVUU@alI@a@akLWa™m@U¯UUmÇL@K@aU@¯VUkƒKmX@`@œkJ@nV‚Ub@lbVÆXVW„ULU`VbkLUV@XWl@bXJ˜@VbV@Vl"],encodeOffsets:[[115335,41209]]}},{type:"Feature",id:"1404",properties:{name:"长治市",cp:[112.8625,36.4746],childNum:12},geometry:{type:"Polygon",coordinates:["@@Uk™Lky@I‚JVa@mÞaWšy@_W@_WƒXVlUVwš@nw°K@m„UƒVaƒmVkU@mmmnLVUmKXa™U@IlKVUnK@UmWkX@WV_Vƒ@akU@a„KWIXyƒIUVmUn™Ua@WaXUVKVmkUWVkUƒLU@@VƒbƒKbƒIUmƒ@mbVL—x›WUUkn±V¯wƒbÅJUbmLkbmKÅKƒbVnUbƒV™KUb™KUbmLKmƒb™aƒKkUm@UŽnn‚VnxUVlUxl¼ƒk¯JUbU@Vbk@WšU@UVóI@`¯nWxkLƒK@nk`Wn@lUnƒVnm‚ƒXU`@mb@lkV@„VnklVVUblz@`nbWnnJ„IVJ@XUVV„UV@lÆXšxnKlL@mšaȍll„I„ašLV`„UlVV@@b@XJWUb@˜™n@L„@lJn@@UVKVaœUlnlJXb„k˜Wn_@mn@VkVK@a°@XklKVUUwVWUšƒĊƚ@šU²@@blLVWn@@bVa„XllVnnaVmša@¯VLnan@‚šmVm@knUVJ"],encodeOffsets:[[116269,37637]]}},{type:"Feature",id:"1406",properties:{name:"朔州市",cp:[113.0713,39.6991],childNum:5},geometry:{type:"Polygon",coordinates:["@@XXWVXVWnnlnn@èÆ¼@„„xlš„ŽV„nblšššVŽÈUVl‚š@„blnœL܃ĊmUkU@Ua‚—@WI@aXk@WVUlKUaV_VKXƒWUUÅka@VaU@mlI@›@_nW„LVl°UV@@b@LÈKVn°V@VšnXblK@b@bkJ@bVVlUÞVÞa„Xܚ°UXWl@„wl@XaV@šÝa@aa@IVyƍ@aƒƒXUWknwna@w‚JXw°ƒWÈ¥kI@W@kmKm™¯IUmkXWWkaƒbkImJ™UkL±aVƒb@lWXkJƒUkƒĉkƒ@UmU@a™KkƒVƒUkJlaU_™yƒ@UU@aUU¯LW`kLWnkJó™ƒbUƒbmK@aU@UVVL@VƒL@„UVULƒK@xUL@VUV@nml¯@UkmKUxmbVbUV@XƒlXVmnVbkxUbU@ƒbm@@VUlUVšb°@VX¯šm‚"],encodeOffsets:[[114615,40562]]}},{type:"Feature",id:"1405",properties:{name:"晋城市",cp:[112.7856,35.6342],childNum:6},geometry:{type:"Polygon",coordinates:["@@lV„Lšb„an‚LnKVašLVašL„UVaUm„aÆLnLlanKVaÆI„a°x²UlmVVœX˜wUKna„@Vn„J‚a„L„a@UV@@alUkKVKnkmmVwUk„w@ƒ™@kxWUXƒW@@mƒk@aUa@a¯aƒLkKmwkUm@kL@K@aWIXmƒVƒXƒWkUVakL@UVKƒw@aUK@UUKmLU@¯n™KUwVƒUIWJUWmka™@UXƒJƒk@UkmW@kLWKVƒx@bmI@VUaVU@a¯@UUmVKmX@±`kÝKVxUL±akL@V™bƒLkKmVƒ@XWVUbƒVXb@lm@@lW@@xk„lVUbnnmbUšlJ@„@L„@@V„b@‚WXš„UlkxVV@„šwn@ÜmnLlVkzƒ`UbmL@Vš@XL˜m„VnIÞ@VU°x@VnL˜x„V@LU°"],encodeOffsets:[[115223,36895]]}},{type:"Feature",id:"1401",properties:{name:"太原市",cp:[112.3352,37.9413],childNum:5},geometry:{type:"Polygon",coordinates:["@@„@VV@wVKnLVal@na°nšaVJœUlm„L°a@b„@lx@bULUlmx@Ln@lVkn„l˜@XI„w‚K„Vnƒ°aVXVx„ƒUaVU°K„nUlšUVL„KÆVš²Ģ‚lnXalLÈÆ˜L„KUaVkUanmWU™a@WwkUWU¯y¯Ñ@anIl@@aVU„m„I„ymUƒLUUVakaU@@LmJkw±LKmVUI@W¯™VaU_l™kbW@kK@mƒUkaVƒmVaU™ƒIVmalk™W@wnIVy@klkWUU›VI@ƒƒUƒVkam@knU@mmmK@bblVUX@VkLV`@n±KU„ULƒ‚UnVVńUbÇKmV—Imbm@k¼ó@Ul™b@VmV@bXmaƒK@›UUxkV‚V@„xW„UxVnkVVJ@XnJ@XlV²LƂVbnL@lš@°"],encodeOffsets:[[114503,39134]]}},{type:"Feature",id:"1403",properties:{name:"阳泉市",cp:[113.4778,38.0951],childNum:3},geometry:{type:"Polygon",coordinates:["@@°@nb„@lb@b„b„b‚@„x²al@lb„KXU@m‚kUWkkmUUƒVwV@XUW@™naVklKXblKnL‚ƒnLVanImaXKlL„ašV@U@KUKW„alƒXK@£WKXUV@VU„ƒUUVW„_V™@W@@K„@šƒUƒƒIWmXUmƒULƒn™JkImmÝaUbLƒK@UƒWk@mn™Uƒ@kVWb@Ubmx@lƒzUxƒ`U„ULml@„XWlƒ@UV@nk@U‚Vb@X™Jm™@@Vknƒyk@ƒzƒJƒnUV@bk@mJ@b°Ò°zXVlVXx‚@šbXVmnVbUlVb"],encodeOffsets:[[115864,39336]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/si_chuan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5133",properties:{name:"甘孜藏族自治州",cp:[99.9207,31.0803],childNum:18},geometry:{type:"Polygon",coordinates:["@@ƒaXamƒ¯wm@±°wUwV@UaVw²Kš™„U@UƒU„¥‚a„ƒ@£Þ™ôx‚Knkm™X¥™IUƒÝUwlk°V„@ƒÈ™‚KUwlkUyV¹„mšx²Xll„ÑW»š„l„w°UŎ„nƒ„„˜Jœƒl¯°V@wôIVÇn™nUllšLšVǚLô¼XW£@±„@¥k_ÇJƒkUéƒkšƒƒwXa@ƒšLlw²™Vx„b‚mš¼ÈxlLȃ„VWÞn¯mǙÑUÝlÛkwlĉmƒULmwUJ™ç@wkm@ÑlUX™ƒÑôġƒVa™ƒUф¯@wķÓkbV„mnU@@y¯IķKƒV@¹šaƒé@k„mÞU°¥@a¯@anKlblU„¥@óğç@Çw@wkla„çݱk¯±@ğÝUÛmݯwƒ@kb±¯akXWÜkXUÆÇUš¤X_Ɛw„V@¤ƒXU‚ƒbUƒŽƒIUlÇUkŽġ@™aXČmlUlèUV@„mVk¦Vxš@¦±š¯ƒƒ¯¯anlWš¯nƒƒÅw@w°KVak£m@klƒKknÇU™»óKšīlaUaV£@™™¯@ƙU™VƒÛÝÇXƒÇl—ÓlŹ„»WUğJ¯£mx™Lĵô›ºX„VlUll²bl„„lŽƒxónn°ÝšU¼mJUš¯nƒƒƒV@êĉ°Uĸ™w™@mƒ@¯kmXamѯaUwÝKU¥„mÅn¥Wmn™ƒ¹n±ƑƆÇôXê±NJnšƒ‚UôlĖkȂVÒ¯¼VnƒȮ¯ĀnƆ˜Ģ@Žk°V°¯ĢVlkšVxm¼X²™Ŏ@ŽVxknWܰU‚¯n™ÆÝœ@`„ôݲÒƒ‚Çzn‚mX@x„è°K°Å„UČĬóĖ݄ƒ˜ó¼ÅêƒÒƒbmšk@V„Ž˜„@ҁl@nĉܛê—x@Ėml՛J¯¦óxȭ°ÝmޝLĵè›Ā@Ɓ„l°żƒ‚šX@xmŽkV@z@‚„°blŽnÞ°J@bn@ƼUVƒUóŽóLƒ°X°ÝLƒxUn„°ƒĬƒn@lnL@ŽÆ@šn„KÆxnUnV˜InĬmÆnxŎ¼ĊIĢóÞ@ĊƒƨbUƒ‚mV¥lkƒ‚wnL„mšÅÆ¥Xƒ˜wU@w‚wUÞ™@alUUŚU™Vkkm°aU—°Ó°w°U„ƒ„b°aš²K˜¯œĕ˜@ÈbޏĊaš»„XVm°In„‚Ĭk¼Vb„ašJšôš£VĊan™‚k„ů™™nƒÜU@anKnĮ‚bÈmƎš»nI‚霣Ġ™"],encodeOffsets:[[103073,33295]]}},{type:"Feature",id:"5132",properties:{name:"阿坝藏族羌族自治州",cp:[102.4805,32.4536],childNum:13},geometry:{type:"Polygon",coordinates:["@@l@@þ²I@lƒ„VL°wnJ°Uĸ™Ŏè„Ilw„V°¤nĮ™¤Ý„lè„L@„ƒ„@x„l™è²ôĊ_ĊġVÈôJżīlbXšÆÈVŽkxÇVƒ„n°„¦Üb@è@nn@@°šUÈ¥WDŽ_Uala¯¯UǙkƒ»„mVwk»˜k²°VxlL@¤œ_@x‚`ȍ‚Ėöb˜š@l²alX„a@bnK°¦VK@nnWmx@nUnl@@lƒlĉk°l°UXkmW@Unš`k„ÇL„ŽW„ÛÈVxšVVlVk@l„IXb@ylXÈW˜Į„WŤzœy@šmIƒŽ²šJ‚š@nް@V„„J°a„Å@ƒŎkVǚk™aUw„KVw™™Vƒ„@nkm™@±ôkô™ĊJš¼šInÑm±nIššÞ‚XȃĊxĊUÈbÜyÈ£Vkw@kVUV™„m@ša„»ÜbÈmƒUXwÝxƒUn¥@°ġ™Å‚aœJVk™aW¯Û@W¥—UŏĶ™@¯kUƒŃ@ašI@mmanwސ‚W@œ™mw°»Uřk¹±W„xVx¯¦U°ƒzţW™w@°ÇVÑk¯@„y°aš£š@šmšnl¼„ašÝÝakwUƒ±aĉImlĵn@ƒm@kkVƒ¯Ñm™ĸ™°x„l™œ@˜ƒXVÞmlÛݙĉUÅ¥mwÅ¥VaUw›™XġċaVůÛŹlwU¯U™ó±™xÛV±¯¯n¯mċƒLmnĊm‚™@™_kJWaXmwUƒĉK™»™@mwX݃UDŽkKÇw™»nƒaUw±škx™K@„Wb„x™„„lVê„lÈIl`@¦ƒŽ@²X¤Wó»™KUșŽ™KkkmVmšUÈóJ@x¯Uk°›„—Iƒƒm„ōƒ¯Vƒxƒk™ŽX¼ƒÒkk±W™wƒnUºVzklVxLǚ@„ƒŽ¯UklVxސV„šJW¦nšmlLówݚ@¤ƒ„bƒ¦„V@VƒV™š±LUxVbU@Vx¯x@²n‚°xn„Wb„b"],encodeOffsets:[[103073,33295]]}},{type:"Feature",id:"5134",properties:{name:"凉山彝族自治州",cp:[101.9641,27.6746],childNum:17},geometry:{type:"Polygon",coordinates:["@@ĶóšKnw°¤ĠIXVƒ¼kź˜Ôk‚„ÈWŽÞȄÜUVšÅš°@šš‚@U¤Vbkb™ĬôLš¼ÈVlm„Llkn@l¤Ub¯L@xÆx„„°mX™mk°b„°°„²™@¥‚™Uwl¥nU@ƒVUkçVnkWċšbĢ@lÈVVk„J„‚V„aV„W@£ƒUƏxW`™£ÈVVÅlWXÛlW°b²la„@°xnÞVÜĠÞ²@l°Þ²ƒèkblŽ@xÈx@Ġènal£nU‚Dz@‚ÞK„nn¤@¼˜°U¼„nV‚šXU‚šbn™ĠUVbUlVš°LX„@lV„èÜUnK@_ƒyXVyUwmIU»Vƒ„kÇ¥šÿkkV¯m±n@ƒn¯ÜanVVƄz@Ž‚bœwÜb„m@wša@kƒmk»@™a@VUUó„w˜@nb°mš„XŽmnVbގVôanwšJ‚ak£lw„˜šLšÅnÝ@wl¥IÇӃ@U™™Lƒ¼kVǃÅó¯kVmmw@ƒn_‚Vn»°LÅ»@éÇçŹīVÇÝ@ÝğU™ƒaVݙ™š¯ķlŭġlƒ@óÞۂċ@¯nkUӄ—m±™IVġUwóKUn±¯—K›w»ƒKݐV„nl@„óxUwţ›£ĉƒUmŗÇ݃K™„ÝUlmKƒ£UVŽ@ÞȎW¦„Ò@Ĭšnny‚@nÒmœVŽ—¼@°Vbl@VlnUUwl™°a@„œ„@llnk°lbnKWĀnŽU„VxUŽ‚²Å‚m¦Û›ÇڃaU„Vbš@¦m`móX™Umm™xÅ@±Þn虲™U¯»m™ƒV—m@wƒU@wݚÝmLƒa@„™VÇUk„l°¯„VlkVƒ¦UšmxƒaULUèVx@„kIUxmWV¼¯VmȯšU„nl›È—@m»Å™ƒVWxÅbÅğW@kƒm@kVV¦mlnn@‚ō„l¦Åƙxkœ"],encodeOffsets:[[102466,28756]]}},{type:"Feature",id:"5107",properties:{name:"绵阳市",cp:[104.7327,31.8713],childNum:8},geometry:{type:"Polygon",coordinates:["@@„ńlV°š@Őĵ˜VX»ÆUĊќJ‚w„@È»m»š£°Kšk@ÇnÑÆš@„w°JUwnw@wšbVbš@VlźLUw„aƒ»„aUklyUUVakwWXwWƒUxkLƒmn¥mšwk™˜UX™lJ„w@aƒIk°X„¥Wƒ²l¥šaU™„IlmkklƒÈL@m°nlWU™aW—š@Vƒ„@UaV¥@ašk@Çk¹ƒK@a™K@kƒKkšÇX@VU@kx±V™èkIWwUVUkkKÇ@ƒa@wkml¯@kUWn£Wa„aVwnaV݃w¯@UaWx—n›JńUxUšma@L@„mbUށU±VVnkxUƙ„VŽm@kkKW°„X@¤ÇUkÆÇnU¦¯ŽkƒmLVwÅK@UóbÇÆVƒ¦™L@‚±êX¦mVޚkÜÝnWU—„›@kšƒŽ¯wķšnš°ÒU„lln@@„ĶmnkĊJ²bV„lxÞb™Þƒbk»™m™n™@™¤¯bƒz@Žl°UÒ¯È@ŽšxŤX„yV¯°¥Uwƒw²XlºVڝ¼nx›š@ށXݏmxnb@n™J@b"],encodeOffsets:[[106448,33694]]}},{type:"Feature",id:"5117",properties:{name:"达州市",cp:[107.6111,31.333],childNum:7},geometry:{type:"Polygon",coordinates:["@@Uxn°‚bnŽlUnÒÆƒnn@n‚¤„LnxlU„ššV@„Æl„x°XXxl`XœƒVW‚œL˜è—„±nÈbƒŽ°b@š²x°Kܼ°ĉ„V¦lJnU@¦šÞ‚JÞğ„mšLÞ»šxU„lb„VÆann„alŽ„VƍX@lnŎV„mU™maÅXƒa@aWmœ@‚£@wĉJVƒkk‚kkmƒnk@ƒmna@šal„Kš™‚J@Þwm‚ÅŃ@ambkUƒƒ@™™KUġKU@m‚ak¯±ƒ„a@aĉÑÅaVwšXlwƒ±—V¥l@@a™kƒ›@@£šmƒĉÝónWV@ށnÝÇÇx—UmbƒaVkkk@m„@m°ƒÝýXm›akÅīƒ@@ƒmb@@xmšnbƒ@mxšŽkWL@ƒ¯b@WUXmWœWKkbm@kx™Xmm@LUl„xlêóK™nUš„all™LƒlLó°m¯JVšU„K„„@x˜K²Āô¦l°"],encodeOffsets:[[109519,31917]]}},{type:"Feature",id:"5108",properties:{name:"广元市",cp:[105.6885,32.2284],childNum:5},geometry:{type:"Polygon",coordinates:["@@ÆL„Ċx°»Ŧ¦˜W„™šLȄ@xÞKܰÞnVxÅĀlÒnJ°a@w„V¯l@XWknKnw˜VȚ°XXa˜lX°VI°b„W„nšaššš¥@ƒw°™n@šyÆ@nkÞ@°¯lJn„°IÈl‚UšlXÅ@ķlUV¥VUUÝޙUUƒ@UwƒJUkĉm@ýƒƒlk™WUwVwWJk@VUK™lUkaVƒUƒmLk„m@ƒƒ@Uƒ›Ik`@„™UmlUkV¯ÇXKÝ_mm¯@Uƒ`kwmƒl¼±KV¯—¯Vk±Vk±kzma™KUnDZ™bk¦±ŽX„ƒ¦¯Wl„J@bƒxkIWš—Vlš™xnŽm¦„nlKVwX„WxXŽlxUbVVkzVlƒb„¼ƒbVxŹKUk™@Ua™a@xmxVx¯Iƒx™@ŎmÒ@șl¯L™¤n¼"],encodeOffsets:[[107146,33452]]}},{type:"Feature",id:"5118",properties:{name:"雅安市",cp:[102.6672,29.8938],childNum:8},geometry:{type:"Polygon",coordinates:["@@ln@xšèVInxVKn„‚ĊklxkÜVޚÒnÈm°nxš@š¼ĊLV„nx‚WXblIš`š@nmĉn‚KȄôÅlUÑmU„K²¹@ÇÅVÓůVýÞW„‚UVmX„ÆbnwšKUÿ‚™@UmmIUb¯¥Uwƒ™¯™Çmš™„çmanUm»UUƒl—kƒ¤ƒa¯bV™U_WĕmÇŚ±ĢUlƒUl™ÛVƒçkUƒ@WޝKU™VkUağVmš™aV™WUƒmV»—¯@»m£ƒmÝLŽ±@ÈmVk¤mb@ôƒ¦kVkamL@b°‚@b¯¦ÝVƒn@l„ê™b@º„UĸL°J@zV@nmUƒlaĸÔ@xƒ°VҚ„Ub„‚óĢ„ÒWškV@Ò"],encodeOffsets:[[104727,30797]]}},{type:"Feature",id:"5115",properties:{name:"宜宾市",cp:[104.6558,28.548], -childNum:10},geometry:{type:"Polygon",coordinates:["@@VlÈnl‚XnWLX`m„²nV‚@b°xĢçlnšVm‚nn„@@„°‚UzšlV°nޘÒkxl„w„`UnVb„mšL@albÞKÈۚmܼ°@Xǚ@wmW@ńKĊL„lV„šLVŎçÞL²±‚ğkw@Uƒy@¹lKX™lKVa@w™™Č@‚w@a˜ÇU¯n™@@wġak—™aō‚ƒƒK@Å»VakUWmķwkbğ¥mL™akš™@ġރ°¯xVVÞ@VšxVš—VWx„XlxU‚™@k²WVŃULmèULVĊklĠ„VœJVx±nѝ¦mwğ@mƒƒlğkkl±@kšUk@¯±Ç™Kƒ—kxl¤b™Imx"],encodeOffsets:[[106099,29279]]}},{type:"Feature",id:"5111",properties:{name:"乐山市",cp:[103.5791,29.1742],childNum:9},geometry:{type:"Polygon",coordinates:["@@kšVŽk„ššÆkšV²UlºÈIlxƒLXèÜlU„„XU‚mkƒbVè„x°@„@¼°Knnn@m˜ÆIUbnJ@bVI°b°±@nK@mVakkƒKl¯nbšmĸ„èl@VnÈl‚UUw„wmwnm°¥„L„™lLnU@Va™ImbkƒmK„ƒƒnk@mƒb™ƒƒLV„JVUUƒ„VnkVmb@a¯JUaÆkk¥„IW¥„Klw—ÑmÝU¯™kVy¯@ƒƒ@mmn™Ukmġè¯w@aU±mnƒW_XKWmkÇmUkóbUÝUanmW™ƒ¯nma—@ƒxVôUV@šb@‚l¼„n@l™b@xƒnÛa›xa@ƒyUÅmUÛbm°@„m‚n²U°ll™ĀȦƒlU„V¼nJVxUz‚W„z@`mL"],encodeOffsets:[[105480,29993]]}},{type:"Feature",id:"5113",properties:{name:"南充市",cp:[106.2048,31.1517],childNum:7},geometry:{type:"Polygon",coordinates:["@@ȲVmšLnblyl²²UUl˜°U°²L‚»„knlx„_Vް@nnÞ`WL°ÈUŽVlnkšV@ƒl_œJV„‚@„„n@lƒnKV£™Çšƒ„UV¯šm„@laX˜U„‚UbVx„@VkôJU°Jn™@™‚wUk°wnUƒV_nJmknmm¯Vwk¯ó¥±ÿ—L@wƒƒƒLVU™kU›bX¯mykI@a±Kk¦ULmaXƒƒVm¯ƒK—z±ƒklUIVbÇJšƒkL¯™l™ƒU™ÿ™UƒlUkJƒUmŽUUkVVklKk@@a™U@„™J„²ƒxƒ¦kĬ@¼±ºXnWb—xƒU@xƒx@lšL@b„Llº@șl@bU¦Vbƒ@U„™@X˜‚bVškX¯m@nÇKk„llknƒJVš"],encodeOffsets:[[107989,32282]]}},{type:"Feature",id:"5119",properties:{name:"巴中市",cp:[107.0618,31.9977],childNum:4},geometry:{type:"Polygon",coordinates:["@@V„U„lbkVšŽVLUŽl@XI‚ŽUxVxšXkl„„@þĊnVl„IVx„@VVݚVÞUVU¦kV@ĸWÆô²š@VÞnš@Vaôb²W@‚K@XUmÑUW°¯°Ina@y„_lWn¼lLUbô¼„Kla@™nkUyô—Æx°@šn£™Ý@¥mVkIU¥Ċƒ‚¯Û»¯L±w@™¯a„Ça²m˜ƒ—ç›KX„UW›k_Ww¯WƒwÅk@ƒ™Uƒ™kVmwƒK£@mmmńmÑkVmamnnlmIU`V„m¯xVlx@šmš¯IV‚óIUlƒ@UwVaƒ—VW‚kbƒ@™nU°ƒV™„šÈU¤"],encodeOffsets:[[108957,32569]]}},{type:"Feature",id:"5105",properties:{name:"泸州市",cp:[105.4578,28.493],childNum:5},geometry:{type:"Polygon",coordinates:["@@VVXwVKn„˜wnVƒn„l@b¯xmKUbVn°°X°@blLšènV„@Vn‚l@U„LnmmUna„VV_ĶV@wnJ„„l@@kkKVólaUwnJm„wUlm@ašUaôKVnJWbޚ@VšwVLX¥VVš_Þ`šw„WƒÞŹmmnIn¥Wƒ@k„WV¯@ƒ°kI™ŽƒLk¼Ç@k¤±Xk˜™nmݯUlÅÛKWV¯kƒlUwkLƒÓ™@U—@ƒ‚w@ġXV„˜WX„š@UbVbšV›š_kÇV™lU°lnwŎ¦ÞaƯnmm¯šU„™m¥nkVmkƒl_ó¥¯UÇl¯@™ƒ™L™kƒ`¯ķLUy¯@mw—¼ķ°ġ_řU°mlšnÇVUޚ„@‚ƒš_ƒJUnV‚UXšbl˜Ģb@x@mšV°—È‚b@‚xċ@šš@xUbkLWškL@º„zV‚@lxĠ±²"],encodeOffsets:[[107674,29639]]}},{type:"Feature",id:"5101",properties:{name:"成都市",cp:[103.9526,30.7617],childNum:11},geometry:{type:"Polygon",coordinates:["@@°n°m²°ÜUšw²ŽôVš°ŽVkxÜźUŰČb‚ŽĢlaÈL„»ƒ@k„wVǂ@„ƒnÛÆ»È™UݰKl_„V°Uš`Vbn@VbÈLšaVU@ƨ»V™nIl™šUUa„±lIk±š@VnKmÅ@WaƒK¦™lVōškK™Ý@maXÇmw¯IU‚@kƒVƒwUmVIƒƒƒç—ÿƒU±ŽÅ@¯È@xƒK@wƒLUbÇKō@mÝ£@yóUóóUxkI@WlIUaƒbƒaŽVĀ™LmxÅaWƒUnVƒÝXUþưUÔÈÆ@±ºƒLnVVÒkóÆ"],encodeOffsets:[[105492,31534]]}},{type:"Feature",id:"5120",properties:{name:"资阳市",cp:[104.9744,30.1575],childNum:4},geometry:{type:"Polygon",coordinates:["@@„è„„UJVn„x„U@lV°JnxWÈnbÞ@šŽlLŎ™Ušk‚¥„LXbÆ@nŽmLU‚@zlbXmlnVynL„çšJVb‚UnómUnamU„an¥lKV_²aValWô„n@nƒ‚bVœK°¯VblW@kkƒlUnlV£°W@w„UXk°KVwƒmVkwVyVI@wkmƒVÅ_Umm@Uÿmbk£™xUaVw±V¼V¤kLWxU@Uk™bƒyƒXšómƒ°V@@zÝÒkKƒn™±U@@_VVkƒÇaVwnLWalm@@kkVVl™¦kIV`±n@w„Kƒƒk²™aƒVUUV¤™nkxmUkVWVnLUbVbƒ`kUU„mLU‚mX@`ÅbǚXbWLXŽ›n"],encodeOffsets:[[106695,31062]]}},{type:"Feature",id:"5104",properties:{name:"攀枝花市",cp:[101.6895,26.7133],childNum:3},geometry:{type:"Polygon",coordinates:["@@„b‚KÞnޙ@x„V@x˜n„Unš°¼šVš±mç²ÝÆ@šwnnšVWŽnôn_@¥‚™UaVƒ„bƙœÈ܎n¥Æ±VUwVƒmXÿmLkal¯km@k›ƒ@ƒ¯bkšVxmVUkk@Ua@¯˜»Un›mс@mz™m@īƒÑX¥Ç@ݙxU¦ƒšÅŽÇUkx@šlb„UWVX„mV@xĵ˱@@ޝxUšÆLnÆm„šx@nXL±lUUVwKWak@WxkbšÞƒŽĉbUn@‚ƒ@@xó¦„Ŏ"],encodeOffsets:[[103602,27816]]}},{type:"Feature",id:"5114",properties:{name:"眉山市",cp:[103.8098,30.0146],childNum:6},geometry:{type:"Polygon",coordinates:["@@„šVx°¦VanJVnš@„b„aVbkJ@XlJVwôôôV@zÞ¤@nƎÈLVa„K@x„L@w°ÇÆ@²„V˜ĀœmWXKWașÆa@_nWVnKVƒlV„_UaVamKXUWwnmmwœÑm£@ynUƒkWƒĉUkWVkkV±çkJmkKƒšƒK¯¦mnnxƒxVxVÇkUmk@ƒçķ™nmak°„LllUb@nmL@‚¯²¯aUJ@amIVaÅJn—m@mm¯L@»ƒŽ¯@ƒwUç„anlVƒWVƒÛkWç„KkwÇJk¹±V™UÅl™™ġV™²ÈƂnXĖV`Uš°a„b„£˜l„kVVn¼mVnbƒè™šÈn°š"],encodeOffsets:[[105683,30685]]}},{type:"Feature",id:"5116",properties:{name:"广安市",cp:[106.6333,30.4376],childNum:5},geometry:{type:"Polygon",coordinates:["@@„VlIV‚„kšVšĀ„Vkš°šlK™„ÈIUaVJlk²„˜y„Ln°„UW„nbVKl¥²L@blJnzW°œalV°Inô¯‚K„kšKkkƒbV™šmôLkéƒwVk@KnnšWlwn@laXL›ŽnXVW@X°a@„XKl™nw„@man™@w‚@na@„„@ƒw™ĕġġ™wUkUWb@mk@™¦ƒ¥mUÛb±yÅn@bml@kV@„ƒlknVbmVnlmš—bÇk¯bWyk@V_UamJ@I—@WaƒVXamIVWkUkbVaƒUUxƒ@VnkVU¼›bkKUxmK™„@WšƒxnV@n"],encodeOffsets:[[108518,31208]]}},{type:"Feature",id:"5106",properties:{name:"德阳市",cp:[104.48,31.1133],childNum:6},geometry:{type:"Polygon",coordinates:["@@nUW¥²é@šK„¥‚UÈÅôa@VÆLUxnKl„°V¥ÈmlÅÈV@£ƒWX¯lLln@UšƒVÅlwUm²U‚VVna@ƒ@KnbV™VwƃœI˜mXwWƒkIVwÝĕVUa™IƒèmKUzkmWnka@y™@l²kJƒ²Vb™VkšmJUšƧ¼@UV™bÇKUam@Ua™_¯VƒUk`¯LVÞǚżm܃„@Uȃx@l„ƒ¼ÇKkbWŽœšVxUbƦnxƦĊV"],encodeOffsets:[[106594,32457]]}},{type:"Feature",id:"5110",properties:{name:"内江市",cp:[104.8535,29.6136],childNum:4},geometry:{type:"Polygon",coordinates:["@@²èlUUllXĊVX„„lmV@zn¤›ÒnxmnXxlUnVlwšmU£VV„Ušbl±„„ƒL@x²mU_lJš¥UklU@ln@‚kXbmKUxÈbl„UU@`V@š²„mlLÞÑ@yU@„¯ôn‚™„W„zšaVlV@XwlKU£‚»—aVaUwm@mwUVUwkƒlVDzLlƒ„KV™m_@ykUmƒ@mU™çkKmxkIU‚Ý„@LUJ@n±„kº‚LXb™¼@mmIXa™@mamnkW™ƒKUƒƒxƒ_U`UklwUw™mUbƒV™²ƒakbƒmkn@`„UmҙšVxUb™I™`UƒaÝÈ"],encodeOffsets:[[106774,30342]]}},{type:"Feature",id:"5109",properties:{name:"遂宁市",cp:[105.5347,30.6683],childNum:4},geometry:{type:"Polygon",coordinates:["@@ÞĖUxlJX„Vb°@„xUÞmbUxƒbXbm¤VX@lk°ln@x„bÈ@lLVlVUXxlJšç²UlwV@@UÈWl™„L„w@w„V˜wXaWm²¹@»lī„¥„wƒ±šI@ƒšV@bl@kLUllUVVn@mmU„wX™ċbVb@VUkbmamšW@kƒa@™™k@ƒlaUa™@¯b@šmmwó@@lkXUa¯°›LU‚am„m@óƒkXUb±bU`kLm¦ƒbnVmbnVmô"],encodeOffsets:[[107595,31270]]}},{type:"Feature",id:"5103",properties:{name:"自贡市",cp:[104.6667,29.2786],childNum:3},geometry:{type:"Polygon",coordinates:["@@lIÞDŽbVŽš_šJVaUwš™nуV@_lm„nla„bš±„UVašnVxkxVlV_„`„wV„„LšlXnmnbš@WbnJ@nš»WaKl¹²ƒ@mVI@KރVlJnw@aW¯¯¯UmVanL°w@aƒk„mmU—xmƒULWxUUÝKōèU™KUƒƒkĉKƒL@ÆnX@x™‚Wȯ@Û»™nÇÜÝLka@b™KƒnUaVmƒ_ƒxkƒLX¦ƒJl¦ÅlVb°I@bnaUŽmlƒUV„UVƒIUŽ„Kš„„a@nml„„ƒŽnLl„našJUbV@"],encodeOffsets:[[106752,30347]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/tai_wan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"7100",properties:{name:"台湾",cp:[121.0295,23.6082],childNum:1},geometry:{type:"Polygon",coordinates:["@@\\sŽ@pS}aekgKSu™SsMß`¡CqZ·be@Q^o@‹gieMp‹‰]}•}Ľc_Kk…{™ù“A¡r‰[uom@эĥJiq©mʼnq¯Bq]ÙYgSåk_gwU­isTE…“‘ĕiqiUEkue_‰OSsZ‹aWKo¡­q“ycY£w}‹ĩ™ĕS§Z©S™N¥SyLÑ¡±Ks^IY‰PdƒY[Uo†Fp}´\\¬\\j]ˆe܍ò‹¤¡–ā a\\bn™U㺹Ìs¼j®[cíȈEŽĝĆ`ļf¶Š®K|VØDdKGpVnU‚FjpH—F`†B’[pMºxÖjbpÎxp€¬‚|ΟÜÒCв®‚ÜAp„ZG~€Šd˜ÞàV¨|¸€`|Œ²tx~\\~|dFf^zG€ĄŚhœdL\\hĸž¼†ŠOªP®lV`p\\]Xpll˜æ¤œCpQ|oF}fMRi†NSon_²qämœM„NM‹\\•"],encodeOffsets:[[124853,25650]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/tian_jin_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"120225",properties:{name:"蓟县",cp:[117.4672,40.004],childNum:1},geometry:{type:"Polygon",coordinates:["@@EUDAEI@WNMNCBFAHFFNACDJDPBD@@GD@DIFFHEFGDBDEQOFG@EI_KG@OcJQM]RMEKBGPG@[LaCIICBWKCEEG@WBQHCDFD@HSLEJI@IHWECFGAAEKCGDBFCBSBIDCKKHEADMJMFABKOKEQAA@IEEG@GIQAEK@OZEESMOL“lu@SLUTYFQCMG@@SQUAYKAACA@IB@BDB@B@DC@@BGAEFAA@BEGKJCC@AGAIHA@@JC@QEIP@@A@EGIDC@O@C@@@@CJCWKABFLBBEBSQGBAAMIEM@AKBcJEN@BEBCFMAEFEF@J@BG@BFABECKFG@AFQ@@F@BEB@@A@@AAAKAE@GFGDECEFEECBKIKDELDFEDYH@EIACDCHKBEB@BAAC@ADBHABKJIAIJICEDGDCD@@A@A@DHCHJHDFEFGBKRKBGIK@GIMHSBCH_BOJECCJCFKKMD@DNJEDEGC@OJCJHRUL@HRJ@H[DCNKDZHCTFDHCFFKR`TANVDFZRDLFARB@HPAPG`ILAR@TERNDFNHDLCLDDCXDYbHF@FEB@LDDVE@JPNfXPINCVDJJD@NJPAJHLXHDNANHhB@DPNLRMTBFRBHHr@`NBFEBOCCBIAQJDHCHLHFA@HSDCRLFTB@HEFLNF@PELBDJALFLTC@EPFLLP@tUHQJDfIHGTB^JTCPDLKAIBATFPADIEGECEMJ@JIAIHGECFEAGDI\\SPOXAFCL@BQTQBBTMZECYGAHA@GJAE@HCAEME@IECFKJADDBABLTHHG@ILEAMNDJCDHEBF@@JNFJELDFKTOT@JETBFFHBHEHKI@@IJEJ@XKEOUMS@AF@CEB"],encodeOffsets:[[120575,41009]]}},{type:"Feature",id:"120114",properties:{name:"武清区",cp:[117.0621,39.4121],childNum:1},geometry:{type:"Polygon",coordinates:["@@FWôµ@IFCLIB@EHNBp]AGEAKAEDMGZKFGBGME@ILGP@HEFB@BXMEAHUGC@IHCLOD@X[NWHWPKAEF[@EKIOL@EKGBNMJ@EIEHKBIC@BAKMIACCFQZCF]DB@ERAKADIHGEIBCGIIECFaGLZO@EFCNGAGDGAKL@BMG@IE@ADSDEH[JGC@CGA@BMDeK@EIACFE@@GG@FIAMM@CCGC@EM@ADE@CFMAAGHBDKIEAJG@DOGCDEKAGIS@KFCHKAEHIE]BeKNO[IFIOELC@A]GMBKVYCDDgGAICARc@MW@AQE@DGI@@AQ@@BKBAIQQYEFW@CEADIGGBCEIiMEMF_LGEKMBBDWEBGRC@E_CHYGCH_IAED@FFBQh@FGJaJ}AHRAREF@bE\\C@CT`FHC@\\BBF@BID@HGDDJ@@FAHKBARECKDAZBJIVNHCTA@EREAMLHDAFFBVFFC@RNRETHD@FOJMACH@CAB@P@DF@@FGDWE@FFSIEMKQDYCCHKb^JADOCIDGNDBdBCFJB@EC\\A@BJEA@JAAAD@HHD@LFBCFF@BERDHNhZQHMBGHOACCEBWEGD@PSJKCGEUD@CINLFGHE@AJK@HDABBHTB@F`DBFLBBHEDARCFG@ABJBAPVFE^FBGLGCFG_BMLEXGAAFE@@JNRVJHFALFBEHQJCTbNDHCF@PlFLJSXCHFHfVBTNJ\\BPJXC^FAVNFCHFB@FFH@JF@\\ABCFD\\BDMCAAJKQBGAILOEGHILECQLWFENJHADC@QxNHFJNLDFA@CBA@D˜UÂmR@FBL@BD"],encodeOffsets:[[119959,40574]]}},{type:"Feature",id:"120115",properties:{name:"宝坻区",cp:[117.4274,39.5913],childNum:1},geometry:{type:"Polygon",coordinates:["@@TZbB@JHD@DODCLM@AP@LL@BNH@ETFN@`E@DNG@CHLBCJA@AICFKDDBKA@\\N@AFNAGRBFjFFFL@DHLBLFQPcXAZMJ]GAVHAIZJFNE@JpDRRDCLFDGXA@EFF@CFFPDfEBDB@DCHCFCJDJIJBLI@I@CB@@ADBB@FALADGDC@@H@BB@FZGFCCE@@FMLALJDAFFFEFDFCB@@AHCF@L@@BBB@BB@FC@E@@R@BEL@HEFD@G@AH@AIB@@@FEFEBALDDEFAFO^IF@JCBBFPNJJ@D@PRDCEKBAXL@BIFD@T@JE@BHHJORFDI@@B@JGH@@B@BDDLIFFHCD@D@DEE@BAAAB@DAF@B@H@NGLJLMRDNMfGIEPMI@GDAKK@KIDIJ@GE@CFDN@FE@GFEPGV@TCDFKHBBF@RW@DD@@ID@TJFKIKLI@EP@IGBCLAEKLEN@KSHIGYACSD@SEAMBBMGEBMQBCMIGKFB[D@HDLPHDBC@IFITDLG@IIIFGVBNJDLN@VIRI@YIAIHIC@CLKZCBEE@JECEIHEAKGDGECBGEEM@@DA@CCCBBEGA[GEDBBoNAAH]MKiIAWKQoIIPMFQAEEDMH@FMSUYIeF@EK@BIOEKJEBICFKaKPFAFSE@LWCCFMHDDEKESBOGBKIEIODLG@CCDEQCEDWEMDIEIB@EHGEEDAEAa@@HqDEJGF[AECCFa@WCEIKAAEQB@FCAE^YDERDDJBLNABD@AJGLJF@FNIAMLH@FPKLJ@FE\\BFOLGXMXW\\C@KPGD@JHDGVFBWN@AEAGFO@KH@JNFAHEHYLNHFCLBFBBHo^MAFGA@KJED@Jó¶EX"],encodeOffsets:[[119959,40574]]}},{type:"Feature",id:"120223",properties:{name:"静海县",cp:[116.9824,38.8312],childNum:1},geometry:{type:"Polygon",coordinates:["@@NGFMDATCNDR@CCbINEHNJA@C\\EEGVE@IhE–[˜w”epc¢·²›^QEKIEKIgiQDkehY£uSDBMkUDOJDHC@GF@CAFBFEN@C‹Q@BeP@@G@HD@@MHQKi@[IGCOCESE@GMA_OcCGDu`aˆ@VZzKDkJBLNXGDqKEWE@cFEFA@ƒISIi@@KMABJGBcMuFEzGVH\\ATSEUBeALCEMG@CEBUHUCGXaBPtUBBFIBFTDFF@DDKBFNGBJPHXDDMDCLJ^mBIHIL@LR\\@LCR[@@z@NFD@LLBNb@RHDBNTPT\\F@BJF@BXCFBHHBDLFB@HODADE@@JHVXCPDHCFTLBBFNCDCCCU@@GAABEHHZHBCAEdEjFDD@GfD@DXFCHF@ERFDLBH@"],encodeOffsets:[[119688,40010]]}},{type:"Feature",id:"120221",properties:{name:"宁河县",cp:[117.6801,39.3853],childNum:1},geometry:{type:"Polygon",coordinates:["@@BFLBFJXDb@DEFD\\BHEFIrC@Gb@FBCBFFGH@FJAJFNCXFFCRDCFDDH@CKJPJFALPHTALFCFGCENDDKXF@ETEBO‚bLELJDFALIPFAJL@@FfEZJTVENG@CNFFRBNEJOpJLRBXjJNLG^BBpMAAFC\\HHBAFDADDB@@CN@FFAHFDCHLHFBJGFCFUNKJJTD\\XUXF\\^F@DDDQXXBRLRCBDFEVCDLVDpUl@LEDJHAPRFGL@CETGPBTCDDVI@CFF@GFDCCVGLKEK[Y@MECISG@BKNSCGCKWEAaEBEKNGFSECO@GGM@GYI@DÅCMLHPTF@DJHAVVNKEGDETJ^[TJNNd@NOAMFYJ@@GFANDPEJB^aOadSTQSI@MHBDIEOKCG@EEFCKCqXO@@DMFENCDDHCCGJ]AKFoDaGGHYFDHKJiCMFGC@EQ@AEHGAC@IEAATKOHGIC@IXIFEoƒGE[JCFCDHNmRADFZMF[EEBMO{GU@AOW@@]ZeHBDEHBKEfQkuIWBs‡@EC@d[@[^EDMTKCEEcI@cDAB@FCBCACmOCG{PYHeBgPwPFDDALFFFCHQGSD@BHFAR[TaFYXMASUiGFL@DQNCJI@@D@PLDN`ETEFIGMCGBCE‘~CAIFDPEHGEQPHJADFJGHCJLB"],encodeOffsets:[[120145,40295]]}},{type:"Feature",id:"120109",properties:{name:"大港区",cp:[117.3875,38.757],childNum:1},geometry:{type:"Polygon",coordinates:["@@JFFL°_`ONJKDDFIFZN xlb~yFVNRŒrdJGzDPVFBCTNND\\UR@E`F@@Ip@IWGUoawOEE@ÏDgK{İEEMFëC—b…™@—KwOCDHHKBDJCDEEEAGHOABFABMCgDLSQ@CFEB‰MgYIDQINE@AUSwSAdYEHQMEyK[KI@GRMLE@@OqOoBOnpJ@BmEAFHL^FDB[C@BBDVFAHFJENB@sNEjQAMYsUgCSBGDJH@\\LjGR@NC@@G@HO@AfR@DŒM@EFEADBE@@HGDICCPlVANTC¤vgZlfRChjLJ"],encodeOffsets:[[120065,39771]]}},{type:"Feature",id:"120107",properties:{name:"塘沽区",cp:[117.6801,38.9987],childNum:1},geometry:{type:"Polygon",coordinates:["@@|ODHnPBDADEDA@CB@ddJFFLDNSFC\\]\\@@cFDˆ@nACOMW@M@ITURBRZNHNWRQšoO•j½f‡cqŸAqeiDÿÍyÓįFL|Ch@ÐFFxPpbHVJXo@@JCTR^BPABQA]^MB@bE@@FQBFVJRH@FXtPNZSBAja@@NƒDTŽLJrQTHFXZFB`"],encodeOffsets:[[120391,40118]]}},{type:"Feature",id:"120111",properties:{name:"西青区",cp:[117.1829,39.0022],childNum:1},geometry:{type:"Polygon",coordinates:["@@@LHAHRHATh`LHNHDG`HDGZ`D@FQDAHXFACNAFLVRTBFOfHDCVBFQH@HSXHEPFB@LDBF[bDbLFKJBFLADBDjLvCPEI]FGEIGCBEUSjcFiBIVWfaHCjN^HtwBBFGPBJGjFBEGECGDONMFAP]TDHQOWCMGAMHKIJEIGQ]aDlUG]VGEGDC„{PEbBZmE@@GH@BCA@FMQCFMYMJECELCMI_P¯`]R±œ¡¸od“f—x•\\gF@JUFFH[F@DIBGMMFaJDDQ@MCSDCBENMH"],encodeOffsets:[[119688,40010]]}},{type:"Feature",id:"120113",properties:{name:"北辰区",cp:[117.1761,39.2548],childNum:1},geometry:{type:"Polygon",coordinates:["@@ROHFFGCOJEDB’}DFHANDJHFEFSM_KC@O@CJ@DIRM@CEKKA…L…FKACHoLSJSIBETDJaEIIE]E]K[MYUYQILC@GF[MGNKEK@A@BCWECAIFEFYAGFOMI[OFuDiKACBCEKIAELaKaCE\\CA@KEAFOWGGTG@ERUACDeGEPSAUQKHE`FNjNFJADHHCJFB@DEXZFRRBJLA@AR@@BJ@CHF@BRX@@NQdDBBJhHCCZDLUNA^H@BKDPFEJ\\JMPfL^AJFFGLBDGLET@HJLBCFHDCPH@BIJFCLGABHNBDEF@BCN@@FHDDDN@BNEJH@@HF@DEJB@FfLNC@AHB@DHD\\IFGTCBCF@@JNH@ALKHBHCHBDMFEP@KYbHDEJF"],encodeOffsets:[[120139,40273]]}},{type:"Feature",id:"120110",properties:{name:"东丽区",cp:[117.4013,39.1223],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZV\\N^L^FJFFJIbSCAFTJTIpKDGLB†E†KLBjHTVNBZWbE\\SBQGE@ATCRHDGEEKECBECxOhOfAZGA_YEEWSGqRKIS„C@Mb@BiTAMYsOEWG@IQEURA@EF@@acUOXQRYCUDCHDTEF[SUEgAYDcVGJM`iAWDWLQRMHUHgDsDBLHJFCFDFGHBFFVEAGHCJN@RJF‡PIhBD\\FENCPWA@LFBAFHBEJUEARCDIAEDQBRNa^"],encodeOffsets:[[120048,40134]]}},{type:"Feature",id:"120108",properties:{name:"汉沽区",cp:[117.8888,39.2191],childNum:1},geometry:{type:"Polygon",coordinates:["@@LMEI\\MTABKN@FCDMH@COAcH[AoēA™M¡Wa[Meq™pQRMXMGQYQASV@J@NNXDPmBAtJXlveRLFGACFGAYf@^X@BPV@|HNPFA\\FNEEYBCnQGMDCDE\\IHFp„EFWJ@JJDGHLPBSFB@JBDGHBFR@@FHDNEjDLICGZEHGbHpCLE^BHIDDCGDCFMNE@CP@rWLDEDFFH@"],encodeOffsets:[[120859,40235]]}},{type:"Feature",id:"120112",properties:{name:"津南区",cp:[117.3958,38.9603],childNum:1},geometry:{type:"Polygon",coordinates:["@@TLv@CNHFFBHGZFETNPhCVGNGRQXKXCjBN_HIdUZChBVF\\TFECSDGVCZDRQPWdVNA^]RBBAAOQ]DSE@F_Q@[VMCSMADUECOHycI‹qMQEU}zkaŸwENRDENB@ADG@@HF@YnaAOFƒ|CDFHUHH^kVbCR^JHIFLJNGHBDNPXGRSCO^EBMNCPDHHFAFiEIHOAEH"],encodeOffsets:[[120045,39982]]}},{type:"Feature",id:"120103",properties:{name:"河西区",cp:[117.2365,39.0804],childNum:1},geometry:{type:"Polygon",coordinates:["@@d@hZNFdcLYXKRCtCMOFSYEGHEAGEDMu@SKAAsx]GMTGt"],encodeOffsets:[[119992,40041]]}},{type:"Feature",id:"120102",properties:{name:"河东区",cp:[117.2571,39.1209],childNum:1},geometry:{type:"Polygon",coordinates:["@@ZBVFFIGABEEA@KXBDOFM[EACJgˆOIE@QIMGDBHUFEEGAEHECEDGIAKQDWLKZcdQPEP@FOFBJTJ@HNORJf@DBCN"],encodeOffsets:[[120063,40098]]}},{type:"Feature",id:"120104",properties:{name:"南开区",cp:[117.1527,39.1065],childNum:1},geometry:{type:"Polygon",coordinates:["@@NMVDCG\\E^B@HlB@YEDS@C…HsNSiMGDebUXAJEjidVTAFHDFJ"],encodeOffsets:[[119940,40093]]}},{type:"Feature",id:"120105",properties:{name:"河北区",cp:[117.2145,39.1615],childNum:1},geometry:{type:"Polygon",coordinates:["@@DBXFADB@L@LFHM\\NHED@JKZRb]QMRAFCJBDCBQYADMCAe@QIMP@GSIAIPE@E[EGH@ZEF]^HJAXK@KF"],encodeOffsets:[[119980,40125]]}},{type:"Feature",id:"120106",properties:{name:"红桥区",cp:[117.1596,39.1663],childNum:1},geometry:{type:"Polygon",coordinates:["@@J\\PNHEZBFEJELEL@BWGI^]FEkA@G]A[FDHUCMNEHJ^"],encodeOffsets:[[119942,40112]]}},{type:"Feature",id:"120101",properties:{name:"和平区",cp:[117.2008,39.1189],childNum:1},geometry:{type:"Polygon",coordinates:["@@D†T@FCHG\\FFOROMEgYc@"],encodeOffsets:[[119992,40041]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/world_geo",[],function(){return{type:"FeatureCollection",offset:{x:170,y:90},features:[{type:"Feature",id:"AFG",properties:{name:"Afghanistan"},geometry:{type:"Polygon",coordinates:["@@ࡪ͇وŐǬϠڐŶӂʮǚڦ۾njƀ̚ІɣʪҴMوǯʲĹ،˒˰Nj˖ϪԈiżŬĘͺβ̈Ҕȏĝʱʪ¡ý۷ͪ˟̊ǰώĊԼϖׂ×ࢀAƬʋӧĥяƹ७ĭࣗǭӫλȤΣĪллΛ–͑ɳ̡ߛ€ͦ։՗ɅΥԕ²ԋ͡ɿ̳þٝŋğɻسDҵӇ‡܍થΓבôǝȁԇņ࠿űටіހހåզُƚßՔ˟ڢάҢιŮɲؒ΂ਸ"],encodeOffsets:[[62680,36506]]}},{type:"Feature",id:"AGO",properties:{name:"Angola"},geometry:{type:"MultiPolygon",coordinates:[["@@ȸصʌԋȘ˕͐ѯ֊æˤŠҬşŲɀɂӨԶ®ƤіHñ̡৴RfՉǞ͕ūԑÖԫ˪̷­ৃȼüκsԴŴϦ¹ĘʹĩСƨϿů̿î́ყZᦵ֤ۋպԽ໳΁᎝Š׋Ж₭—ŵÏԃϞկ~ԉƝЙDžÿՈŜ݊̂ޒªΰ˚ݶȨΆӘռːϐĘج«ӊʣ̜ɡԚȵԎ®Ǩʶͬʭ߼ǣ֚сՐĄǎΌŔʒg̎ĸៜ["],["@@ɉėɣلͼδʪƘ̀˽̩ǯƍɍλ"]],encodeOffsets:[[[16719,-6018]],[[12736,-5820]]]}},{type:"Feature",id:"ALB",properties:{name:"Albania"},geometry:{type:"Polygon",coordinates:["@@Ń˷ŢέΒȳiə˗ŧ»˙ϷСƛÐgȂү˰ñАîֶŖʼƗƂÉˌθаÂƿɨôǴɥȪďȨ̂"],encodeOffsets:[[21085,42860]]}},{type:"Feature",id:"ARE",properties:{name:"United Arab Emirates"},geometry:{type:"Polygon",coordinates:["@@Ƭ¤ŒɱڂƂ۞uԖ{ֺ֪ظՠՎԮdž˹ŖڑѕGçճƪŝϝǑE΅ʓΏuͷǝDZᡋъ͏࡚Ț"],encodeOffsets:[[52818,24828]]}},{type:"Feature",id:"ARG",properties:{name:"Argentina"},geometry:{type:"MultiPolygon",coordinates:[["@@ߗ§ѓ̔ԑx࣑@Aሞ͒ϵрؿનԋ୲ȿϙп"],["@@Ӵ؇͠ڰॠ“ƊǷ໶ോۊŷਆاࡾ͡Ŧχࠡ౧ࡒɭ़ŷڔƈނ٢ƎݐжLjфӝiڣۻҩ֟΁ॅࠃ૭ଧȽڥɣࡹT࠷ǽȇÝիËѫ੨ܙŗ׃Հν§Ч߯ઁఛ҉။ǩउĎǰԅǣػƺщԋ̏ࡱř̪͕߱ɗŜ࠳֨ʧҠˆʢѧޛʻڭԹūࡋȣ҇ߏEڃљʋؿؙࠞߦǝ˿ݭ঳Ӄձটލͧ΅Ͽ˔ࢍ֔ӡΟ¨ީƀ᎓ŒΑӪhؾ֓Ą̃̏óࢺ٤φˈՒĭьѾܔ̬૘ěӲξDŽę̈́ϵǚˢΜϛ͈ȝॺ͸Ǣƙ਀ȠࡲɤݢԊ̨ʭࠐEޚَոo۰ӒࠎDޜɓƶϭฐԬࡺÿࠀ̜ބռ߂צԺʥ͢Ǭ˔ඔࣶд̀ࢎĹɂ۬ݺશȱ"]],encodeOffsets:[[[-67072,-56524]],[[-66524,-22605]]]}},{type:"Feature",id:"ARM",properties:{name:"Armenia"},geometry:{type:"Polygon",coordinates:["@@୞ƀǨə͌ƣǛɁ҄˽ʁˋΦɫϘƏl׋̣}΃ӢHżχCʝɤǩuͧʖرȼĄФƛ̒"],encodeOffsets:[[44629,42079]]}},{type:"Feature",id:"ATF",properties:{name:"French Southern and Antarctic Lands"},geometry:{type:"Polygon",coordinates:["@@ը˃ߐĿˆDžɽϣಇÃq҂ŮΎÊǢ"],encodeOffsets:[[70590,-49792]]}},{type:"Feature",id:"AUS",properties:{name:"Australia"},geometry:{type:"MultiPolygon",coordinates:[["@@ߺ́ҜŘپNJԎÉÐঽ˽́ēگ̉ɰ׍בǧ®ԫ€ԭܘŗֈӝܸtϬռõ"],["@@̢ڇբ̈́˦ΡЖ͟đϋǴܛŸнɄĹɬܕąѥ˖֭࣬ѭצЋ֞λŋȯӔՃࣧ͜ͲȂ;ηȴźƢࢹ׬ԩϸ͋ڀڹʀڭtӏËԳА܋µݓơϵɩݡjӕǕ׻χއثЭ̫ٱ˫гʝܧ͕нɅػʼnׁªˇӕ̇व‰ޡ·ϫ͙ԕέ۟ψԥƪżѬҝǃ݁؉ܩɪӉƄӑÔ߿ʐիԮƻْțьЭ;߱ĸˢРȯزЧ׉ݝƷѮҬŶӞ͘ЬãجہܑԿ˽͏ڛٽΊ~ҀԿ،ѹ̀ǂȘઃԚןz߯Цຓāછ̝ख़˫ߡÈࢻљܯȗljѱ̳Ϳ܉qՅõݑƶ׿ğֽԁ҃ʕœуʁЗˋؕ֛Bࢽ՜ҋDŽlӖкŘƚȒ‡̠ĺאģӼѻࡖƏӒ˜ӎͭնsʚϋͰĽڄӓڔřΪτε˳ެиʑʞ͗aјеڎă˄țʦĠӠǢȸŘрęӮΎ؀Úٕ΢׀ۀˬЦΪٜ̰ϤàɴĻڎ̺ԚĤŶȀɞüҬoࢨʖҚώɊ҆ӲѐœͲvҘט܎ΠܩΦǚ̗Ј˂ТψǻĸٖҠаȮͨцƜ`ɼτĭdɂτŦОŔبϫҲӽՂMՖÿDZҦДڪϜɘſȾκӒԘ̒јıۺǂeі؛ˢ҂Ū֎ȻҀ·ۼɋʈĐԶʵӬʊ͂ñȠNJϬеɡ͉҇ͻ˿ƒĮͱʙп̗ЭÔʁڜҫ٨ˏѠ́؈ӻʂBѰɍŶʷߤ˵ֈ˼ǐҊǠόľҤʰڞŝОÔʔīӔŌنLjǠŽˬȮѾdžҦtʈ̸̾ʂЩÎՃȾķ˜Λ̨ёÚӇ‡̥"]],encodeOffsets:[[[148888,-41771]],[[147008,-14093]]]}},{type:"Feature",id:"AUT",properties:{name:"Austria"},geometry:{type:"Polygon",coordinates:["@@Û΃ӁCǎǻ˧էLJƗܽsщȏۛÞயɐȉ̊ࠧƣĭDžԗŢѕxϝƶźȴƬʪ²ьɹŤɜݎ•׸ƮЖ}ˀǣþƜšո̠ń̒ϰز˓ӀΆ̐ÚٶʱЂªϰǁãŃČ̅"],encodeOffsets:[[17388,49279]]}},{type:"Feature",id:"AZE",properties:{name:"Azerbaijan"},geometry:{type:"MultiPolygon",coordinates:[["@@ʞɣψDGŻ΄ӡֽŒщϰƃ͆Ǫv"],["@@ϊËƞɈԈͺѴѵђ׭ϺŸʸɧۗãƣٵƟ̭̍ȝvзȽ¥ԻѲ̂дʝʚ̿×যإk׌ϗƐΥɬʂˌ҃˾ǜɂ͋ƤǧɚȶƎضʍҐ¹ŘIJбҔɔŚʀ…׀ԙ"]],encodeOffsets:[[[46083,40694]],[[48511,42210]]]}},{type:"Feature",id:"BDI",properties:{name:"Burundi"},geometry:{type:"Polygon",coordinates:["@@Á০ɃϢԜßʲӎҀŸͧǸȏT˗ȹǭ͛ѫ̧̥΍Ÿ"],encodeOffsets:[[30045,-4607]]}},{type:"Feature",id:"BEL",properties:{name:"Belgium"},geometry:{type:"Polygon",coordinates:["@@؜áުǪՐοҦȝħ֧ɕĝһܿϦћßדІϷͶϷ`ũ̒ڪǔ"],encodeOffsets:[[3395,52579]]}},{type:"Feature",id:"BEN",properties:{name:"Benin"},geometry:{type:"Polygon",coordinates:["@@ۛįȹ׆žኞǛǦЮ̇̌ʱʞņѶ̀ĨǠξЪĀȀʤˮʘ̠F٘ә˩ȎӽǓͷĘɧСԳʵʳǁՉt՗µണ"],encodeOffsets:[[2757,6410]]}},{type:"Feature",id:"BFA",properties:{name:"Burkina Faso"},geometry:{type:"Polygon",coordinates:["@@ֹɐϽ‹̍Ƀϗǰƥ˦ϙǾÅӦɮΤo˴ښۢŬּɲȴОœΚǢŘɎٴϖdžˀ޼ΒҦŢɀLJՠJáСŔϣӀչ€НॺȏmֻǿʣЩÿǟν˿ħ݁lϳâ˓ƉωÖร¡qӉŘم"],encodeOffsets:[[-2895,9874]]}},{type:"Feature",id:"BGD",properties:{name:"Bangladesh"},geometry:{type:"Polygon",coordinates:["@@i׽̉ŶÆگʉѬµєDžКΕӨޟ’ü΋˃ҳΧǠũƵʃĠ͗øŽۖ̅لƜԒԫɤȆ̪Հ̼؅Ѽ֮̔ږεВ£ô׏ߞřު^Ӟƛϯ܅ϕµʷӍҢѥƎ՞ɶFѶ೯"],encodeOffsets:[[94897,22571]]}},{type:"Feature",id:"BGR",properties:{name:"Bulgaria"},geometry:{type:"Polygon",coordinates:["@@ʎΉ͚Ö٦ſ௾«иɌবȜ̩ؒӴĕѥΏ̫׹˔ӏܣŒࡥ˃Uлޅÿס̊ڧɱة|Ñ֊сːƒŢĝĴƘˌ͌ˀСδ÷̬ȸȐ"],encodeOffsets:[[23201,45297]]}},{type:"Feature",id:"BHS",properties:{name:"The Bahamas"},geometry:{type:"MultiPolygon",coordinates:[["@@ȵ£ɇӜ̿ʐǾՔʨ‘ۣ̎Jӥ"],["@@ࣷƅÏ̴Ђäֈ{~ɕ"],["@@ƟׯƷņ`ѮϓͪCĪڐϗ"]],encodeOffsets:[[[-79395,24330]],[[-79687,27218]],[[-78848,27229]]]}},{type:"Feature",id:"BIH",properties:{name:"Bosnia and Herzegovina"},geometry:{type:"Polygon",coordinates:["@@̦FȿσМ͓ūЃȡ™ƽû˙țūҥݓ͈ͅΘ͋Ȅϭ̾ǻʺЩϾǬΒ̞ȕǼǨϾnܠƓ׈\\Ϟȅ"],encodeOffsets:[[19462,45937]]}},{type:"Feature",id:"BLR",properties:{name:"Belarus"},geometry:{type:"Polygon",coordinates:["@@߼Mࣰ̈́ȚӄېːÿϔԜƚ͖ࣘࢮɁŢȻѲĴࠒȧĊЁǷɧՄս΂Ƴ»Ʊ֦Ʃʎɡ͝ǿڳˆljÿȠ˧ȸ՝ܝ¹ʵȁÃхͭĆݷ¡əȞ̿ƥ́ŨڍjफȬࡕàٱmҡɩГeϐʷϴԌǢLͰɷ͌™ϊ"],encodeOffsets:[[24048,55207]]}},{type:"Feature",id:"BLZ",properties:{name:"Belize"},geometry:{type:"Polygon",coordinates:["@@OŮĸžƴı̞ԔDŽZHūDŽGaɭƋεôŻĕ̝ÀăīщǓɟƱǓ̅ʣ@àॆPژ"],encodeOffsets:[[-91282,18236]]}},{type:"Feature",id:"BMU",properties:{name:"Bermuda"},geometry:{type:"Polygon",coordinates:["@@OEMA]NOGNG\\Q^McMOI_OK@CQSGa@WNLVWHFLJXVFGJ`ZRTDLeeWKIHGIK@@[MQNi`]VDTBHCJAPBJLVFjT^LV\\RJZRn^RH`TfJjZHHOTTFJP_NOX[EYQQKMEJOLANJH@HQHAARF@ZEPS[U_IcRQXE@EEKKOCGGCQCOGISKYGUC"],encodeOffsets:[[-66334,33083]]}},{type:"Feature",id:"BOL",properties:{name:"Bolivia"},geometry:{type:"Polygon",coordinates:["@@य़”͟گӳ؈વȲ۫ݹ؅ŗ͡୆ҋऺˆ߾ѳ΢ŏ؆ЫֲՌ࣢αۺȖ˰ƭ̶͠рh܎¤נǸ˶ܩഠزíѠnȈʪ݀;Ѷ͂સƚęؽļ͓ãࣰ֛ݫऴƑ̻ͦ֨ǕΐʑՈTӦʟšӟǐʕZγʓa͒এྖ“ūӟĜͧҞɽȤԹƫڋɯρĄӏʿǥaʶ޳јޭ^ัʓЕ݋sҋͥ৕ƉǸ"],encodeOffsets:[[-64354,-22563]]}},{type:"Feature",id:"BRA",properties:{name:"Brazil"},geometry:{type:"Polygon",coordinates:["@@૮ନॆࠄ֠΂ۼҪjڤуӞеLJǒӜŖӼBҦ̡ƴ̿Ƌ̻œį͔ýޔƿʤ֥ɪ΃ǏࢱLjÈଜʝҴˀǦăӐɰςƬڌȣԺҝɾěͨŬӠྕ”͑ঐʔbYδǏʖ™ӠӥʠՇSΏʒ֧ǖ̼ͥळƒ࣯ݬä֜Ļ͔Ěؾષƙѵ́ܿͽȇʩџmرîӃƟϡĪÈ౨ۏӷݏv҄ͅ֏¶DzΰұԞΓݴɜƶA΢ԖʎċҔɊ̈Ôϼ०ֲێNJŔŴݴŸϚᘰpθſӔύ̬LؐӀƒǚē†͐ӯĔYՀ࿖k˦̂ɸˉǐӷǂļҨѻٸÆnjʲشȞΊƐĮΤ׸ʆ¯Ǯ܅ðśՊ’֞ϓɒǀþجŅڜȿʐȤ؀žल̮͎̾ŏʂѪšȜȗʼnσ̀ŵȖϷɷ̏ƅ܏ɌыÔϳԬϿЮ¥Ģǒˆ˜ϠƦ˚ɢҬíȲŠҚçøǢƗǘĎʐͺõЈĒӔDZξǥʺɪȊ•ŘɿДÒ͒͊ʴؤӼޒ˺¢ȺҫҼ฽҈Ƒxׅمەʾʩ๤ƁŠࡃٔր੐̟ඊԡШӱƏҫ঎ʶ࿐ѹఴŽఔ۝੸व٪ʏܖ‘̦˅˸੭Ɣԗͯ൹ёշஅୡՙोثܯȿgɻءÒ༽ɹಓęօˇͧƫ૱࡛઱ƛࢁڹηȟԋ࣯Fೕ͓סύवʗ঩ڝ܅࠯ũطƔҫƽࡓȏЧחҥट๕݉ڗ֯Ͻϥߛ։ӑɷӈψЊӟֲڇҬࡹՠ̹{ࡅٰձę"],encodeOffsets:[[-59008,-30941]]}},{type:"Feature",id:"BRN",properties:{name:"Brunei"},geometry:{type:"Polygon",coordinates:["@@ͬ̾܎Ң›Я·՛Б€ǭ˹ϥѦ"],encodeOffsets:[[116945,4635]]}},{type:"Feature",id:"BTN",properties:{name:"Bhutan"},geometry:{type:"Polygon",coordinates:["@@΂ˍÏԩۇ{ۿÈՇſޅ͊kǚ֌زҒɈ׸șѺqπɥ"],encodeOffsets:[[93898,28439]]}},{type:"Feature",id:"BWA",properties:{name:"Botswana"},geometry:{type:"Polygon",coordinates:["@@ǜƭ˄ӡॎइήĝD̑ʚՑٰŹ՚ϝ஑أݭع˩֓ʧ́ҙãƧГďʽ՝țہ¤БɾΟĸХșȵГЉʧпϑ׻đȇ̐üԠӽߚɧŲAរࠤˆ|Ჾش„ಖ͎̎΍՜ͤʮDӂȎưÙ͔ڣ"],encodeOffsets:[[26265,-18980]]}},{type:"Feature",id:"CAF",properties:{name:"Central African Republic"},geometry:{type:"Polygon",coordinates:["@@ۜÚƺɎƔgȾȏ੔͐Τ͠Ѭ̌ĉ̐ʂüߺ½߆ϴ؊ࣺю;ՐƜĪΫӜԿF΃ƋΓÄʻ̆ʍٖοҢͻT˗֠ѫΖεɆԋغͩƊˉˣęաpكĘ̹ïųȱ˕}ͧDzधнϥĎŗÝʥԕطǐؙĊ՗̴ۓ˸҉˓͛яùדգ²֩Ƙԅѻѯޱėʐ›Ϧϧ˔̳Ѡï̠ЇѮæʢċΞÞٴȬƴц࡜"],encodeOffsets:[[15647,7601]]}},{type:"Feature",id:"CAN",properties:{name:"Canada"},geometry:{type:"MultiPolygon",coordinates:[["@@؎œުxЯ΅̵Å੥Φȿˬ͆ʸ̎С"],["@@Хcઝ˂ޯІ̄î૆Ɂ࡮Η|Ʒ"],["@@хŝൡϢʥ̘ݩ̌Ưʈࡻư͕ҜðȚࢨǿԨŵ߄ė˺̃дЋ࠼΍Όҩ"],["@@։ܿո˴֠ǵ̏̉ݚɱϰȴ࠼ʵʹ؛טƞņѿʼԷΝ݉ϝ‹փǂǾیɻńইܯԅ†צЂ߫Ȳࣙ¹࿅~ŹʠԼ̐λɬ۸Ԓࢄ೾Զӎܲ̂϶™Njɫ҅Չ"],["@@@@@@@@߰äʥ॓ܶگͯDԑϪ̵ϮчʾƻτºˎЂŋ"],["@@͡ѳχîəʢ Î͖ʦΆkɈǣ"],["@@ঝҧץnǿɪزϲ଼SiǍ"],["@@ƼυјżӨɗं˽४ʽöЍؤÞ׶˥ݙ˃ಳȬҽϚ࠭ҁ஡ѣ˿Ӯଗăܴдņڌ˺ޔ؈å"],["@@ष¥ȿЪΦҼޖŜپɷXέħřձʛ"],["@@Է̍ଉʬۃğଫϘ݊ʼטζࢼʃԎƯʦDžԠ͍"],["@@G࡭૰ڄ৐եʡح߾֥࢚؈ؖܨ°ईஞÝఔūૼй¼зس҃פ҇ŃУ࿩חୡŻࢃʨʣуߵ۽ʓοই֩ளÇڏΡÇձ঍Ŀਉڻ࣭ु͙ڏ±উంƕϜ޻ϼّ୲ǔ༞εࡀ͋׺Ѕ੆ɳࢸΟ൶µࣴąƍܫʼࡋ،ळనߗ٨˚ҔࡺѭೢףѶഎЀ॒לҮהç֭֘܌৷لলࢤνݾ˫ಾגȘ෸ɫࡸć۠ɚ޴˵ਚӣʮ͙ຄÛ}۷˪ਜ਼ގſ،ӵ௖Ұߦऔ֌ϸٺݣબੳघ৙͵Յ૤Ӂݰӓംɏբˍͬ܃ټŏͶͅÖऻ؍́׽̏൯̗੏ۑ෇ƋᅛǮుPࢇÍ۱׽ੳω௉૗ॵޡ܌Ɛഘૄᄈ۪సČݔЫߍ֟ˊࣟ˜هતп൸ŨࡆीÎ؍ժ̥ਣսᇷԁ࠯ͽय؁ٓ֍܆ฤ۞഍ƒणĹջӆBନύʐ֛ƛ˧ɚٙىʱٹ̕ϡΥŽˏ¥čȹ໽A౥MϛƷࢵ؃Ŀßˍ͝ޗBࠛGϛƅƊǑøʯeďષлࡽſউ҅Ɂ@˷ƂĥŦnĔȂ̎ЂҦʘӺǙܴǵނ࢕ЂľƬūĺɳ@ǛƆ¥ȤǍēɥ€¾ĊȡĊćɚٵːڹ˪ࠑ͘߁̨ݧʃ˝Sਕɔڻʼnࠁʺ࡫Ɔו¾ʻƜƫҤ˳IE͓჏BᮝA᭯@ᡃ@ᠿ@៙@ᢡ@ࠛ@᠁@ᛷ@őF྽ࠜ׵δຽΐҳݖŤԨ੻ΨƧڴ৭؎iѠҲКwՌෙ՘࡭ॠՁ׾ޑϚ֣ΈѿѢࡇ˕ࠇҹݛւדπࠋɸࠟ|JⷎNᷲ༬ȭ೘Й࢘û݆ΖৰˀఢĹ఼τ൘Ⱦ־ΑظȠȊЄ׈ęෆݫ૦֬ŖّਔƐ͆ʖৰ·౼Λዸ̭ୄƛࠖÄଊэ஁зຶǷᗘIJܒƦࣆԋࣴьࡩΦժ˼৾žڦĎڴȩࡊҗरä๢ϛಬƄ௬oĭԺݞƦದ˵KߑՖڠڰuϞࡊ࣑԰কͺäघশ؎ૌƇࡘχଞॅݗЭ༠ǝ"],["@@нϿሎʬୠщॊіސ˟یࠛфΒ׭ࡰ݊Ŭ࠲Ƈश͹ՆࠉʼץථеະЉĝσൡã՚͓˱ູ̯Ƃฃɪঋ»ཅ˷ᒃű๻āҕІଫɮݙģਛږ֔ĚಘƜஈ›રƦྷȞᅗã஗jѷ̴ዎͲಗ[ืɚ۶ـגͮᖬԠ࡬Nj"],["@@݉ևಹך˸Ş૸’ٔȁ"],["@@öɵࢿ|ࣟjࣿőʑ¼ऍѾ˜̠ИÈነěชң"],["@@ڎԽޤڴᒆΈ෺ࢅůջဒʒߒͮሀыୄЏŊν༚Ȑ࢘՗᎐ܸͩ͹ߐ޻໯ϹጘչೲȁீޙೖÇʽכ้ঋਗά೓߲ઙĿŁӕࢪӥଜϯΌɟմࠩ́׿੕ɪᑏڨஎܣ࢔ԕƎ̉ᗱͲᅩӤ৳Ц̌ʂయќ௥Т`ʑᝡƅ܃˾ֆؤ཈dႸņ˫̜̊оચࠊɳϊ͕˾౿Рၳ˺՞ɆࢷԺ݋´ڏ˸҇ʛ຿ŅᵝȈᄫʚഹŴۥ̐࢞Ϧ஝Hˉ࡚٦ݨࡺ΄ᓪɢأի"],["@@৊ǯຄńɖʑ޷Е౜αƱݳ൝͗߳ê׉͎ᐡٮjˎ႖ĽएռসР"],["@@࣓عय़ŒԽ݆`кѮΨ࠰ɮც‡ྈȱళݟ৉Ǎ"],["@@ᕍЙѷςኹѺήΤ׌ؘܰւࠑԦᭊƀ஬ǧᒰ±ࠄʑࣖΝ੍ɃᏝןਫי@ν"],["@@ҙ͙௝Øৱɖ҂Ϛீɨܼ̬̍ˇ"],["@@ٞϵ€љϣس൱đࣗƈjӬ൝ÝÁٮࣜౌ˺ஂµÜŎ"],["@@̙͢ݠƘࢢ™ƪЩԝЋ᭗Žᑯη౩mŅ˜პϊ④ij୯Ʈପࠐ߈ɾᛄ˳๶ӻฺÛறߨޔ̪ࢄĭ˲Џ"],["@@ढ˓ကFܨˡȑ́८ȍՔȧଊ™௬ë೸ǼႊðീÏ࣒ͅȊ΍ԽɟభǷ੽ĸᜱŻႫcഫļᖁ˔̃ҦĹжࡇξ჋ĺঅʼ͂ΈႾÁ"],["@@ŗ٣٩̇޹£༝Ϋ഍ŹଗǼ@@ුؼႮծಆ[ସŬ"],["@@ϣy༽Âɡɼၜ]מƻĵĩ"],["@@༩ʋఝ˔ڼˎ௮Đஈſ˩ʥ"],["@@৽ǏඉBbŤࡴʦҌદǝ"],["@@కǥۃȚέ͂áΎજ‘ӪÅ৐̇ɫ̣"],["@@͜Ε൏Ĥ൩˘ሏŒߺʠ৫ȮÕ͐࿶ŕᗢ̫ٞЍ"],["@@০˕ଽʟ༇ك๥Óდņࣗ΄^̦ڔɢ໡Oए˨ՑϠ׌ώ׊ʲࡴÎοȖዜ¨੶҅මǵ൞ǃڒև"],["@@ᖢßᅮŅ໤ɫ™ɡᏅη᎙ǟݻȉᆬJጡԙേʃ෯ۇႿƓՙǡᡷěୈĿׇƭ۞бߙ˽ಛʃЋ͡୫ʣŞȏ෬lȳᖟԋᔧɴឿŻధĸཟªĿЖ༊Ȑб؆ԢÐᖤγ଩բഹLjڼ͘๰Ȩʄ̊஋͠ΥѠᘞ—ڒĝ಼̪ቃĬ᰽Á๣˸۩ͼগʘȁ˺దLjঘ‚࿲ƌం̺ਬ©ࣤɽٔҒૐƈບĢᢲ–Ҁĝ᝚ƚᆔÁᆒÁ"]],encodeOffsets:[[[-65192,47668]],[[-63289,50284]],[[-126474,49675]],[[-57481,51904]],[[-135895,55337]],[[-81168,63651]],[[-83863,64216]],[[-87205,67234]],[[-77686,68761]],[[-97943,70767]],[[-92720,71166]],[[-116907,74877]],[[-107008,75183]],[[-78172,74858]],[[-88639,74914]],[[-102764,75617]],[[-95433,74519]],[[-123351,73097]],[[-95859,76780]],[[-100864,78562]],[[-110808,78031]],[[-96956,78949]],[[-118987,79509]],[[-96092,79381]],[[-112831,79562]],[[-112295,80489]],[[-98130,79931]],[[-102461,80205]],[[-89108,81572]],[[-70144,85101]]]}},{type:"Feature",id:"CHE",properties:{name:"Switzerland"},geometry:{type:"Polygon",coordinates:["@@ƫŹȳϞƵіwá΅χƙةŀǻ͹ЏơƄһ˵Л¡αǶ˽ςБſ^ϠؚҾɈϤûɲƞ܎MǦǼ࣒ʱ"],encodeOffsets:[[9825,48666]]}},{type:"Feature",id:"CHL",properties:{name:"Chile"},geometry:{type:"MultiPolygon",coordinates:[["@@Bም࣒@Ԓw˧ͻܛʻЭ‚ӻä؏ʨ࢟ŨੑҸ࡫Ҏୃशۘǭ୼֗૜̟ѢϬ˘ֺޠΎװı"],["@@͢୅؆ŘĺɁ˿ࢍࣵг€ඓǫ˓ʦ͡ץԹջ߁̛ރĀ߿ԫࡹϮฏɔƵCޛӑࠍpۯٍշFޙʮࠏԉ̧ɣݡȟࡱƚ৿ͷǡȞॹϜ͇ˡΛ϶ǙĚ̓νǃĜӱ̫૗ѽܓĮыˇՑ٣υôࢹ̧̐֔ÄgؽΒө᎔őުſݝPЙȷݷ̣Ɖ޹Σoॅ˚१ג@@ਲ਼ӔˁՒʄӰх֒Ņ෤Φ߰ࢴٰౣʔߞݒ˸ඊत̏Ѯგ֝ɠʿ਻ՉŠ˂ல˺༒ϮָʍࠎéूΠ„Ԩപ׈എΤబȗ఼ʤۚĵਞӮਆưྺ˒ნˀሤÕ൘ǩ஄ќɌɦњЬֱŐ؅ѴΡ˅߽Ҍह"]],encodeOffsets:[[[-70281,-53899]],[[-69857,-22010]]]}},{type:"Feature",id:"CHN",properties:{name:"China"},geometry:{type:"MultiPolygon",coordinates:[["@@ԑഓΫۏѷ܂ĩخӶࠜڦَϨʡƣԓ","@@ܩЗۏʺyܢаϠࣾɾӚoȊ͍σσșӟ"],["@@ฬˍ঺ׯͼ߃౨Cܰͨ൸ʜѳݱ͙̭˽ः֡ࠇ৵ƪܝ̑ɜܙť঳ѕwLяթӺͯһಙαƀѹܩŒЍ˂ֽ׭ऑҋۃա୭ʑأϽࣝɭ҂ϴǭ͞ږ֠ѹѲܷ̓ॉ׏ԫթ࠙¡ѓϻѸ֩یƏ„ϕڔʕस׶ݚ͝լuƌѱஓɻϻҏࠇућיࣜҥͦࠝԞޓ֮٥_دՅɯȪ҃ӶʻŻۃɇڗҷ÷ؗࣧڹિޭোିޡୟۻृĩԣύ̃˘Ӈй୭сࢵŹ˻ࢱҭ·ə؎Ȧ͘ૻːЇƍࡍɔЏ΀ƄӜޏƶЙܑ̀҃ࠇīڡJ҉ȳѥūŶ॥҃x÷Ȣ}Ύ؝ʓεƸر͂ʔۤՏǎȧޜࢱƓĴাߔۮ”ۚ{٠νȨ˭ӶӭÙࣟŲ˴ΜϿԺ׳Ν۵ȸॷ՗އسڳĿοɦѹr׷Țґɇ֋رëڌԟǭওĈोȖڿτٵǔ˯ЖҽŦࡓոکʴΑȩଢ଼טࠛՒɽऐ׾ő‚іͭјĐۆࣙঠ൧ͼʝ٦ةϼƫʌųӎˆ͜ԛȔ˟ďɇިʈȔśȠߤЈ׈ǐࢸő͆՜ંIJͮ̚೜ҔŠȐãӐּɔݱฦဘͲјȈ؆ຒဠˡҲϞ¢ࡆۦĀٖ֔͢èɚו۸ѽப̿׆ڱ͕ঙ̢ηূƝଆŝ৪ԻԲġϤޟӲӿऒnჄȉ૤Ŝࠦůఔԛ৮BόʽঐҌബ̈ాŒঘ̒׾҈ך˰Ƌˤˍ͔ѴըӀùࡺǝ࠸Ѿ౲͚؞֊נʆ௠ŐڐĥĠ̘ݿזګː٥̳ࠣžӇŃɏΆר࠾Цو৚̓ஆՎQτݸࢾҲːWҪңȦۜмਰƲ૜vసʡ݈̱԰ࡏ̀α̊ԩ̶ࠕ"]],encodeOffsets:[[[124701,24980],[112988,19127]],[[130722,50955]]]}},{type:"Feature",id:"CIV",properties:{name:"Ivory Coast"},geometry:{type:"Polygon",coordinates:["@@ϣUוǒ՟Wহƥ׍ʍ̯ࠫNjvÞۖĄŀ}ͨΣΚˉÈʕɲǾώčО ʔƄB¸ξÝnjĄŜ̸ĶȹڨȗΎæ˸ǘÞŊúɸųٮOƸʖƢgʎĦžΫȞłΌŰϚǽƦ˥Ϙǯ̎ɄϾŒֺɏɠ஡Ο۷ɕेθܣ›ͧ"],encodeOffsets:[[-2924,5115]]}},{type:"Feature",id:"CMR",properties:{name:"Cameroon"},geometry:{type:"Polygon",coordinates:["@@Ľ°ӻŇԝŒЋÅ൅nŬڒ͟֊ϧƚǟϖɋŦXɶɎתЎ߸ʒRԄӮ͈bҾΉ־˲ĀΔȌͺžь҆ΊǞךDzȊŢѨɜ՚۾ٲ¬˨ĠƲͫͰ‚ˌʂ¶ͮ՟Ê֏‹֏ҜޅҷTʁÏϥČǻЅӸөμƛŠΏˆ׃ſɩх࡛ȫƳÝٳČΝåʡЈѭð̴̟џϨ˓œϥĘʏÓґڛȤڷɜ੗"],encodeOffsets:[[13390,2322]]}},{type:"Feature",id:"COD",properties:{name:"Democratic Republic of the Congo"},geometry:{type:"Polygon",coordinates:["@@»ঙͶŕˑ̗͓ɟ͍ѫǯϷ±ګț͍Oهʍɹ‹ԃŗÝýҟɄϡÂ৥ưޝċѧǘӣӤҹҒ੕ͥĒ૿ƙɣĵʇՙȊχƫষĻࡇɨƫט͝ɲƴìٟࣟR·Ҧ̳ΨٟŠȋѰԣ˅ڧŞ˫ϢՕüϽqµʾ́rϥºԳųιtȻû®ৄ˩̸ÕԬŬԒǝ͖eՊ৳Qò̢ѕG­ƣԵɁӧűȿҫŠˣş։å͏Ѱȗ˖ʋԌȷض៛\\̍ķʑh΋œşʼɊʀμƎɎ̪ǰɚđ˼͐ҜSÄʃ̼ƩӶՄӨШɆːƒ۔θࠆϬўքМĪˌt̰Ǝ̆«ӊŀݖǐԾʦ҈¸Ԕúה͜ѐҊ˔۔˷՘ؚ̳ĉظǏʦԖŘÞϦčनоͨDZ˖~ŴȲ̺ðلėբoˤĚԘۙϘķɤƖϲÅҶDzȦΫ݊֏"],encodeOffsets:[[31574,3594]]}},{type:"Feature",id:"COG",properties:{name:"Republic of the Congo"},geometry:{type:"Polygon",coordinates:["@@̿˾ʩƗͻγۏࢸٖҪ̓֌˾ɂ֦ĺäό҆Зݐ•ʴЈł֒ĝڀЉӺζ঄ȽǘسçɻѢÔξ੘ڸɛڜȣÔҒѰ޲ԆѼ֪Ɨդ±·ԓʥ҇ǏԽĿݕ¬Ӊƍ̅s̯ĩˋփЛϫѝηࠅ„ۓɅˏӧЧӵՃ̻ƪÃʄқT˻͏əĒ"],encodeOffsets:[[13308,-4895]]}},{type:"Feature",id:"COL",properties:{name:"Colombia"},geometry:{type:"Polygon",coordinates:["@@ΫȤЭ˨ʅƅ܉Ŝȱΰƽ_࠿Ӓŕʺ̼ڛтȢ̦иÊΞՆ͐Ѵ̳ȦDŽӦȏސǸɚƃ܄ͻ҄ņТ˔ÑǂʠțӶĺŬѢـהΌĚT˦ƺ܂ӖϸՊfäǪڂéڌъ͞ȊОК̖»ɚɛǍ˱գƕɇп͗ʋʓ̷Ĺ׵ɷӭѢÇņϭȄȁâ͹ij̵ˆǫȸéȨ̉ઊĄӦŃעܡͼĚ؂­ӐĪ̔ƟƱҍȇ˯ß׻ǜ֑ʆʟ†ȉэл̨ȃɠ̋ʰ࠹ǁĻǏӸɷˊ˥́࿕lZԿӰē…͏ǙĔҿƑK؏ώ̫ƀӓoηϙᘯп҂ʣpժࡤٟϾԍị̈ƤҧɝصŀӵࢤϳɐˍІ֑Њɡā"],encodeOffsets:[[-77182,-155]]}},{type:"Feature",id:"CRI",properties:{name:"Costa Rica"},geometry:{type:"Polygon",coordinates:["@@җȆǟǮĬƤ‰ȄɷȪͥǔ́ņÅʖəƮÄʑǗȩȓɸˑĊŗǞLʮŎˆʁŠȖnjŴňֆɝȖŊˊéƔǥʜÇȪDzɈҙ͖ͷЂΩ͗õLͷǪűűıƱëǟ©Ǖ"],encodeOffsets:[[-84956,8423]]}},{type:"Feature",id:"CUB",properties:{name:"Cuba"},geometry:{type:"Polygon",coordinates:["@@ܨÑڊW߄˹̭ͮ޺Ĩ̔ȡ܈ԳԺϛˢ\\ԆǟÕʁئ“ٌ΅ıȟ֑Ń֡¥׃âளą֜Ҷ΁ɔէÈ̃ʐȥӎӃ޵ɦʥǬભž̋ǐ̀ɀࠗ¨׿ѧΏ[ťȳеğΫĂѺʸǼ̤ϞȈіǎَĄȰĢ"],encodeOffsets:[[-84242,23746]]}},{type:"Feature",id:"-99",properties:{name:"Northern Cyprus"},geometry:{type:"Polygon",coordinates:["@@ÐJŨȮ؄Yކʢ֧ΧÔƿęˆLJÙűj¥iĎѾNjVɫïƿ¬"],encodeOffsets:[[33518,35984]]}},{type:"Feature",id:"CYP",properties:{name:"Cyprus"},geometry:{type:"Polygon",coordinates:["@@€ãࡱͿЩŊȟͶЎŒǀ«ɬðnjUÒ½j覎ŲiLjÚ̇"],encodeOffsets:[[34789,35900]]}},{type:"Feature",id:"CZE",properties:{name:"Czech Republic"},geometry:{type:"Polygon",coordinates:["@@ϯǂЁ©ٵʲ̏Ùҿ΅ر˔ӃΰѕȬėΠƧʠؒǾ̸Ⱦ׾ǎɂdžɜīϒĖЊ˓ؼñ¿ɳҘǧŲɒּĥĄʿز»ϮЯʡCŽƯȕ—ÅȑLJ¡wý˹ēϋbšȁ"],encodeOffsets:[[17368,49764]]}},{type:"Feature",id:"DEU",properties:{name:"Germany"},geometry:{type:"Polygon",coordinates:["@@d͗ࡔțS̗ࡢǂҾɰॊͧІˋȞёɹɣ̨̙Ⱥ҅ß́Έ՛ϑĕɛĬɁDž׽Ǎ̷ȽؑǽƨʟĘΟіȫӄί̑ϯ̟ŃŢշýƛʿǤЕ~׷ƭݍ–ţɛыɺʩ±࣑ʲǥǻ܍Nń״ьֺ௅ƸЇɘ´ςǗȐĨ֨ƗࢢԎ@Ɉ͂Ⱦޔƿ˴ǐDz۰°Ƽȃ֮вȓ̀ӈٌōՠŸ"],encodeOffsets:[[10161,56303]]}},{type:"Feature",id:"DJI",properties:{name:"Djibouti"},geometry:{type:"Polygon",coordinates:["@@ȤʹΑӏȩήɯ̱҇ȅƬȭÏҷb_ʮßɶ˴Ѐ̐ϊήñʪȴ"],encodeOffsets:[[44116,13005]]}},{type:"Feature",id:"DNK",properties:{name:"Denmark"},geometry:{type:"MultiPolygon",coordinates:[["@@ԋڹ࢟ӄŝΒ௼˨ˎу"],["@@ȵ̓ʡĞ؁؁ɮХ՟ŷًŎͽҲ}࡬Ɣɪʌʦ݌À̐ɴڮʂƒѝʟ˙ĶɽҘŵ"]],encodeOffsets:[[[12995,56945]],[[11175,57814]]]}},{type:"Feature",id:"DOM",properties:{name:"Dominican Republic"},geometry:{type:"Polygon",coordinates:["@@ŀƞپIӾɏɜtƴ̕Ҡhʡϐ‰Ю̷̯ͿЍǼϫ•ˡ¢ƱƵ͑½ŷȲˣťͳֻɏƆ§ʎjɬɍʦȲƚÞ͒óҜ"],encodeOffsets:[[-73433,20188]]}},{type:"Feature",id:"DZA",properties:{name:"Algeria"},geometry:{type:"Polygon",coordinates:["@@ᮩཽᝩ࿷இϑटćU՘ϵƌԹʊȧЀᬻᆴᬻᆴṕᎠfnj@ÊQ঺ബب࠼Ÿێɦ͎тচͪ˜جӢòϞ̶સƚƸ͜ɛDz̃ࢲ¹Ԟ́ՠ߰ҠࣦƢՌΎ߶ʰ෎Ƭർæшůߊͨ࣌P΀ȝֺ¾ǟћƄߟȡۙԭҵôمۊԃRȯԮ͹Ϊຝ˖ݏ°ϵƧۇÔϥŃҟòՇͫΗӺؓŽέ̘ҵϼƸڒϷςՃ"],encodeOffsets:[[12288,24035]]}},{type:"Feature",id:"ECU",properties:{name:"Ecuador"},geometry:{type:"Polygon",coordinates:["@@҂غǻξ͍ϵԉςǞʀƙބ̎ŴƺԼ͆զÍ΄ҢǸ׀Ͱࡀӑƾ`Ȳί܊śʆƆЮ˧άȣŞٓʽճࣷ࢟য়ͧԥܵǃ֣Ӆ΋ΙъͻĞ΍áw̮ʈȨıΔ"],encodeOffsets:[[-82229,-3486]]}},{type:"Feature",id:"EGY",properties:{name:"Egypt"},geometry:{type:"Polygon",coordinates:["@@ɽͷǹىɫѩȝƥ˩˔ϛϒ׵ஸđùΐࢯԪࡋٌವ̴ҙ˒ӃݮछǗƣ‚ճ঒ݭƨǣΏ@Ὁ@⁩@@ᶶ@Ჴʥڲɐ԰Żά̤Ж૦b߲ɝ࠲ʛϴſ٨ˊΌʊݎêװŃɮеȜ˜ڨȣټ³аɄւ෽"],encodeOffsets:[[35761,30210]]}},{type:"Feature",id:"ERI",properties:{name:"Eritrea"},geometry:{type:"Polygon",coordinates:["@@˻˖ΉӰϋ˒ɏܷ̄ͶֻXȭǬӯȡԛϢʽط঑ǬęʹβఀĊ֒ˆʴؤƐьӒӦঃɴޗҢУବߏҲӍҖӝˀ˿аʧʩȳέò"],encodeOffsets:[[43368,12844]]}},{type:"Feature",id:"ESP",properties:{name:"Spain"},geometry:{type:"Polygon",coordinates:["@@¦״΃θஒ؆ਊƱ૾NࣂƝۦªമƒͰ͛໺ϡ̨ǺीϝআŊ®ӥߓ֓ઁǯõ˱ԩү͕ہ͞ӑӟϑǹճىǗש٥੧_ߟhՃ͍̓ͅЩê̵˴ʃӚ޷žé˦̶̀Śɬ̃ʢɶրͳԌδè’ЈƎŬZپϲɪɻфөˆƝŁӹCɁЬ΃ū̥ɇ"],encodeOffsets:[[-9251,42886]]}},{type:"Feature",id:"EST",properties:{name:"Estonia"},geometry:{type:"Polygon",coordinates:["@@ĮӸ̱ŁՓ̘ñӘਫ਼ɼ੔Ũ࣮Ƒࢂ|Ŵƣׯӝʞ޵ΫˉۙDܡ̸ρļ܏Ʃ"],encodeOffsets:[[24897,59181]]}},{type:"Feature",id:"ETH",properties:{name:"Ethiopia"},geometry:{type:"Polygon",coordinates:["@@ԜϡӰȢȮǫּWܸ͵ɐ̃όˑΊӯ˼˕̏ω˳Ͽàɵ`ʭҸaȮÐȆƫǽ̴̕ҧ̴Й̛͎ᩨঽۺNᛛᡃફ™ݟףաeɯ˅ַB͹˴ލΙʝΓ֕àȃĬȟwˇT੟܌ב@˹ˢ@ҾѧƘӻࣴϥȚƧʹэЦԧÒ˸ӐҀrŲʰ[ݲʞࢠЊɾĎ΄ήٜԔи΀ࠠƆܠ঒ǫʾظ"],encodeOffsets:[[38816,15319]]}},{type:"Feature",id:"FIN",properties:{name:"Finland"},geometry:{type:"Polygon",coordinates:["@@ūיಀ֓ޡى঎ख़֡ܛݴس΅յఘֻ́ѓޭӟᅡੵໃá๑̯ൃǯӡҞ߿ˠȈࠢСݶАӪނՆ኎࣮֖Ǭē΢ୟЈ˳͜uಒ಻ֲ૩ЪԊɞतѻલ¦ࣘȭߠϊЬ؞ಬ˶઄ͯΡכ"],encodeOffsets:[[29279,70723]]}},{type:"Feature",id:"FJI",properties:{name:"Fiji"},geometry:{type:"MultiPolygon",coordinates:[["@@̂ʍƓѭԳŗҩļąτ͖̀ϤĻȼƐ"],["@@՛ǯŅ̼оǤˊ°Ӱˀ@ЧՕȷ"],["@@é­@ШǨžĽЗ"]],encodeOffsets:[[[182655,-17756]],[[183669,-17204]],[[-184235,-16897]]]}},{type:"Feature",id:"FLK",properties:{name:"Falkland Islands"},geometry:{type:"Polygon",coordinates:["@@৘Ԍ܎ȿԌʹڦϙʥ̋ଋʥϙ̌܋ϙпϚ"],encodeOffsets:[[-62668,-53094]]}},{type:"Feature",id:"FRA",properties:{name:"France"},geometry:{type:"MultiPolygon",coordinates:[["@@ˣ٭ϡǠș֢ǜ̺ը͎Ɯܛ"],["@@הЅќà݀ϥȊñʎjЈɗெƷыֹŃ׳ɱƝϣü‚ɇؙҽ]ϟВƀ˾ρ“ʁʚ̿̅ʯɐٱҖŃĩηݿӅစɬ௧˗ĩԑঅʼnिϞ̧ǹ໹Ϣͯ͜ѢԎdžူࢁࢤإю౹͒čؖઠǾථɏˇॎߌέዠپʨێܾǞŪ̑ϸ_ϸ͵"]],encodeOffsets:[[[9790,43165]],[[3675,51589]]]}},{type:"Feature",id:"GAB",properties:{name:"Gabon"},geometry:{type:"Polygon",coordinates:["@@ࡹࡔ։ۚԙࢄ‚˨ǾˎȲؔǜخ˴¶௢SOৠЌÆԞőӼňľ¯ÓνɼѡشèȾǗεঃЊӹĞٿŁ֑ʳЇݏ–҅Иãϋ֥Ĺ˽Ɂ̈́֋ٕҩ"],encodeOffsets:[[11361,-4074]]}},{type:"Feature",id:"GBR",properties:{name:"United Kingdom"},geometry:{type:"MultiPolygon",coordinates:[["@@҉ֽًǦԱ[ǦҊǥ҈۴–ࣔԳ"],["@@࣋ࣧࡦŘऄIɕۅݯݩࢄÃäĕݠ঱ֺƇԬढ़ʈͧৰDžķ՝ѓʗͲѣݱѯ૳Rෝɱϻǒ։ϿޥĪם͍ҁǘ௼ࢨݪǺOBಽƔʃͰ࢜ʺҡҐdžռఢ÷D@ŮӤ֛Ԯ_\\৵ƨȧɬ̨ϒˡɴҍЇ·߶щє̨ࢆٶھڤá০ì"]],encodeOffsets:[[[-5797,55864]],[[-3077,60043]]]}},{type:"Feature",id:"GEO",properties:{name:"Georgia"},geometry:{type:"Polygon",coordinates:["@@Ųάȿִӟ̲ҭĬ̯ʴĺIJ܄ƝఆƋଦЕƦƻԚƂ޶ǭʴ·Նșɓřвғŗıҏºصʎȵƍଢ଼ſ߳Юࣅ¡"],encodeOffsets:[[42552,42533]]}},{type:"Feature",id:"GHA",properties:{name:"Ghana"},geometry:{type:"Polygon",coordinates:["@@೉ӯҳ˽ݳʑݡʆœͨηܤɖैΠ۸ɟ஢ŗنrӊฤ¢ϊÕ˔ƊϴáÕʿΖџC؍Ąڍɂ̫ȅݳäйɢՓȈ̍"],encodeOffsets:[[1086,6072]]}},{type:"Feature",id:"GIN",properties:{name:"Guinea"},geometry:{type:"Polygon",coordinates:["@@ʃtǡͷʁJǏǴÈͶΗԨɕħǵmɳ³V̮Ƈɘ‚ʔǻΜɹ̜ڥDțǁɵoƝǷīɹ҅σρӼ͛͢ɋŊȿǖħϊūȂʓƐώЦʮeɖƘȄDƄŎï˨ĢĖd˶МU؀ȱȄlÚĤҜáŨ´¶̭ƆBɖŒƔƒɸɇάãɲǺ˖ŒȬŠǚuȈȁĴɳΆΙǣɏ˙ǴĊŀį«ʡʲʍǗÝå˷Ș΍Ⱥڧ̷ĵăśÞNj·νƃA"],encodeOffsets:[[-8641,7871]]}},{type:"Feature",id:"GMB",properties:{name:"Gambia"},geometry:{type:"Polygon",coordinates:["@@ņόࣶzȎȦˊ`ͨȷʼIˢƚǞʏεȋιdέǰ̷ȗƭQȫŝއl"],encodeOffsets:[[-17245,13468]] -}},{type:"Feature",id:"GNB",properties:{name:"Guinea Bissau"},geometry:{type:"Polygon",coordinates:["@@҅ΘΝÈȕʀLŸʯǴÁǶѼƌ˦ɦĨ༈•c˵ġĕð˧ƃōȃCɕƗʭfύХ"],encodeOffsets:[[-15493,11306]]}},{type:"Feature",id:"GNQ",properties:{name:"Equatorial Guinea"},geometry:{type:"Polygon",coordinates:["@@ƿŴ़̀െmPয়௡T˳µ"],encodeOffsets:[[9721,1035]]}},{type:"Feature",id:"GRC",properties:{name:"Greece"},geometry:{type:"MultiPolygon",coordinates:[["@@Ҡ˱ٺ¶شÑqƣҜĶĿʛ௃íTƒਁǎƺΦ"],["@@ʹՁȥĥԟ|ѫĀৱɓ׌ҿяƋҳAѻўƿȁȊԅрЁ̓ǿҴϯжʑ^ӅޥɠʜѕՓĕ͈ݏ֏Yۍμ̿ڦƧ֒͝ϮљӐÉʆϸТ¼˚˘Ũjɚռö͌ȀҖgƒƦdž„ت{ڨɲע̉ކĀVмЦɝ"]],encodeOffsets:[[[24269,36562]],[[27243,42560]]]}},{type:"Feature",id:"GRL",properties:{name:"Greenland"},geometry:{type:"Polygon",coordinates:["@@ᬜԆ᱒›ੴ̴ᲈĄ䀦Ŀ㉊ڗ༅͕ộ™⭏ćшƫᲐĠᡚ́࿈ʴۦ̝इӧᒞ̺✘͚ᠼNjҾΫ⃝ױӃȕ᧑ơወ¡ছؕگկ€ध৚շಽ“൧ˇ༂ѽȢ܋࣍ýઞܡህÑঈ΁˟̑இŽ୥E੆֩\\Ϗပΐћɣଌȿ઼ԣ͈ڱກlj٫͖ਣӘ˼֭উѵᕖ•୆¯ᖯܵᗿڏឧ́ओIࢅ͓ୟࢱᅵכׅ“૧ȷ஽ȝܛԱ[כыտോڧͺٿϗ۝љࠍஅ½఍ۈဿLࠁҢ֕ࠐฝਲэոŗݮ୓ޢ̢ئ֗̒ࠪচొ̺ͨΘǬڀॡ̕қůݯţਏ˜Éְ͢҂ެ\\႔ɟ෿Քݩ˾࠷ş۫ȼम޴ԝ̺ڗ׈ৡࢼ੯͚XΚᖷӮᄻÖᖟ‘Ꮕ×ইˌวՈᕂ˄ၚ¬≹ɖ቉΄Ś͜ẊИᶎИ̪͘ᗗ̠ܺͰ᯲ז௢ĚΓϘጲɜᣚƂᣖRࣺʽᕺҨፘ̽୺áპ˙ፅҐŘή"],encodeOffsets:[[-47886,84612]]}},{type:"Feature",id:"GTM",properties:{name:"Guatemala"},geometry:{type:"Polygon",coordinates:["@@ћƦԻfϩǖҍΌrʖĮȠšƾКۆ઄Ft˸Ƌ¾ġǺ̵Ț̹ˬϜDBӂ޸BަUOڗßॅʤ@˚ƱòŰʘŃϥ͍ЉɻÏljâǑǧɇȟ½¬ıƿġ˽Ƀ}ŭ"],encodeOffsets:[[-92257,14065]]}},{type:"Feature",id:"GUF",properties:{name:"French Guiana"},geometry:{type:"Polygon",coordinates:["@@͉͑ГÑŗʀȉ–ʹɩνǦɈΪòϤƢή͛ӸáֺѪܠ˸ğؤȥࢸۿƔ·ӻޑʳأ"],encodeOffsets:[[-53817,2565]]}},{type:"Feature",id:"GUY",properties:{name:"Guyana"},geometry:{type:"Polygon",coordinates:["@@ր̯Դյzџ̈́o҈Чͪ̇Ƈݱԛɕ°ȣƹџϊ؏ːAŎӃԢܳȱ‰ҫî˙ɡϟƥ˅—ġǑЭ¦ԫЀÓϴɋьƆܐɸ̐ȕϸ˿ŶŊτțȘѩ™ْ֩ɬɲiϲԬƊȾƾ˽̸ô̬ږӲ"],encodeOffsets:[[-61192,8568]]}},{type:"Feature",id:"HND",properties:{name:"Honduras"},geometry:{type:"Polygon",coordinates:["@@ơˀʭòÐʹŗĞǣÒσij‹ŔʩƈǷǚʛìǨɈáǒÐNJЊɼϦ͎ĔȂƨʊ\\þ垦ϸùϲv˒ĢİĦˎ©ȪÉɘnǖòϨśƄkʲƿʐį̏Źɜɳ˽jśŕ̇ŋɃAȅŃǙœƛźĕ{ŇȩăRaǥ̉ɳƹıđĽʛǞǹɣǫPȟqlЭūQĿȓʽ“"],encodeOffsets:[[-89412,13297]]}},{type:"Feature",id:"HRV",properties:{name:"Croatia"},geometry:{type:"Polygon",coordinates:["@@Ȳ͗ˊʇ͓̓ϝȆׇ[ܟƔϽmǻǧ̝ȖǫΑЪϽǼʹϮ̽͌ȃ͆Ηݔ͇ġƛ߃̶ӣ̢ޑʠ۹ؤǞØϥΞe˲եƄʱγʝˮn̆Šbג…Ƹƚ˸ƍͤgGɼ̈ĒĈͺڞɠˊĻؼέۜlj̼Ų"],encodeOffsets:[[19282,47011]]}},{type:"Feature",id:"HTI",properties:{name:"Haiti"},geometry:{type:"Polygon",coordinates:["@@Ԣ™ܰƁôқÝ͑ȱƙɎʥiɫ֏ƜЅÍԡÔϽƿ҉ʾö˔ޜśيã̢ȈϧθP͎ՋžȌɶ"],encodeOffsets:[[-74946,20394]]}},{type:"Feature",id:"HUN",properties:{name:"Hungary"},geometry:{type:"Polygon",coordinates:["@@˨ըǍǼӂDÜ΄ђɋ̲ğ۸ļäǚͮ~ЦžĜÃЂŀȠȢˠ¼࣒ʭǴĒҲɭÎɣԡǭЉ֫ԕ֭کǁԽš١ə̻űۛNJػήˉļǍ˴ƗV"],encodeOffsets:[[16592,47977]]}},{type:"Feature",id:"IDN",properties:{name:"Indonesia"},geometry:{type:"MultiPolygon",coordinates:[["@@Λe૝ך޴ǒѴʭ̎ʭ»ɩ"],["@@ܙȁijĶø˸ΰԢࠨͬĐǓfʫշع"],["@@̢ɣԲèȼΥॿǛ׉őҍP̀ӚҤPɤ̖"],["@@ūұ౅ʅૣľE̬ښǪՂʥ֔Üݬ̮"],["@@ྔċȂΌ༘З̪կీƵਐӿय़͋ऍ͸ݻwࢍØ޻ưঅ͎؝ČΓŁ໕ΌƣΰޑØּߤ৶·ڴ͡ΒÛŘ̗"],["@@ѝֱćنƬ̠Ǭ˴ȒʗCЏ"],["@@̿˥ׅƸǏΰࡘ¢Ⱦˣ"],["@@̨ٝۿΌۯìӃÅׇˆȦҦਠ”ऎʕ"],["@@ɼയ࢈ԉ۰ࢼ८ԔݜBܘ̉خ̛ࣘLJbᩑbᩑݟې࡟ǜȷʇ੡}ΦۂՈɺɕࣲЕ۸࿃܆ۗêృަʛУ͑óȏ̮GκٛЮ̢ࣞ״gëɠ௵DͩԄݥƺΡдଈȰњ˜ഘ·Ƃ̹"],["@@ڭ࠭كlj߱ǐඓ¥ܽŧţٍݪݛҒϠ༪˸çϯλŪιӯ͙݉ߒ੿Ƶ˿ݲॻQտ҅ʙ̐͡Мی࠙͗ȻɶŊ͖؅ӲØࠌ֕ʭîও”றՓũίʚʌޜŽ߸ΛPʻֺΎվŤښф౎ǮΎ܎ذپʛ੖śॴ–ࠨ؎Ʀȉ"],["@@©ܽџĈŷԝΌѷɽĵ͹Ւʟ੺ǚڤ˨̨ÔҝӸóĀ΃"],["@@सާহį˫ֵšݿַ߱u࠷͕౻ŭ̚ॕϙͫԤ׳´лːৃ̟̩Оս¯ۗĬŹૺнɺЕܘŝ݀ĮުԂ֐Ɩָ֗ӅըǠ՜ÑӪъЖôߒɽۆǶњୠ͔̈̆क़ॲ@ܰƙӍݷآߓơϭ"],["@@छkۻ۰અۊέԚٍۄзؾٕ୴۪݅ʙܠ̳ڀݵՊѭܘمҺࢗऒóђզ‘ಢNjݔࠓٮ֫ҪΓߔࣙࡢ_ۺֹӠ۳٘ϥͳۉӖ̞̅sƜו̊ҵؠõФՏɁ਱‘ಟ"]],encodeOffsets:[[[123613,-10485]],[[127423,-10383]],[[120730,-8289]],[[125854,-8288]],[[111231,-6940]],[[137959,-6363]],[[130304,-3542]],[[133603,-3168]],[[137363,-1179]],[[128247,1454]],[[131777,1160]],[[120705,1872]],[[108358,-5992]]]}},{type:"Feature",id:"IND",properties:{name:"India"},geometry:{type:"Polygon",coordinates:["@@ࣚটďۅͮїѕ׽ŒɾएࠜՑ୞חՑϟ͛޻ࠀͅߊЭરһସʼnӜёٮāৠȝ۪bĪͪŋՖÞβԠǮìڋlǙކ͉Ոƀ܀Çۈ|ÐԪ΁ˎڴŀވشॸ՘۶ȷ״ΞЀԹ˳Λ࣠űÜ͇̍Ʒèԫ׷Ʋછׅ~ӓҩ۵§ХϏۗځȒࢇȏ˹ĚΣгȥѵ೰ɵEƍ՝ҡѦʸӎϖ¶ϰ܆ӝƜީ]ߝŚóאБ¤ڕζ֭̓؆ѻԿ̻ȅ̩Ԭɣƛԑ̆كžەţֱ̫Zਛǩ´ك҃ӻ௃֡ळ঩كՋ࠷ջCϭлȹݳ̝Ͻ«ʥٙǪધ®ۡΣߙI෗ѣ¡ϣٙʰˣދʃ˱֯͵ʍߑ޸ϳ୴͑ࡒ̍Јѿ߰ȻੂơՀޅ଼Α࿀ʣ੾HৰǍ޾௣ԉףĶ઱৲И̤ʝͤড܊֖֔ᇜCǗܞҽюĩ٨ջϘऒࢢঊÙ࢞ࢢՄ࡞ࠄࡈ_״ܒӠڳд֪݂̇̕Ьβ౤ȱपŰߺ۸"],encodeOffsets:[[79706,36346]]}},{type:"Feature",id:"IRL",properties:{name:"Ireland"},geometry:{type:"Polygon",coordinates:["@@ƒ׷ًݣ๯ӹ஑Ŷڼ࢚ѭࡢତڄٌϼǦ҇ǥ҉Բ\\ٌǥ"],encodeOffsets:[[-6346,55161]]}},{type:"Feature",id:"IRN",properties:{name:"Iran"},geometry:{type:"Polygon",coordinates:["@@݈njװӔ֚{τƾװýघэڤğ।ݓظ‰òۻ΁਷ɱؑκŭΫҡˠڡàՓِƙæեݿݿжѵ͸ԓߦυx݉ДƋêϯ௉ѡ̓উཌྷʪࣷȖेŊΧਐЕƪ٣ƭࡑНਇ˦ࡑ٦߳ʈ֗ߘا૪ҍƋՕ˦̻͝ҭѴS҂ˍ@Ɛ،ѝٔ਍Ң׉ߜȜپц̂ÙӬտʨխ৊ҟڨǐʼʿ६ּʈƄͅъϯ־ő̤~রئ̀Øʞʙ́гԼѱȾ¦ˈإߖǩ׎у஠ƟಾɞĄȞ"],encodeOffsets:[[55216,38092]]}},{type:"Feature",id:"IRQ",properties:{name:"Iraq"},geometry:{type:"Polygon",coordinates:["@@րʧÚӫх́țٽ׊ߛ਎ҡўٓƏ؋ˎ@TҁҮѳӿ¤֟ê؝߭༟äᛍၖఫךৡɪ͹৾ᇶ࢔͆৬āؘҢȺјԾΰž঎Ň̐ɉЖƚծ৉"],encodeOffsets:[[46511,36842]]}},{type:"Feature",id:"ISL",properties:{name:"Iceland"},geometry:{type:"Polygon",coordinates:["@@șիॊֵથٙᝓֹܣƵૉŮᚑˈࠠψᆧЪ๪ǎ—ʘᄋȜ֨նౠŰಸ֭౨Ҝ੒ʃൌ҄ආÑ"],encodeOffsets:[[-14856,68051]]}},{type:"Feature",id:"ISR",properties:{name:"Israel"},geometry:{type:"Polygon",coordinates:["@@ƥ˅̣Ŝǫ֓ɂĥɋř—ɛЄŖp͛нഉց෾ʔˢ˶ɞϼǠيŤɆzVˬCþƦɤ\\`·ŕŵhM"],encodeOffsets:[[36578,33495]]}},{type:"Feature",id:"ITA",properties:{name:"Italy"},geometry:{type:"MultiPolygon",coordinates:[["@@̟ڋŲʹǭѝٝ̈́ёĞ୩ѐŞќজûࡪĠْò"],["@@Ԍ׭ş૕ϣÂ΁˫͇ɞ‘২ȓӒҨ¥рʼ"],["@@ரɏĝЯȬΧڝŪہ̗²зĻʇˠё߀чцۛदڱچLȲȃɽǗݪ̥ؠʩܜѫĔƿƽ̛үϼܳƐΝի؈̷ıѫΗ¹҅ܛΕÝHʲǢҊǼǶ͝ӤʱшΑŀʛδգƴεͶثÆٿϜޑմ֯ӜʿࠪйĮہˤϯŕӝϵΓÕĪθҕńɏٲ̆ʰʙ̀”ʂβǵМ¢Ҽ˶ƢƃА€ǼͺتĿψƚâΆԘšĮdžࠨƤȊ̉"]],encodeOffsets:[[[15893,39149]],[[9432,42200]],[[12674,47890]]]}},{type:"Feature",id:"JAM",properties:{name:"Jamaica"},geometry:{type:"Polygon",coordinates:["@@֢÷ҀȫƔɯןeʭƗҹƊӑ̪ĶȔΜÎȒƒ"],encodeOffsets:[[-79431,18935]]}},{type:"Feature",id:"JOR",properties:{name:"Jordan"},geometry:{type:"Polygon",coordinates:["@@Ʀˆपͫ࿪ࣆͺ৽Džų၅у࠸࠿ˣƛƑ˭ٙřȩ̡εʵधƆƒŨоഊo͜Ůʚ@Ԥ"],encodeOffsets:[[36399,33172]]}},{type:"Feature",id:"JPN",properties:{name:"Japan"},geometry:{type:"MultiPolygon",coordinates:[["@@ņ˽ҿԕΉːљțɝӭշʈRЊҬԆӌīΊΜؠǹ"],["@@́ڡƤсѩף੹Ѓ๏½ணॡ͔֡“غษȃষЃঝe࡞أ֗෗իΝН͜ȶݶՏʒͿ־ߐʶѲՈࡌѢ؞ָာʤ࣎ǣࢠ๺֔Б௾ࡀӌ͜ՈਈƟा΢ՎࣀƸҞୗ}ڻޥࡍbࢁ"],["@@נǵרΤȈहఝɯ݁࠱೓ָқँण]ř࠴д٨࣌²ʖ୐ʜټন࢓٤˯"]],encodeOffsets:[[[137870,34969]],[[144360,38034]],[[147365,45235]]]}},{type:"Feature",id:"KAZ",properties:{name:"Kazakhstan"},geometry:{type:"Polygon",coordinates:["@@ӕƹ્דο׹̹KɱЊ੫‚ǡێХNÚࡆ৓ؘ෷ßডũߣݶۋ͆ಥ׼ƽðᓗӹᶽљ£יچ֧ɼॕǩχ˧±ȲȶΖDž̊অ˺ϛݮҩɆ…˜ࠊāŽؘ܎ƎܼűƲࠎƭԲ࠿£܍ȴঃσ޵ǭяƌĐўՙ֘دw܉֬ӞِʕǢڢऊࡺӣŀؘჄࣴಾtᇢ׉঺ͻࢼΠ೰j੺ѥʔʠ୼—ɂЊഷ׀߮Цƿɮ߮ɔ؅ֺϬ˼Ḯ̈ШȺᑆ̴ݰΒຢǹ˄ࢉ࢚Ȳઆ˹éҝ߮´ᑌߎ̭ˁ੶٭ሠᒑ҄ѰୄӛீɎҪƯКӟטNjΨΥ઎ŒѾԣٕ֓ۥÿ¡ࡅұϝဟˢ؅ຑїȇဗͱݲลֻɓäӏԭŬу̠ఝĖඃx̧ġ஥ΞӉǧŽӹ൩̂փşȉρ"],encodeOffsets:[[72666,43281]]}},{type:"Feature",id:"KEN",properties:{name:"Kenya"},geometry:{type:"Polygon",coordinates:["@@ӾۙיͱȹΕ̿Õšףˑ͹Ǐ֑ͷ˥஻ࡀËӤᵁႌƙĢSࢺʊ;а֌̨ؔσ॰įтЉ׎ԬԈ֬ֆѨƗ@ҽ˺ˡג@੠܋ˈSȠxȄī֖ßʞΔގΚͺ˳ָAܽ॑Xᵣ"],encodeOffsets:[[41977,-878]]}},{type:"Feature",id:"KGZ",properties:{name:"Kyrgyzstan"},geometry:{type:"Polygon",coordinates:["@@ȊςքŠ൪́žӺӊǨ஦Ν̨Ģ඄wఞĕф̟Ԯūşȏ೛ғ̙ͭઁıͅ՛ࢷŒׇǏߣЇŜȟʇȓཟŵਡ˘࣫ÝĂӜࣴƕ̮ʸٖĉ੾؂঻ѸױȽإ͂۶ծʟĊ"],encodeOffsets:[[72666,43281]]}},{type:"Feature",id:"KHM",properties:{name:"Cambodia"},geometry:{type:"Polygon",coordinates:["@@΁Ѭыࢄȣ২ՠۨઘdž߀ťۚ͡Ϟׄݖ̱Ȝ֕Ļ৕ඳ٧τԙࢥÓܫͷ۱Ū"],encodeOffsets:[[105982,10888]]}},{type:"Feature",id:"KOR",properties:{name:"South Korea"},geometry:{type:"Polygon",coordinates:["@@ܨযȺխPॷ̓ҥݽljڥΏݳïĥҚƼـχ࢔ذƚֻܘÂúϒ‡͞Ϝצ¢ΨÈŨȮ"],encodeOffsets:[[131431,39539]]}},{type:"Feature",id:"CS-KM",properties:{name:"Kosovo"},geometry:{type:"Polygon",coordinates:["@@›ǣŃPĘ́ȩĐdzɦƾȌȪÒŜ˨ư²Ţşƾ¿ŌƅƒŸǎƻŢLĥȳijij„×ȉӹŻ"],encodeOffsets:[[21261,43062]]}},{type:"Feature",id:"KWT",properties:{name:"Kuwait"},geometry:{type:"Polygon",coordinates:["@@Ǭχõȓ˔هשuȽАݟĆ؞߮֠é"],encodeOffsets:[[49126,30696]]}},{type:"Feature",id:"LAO",properties:{name:"Laos"},geometry:{type:"Polygon",coordinates:["@@˚Ϝœ܆ڹܸ¿ٕࠦھٍÎǛ̉ӯyʣƨࢯԅoݬȸࢮ֧ž³ԎηʸǴ̲ܐնøȡ҄wŵ०ѦŬӮڏϖޅਚO͚ܹ՝ɗʉ̟৔ԉۦ঳Ռ݋َ׏ɄץƵ࠿ݕ̲ϝ׃ۙ͢"],encodeOffsets:[[107745,14616]]}},{type:"Feature",id:"LBN",properties:{name:"Lebanon"},geometry:{type:"Polygon",coordinates:["@@ɣ[ýƥ˫D̘ۄмעfˆϘ§Ɛͣқ̓ȷҟ"],encodeOffsets:[[36681,34077]]}},{type:"Feature",id:"LBR",properties:{name:"Liberia"},geometry:{type:"Polygon",coordinates:["@@ɗQࡽАޅٖ܏Ң֣ըȪː¬ʔϜҘϺϺǶnɖĨΘԧÇ͵ǐdzʂIǢ͸ʄsŸʓĎНǽύʖɱˊÇΤΙ~ͧăĿÝە"],encodeOffsets:[[-7897,4470]]}},{type:"Feature",id:"LBY",properties:{name:"Libya"},geometry:{type:"Polygon",coordinates:["@@ק̷ҿҤ೧βρՄڑϸϻƷ̗ҶήӹؔͬΘñՈńҠÓϦƨۈ¯϶˕ݐШȜðΠėΒ־͔ʶːЦʌ´٦দ́ΜðۮƓ૞ϓЀݛݮǍஆΙࣆйЦɔЖϮț٠˂Ф؄ЀׂŘ଒ǣ˺ϑ̺Iˌƛ࠴ıȲˣ̣ЕżΫɏԯʦڱ@Ჳ@ᶵ@့ॱGYΙ‧ྐ‧ྒࡓҟ"],encodeOffsets:[[15208,23412]]}},{type:"Feature",id:"LKA",properties:{name:"Sri Lanka"},geometry:{type:"Polygon",coordinates:["@@ų࢓ΙʇܵȓЍڜƫீϠ഼׆ұϺסО࢓"],encodeOffsets:[[83751,7704]]}},{type:"Feature",id:"LSO",properties:{name:"Lesotho"},geometry:{type:"Polygon",coordinates:["@@̆ʩʳУƛ˛ҳſƹˍ̛ċؿ٨҄ՐҖ͢ϼǠξʵ"],encodeOffsets:[[29674,-29650]]}},{type:"Feature",id:"LTU",properties:{name:"Lithuania"},geometry:{type:"Polygon",coordinates:["@@ãɊĚɲχƄࢡƨDZ۸२ʴඬÁࠜĊŞǩ҂Ã߲СĀϓۏˏșӃ࣯̓߻NȫʶљĜ"],encodeOffsets:[[23277,55632]]}},{type:"Feature",id:"LUX",properties:{name:"Luxembourg"},geometry:{type:"Polygon",coordinates:["@@ǘȏ³ρʍiȉòĞҼɖŽ"],encodeOffsets:[[6189,51332]]}},{type:"Feature",id:"LVA",properties:{name:"Latvia"},geometry:{type:"Polygon",coordinates:["@@†نЮՆߊ˼ڜعڪhNJ٤ܐƪςĻܢ̷ۚCКȕîС˒ӷ͕ࣗԛƙ߱ТҁÄŝǪࠛĉණÂ१ʳ"],encodeOffsets:[[21562,57376]]}},{type:"Feature",id:"MAR",properties:{name:"Morocco"},geometry:{type:"Polygon",coordinates:["@@ԒΥߜÎࢊȃκU͂՟ºԝ̄ࢱɜDZƷ͛ષƙϝ̵ӡñ—ثঙ͍ͩсۍɥ࠻ŷഫاRহŷ@@@p҉Ա˓ȑϡ@̥Ŋ۹ě˛ٻʿÕЁ੕ୟ࣡ˣୋ΅ϗĵ̡ቅãaD ϶͒ɮ˞ѪÃ˶̀פҴՖ˲ƊɞӬp҂̤Բ̪֔Ւ࡬f\\ц͔ްĢڎָтɠۮۮȿਸ਼͊ܢŔѶդ֨ࡈϦخΐ֘࢈˄ԪؤI"],encodeOffsets:[[-5318,36614]]}},{type:"Feature",id:"MDA",properties:{name:"Moldova"},geometry:{type:"Polygon",coordinates:["@@ȨŮ֒ĊؤʽΊϞɥÑ˵̪ƏŨΗ̊ɇÏűƾčɝ×ӷ|ĉŜǫãÒƭɱˍƥ˽ɁĝƯϦĘΪςӝԂˉΠʹʠʯĈ"],encodeOffsets:[[27259,49379]]}},{type:"Feature",id:"MDG",properties:{name:"Madagascar"},geometry:{type:"Polygon",coordinates:["@@ɠΥȺ։Ɗঢ়ɒϽĉЗƩʙ˷ӰǁʝLjثõΥɵȗ¿܅ͧওб୅ԯཧ͑ୟϛইہȣܻΡӛɊڙ̜ɳѺÇݘ̑ڠù؂Ʈ؄ϰƢD˪Дِø՚șЈǃՌãޠ̊ҺŔՒмŒҶǤ̶Ʋτ\\ӐӎۖԮʦцŗάΦĵҪ׎fԐ˦ϔ̊ί"],encodeOffsets:[[50733,-12769]]}},{type:"Feature",id:"MEX",properties:{name:"Mexico"},geometry:{type:"Polygon",coordinates:["@@͙݅ƥ؁Õ૷ąЧƤқʺЧǚٳ֎سȞӏ͢бࢾɝΐΙ݄ɾٚĎؼưՊƠՖ΂ȨӬè۸Ƣʖ֬ɚࢶȚݔ‡ԚîȬDZ…ЙҋԁȥԝƸƥűγɁٽɅɎǭcǃY̝ԓƳIJķPŭޥV޷AAӁϛC̺˫̶șĢǹƌ½s˷ઃEЙۅŢƽĭȟqʕ्ࣞџ˘ۇɖҷÓګ́чĉץɜؿDŽ޹ϬؿŠ्ϸ۱ВɃɤҹº࡯ˈΓϦࣗӊсՌȧЦ˪ĈđʈȖɔJ̄˱Ϙùͮ˭ъ݋࠴ࡋڀУԼܝ΄ƷȴŸԲѓȞӹФȽהҍæӣѸϿФ™ˀҍو̓٠^͔؇ͬ˫™ӑɴƇͿƔЕĆف̀΋خׁƒȡŸÓŎ˽Ƭ\\ǜթʮɇǴ̕Նё˨ޯʠρɸϿ²ѷКƒͶϡ̨ϑqƭΝ̱ƫJɛԞջӎ؃РїɈ„ؚŵҖЏʺֿϒŏŇɃɖԭȰӷӦÖÚΊ³̸̼ŽϜ٩׶ӱɶ̱Հ̷վϳڦͿݲॖÞ੪ĞÿǑ౔СኀףဪPژ@DΌผ@̪̕јˇԀσ˨ѭȾҥѢʩۤʥՊڒۊhפͱфֹ̄ӯӸӏȂחɾЃپʹ׮ȁ͞|"],encodeOffsets:[[-99471,26491]]}},{type:"Feature",id:"MKD",properties:{name:"Macedonia"},geometry:{type:"Polygon",coordinates:["@@ńOœǤӺżȊ˺¶ϴbтˏÒ։DžƒƑƥҕh͋ǿջõΑȴšήń˸"],encodeOffsets:[[21085,42860]]}},{type:"Feature",id:"MLI",properties:{name:"Mali"},geometry:{type:"Polygon",coordinates:["@@˰ƶƘӶˊpזɻӄǖ͖ÇŴȈ⁚^ȈךƣļЛ⋈Л⋆౾dᬼᆳᬼᆳȨϿԺʉ϶ƋV՗ठĈFካҟ֗íԭݛƃ଩ï̳̗ա՟IȿLjҥš޻ΑDžʿٳϕŗɍΙǡНŔɱȳūֻڙۡp˳ɭΣÆӥ΋ůȝŁŽάʍĥơhƷʕ٭PɷŴʼnùʱʎ¬ʢĿİdzĉ˚Ǥɐ΅ΚijɴȇȂǙvȫş˕őɱǹΫäɷɈƓ„ɕőƅAµ̮žʾí̽͘ʀǓӔԺ"],encodeOffsets:[[-12462,14968]]}},{type:"Feature",id:"MMR",properties:{name:"Myanmar"},geometry:{type:"Polygon",coordinates:["@@ӫηץ›ϥࣥΟƳО݅ՔؗΈօ̭ܵ̃ƹȪу֖ڙĪҷ_ϵ͠ދң޵Сࡷăذʴ٠˯ӼæࣸͽѤ˛৔Ʊਗ਼εۢօуॕ׳ҽöԳȠ̂ਪǫ޾څॺļ̢ӭņ׭ۆÅڰ̊ŵj׾дȦęΤȐ˺Ž࢈ڂȑϐۘ¨ЦҪ۶}Ӕજ׆׸ƱçԬ̎ƸÛ͈ӮÚˮӵξȧ|ٟ“ۙߓۭijঽࢲƔȨޛՐǍʓۣز́ζƷ؞ʔ~΍܏յdẕӓȗ"],encodeOffsets:[[101933,20672]]}},{type:"Feature",id:"MNE",properties:{name:"Montenegro"},geometry:{type:"Polygon",coordinates:["@@ÁǀηЯÊˋǫÞɽ˞εǖĢƜŬҦ˚ȜƾüɠƟŬśˠě͌ǧçïƽȋɧó"],encodeOffsets:[[20277,43521]]}},{type:"Feature",id:"MNG",properties:{name:"Mongolia"},geometry:{type:"Polygon",coordinates:["@@ࢮƢ྄ܤ౬Єܴʳ࢚]֘Ͻ࠼‰ௐɁࠈגͿӶࢊࢊश΍ނįনɍLjؿஜΛߐƺਫ਼ŌࡆōࠖЗԚѕެT੒Ƌޜȼૈƒ௸פԌĝѰ˭ৌêХهק࠽ɐ΅ӈńࠤŽ٦̴ڬˏހוğ̗ڏĦ௟ŏןʅ؝։౱͙࠷ѽࡹǞҿúѳէˎ͓ƌˣי˯׽҇গ̑ఽ‹ഫ̇এҋϋʾ৭AఓԜࠥŰૣśჃȊऑmӱԀϣޠԱĢ৩ԼଅŞুƞ̡θ͖চׅڲன̀۷Ѿəז"],encodeOffsets:[[89858,50481]]}},{type:"Feature",id:"MOZ",properties:{name:"Mozambique"},geometry:{type:"Polygon",coordinates:["@@لæ৞ʁɖńגt̚ʦԌaऀ͜ڞӤƊϕ“࠷ľ݅ಿƨЫʣ׷͙׍՗Եޏ͉ृСॉ͓ࣕƵוׯ΋ȗí׳ЌُǔӱZʣƪ¦{ࠗƋϷȤƝűΓΗ̗ۗ˳য়ҕρ̳ðΟɊÉíѵّRïϊůϖí̠ƬपɓװГஂࢬ॔ɜ؆ŶúĨӶƉʞ˜غǐ׌E੠ѥ˒ЏÔǹȼϳǰ۫gÅ̼āװᢈۘӚЕɴüͨɅ¸͵ǯϷØסոԱʲ׌ζǰíઊΙ؈̣˖̅]ɽદɾٔ"],encodeOffsets:[[35390,-11796]]}},{type:"Feature",id:"MRT",properties:{name:"Mauritania"},geometry:{type:"Polygon",coordinates:["@@և־ԗؤ֍ɞГʚҵUЧǽйð˽ˏïҐɺаŀߊģࠨĵкČмɑЎѵδǾˬᾔMǃ௎ȴќ߀øᒸ᪂©F౞Ṗ᎟౽cМ⋅М⋇ƤĻȇי⁙]ųȇ͕ÈӃǕוɼˉoƗӵ˯Ƶ"],encodeOffsets:[[-12462,14968]]}},{type:"Feature",id:"MWI",properties:{name:"Malawi"},geometry:{type:"Polygon",coordinates:["@@ɽٓɾથ̆^̤˕Κ؇îઉεǯʱ׋շԲ×עǰϸ·ͶͧɆɳûәЖѵɔʮޮ˄̈LJۢǚڼƞɪɉ܌Ѕϐ࠘ƽǜɵ˶Ϲɾଡ"],encodeOffsets:[[35390,-11796]]}},{type:"Feature",id:"MYS",properties:{name:"Malaysia"},geometry:{type:"MultiPolygon",coordinates:[["@@àћֈĶ˞ΈȘýӸԓΜ֛¶֣ęϡĆ˿Öӻ̒ɵͤݑe˳׫Éߑخ঵ښįђӟ֚ś̡۠ҜĠؔȃΤƤƮۈρ"],["@@أ˹ܯƚॱ@̅ॗ͓̇љୟۅǵߑɾЕóөщ՛Òէǟַӆƕ֘؜˽ٮǀǜ܆άǂ৖Ǻ׾ڔЬՐϦѥǮ˺В¸՜œа٪אшڀͼHќыžιֆɻ۬ʧÑ֝͡¥ƮЧ"]],encodeOffsets:[[[103502,6354]],[[121466,4586]]]}},{type:"Feature",id:"NAM",properties:{name:"Namibia"},geometry:{type:"Polygon",coordinates:["@@رٌؖ͡ȃࠊȷ،˯ಒm৒ŅҞ͛Όѡۜѳ৘ǽՆۃࠐ»٢КdžԊƞհ}ԄϝŶÐ₮˜׌Е᎞ş໴΂یȒհµͨȍPéӁȍʭC՛͍ͣΎಕ̍سƒ{Ჽࠣ‡BយA᷋ݣѕҋÕՇDŽϗÔƗάͩɰГг"],encodeOffsets:[[16738,-29262]]}},{type:"Feature",id:"NCL",properties:{name:"New Caledonia"},geometry:{type:"Polygon",coordinates:["@@ېԵѨϭ͉ȫҥɪ׹ϚէѼ։פś˶β[Һ˹φ˷ˎɻ"],encodeOffsets:[[169759,-21585]]}},{type:"Feature",id:"NER",properties:{name:"Niger"},geometry:{type:"Polygon",coordinates:["@@nּॹȐОҿպœϤâТբ̴̘ପðݜƄîԮҠ֘Eኬஈϒᝪ࿸᮪ཾ೨αӀңר̸ȸಯ̾ɓ`ˋΔ˽ǻί͕ၻ«ધੳߋγૉΔ̵CեբmčЃʁµˋƻm֩ंȟ’ځҷٱʔҍ¸ʏşӯ~ӷΧѓq৯ѢЉȵѓb̿͆ࡅ̼ࣗıɕǻşӗʋ͹ÍݣٗӚ̟E˭ʗ"],encodeOffsets:[[2207,12227]]}},{type:"Feature",id:"NGA",properties:{name:"Nigeria"},geometry:{type:"Polygon",coordinates:["@@ࢍ̡͉¬͓ȉڥl҇Ղˡ؊שֆكYݍB¶തs՘ǂՊʶʴТԴėɨǔ͸ȍӾ˪ÎݤʌͺŠӘɖǼࣘIJࡆ̻̀ͅєaЊȶৰѡєrӸΨӰ}ʐŠҎ·ٲʓڂҸȠ‘֪ँƼnͬͯğƱ«˧۽ٱɛՙšѧDZȉǝי҅ΉŽыȋ͹ÿΓֽ˱ҽΊ͇aԃӭʑQЍ߷ɍש"],encodeOffsets:[[8705,4887]]}},{type:"Feature",id:"NIC",properties:{name:"Nicaragua"},geometry:{type:"Polygon",coordinates:["@@̃ˆϽͺȁ˲Ο˄сϜĤžƒŵÚÒʾ”ŀȔŬRkЮȠrǬOǺɤʜǝĒľƺIJ̊ɴbǦĄQňȪĖ|ƜŹǚ›ȆńɄB̈ŌŜŖ˾iïă§ȉĐ̫ȗ˹ěͷυ®ɏtϙŹĉýΫÌɛǣɋ ɩźƏȩDZʛÈƓǦˉêȕʼnօɞųŇ"],encodeOffsets:[[-87769,11355]]}},{type:"Feature",id:"NLD",properties:{name:"Netherlands"},geometry:{type:"Polygon",coordinates:["@@ۦyǀ˳Ƚޓɇ́ԍ@ƘࢡҥȞՏπީǩ؛âѠɲ݀ఆଲΘ"],encodeOffsets:[[6220,54795]]}},{type:"Feature",id:"NOR",properties:{name:"Norway"},geometry:{type:"MultiPolygon",coordinates:[["@@᥆ؙઍɣऄՅෛ͵ڵû΢לઃͰಫ˵Ы؝ߟωࣗȮ઱¥णѼԉɝԷ“ūփནƊɝҵ߭Hևױ࠿झಫ஁̨˹̇ͫ࠯bձ޿¾૟՞э˥ধֻۧυӛ֝Ԫဋঁ૫ȟ୏є̛ࣚˇ኶ޞզᕠ۶ဌࢂ໤୦፺ྴඦلᘼ੊ᇎπ൪­౮ۢ໖›ພǘ"],["@@ም΅๝Ȝ׆ɐԕˎეǚͮ̿ொȍ"],["@@᪖صᑟͥұأ݅ǁЍۡৣᅵԢނ̘ఽʐ࿕܂ٷڄᘎ̜Ң̋஦\\͊˼௾ˆ੖̋"],["@@࿮̏ఝҍ᝱ı៙ƖƫɴஹdँϬᣴɼ௞ȫࡘʤᑺȽ"]],encodeOffsets:[[[28842,72894]],[[25318,79723]],[[18690,81615]],[[26059,82338]]]}},{type:"Feature",id:"NPL",properties:{name:"Nepal"},geometry:{type:"Polygon",coordinates:["@@ÝαŌՕĩͩ۩aয়Ȟ٭ĂӛђଷŊયҼ߉Ю߿͆͜޼ՒϠΒȪڪʳࡔշҾť˰ЕٶǓۀσौȕঔć"],encodeOffsets:[[90236,28546]]}},{type:"Feature",id:"NZL",properties:{name:"New Zealand"},geometry:{type:"MultiPolygon",coordinates:[["@@Ȓ΋װ;ʐΡBΝ̹ϳչإїͷ̴З٭Yܗ̓ɣջӋࡗڇϓнʇޝlխˢࣱÐƗ̰Ҍذ੐ࠦժǀ׾͌ܜѰԎѦώظ͈ɆŰҶלϴȆΧ"],["@@،ࢫlָϜɯŲًڰ˛֨ãӒ͎юĭȯݗʯӫٛjɡʭþαūƻͅҏзֹ٭ͯƟɘΕŨӞ۔˟ҨࣛͲz̦؈̌ƚ٨Ÿլͻ֜vƪБΎڋݔΗת̸àҚұٺɑʂݡ"]],encodeOffsets:[[[177173,-41901]],[[178803,-37024]]]}},{type:"Feature",id:"OMN",properties:{name:"Oman"},geometry:{type:"MultiPolygon",coordinates:[["@@ֹ̻ϟªǩȧƉэļ֗ÿĻϯFԽ̻ćХȓǯԹP͡ɃJͻПɷҩĂ֗˳ϱ³˝טٿ൴ᠾ࠾֖၂ϩתv͸ʔΐFΆϞǒƩŞèմіHϖֵҸ̧؞ŋӼƳϜӕɨ˧̞ŃCȉ̩ԃƅɽΟˏ"],["@@ʼnƳDž˺ʔ˺ľñā΍"]],encodeOffsets:[[[60274,21621]],[[57745,26518]]]}},{type:"Feature",id:"PAK",properties:{name:"Pakistan"},geometry:{type:"Polygon",coordinates:["@@تϻʞ٥൨ͻ߹۷ऩůౣȲЫα̖݁̈֩ڴгܑӟ`׳ࠃࡇՃ࡝࢝ࢡউÚऑࢡռϗĪ٧ҾэǘܝᇛD֓֕؛Ɇʣ؀٭٘໻ǁിeஃŝ̈́ঊொѢéϰГƌw݊ߥφͷԔеѶඨѕࡀŲԈŅǞȂגóદĈ܎ҶӈشCĠɼٞŌ̴ý͢ʀ±ԌΦԖ՘Ɇͥ֊ߜɴ̢•͒мΜĩмȣΤӬμࣘǮ८ĮѐƺӨĦ"],encodeOffsets:[[76962,38025]]}},{type:"Feature",id:"PAN",properties:{name:"Panama"},geometry:{type:"Polygon",coordinates:["@@˫ʎǵҒȺɢɅÎƿˤлɸοÁǝ̇ͻɁǽ‡ĉǩВҗɯŅŧŭϷ©ơԈŋƛˡ¸ǝ͸·ÈɓİέCǻĩŶªǖìǠƲŲIJǩŲK͸͘ö̠̝iDZͲ›ĀæɴȵЮÔΨɄԜǞ˺ʤҬ·‹ĉҶ…ώơ˜ʧ̈́ɵĹūȜӵǁʟ˓ÒŅС"],encodeOffsets:[[-79750,7398]]}},{type:"Feature",id:"PER",properties:{name:"Peru"},geometry:{type:"Polygon",coordinates:["@@ɥљћɋࡅӘñΈရࡊທࣾ٫԰ΏۜƐʎ܅ાࠣ༄ߍီ΅Ϥ˃ؤٷպױͼ˖ϒПߢʼךڢՎIJΓʇȧx̭ΎâͼĝΚщӆΌDŽ֤ԦܶৠͨࣸࢠʾմŝٔɢĂ֒ЉˎЅϴɏӶࢣضĿҨɞ̤ƣԎð٠Ͻթࡣʤoрҁݳ œųۍlj॥ֱÓϻɉ̇ČғԕʍBΡɛƵΔݳҲԝDZί֐µ͆҃ݐuېӸÇ౧ϢĩӄƠܪടǷ˵£ןg܍͟пƮ̵ȕ˯β۹Ջ࣡"],encodeOffsets:[[-71260,-18001]]}},{type:"Feature",id:"PHL",properties:{name:"Philippines"},geometry:{type:"MultiPolygon",coordinates:[["@@Đ֏ºҽ˹ޑ̫ࡨϽэˎإʉϿ঩Ӧɿ؊ʰЎՑЈˁΑЃثҵƑʖ͢۾ՌʀҜ̈́̔ϝٔɰƎϒרv·ٰڼЋêхÐ̱"],["@@̟ˡˁՍ˃ʝԫ׈ǦɤɂɾĢԸҨ¸Ɖ֣جߺāߡ"],["@@ૣߕЬט؈԰Ԏ׊Ѱ࠲Ʈۅևҧѳֿ"],["@@Ԏʹ՘BgΗϳΣՕʧ‡ϸÒєŽА"],["@@ʀभ٫ɞj˭ȶԯЍȋ•עʧªƁԘӶãY͈ԣٜ߮mɴ̻"],["@@ɟܩέоѓ٘ܚ‰̡̈"],["@@ԮʉʶɖüɇƍΑ˼׻ɛۥӷ˥ƁڳȊڝѾġϊIJਾүăҙ˜ȫēϯٻЮ̵Ѵɍ̯՗ԊރůлȆ¨ΎˀɊʣȘŇ̡бӚűμߨͺˡĔೄ˜ހԘA"]],encodeOffsets:[[[129410,8617]],[[126959,10526]],[[121349,9540]],[[124809,12178]],[[128515,12455]],[[124445,13384]],[[124234,18949]]]}},{type:"Feature",id:"PNG",properties:{name:"Papua New Guinea"},geometry:{type:"MultiPolygon",coordinates:[["@@ɽčε͔ρՔǷ٘ŜĆĜʡʬȏРՑЈ˵ŝɽ"],["@@ѯçƃɽҟȱћȟѽBۏʔӑɺêʺݬũҠàŶЖŦrĆѽӐÜʂ˼Ҹ̚ġӸԌfǜƏgү˯ԡ"],["@@ݤտղࢻӖ„‘ω٬ƛʥǁࣀΝġʏ֋ÏȷɔܟĦࡕŴٷ՚ӉҦѧ݀ભπ܇ʇԡˣńإڇ˿һƖࢅ–aᩒaᩒภ׃༊ӓׄїҴхŸӵඔԱȲѽޛěȄ֕"],["@@ʿɡǁӸȝ͘ϝ˞ӍΪ؇ʚɺȮҒɻ˸ȁΜȫʹΛ͊ˏĶѧ"]],encodeOffsets:[[[159622,-6983]],[[155631,-5609]],[[150725,-7565]],[[156816,-4607]]]}},{type:"Feature",id:"POL",properties:{name:"Poland"},geometry:{type:"Polygon",coordinates:["@@·՜à̂ȹ̧҆̚ɺɤȝђָʘ಼ϴ੒˴࠼ƙÚȱ߸Yਚħ໶^њěȬʵšωɸ͋KͯԋǡʸϳfϏцܻěɽзįރۥɒϗǿ¶ߙ͔؁šЇĒӹǵч̖Ήŕ³¼ϭаر¼ăˀֻĦűɑҗǨÀɴػòЉ˔"],encodeOffsets:[[15378,52334]]}},{type:"Feature",id:"PRI",properties:{name:"Puerto Rico"},geometry:{type:"Polygon",coordinates:["@@јõưǕɋɃمLӫ‡·άŢŬیK"],encodeOffsets:[[-67873,18960]]}},{type:"Feature",id:"PRK",properties:{name:"North Korea"},geometry:{type:"Polygon",coordinates:["@@Şƥ͉ºη˵ʣ˷Ž׽ѣȅƫƧ̓ʝ֓ƏηɥηįġͰƋӈσŧȭΧÇץ¡͝ϛϑˆÁùСdžĵƿʙé‡ǀɑüɥƆɰφȤİõƶɆҒÅƎөĠЇɤۄբऒҌ־׮Ўˁܪ‹ſѺಚβͰҼժӹ"],encodeOffsets:[[133776,43413]]}},{type:"Feature",id:"PRT",properties:{name:"Portugal"},geometry:{type:"Polygon",coordinates:["@@̦Ɉ΄ŬɂЫӺDƞłӪ‡ɼуϱɩYٽƍū‘Їγçʹԋɵտ̄ʡřɫ̵̿ê˥ͷɓѷŠџġŸڂÿԬϓþȩ͈äռͰ̨ÒͼǪԎkΤǙ̠™˲"],encodeOffsets:[[-9251,42886]]}},{type:"Feature",id:"PRY",properties:{name:"Paraguay"},geometry:{type:"Polygon",coordinates:["@@ͦ৖tҌЖ݌าʔޮ]޴їbʵʞҳÇଛࢲLJ΄ǐ֦ɩǀʣþޓİ͓̼›̀ƌ̢ƳAҥŕӻǑӛƍݏށ١ړƇऻŸࡑɮࠢ౨ťψࡽ͢ਅبۉŸ໵ൌ"],encodeOffsets:[[-64189,-22783]]}},{type:"Feature",id:"QAT",properties:{name:"Qatar"},geometry:{type:"Polygon",coordinates:["@@ÇؔɨѲɰĜʬˁdӯǽӳɵÑʫǖ"],encodeOffsets:[[52030,25349]]}},{type:"Feature",id:"ROU",properties:{name:"Romania"},geometry:{type:"Polygon",coordinates:["@@δǶԴġՠGϸȳ˺źبĄɄȠΠ@ʰćʺʟˊΟӞԁ€ρėΩưϥϒƹЂƊϠƟpɏПǹʯĀɻ৥ӳĖ̪ؑফțзɋ௽¬٥ƀ͙ÕʍΊƵƦȚƘȷŀ˃ȋөʔßΌԟȢĥˌҕͤڪǂԖ֮Њ֬ԢǮ"],encodeOffsets:[[23256,49032]]}},{type:"Feature",id:"RUS",properties:{name:"Russia"},geometry:{type:"MultiPolygon",coordinates:[["@@ࡌ๫కˤԫ்ࠌࡳyוُԒսٱƻ۸Ĥࠊħ࣢Țٌš૴ӯࠜôରަϮͭϴϐŠɔ։̆ߵuࠟΎࡑ"],["@@໵]ਙĨȒτ୊˚ࢢƧψƃęɱäɉ"],["@@֦Ƚțؐᗸű࿨޻࠭λ൛ēsࠑͳǩ޽~ٗ̊ૣʖȉθ࡟Ǝॗʼnҗ̎Ǽ̸৓ȥϚЃӉΣ@„Ꮪٛᔺ࠳ïԷ"],["@@ः©ƭˌੲΖ@ַ"],["@@ળ»@ָň–܈E௒ʉïŗࡽȩ"],["@@ౡMႣĤƧ¬ߘͪੀþஞ͏ĸə"],["@@ॿͩഉø༛ͨȪ˖༨ųᑔɗ"],["@@ډرᶽzඃȣမղҎ׀૎ǂᕞ™ᴬѽ"],["@@ӹóᩣŊɟώູɦūҒ࡮Ƕ…Ҟသܒޙĺ፨݆ɩϢሤѺ᪪բ᫠ǀ෴̸࿐Ŋאͩ֟ʻᲗз᢭Џᤙߝఫࠍ೉߱Ǡۥྎۏ"],["@@ɨгސȲឤYቈЧڬ̿ȽѧङʝᕅүفʟਬşఖɃݴDŽєաτɔഊƂ᧪ƑȴϽ↲ů´ٜᄼƥഄLബѷϮ՝ӹΙੌڋ೔Ϳ߸ࢦഖϙ෢ɦྼʵؤʀൖş؅ޮૐζ䢀ձܐӿᔲٛ₎DŽာƑ۪΍Ĺؙਜʇ૴Ǥ๰vཚǑཪĢะݛਪˎڷ՞ϐώᧆɻფºᝂБ୲ν@”MKઇσઝÖݶҁԄەϲɧĮΏɑɝ༧Ǿ᚝مݛĭ౽ן௛ԧ̱ϣய׊ᔗڇϣ̸ߵΫ૱Ř˓ց৙߽Šͻड़ȋő௣ޭ‹Ϋ۱Δα฽ѕ̅ॡభȳʥ࡟ே޳ׂ̳έ௬ҵለИ୘܀ԆªϾರȊຊ੒คࡺຢڢڮஆ৷ëԍۗᒉइۍਖᓧ˷ᑃටۚԧሙɕಝēÔ؊ಯŶ਩ЭᢵƠ᪏ʟᨩ࿛ủጝ೚ŁаՃࠄȅ՞оईÃௌऍ†܍ځ࠽ë্ϛഉ్௓˯ׇଙ঑ଇॻթӹ૩ӱՉYՇФૻؙſ˩ŝƦKѐіxŦ঴ɛܚܞ̒৶Ʃ֢ࠈ˾ऄ͚̮Ѵݲ൷ʛܯͧ౧Dͻ߄হװหˎ̵ࠖ̉Ԫ̿βԯࡐ̲݇షʢ૛uਯƱۛлҤȥXҩұˑݷࢻRσஅՍ৙̈́োéѯˮԋĞ௷ףેƑޛȻੑƌޫSԙіࠕИࡅŎ੝ŋߏƹ஛ΜLJـধɎށİवΎࢉࢉ΀ӵࠇב௏ɂ࠻Š֗Ͼ࢙^ܳʴ౫Ѓྃܣࢭơ͡çѽԤઍőΧΦחnjЙӠҩưிɍୃӜ҃ѯሟᒒੵٮ̮˂ᑋߍ߭³êҞઅ˺࢙ȱ˃ࢊມǺݯΑᑅ̳Чȹḭ̇ϫ˻؆ֹ߭ɓǀɭ߭ХസֿɁЉ୻˜ʓʟ੹Ѧ೯iࢻΟহͼᇡ׊ಽsჃࣳĿؗࡹӤڡउʖǡӝُ܊֫ذx՚֗ďѝѐƋϥӽ߿Ƒ࠳ࢁކߕĉ֣ࣼফԇ͹ƝɇωÌֿԚɿ†ՅȚʳΈ޵ǮԙƁƥƼଥЖఅƌ܃ƞĹıੱ܂य़̈́ܩӴؒƈۤ۰ҹͪఌ΄uȀݯƉ‚ώѠɼ߼ÖƄ˪ȅҪ΀ѰWʚఉ˚ӭUԯЀ١ƃ੩̐lǒ̗θڟ¤éʼɀǞ՝ӈࢋąʭ¦Ƀȑ̽”ȷ՞ȟ˨NJĀڴ‡͞Ȁʍɢ֥ƪ¼Ʋ΁ƴՃվǸɨĉЂࠑȨѱijšȼࢭɂˑӸíТЙȖάˊʝ޶װӞųƤक़ҬࢡЎᅢ੶ޮӠ͂єగּΆնݳش֢ܜ঍ग़ޢي౿֔ŬךڶüොͶࢀ̈൦ԕᘨȧṺो٤ЋÆ֓टѳ൏ɡ⏷ٔ؟Ńൌ؛ÂϵÆ࡫ઌʯڂɓňРԑΰ՘͈᎖Թ۾Ȳ֣؜ዦࠖޢµ޸̋Ӫ׀۫ԄЪԊءԶᚠˑӔҹ੡ĻNҳڌ˽ಜǼȶ՚ჶАᰪܞي£ࠣԙਬĕ׼˼༾xఢΐफ़ԏॖ֌ࢡӢѪˤ២ʫ୒ʿᴾॣ֚ѰࡡѺ{ǴৣĈˢЌ҅ټ}ː༄ݾրކزǒᕮɛǬұߕڽԺˋ˒חȏଵऒԧέ֕࿫஝०ŭ̢ͮऎɎɞжܮЎөӌϼֈࣿêȫҲڢࡈણۆຒ֦șװмnѴүͧ߷࣐Ƶϥ؄ඤͦლ¬༈ӏݛ۪ċࣆศǞ፾™ᆘŌہѮংւॲx࿎иᕠŐ˪ɲᕂþیȋሴҀ໲aɶδߤΨጤΈ෸˗ଥȷበŹ"],["@@ⵙ͕ໞીےĦقÃᒈӋʟͿ"],["@@૽ōݱÛśƏঙƑ࣫ȦӐʾል~࿞ƶ౨XǢɧӘȬߊƐఞǿ͗ŷ"],["@@ᆳĿᚉʎඅ͎٣׾଩ǔᔆָᆎȎ࿌чኬ߻ȹݯ"]],encodeOffsets:[[[147096,51966]],[[23277,55632]],[[-179214,68183]],[[184320,72533]],[[-182982,72595]],[[147051,74970]],[[154350,76887]],[[148569,77377]],[[58917,72418]],[[109538,78822]],[[107598,80187]],[[52364,82481]],[[102339,80775]]]}},{type:"Feature",id:"RWA",properties:{name:"Rwanda"},geometry:{type:"Polygon",coordinates:["@@ͬӃµӵʏŁѿÆʱӍԛàþҠŘތԄʎɺȰďԈʸ"],encodeOffsets:[[31150,-1161]]}},{type:"Feature",id:"ESH",properties:{name:"Western Sahara"},geometry:{type:"Polygon",coordinates:["@@oҊŸ@@ÉeNjEౝ᪁ª‚ᒷ޿÷ȳћDŽ்ᾓNǽ˫˜΢bCቆäĶ̢ΆϘˤୌୠ࣢Ђ੖ˀÖ˜ټۺĜ̦ʼnϢ@˔ȒԲ‚"],encodeOffsets:[[-9005,27772]]}},{type:"Feature",id:"SAU",properties:{name:"Saudi Arabia"},geometry:{type:"Polygon",coordinates:["@@ʼnΪʩʨÝͲѡ̞҃۴ʁۆׇ׀ϑƐ֋ߠīא–ӾӕञϿ͠ґǨˡӖ°ȎɹѦʕȊ͝زԟڴѓ־лIžҦœ̌ļͲनƅζʶȪ̢ٚŚƒˮˤƜ࠷ࡀ၆фdžŴৢɩబיᛎၕ༠ãݠąȾЏתv͠ܥаȓƠִ̏Λ¼΍ċ˩ł˯ʎɽŐ˟ŲȵʬǕɶÒdž͍Žș࡙͐ᡌщǞDzϪש֕၁ᠽ࠽ᝑ͑޷ϙ׻ࢥϹƕɁˬ͏§߻ĎƷČॹmɫùΉɔɝЭĒΟρˋ"],encodeOffsets:[[43807,16741]]}},{type:"Feature",id:"SDN",properties:{name:"Sudan"},geometry:{type:"Polygon",coordinates:["@@śhdмĵ̀џͨĵ؄ĶبϳÌÍȇԍ©Ȭʕðԍңңл؅џđ۹Ӫͅǥđʓџǃ…ǥ࠵@řǦ؃†̡ƝɳîѝӬƟɲ؃ŗɱϵɏݣ˿ǁʳğå ̅ʎÃʼƌΔE΄ӛՀĩάZȰ̱ʜUӦǭ͖̍µĎ̰ɒΖħΐˢʴǫȞɞ԰ϨئܦÏ¥ ZΚॲH@း@Ὂ@ῼ@˔ࠗȁƳŪࡻ্̰͌ȷҠ̳ыӑأƏ˅ʳĉ֑α௿ĚͳƅܟͿࠟԓзέٛč΃Љɽʝ࢟Dij"],encodeOffsets:[[34779,9692]]}},{type:"Feature",id:"SDS",properties:{name:"South Sudan"},geometry:{type:"Polygon",coordinates:["@@Xٽűʯѿq˷ӏԨÑюХƨͳϦșӼࣳ֫օԫԇԫϭסFگȟՕȊ΋ɭ݉֐ȥάҵDZϱÆɣƕϗĸԗۚƉˊعͪɅԌΕζ֟ѬS˘ҡͼ֯͠ʴĠ̀ǂɐݤɲ϶؄ŘƠɱўӫɴí̢ƞ؄…Śǥ࠶@†ǦѠDŽĒʔ͆ǦۺөѠĒм؆ҤҤïԎȫʖԎªÎȈϴËĵاĶ؃ѠͧĶ˿cлŜg"],encodeOffsets:[[34779,9692]]}},{type:"Feature",id:"SEN",properties:{name:"Senegal"},geometry:{type:"Polygon",coordinates:["@@΍ٺн̚φDŽРמȦќ˾ːкïШǾҶVДʙ֎ɝԘأֈֽžԹǔӓ̾ɿî͗ʽŧ³қâÙģȃk׿ȲЛV༇–ɥħ˥‚ѻƋƏ٢ވkȬŞƮR̸ȘήǯκcζȌǝʐˡƙʻJͧȸˉ_ȍȥࣵy"],encodeOffsets:[[-17114,13922]]}},{type:"Feature",id:"SLB",properties:{name:"Solomon Islands"},geometry:{type:"MultiPolygon",coordinates:[["@@ɾ˿חN͉ԬԈȯǜ‰"],["@@͝mԧĎǫżÀͮֈƁ˜ǭƎə"],["@@ųƹحܰǫԈ˺@̠ڥʹЗ"],["@@–ǛڅΦҟ̠̿˪ŰĐϮȫېϭȢˉ"],["@@Ǘ³οȒ·Ί¨ƖԈΡͰ˛"]],encodeOffsets:[[[166010,-10734]],[[164713,-10109]],[[165561,-9830]],[[163713,-8537]],[[161320,-7524]]]}},{type:"Feature",id:"SLE",properties:{name:"Sierra Leone"},geometry:{type:"Polygon",coordinates:["@@ɧØ؁ͺѩ҈Ƨ̬Ĺت҆τĬɺƞǸɶpȜǂڦCɺ̛ǼˁʓƈɗṶɴ´ϹϹϛҗ«ʓȩˏ"],encodeOffsets:[[-11713,6949]]}},{type:"Feature",id:"SLV",properties:{name:"El Salvador"},geometry:{type:"Polygon",coordinates:["@@ġȡӡ^̡Ą΍ǘұÀʃǶ~Ů˾ɄǀĢ«IJȠ¾ʜëǸǙʪƇŒœτĴǤÑŘĝÏͳ"],encodeOffsets:[[-89900,13706]]}},{type:"Feature",id:"-99",properties:{name:"Somaliland"},geometry:{type:"Polygon",coordinates:["@@ϛԩד۫۹Mᩧা͍̜̳К̳ҨǾ̖̲҈˚ƹǒΏϜΗкGߊɌࣴĴ݌ʼиÆ̚ƶӎˆKaE΋Aࡑ@ѫ"],encodeOffsets:[[50113,9679]]}},{type:"Feature",id:"SOM",properties:{name:"Somalia"},geometry:{type:"Polygon",coordinates:["@@ѼĎЊ˾͈FpɵýӧHѳǯ̣ʁࣥЙयԱ੷ܝ௷ܓवধ଩ࡁڹష࠯޳ٕँৱȗѷȍȣӽۚWᵤܾ॒ɰˆբfݠפબšᛜᡄה۬ϜԪ@ѬBࡒFΌLbːhϰŰ"],encodeOffsets:[[50923,11857]]}},{type:"Feature",id:"SRB",properties:{name:"Republic of Serbia"},geometry:{type:"Polygon",coordinates:["@@Ԡȡà΋Ӫʓ˄ȌȸĿșƗƶƥȷȏø̫Тγ͋ʿƗˋĞijƑšϳa˹µƒØĴĴĦȴšKǍƼƑ ŋƆƽÀšŠƯ±ś˧ȩÑèð͋Ǩ˟ĜūŜɟƠȢšŬЄЛ͔ɀτ̥Ë͔́ˉʈȱ͘٢ɚԾ™ҖͣĦˋ"],encodeOffsets:[[21376,46507]]}},{type:"Feature",id:"SUR",properties:{name:"Suriname"},geometry:{type:"Polygon",coordinates:["@@৔ǙĞưڶÔࣚɥѩܟâֹͤӽƥίóϩɉΛӓDzЇđ͹öčʏƘǗ÷ǡҙèԡܴōӄˏBωؐƺѠ¯ȤԜɖƈݲ"],encodeOffsets:[[-58518,6117]]}},{type:"Feature",id:"SVK",properties:{name:"Slovakia"},geometry:{type:"Polygon",coordinates:["@@´»ΊŖш̕ӺǶЈđ؂Ţߚ͓ɷɓǏ͹dzđ࣑ʮ˟»ȟȡЁĿěÄХŽͭ}ãǙ۷Ļ̱ĠёɌċ̆äńŢȂόa˺ĔxþLj¢ÆȒȖ˜žưʢD"],encodeOffsets:[[19306,50685]]}},{type:"Feature",id:"SVN",properties:{name:"Slovenia"},geometry:{type:"Polygon",coordinates:["@@ۜÝъȐܾtLjƘƘUǎ˳ڝɟć͹̇đHɻͣh˷ƎƷƙב†ȈúȫΨĞа"],encodeOffsets:[[14138,47626]]}},{type:"Feature",id:"SWE",properties:{name:"Sweden"},geometry:{type:"Polygon",coordinates:["@@ࠁוƀԥ೹ڭྱܡؓஃײףߦүޗॅ࢑ȝ͍තӋ޿৳ĆӅڗঃˉߐ۳॔ٓஐφӜּۨ˦ন՝ю½ૠղ߀࠰ä̧ͬ˺ಬஂࡀञֈײ߮GɞҶཔƉŬքԸ”૪Щ಼ֱv಑˴͛ฃʃ"],encodeOffsets:[[22716,67302]]}},{type:"Feature",id:"SWZ",properties:{name:"Swaziland"},geometry:{type:"Polygon",coordinates:["@@ǡύӭěԅҖS̄ɰ̀ĂʔʐÒшƵŰϕðω"],encodeOffsets:[[32842,-27375]]}},{type:"Feature",id:"SYR",properties:{name:"Syria"},geometry:{type:"Polygon",coordinates:["@@࿩ࣅऩͬgNŖŶ_ΈȸҠҜ̈́Əͤϗ¨ÿٞȶΌɤȀɤȀ°Ҹ˞Ǐऎɺ҂ƿۖFॴ̀Ґaक़žїԽҡȹĂؗͅ৫ᇵ࢓"],encodeOffsets:[[39724,34180]]}},{type:"Feature",id:"TCD",properties:{name:"Chad"},geometry:{type:"Polygon",coordinates:["@@ĎЄաnDզΓ̶δ૊ੴߌ¬ન͖ၼǼΰΓ˾_ˌ̽ɔȷರࡔҠ…ྑ…ྏ¦ ܥÐϧإɝԯǬȝˡʳĨΏɑΕč̯̎¶Ǯ͕Vӥ̲ʛYȯՏƛэͽ؉ࣹ߅ϳ߹¾ʁûĊ̏ѫ̋Σ͟੓͏ȽȐƓhƹɍۛÙƀɪ˅ׄşΐλƜӷӪǼІϦċʂÐҸSқކŒ֐É֐ͭՠ"],encodeOffsets:[[14844,13169]]}},{type:"Feature",id:"TGO",properties:{name:"Togo"},geometry:{type:"Polygon",coordinates:["@@ڱdzȇ̎ɡՔãкȆݴɁ̬ăڎD؎ΕѠÖˀ݂kŅѵʲʝ̈̋ŽЭǜǥኝȺׅ"],encodeOffsets:[[1911,6290]]}},{type:"Feature",id:"THA",properties:{name:"Thailand"},geometry:{type:"Polygon",coordinates:["@@ݭϬܗeŬڈ݉Káऋґ௯˙ݏÌ؋ն΀ދưܭҶӓԚĭѤѧ˝·ևĵßќۇςƣƭͧ͒ƝжҁӄПЌƏӳǃҲĠԾʚ߬ТࡸҤ޶͟ތ`϶ĩҸ֕ښȩф̄ƺ̮ܶ·ֆՓؘН݆ΠƴϦࣦצœӬθӔȘθʷ´ԍ֨ȷࢭpݫࢰԆʤƧӰzǜَ̊ÍٖڽÀࠥںܷ›܅˙ϛ޿ŦગDž՟ۧȤ১"],encodeOffsets:[[105047,12480]]}},{type:"Feature",id:"TJK",properties:{name:"Tajikistan"},geometry:{type:"Polygon",coordinates:["@@̭ʷࣳƖāӛ࣬Þਢ˗འŶɈާˠĐԜȓ‡͛ŴӍࡿBׁØԻϕύĉ̉ǯͩˠþ۸ʩ¢ĞʲғȐα̇ė͹Żūԇj˕ϩ˯nj؋ˑʱĺӀࡘǹض؟ȨɔφۮŸЌҬˌբ૲ȜǩϵŤɹΎv"],encodeOffsets:[[72719,41211]]}},{type:"Feature",id:"TKM",properties:{name:"Turkmenistan"},geometry:{type:"Polygon",coordinates:["@@ñۼطŠॣݔڣĠगюׯþσƽ֙|ׯӓ݇NjƻרŪ࢞ٽ˶Ɏֺ֏¸Ȇ۾ߊȵ݈ˎؓԎʉӔڱɋď؛ʿհψ˨ॖǪ֨ɻךڅњ¤ॆ\\Əцܖ̂۾ӦଆѹĜڡ͐ǣࣦžˮƳаࡽ०ׇոЃ࢞Щ૤Ϋwԥʩ€Ѕɤſ̙۽NjǙڥӁʭڏŵǫϟهŏࡩ͈"],encodeOffsets:[[62680,36506]]}},{type:"Feature",id:"TLS",properties:{name:"East Timor"},geometry:{type:"Polygon",coordinates:["@@IJȤܢȌז†ˀŀ͆Ľ̯ɫ࢕ο۳ʋeʬďǔ"],encodeOffsets:[[127968,-9106]]}},{type:"Feature",id:"TTO",properties:{name:"Trinidad and Tobago"},geometry:{type:"Polygon",coordinates:["@@ӚŊǮ‡‘صۭġƯúʒɲiͪ"],encodeOffsets:[[-63160,11019]]}},{type:"Feature",id:"TUN",properties:{name:"Tunisia"},geometry:{type:"Polygon",coordinates:["@@ΩພԭͺQȰۉԄóنԮҶȢۚƃߠǠќࣶͺךĵ}ы܊̲ÒljпЫMϱ̆ȽōܫփхDŽқѤaɄЍ͊ſ³٥Хʋʵˏֽ͓ĘΑïΟЧț"],encodeOffsets:[[9710,31035]]}},{type:"Feature",id:"TUR",properties:{name:"Turkey"},geometry:{type:"MultiPolygon",coordinates:[["@@஺͗ঐżܤõলѬࣆ¢ߴЭƜ̑ăУزȻͨʕֻʇˀ५ǏʻҠڧЕƙ̏Ɋ঍ňίŽॗŽҏbॳ̿ەEҁǀऍɹ˝ǐ¯ҷɣǿɣǿ̱Ϡ͈͂ԟí۱ȖֿәౣĥڹҊࣟ†ȗΑׇij߻҄ࣻeӽ࠶ؗҰЦٸՓВठߨಒ’Μྀٔŏ৞հ঒ʄർlุף"],["@@۫ҏ˃Ϻ\\ǦȦĦʺՂХɞࡦ˄ܤőĴ͓ܼ˓Ƶȵি±Ωʷ"]],encodeOffsets:[[[37800,42328]],[[27845,41668]]]}},{type:"Feature",id:"TZA",properties:{name:"United Republic of Tanzania"},geometry:{type:"Polygon",coordinates:["@@ƚġᵂႋÌӣ஼࠿ϱਙ¸Ӊՠ̩~ɓɳԓ¶ʭÇГ̌Ճΐ̰ࠡǿڝӣࣿ͛ԋb̙ʥבsɕŃঢ়ʂكåɽଢ˵ϺǛɶࠗƾӉʨՕƘͯƘΗɈґ੖ӣҺǗӤČѨƯޞΎ ̨̦͜ѬȺǮS˘ǷȐ·ͨʐł¶Ӷͫӄ̎Ķऄ[ႎà"],encodeOffsets:[[34718,-972]]}},{type:"Feature",id:"UGA",properties:{name:"Uganda"},geometry:{type:"Polygon",coordinates:["@@ः\\̍ĵԇʷȯĐPوȜ͎²ڬǰϸ͎Ѭ͔ɠ˒̘͵Ŗ¼চΌɮՖȉڰȠעEԬϮЊ׍İсτ९̧ؓЯ֋ʉͽTࢹႍß"],encodeOffsets:[[32631,-1052]]}},{type:"Feature",id:"UKR",properties:{name:"Ukraine"},geometry:{type:"Polygon",coordinates:["@@̾“ɄȒʮ¥ࢌĆ՞Ӈȿǝêʻڠ£̘ηkǑ੪̏٢Ƅ԰ϿӮVఊ˙XʙͿѯȆҩƃ˩߻Õџɻύڡã֑˕޽«ܣ̻¸ԹЪȭࡨ¼Ǐ̛ँơଛӟұǠȄЂࣽʘƨLjߪ˪ʑȔಯɆË̼ީĻ̷ҧٱةϟƠЁƉϑƺɂĞƦ˾ɲˎÑƮǬäĊśӸ{ɞØƽĎÐŲ̉ɈŧΘ̩ƐÒ˶ϝɦΉŽأʾ֑ĉȧŭΟ@Ƀȟاă˹ŹϷȴ՟HԳĢγǵÍɤұɮǐͺɸɔȀµɑϘބۦиİĜɾхܼДҢɪٲnࡖßबȫڎi͂ŧ̀Ʀɚȝݸ¢ͮąÄцʶȂܞº"],encodeOffsets:[[32549,53353]]}},{type:"Feature",id:"URY",properties:{name:"Uruguay"},geometry:{type:"Polygon",coordinates:["@@ղĚࡆٯ̺|ࡺ՟ڈҫӠֱχЉɸӇεՇॉұاǚғěޥΰ֫ԟҬÞլǾȈS࠸ɤࡺȾڦ"],encodeOffsets:[[-59008,-30941]]}},{type:"Feature",id:"USA",properties:{name:"United States of America"},geometry:{type:"MultiPolygon",coordinates:[["@@ũƕȽŤ|ɾƓ̨¦ĤƤƎÍǔ¸þÜe͐ƙƬñƌőɊ̍q¯͟ǵˏſ"],["@@˭ÑƟǮīèQÀĈî̘āɘŹëĵ"],["@@ĝ҉|Úĸа•"],["@@­µÓŻˆŃȒ’ɤŚêÃʐ˥"],["@@ıĉ˱ƴªÖŸĈȘijȝ"],["@@Ƭңʼƛז½࡬ƅࠂʹڼŊਖɓ˞Tݨʄ߂̧ࠒ͗ں˩ٶˏĈəȢĉ½ĉɦǎĔ¦ȣǜƅɴ@ŬĹĽƫ࢖ЁǶށǚܳʗӹЁҥȁ̍mēĦť˸Ɓɂ@ঊ҆ࡾƀસмfĐ÷ʰƉǒϜƆࠜHޘAˎ͞ŀàࢶ؄ϜƸ౦N໾BĎȺː¦Φž̖Ϣʲٺٚي˨ə֜ƜώʏAଧռӅƢ˝࣋Пࡷ̃ࢱʝѻӿƛȋSѽˤѽΒsė̬ʦȇãʇ֥ƋЗhةƥλ¥ӥ¥۫ʏఀǂʠǃ୳ʥ՗C|ĺʭɷʚǹ׽ؑ٧×Ɏȁª˟ɀǪҍȼƭ^ͅˏ͛ҿڡûʺֲѕ͎įۦljεǴՑևƀׂ˓˜ߛʊÍĖ̃ŠࡁՕدࢇʝցӱнÁэ̱ţ˭इձӁЍЅӽŻׯƪ׍ˬܗώשLεЊঅ֥—͛ȿԡʣŃЯĺƁς͋ȖѻܢϹٞű͢Ǥ֐ɽҦٻ۲͟źࡑϡƭ¦СϼՃȺोŁݗĤٙÍΏſƲɟaͽǴǓLJō̵Ů́ǃ؍€طѺܻĿ؏ȚԹÏۻȝއح࠳γҝБȕϗUׅ¨ЕDŽ˹͝{׭ȂٽʺɽЄȁטӷӐ̃ӰуֺףͲۉgՉڑۣʦѡʪȽҦ˧Ѯӿτїˈ̩̖ป@C΋ڗ@ဩOቿפ౓ТĀǒ੩ĝॕÝƙіխӚϻĴğʌһ¦̝ɪޭĊɉƌĹҢࠁࡊ۩ୠˆȚχˤٯ۴řۆ҃ҞȀۢ…ܜˍ٢͠ߊĸނĺނƱૼˇܘʓ϶ĸǐ௒˷҂ߋȺɜƇې˷ێᛸ@᠂@ࠜ@ᢢ@៚@ᡀ@ᡄ@᭰@ᮞBაAF͔˴J"],["@@࠽͋ѕɐŽЀބ̘҆Ÿ֐ÉΤʻܫЍ"],["@@ԧŽսƾԛɮࠦƞښùĂ͑"],["@@԰DžԾĒڸɛ࠲őéĝُDZٕǾ͋Ʋݍµȧôº̈́"],["@@؊ϛώnjහ»¹ȕ౾ƛࡨČᄚ˅ྤā٨ʼn૦Ǝౢʧࣲŝ@@MᷱIⷍࠠ{ࠌɵהρݜցࠈҺࡈ˖Ҁѡ֤·ޒϙՂ׽࡮य़ේ՗xՋұЙҥ͂ݍˌʃܺએںҍߎ߯Ä೷rটʌ჉ࢎߩDŽ฽̜୑í࿻ϬৃΨटǯǦ׏ҫÁঁǫ݉˱झdzťӶϚࠚࣀʶɱɂੱҵֵ֑௅ױؚСߏ׿ࣗΗࡁʱȻωಽѡ˅ϿছΫֽÞ޷ɻ࡝˹ۧ˫෹ʉſƘऀϾࠔʸࣆҠਬĨвΈ୘ԊȈǚب̒ƢْђӸॹʫ˓Ơҕ̧շюɧ̝̽м࠿ͳԩBïԄƲ̮ե̚થLJ܁ЀַȬIӈ٩Ϊ͘ӘۆҸ̚њںÖ־ƇڴМ؎ï٘ʼƻϨҹưج͖ԩWࢻǽʯȃڏȄஏĥ௷ȬΛ͸੟Ӧ୾ΘመШ۔@ŕнᄢŽڽԶਕ͌ױр߫ΨଽˈҺѲ๰‚ਗ਼ϦȨФ࡬ЎࠊĪཪώޜÉಐ҄ౚǭ"]],encodeOffsets:[[[-159275,19542]],[[-159825,21140]],[[-160520,21686]],[[-161436,21834]],[[-163169,22510]],[[-97093,50575]],[[-156678,58487]],[[-169553,61348]],[[-175853,65314]],[[-158789,72856]]]}},{type:"Feature",id:"UZB",properties:{name:"Uzbekistan"},geometry:{type:"Polygon",coordinates:["@@xԦૣά࢝ЪշЄ॥׈Яࡾ˭ƴࣥ͏ǤěڢଅѺ۽ӥܕ́Ɛхॅ[ᶾᓘӺƾïದ׻یͅߤݵঢŪ෸à৔ؗÙࡅЦMǢۍ੬ɲЉ̺Lπ׺૎הӖƺʠĉ۵խئ́ײȾ়ѷ੽؁ٕĊ΍uţɺǪ϶૱țˋաЋҫۭ ɓυؠȧǺصҿࡗهǰҳN"],encodeOffsets:[[68116,38260]]}},{type:"Feature",id:"VEN",properties:{name:"Venezuela"},geometry:{type:"Polygon",coordinates:["@@yȣӱĭ˜ϡYѭυӥ͆ڙδÆȌ؈ʻ̒§َਸ਼΀řІ̎ˆ̞ןל_մҵ˧ݮQ࣌ĔӖϕٞĻҼʾXɄਨ¼৖\\܉ʛ˼Їڦ×ِЯƆڧѬn͢ȣڕӱó̫˾̷ȽƽԫƉjϱɫɱّ֪Őʁ̭͍ऱ̽׿Žʏȣڛɀثņƿýϔɑ‘֝ŜՉ܆ï°ǭ׷ʅĭΣΉƏسȝNjʱٷÅҧѼʯ࠺ɟ̧̌Ȅюм…ȊʅʠǛ֒à׼Ȉ˰ƲҎ̓Ơӏĩ؁®ͻęסܢӥńઉăȧ̊ȷê‡ǬĴ̶áͺȃȂŅϮѡÈɸӮĺ׶ʔ̸͘ʌɈрդƖ"],encodeOffsets:[[-73043,12059]]}},{type:"Feature",id:"VNM",properties:{name:"Vietnam"},geometry:{type:"Polygon",coordinates:["@@૭ܗ۫ߍȁ׍٠ࢭ޺ળނԱԞګϪ།ŕ๓۫փ१եۇ۫਷ޱ̧ՠʀ֬دӌܬ͸ࢦÔσԚප٨ļ৖ț֖ƶࡀɃצٍאՋ݌ۥ঴৓Ԋʊ̠՞ɘ͙ܺਙPϕކӭڐҊȴڢIࠈĬܒ҄К̿ސƵƃӛАͿࡎɓ"],encodeOffsets:[[110644,22070]]}},{type:"Feature",id:"VUT",properties:{name:"Vanuatu"},geometry:{type:"MultiPolygon",coordinates:[["@@ˣō˭ςŒɤՆӗ"],["@@ƌڱɥŀǩ­ťɴi٢Дʵ"]],encodeOffsets:[[[171874,-16861]],[[171119,-15292]]]}},{type:"Feature",id:"PSE",properties:{name:"West Bank"},geometry:{type:"Polygon",coordinates:["@@@ԣŭʙЃŕ˜ɜɌŚɁĦǬ̤֔ś"],encodeOffsets:[[36399,33172]]}},{type:"Feature",id:"YEM",properties:{name:"Yemen"},geometry:{type:"Polygon",coordinates:["@@؉ɥNjύo˹࠷Οഇϻݩףυ±ʥºӭΑ՗lj۷©ɃµǿɛəÕŻɇеlˍœ׉¨ɓӬzҠƍʜǑتʋΊǚ¤đϨĸNJ™ξςˌđΠɞЮΊɓɬúॺnƸċ߼č͐¨ɂ˫ϺƖ׼ࢦ޸Ϛᝒ͒ڀ൳˞ח"],encodeOffsets:[[54384,17051]]}},{type:"Feature",id:"ZAF",properties:{name:"South Africa"},geometry:{type:"Polygon",coordinates:["@@ǏŧΣяɻћӇ׻ोࢁףԋًϣ࢛͙ѓ«ŇɷԛŰеDž࣫NJԙĹΏ¬ࡿͩܓƃԱͅϡoΣ̚˳fαϒŸśŏɦLӰ˙֞˔ƴs٤ս޼х܈AF׽તДдͪɯƘΫϘÓՈǃҌÖݤіB᷌ɨűӾߙûԟȈ̏׼ĒрϒЊʨȶДЦȚΠķВɽۂ£՞ȜĐʾƨДҚäʨ͂˪֔ݮغஒؤ΂UОƛ˲Ķ҂ċД஁ɔׯƫऩî̟чƶʏÑāʓɯ̿T̃ԆҕӮĜǢώْQȿؑıۥɑϛֵщ","@@νʶϻǟҕ҃͡Տـ٧̜ČƺˎҴƀƜ˜ʴФ̅ʪ"],encodeOffsets:[[32278,-29959],[29674,-29650]]}},{type:"Feature",id:"ZMB",properties:{name:"Zambia"},geometry:{type:"Polygon",coordinates:["@@ІϏɊ܋ƝɩǙڻLjۡ˃̇ʭޭѶɓᢇۗĂׯٍřӍͯĹ̛̅ßܵۓҭխ˳o˗ĬऱĠƯÚOêͧȎկ¶ۋȑչԾ֣یžᦶშYí̂Ű̀ƧЀĪТėʺ̂q¶ʽϾrՖûˬϡڨŝԤˆȌѯ٠ş̴ΧΈҥ٠Që࣠ɱƳח͞ɧƬļࡈƬসȉψʈ՚ɤĶ଀ƚͦđΘɇͰƗՖƗӊʧ"],encodeOffsets:[[33546,-9452]]}},{type:"Feature",id:"ZWE",properties:{name:"Zimbabwe"},geometry:{type:"Polygon",coordinates:["@@ҁČ˱ĵНƜ΁VՙϞٯźʙՒC̒έĞ्ई˃ӢǛƮ͓ڤलğ˘ī˴pҮծܶ۔̜àĺ̆ӎͰَŚÆ̻۬hϴǯǺȻАÓѦˑF੟Ǐ׋—عƊʝħӵŵùɛ؅ࢫ॓"],encodeOffsets:[[31941,-22785]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/xiang_gang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"8100",properties:{name:"香港",cp:[114.2784,22.3057],childNum:1},geometry:{type:"Polygon",coordinates:["@@™@}ScTʟ@cWuJÁ–]„l¦RLj¼BĄà˜ ŽH@TOHCTDDDHDNAT@PEHDDNJLX@BABALHFF@DKHADBBLDHHFBLEJB@GDBBFBADDB@@KFAFBBJJA@BB@@FFDDADFF@FADDDBJC@AFBD@@DDD@DAA@D@DB@DHHBFJBBFEHDFAN@DGDC@DLCBDDCFDlAFBFCBEF@BC@GDAB@FD@DZJ‚X´HĐMja@Ý`p_PCZ@lLnRGSDMFK|a\\Y}­ƒ§™Mën"],encodeOffsets:[[117078,22678]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/xin_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"6528",properties:{name:"巴音郭楞蒙古自治州",cp:[88.1653,39.6002],childNum:9},geometry:{type:"Polygon",coordinates:["@@˜@ÈÒĊanwŎV„™Ȯ¦ͪŃĢ„ÜōȂçČéƐżLɆóĊ‚Ċaʊٱ¯²Um»ˌmÈ»V™ʠţWÑůǓ郙ôƑƒğÆīŎī@Ƿ™wô™˺LÞ¯ƨVǪуšĢ™ȘV°wĢŽôk°¯ƒ»΀@Ȃ»ĸŽǔ@΀ƒ͔ôôLɆó̐ÝɜLɲōͪƒƨóŤK@ī@IU܃ÛmȻţǩÝ˹ÛljťǓǫō@Ɲ²¯VçōKͿŁΗÇţ»ƽ™ɅƑLÓŏÅÅɱV@ÝĊU¯ÑĊĭÞLšÞŎJ±̃XȣˌōlƒUÈ¯ŎKÆƅ°™XÑܱnŗġV¯™óaUƒƧUōŁ„Ñ™±„çɲ¥lĉkğ°ƒk¥˜ƒnğţL¯ÝÝUƽĬ΁lķ°@„ō„XÿݯV»ŹLʉÞɱŤĉó°ÝJ™¦ÝKÝ£ţܙÈĉ@ƒxǩUċƑ@ky͓¹™`U²ĉVġ»ğa¯¥ť@ĉ™‚ó@ŻÛÛJƒw¯nó¯ġWƽʩķÝɛwĉĕݼȭÞķō@ó£Å΀ƑޝôȯÞ¯Ȱ™ÆōèĉXǼó@ݚnºƒĸ„ÞVƜĸȚUʶõˀĵĖɱŎÝĖVࢰӒѢ°˘nϚVˌ™ÈmɼĵŦW¤öʊõʔ@°ÈXVŽ™ènŎȁb¯ǫĉ„±Èğ`ġwōÔğ»mVVށ„Ý¥ó@™ĸķô@ššbX„ĶmV²²`Þ_˜˜ɴbͪȰ„ÞWĸÈŌmބškɲŽÈUÆ»n¼ǬVķĸźô¯°n¦ɄǜÈ"],encodeOffsets:[[86986,44534]]}},{type:"Feature",id:"6532",properties:{name:"和田地区",cp:[81.167,36.9855],childNum:8},geometry:{type:"Polygon",coordinates:["@@ƨ¥šèź٨ΘƑᩄbUࢯÞĕɲōĶĕöʿVʵķșUƛƒÝ„ķm¹Þ™ô@È»ĊWŎçšÅ°ȯȰÝ°óƒÆͿĉ»̽çnƒmɱĵƧºóU™™ƽ@±wóL¯°̻L±Æ¯Vƴķb¯VÇ¥ğ²Ǖbk¥ÇKlÅɱġ@у™óK@™ÇaÝXğţxĉČǫķê¯K@уaŹ„ƑKƒ¼¯Vóaónġw™óÞéU™ġbóĉğÇl¹™aUóğKW„Vůn›ÇŋƑ›ķnʇ»óxĉw™çǰÅw™°ċ„XŽ™„ób±ƒkÈÇJ—ƒm²ţx@ÒݎšŦǺn„ó¼n°ÇbUÒ±¼XĸĠłƽXmwĉºƒzÈÜmnxmx²ĖmҚbnŽƧêUºĊêÆVóĖóUĉ¼ÅĬƑ°ɆƆŻŚlłÞLš¼nĠƒ¼@ޙšÞź@ŎÞ°VšɄɴжϼِ͈Ŏ„"],encodeOffsets:[[81293,39764]]}},{type:"Feature",id:"6522",properties:{name:"哈密地区",cp:[93.7793,42.9236],childNum:3},geometry:{type:"Polygon",coordinates:["@@WnŐÆĶL̦ţºź„lxÅĸƽŚ‚Ʉ—Į˜è@ô²ÞUĔƐńV°¯ĸX¦Ɛm̐bƒ»Ɇa΀šĢ™ƐLˤ™ȘÑnƒІljĸÿn¯ĶaŎ¯ĢĕȘ¯°΂œla¯¥™ǕǔwˤӱlťО̻nŻmɃĕċţUw°WUóƨÅţķ°ýV±óÅǓéʉ¯ƽكéōǖȁÝƏůǕw˹ǫȗǓƧǕVý™é@ĬţLƧôͩ„ɱŎɛK̏ÞɅôóK@²@°ōؚ¼lŦ¯ŰóƜÛlV¼ķ¼ƒ°kȰ™Ű„ĠƒǬ™ŚÝŎmˁ`@ÇÜn„"],encodeOffsets:[[93387,44539]]}},{type:"Feature",id:"6529",properties:{name:"阿克苏地区",cp:[82.9797,41.0229],childNum:10},geometry:{type:"Polygon",coordinates:["@@VƚxˌŎÞŎƒ°n„ȂÒ°²VĊ¯VğƾˍǬƨÞÞKÈÞĊVźôɆÞĢèԐôWȲŤVÞĸʶbl‚¯ôn_VÆĸlmÞnVź_ĸ¼Ȯmǖ„šéĸW°°„ĸJ„kʠ¼Æw°¤ÈƒlxɆzČºĶI²ÆǔUš°ô@Þ¦‚ƒUnUĠ¼ŎÓĢxĠ_²ÇĊƒǬ°ŽȂamōšçUÇW@¯öʓõʉX£ĶťnɻšÇUˋmϙ¯˗ӑѡᩃaΗƒœɜ°xWƴUxɃÒˣ¤Ʌwğ„ʉōóÝŹ±°ȗ@¯„ƃ²¼","@@ō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘnIÇŃÛÝĊÑĠƏ"],encodeOffsets:[[80022,41294],[83914,41474]]}},{type:"Feature",id:"6543",properties:{name:"阿勒泰地区",cp:[88.2971,47.0929],childNum:7},geometry:{type:"Polygon",coordinates:["@@ɲˣĊIÈ¥‚ÅU±Ċýkō°ƒĉƽó»ĶƽXóʵʵ™ȯƑÅȁɅ¯ĉ@ÇሗK֛@@ˤV֜ʵрƒǬVĸƑŎ@ƆϯÑóŽķ@ʇ»ķ¦έmlÈĸĊX¼WźÛÞÝѸ‚ĢČþ„ĀĊôάVö¼ĊUƨ°°èŎČUÜÆóôVôô޲êȘlˌç°`n²ǬŽĊaš™ƒÛ°±kğmm»š@°ÝɆÛÅÇVaݍVm͔ğôÝÈb‚„@„ƒ™n¯š™ÜUĢÑĊ@źīżWŤÈǖWôŁÆI²ÓƨL@ŽĊX„mmÑÆ»ȰÑkƒĶō@ý°m—¯"],encodeOffsets:[[92656,48460]]}},{type:"Feature",id:"6531",properties:{name:"喀什地区",cp:[77.168,37.8534],childNum:13},geometry:{type:"Polygon",coordinates:["@@Č@°ƒĠ„ôÓô@Ŏĉ@Ƴĸ@Ť£ĢlVôWVóřXĉŤêÞ@ƐÒĢÑlèÈV@šĠIk°ÆŘ@ÈÈĀ@ǶťÒğ@š„@ÒĉlŻ_@šƧĖÅĬōÆ@bźÞnƒƒlVœÝĬšWƼʇ„ƒÝÅ@ÇÅÈwWóĉ±ğz‚ĬČƨƂÝIĉݯbÇÑĉƒ¯ʈV°xUŰĊ¤ƪ_ôÓɚI@lȚXȮ™ŎlɴȘ՘š„¦ɲÆʈ_ɴŽźŽôÞʊŎĠƒɆxˤ£ɄÑVwXƳ¯w›ɛŹ٧™çƧ¦ōƒُ͇еϻɃɳU™Ý¯@ōÝŹš™@݄»mğ™»ÝKkŁżřɅƅƒ¯ÆīĊ»ôVôĕÅUĉéV¹ƨém™anѱĕnwmwnÇۄyĉ¹ŹlŏkĵèķmōÞġKñÔċKÅèĉzƒŽ„ômxȗÿƿI@þÅČÝKݰ@¼ÈVºš@Å̚ÆUċłn„ÝÆǕČĵJm£ÝJ¦@ĊƒxV°ƏLċ¼ǩ™@™m@ÅĢómÇÆğ¹Çš™ÆšĖÞKšx„wô¦ÆÑÆL²ÆƾŽU„ޱŚÅŻĖ@ĬŤÈñ„@ǔÇx„Èǃ","@@VÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁVé"], -encodeOffsets:[[76624,39196],[81507,40877]]}},{type:"Feature",id:"6542",properties:{name:"塔城地区",cp:[86.6272,45.8514],childNum:7},geometry:{type:"Polygon",coordinates:["@@ήnĸ¥ʈ¼ĸ@ôϰÒ@ƅƒōUķƑǫʶпU֛܃LګK@΋ĸ@Æ£ÞġÅĠċšLV݄»™@Å»Ýnm¯š»nŻĊ@nķŃ@¯ómóÛÝǟ¯aÝóȭ¥ƒšōUmxĉbÇї@›bUº¯X¯ÆƧbVÒĉnǕw¯°ƑŽV„—ŽÇ@kx±Uƒšɱn™ŽÅKƒ„¯ƒĠǠU°ɜL@°ƒxnĬ‚ĀŋŎÇLƒŽğšϱÞέƜkôÅĀǕłƒĸĊŤUṴ̋„¦ȂϰÜɨ°x@°żǠÆƈČVĠ»ČL°ÇšbĊÑ̐óÞlĶwބɆVÞwǬxǪţȼÜLŐĶˢ@","@@óKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°ɜÞʊĠğŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒašƒċƨbš™Vğ—w›ġ¯@Uōa™ĉÝJğÑÆŎkŎÞĀlꃦ"],encodeOffsets:[[87593,48184],[86884,45760]]}},{type:"Feature",id:"6523",properties:{name:"昌吉回族自治州",cp:[89.6814,44.4507],childNum:7},geometry:{type:"MultiPolygon",coordinates:[["@@መL@ȰĊȂɆƒÆĊ£„ťôWÓɆbĢÅŎƒÆ¦ČÑW¥°ķU¯ƏŃVē±Ý@ó—ç˜ĭɃƾřÆķkwʃŤ¹ġ¥ĵKŏÅXmˍщwǓ¤Ƒ@wóōVķ£ɱšġôÛa±Òȁ„óèţIVŽƽ¼k¤ó¹ġJmx—»ÝUƒ²™@ÅÆƒĸǫŎ„ĊmŎǬ՘"],["@@Þô°bÞǠôÜôn@°ĸń˜Ƕkłƒ¼UޙKğȂÆÝĢŤķ@@ΌڬL܄K@ˣȂ˭lĉńW¥ĵVÆý@ŃÞēUŃȗƅ@ŹƩǕĉ»k»Ç™VğóřX™ŻKƏŽċêȁèÛŎġƒͩń"]],encodeOffsets:[[[90113,46080]],[[87638,44579]]]}},{type:"Feature",id:"6530",properties:{name:"克孜勒苏柯尔克孜自治州",cp:[74.6301,39.5233],childNum:4},geometry:{type:"Polygon",coordinates:["@@ˎǫĠƽ°UUĉ¯±ȁÑmƒ„¯Ýōˋō™wUű»ÅƑ°ƒȘ@²¯ɳʇ`ɱŃ¥՗™ɳȗōkȭšșW@kəJóÔƩ`ĉ£Vů¯wU°ʇĊ„ÈÒ°aĊÞÞJŁċƧīĠyĊ²XôÇxÈÆÆ@„ÞʈƒÅ»™XÞīU›Ƒkm„ŹÝ@aŎÅÆīƨĕ@™ż`Ċk@љƒĠ@ŦÑ@ǵÇÿ@ÇÅŗl¯ğJ@™ÇUkçġÒƏÑÝ@ţéWĊôŚUŽóXUġkţ¤ķ@@ƴōĊó@óÔğƒ¯„ċ@@Қ¤kôˣŰ͓„k»ƒKX¯ċwƧôğɐšÒôIVƙš¯UķǬķšnŽ™¼ôb°ÒȰVVÈÞ°ƒĸó¤V¼°„V°²êƒlĢ҂Uƨ¦ôȰƴĊVV¼ǖIċĊ„ÞɜéšnČW˸Ǹša„řÈw±īšçĸ¤ĊšôšwšŽĸU̦˜éǖĬ„Āô¼lÞkÒ°x°ƆÞx„šÆV²ǔ»„b°wގȘ¥°n„šŎV@°„„ʠè‚ŰȂb"],encodeOffsets:[[80269,42396]]}},{type:"Feature",id:"6521",properties:{name:"吐鲁番地区",cp:[89.6375,42.4127],childNum:3},geometry:{type:"Polygon",coordinates:["@@ôK„ĉǪa²¼lÜô@ʠê°Ĭ™ôȂƒ²ÑÜbĢóɲ™ĸ¤ŎUô@xƒŽǔ£ъxˎmƒÈÛ@‚_nĕÞōšř„ǫƒğšůlȯ„¯ĸ»U»Ükôƛ°ůkť™»Ŏŗ@¯@±͓óͿ„Ǔ@ķȁ¼Ϳ@Ƒ¼¯°ólġ¯xȗUġšƑ™ǩÒƧUݰ˹Kóššx@ǸōĬÅĬƑĠ󃄚ǔêÆ°XÒʟŤUšÇ¼ˋnn¼±V²°ȂUŌݜbʟǔɅô@żǬaҎÈ"],encodeOffsets:[[90248,44371]]}},{type:"Feature",id:"6540",properties:{name:"伊犁哈萨克自治州",cp:[82.5513,43.5498],childNum:10},geometry:{type:"MultiPolygon",coordinates:[["@@ĉ„ÆŘȁ̐mÞ¯ĀX°±¼@ƾ¯ƴ°ŎÝþŋ¦WÜÞbȂĉźUœÇmwVUȂóô@ȰÝ΀nÆJn™ƾ™ʠ™ŌLČóǪ¯œ¥ǔaǖšŌaôÝĢLšx„ƒÆLšɲm„™²VlwÈ@˜Uƒƒ°¯ǖxĊmUÑƨa°Å°WV¹œa›ÇɃÈm¥°¯ŹóĸķǫUm»Å¼ÇVɱ™l݃ŋnķÇÝX¯ƒͩÇɳa——Ý`±_U±ĵnWƒ™a@™ĸóšķ™¯ǓV±ÅĵJċ¹ɅykwDޝ£Åxʟ»ƒlķI¯ƒX¯ķ‚™êǕƒȭnķ»Ź`±„kÞ@Žš„Ýô@Þ°xšŤŎIƨÆUxōš¯²ǔĬǬlUŚ"],["@@ÞĀlꃦ¯ĸŤKޙšƒċƨbš™Vğ—w›ġ¯@ţƽJ"]],encodeOffsets:[[[82722,44337]],[[86817,45456]]]}},{type:"Feature",id:"6527",properties:{name:"博尔塔拉蒙古自治州",cp:[81.8481,44.6979],childNum:3},geometry:{type:"Polygon",coordinates:["@@ήƛϲÝĠ™„ÈKŌōÿmī„w@¯ɛKV¯ğǟ°Ƒ™wġKóÞŋbǕ™Ǔb›¦ǩ°ċôŋKʟšƽšmšÅImŽͿŽȯÞó@ȁôUVnx›ÈŹVȁĊÝabŻ£¯°l„óxȂŤĸkĊšÞyĊêĊmĢxV„ƨÈŽĠX„ŽΘÆĠÔź‚Ɇţ°LXƾŤŤb"],encodeOffsets:[[84555,46311]]}},{type:"Feature",id:"6501",properties:{name:"乌鲁木齐市",cp:[87.9236,43.5883],childNum:4},geometry:{type:"Polygon",coordinates:["@@šŽWŽôŚUĠȚl¼Ċ¼ƪǖ@źȘƆ@ýlܚXVŘޙš¦V¼kĖó҃èkĊȁˮ֜@ǫ՗nōƒĉǬō„ķÆÅš@„±ÞV˜¼nwĢIôºl£ƾ»UŤJôçšó¯īʟéó@kÛ±»ǩbƒĊóLҍÇǫb@ŻɆóʠǓ›aŋÞȁVʉłĉbĉɅô"],encodeOffsets:[[88887,44146]]}},{type:"Feature",id:"6502",properties:{name:"克拉玛依市",cp:[85.2869,45.5054],childNum:2},geometry:{type:"MultiPolygon",coordinates:[["@@ɜÞʊĊýVaŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒaݚţL°ķóKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°"],["@@ƾIŤ@UUwōa™ĉÝJğÑÆŎkŎ"]],encodeOffsets:[[[87424,47245]],[[86817,45456]]]}},{type:"Feature",id:"659002",properties:{name:"阿拉尔市",cp:[81.2769,40.6549],childNum:1},geometry:{type:"Polygon",coordinates:["@@nIÇŃÛÝĊÑĠƏō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘ"],encodeOffsets:[[83824,41929]]}},{type:"Feature",id:"659003",properties:{name:"图木舒克市",cp:[79.1345,39.8749],childNum:1},geometry:{type:"Polygon",coordinates:["@@VéVÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁ"],encodeOffsets:[[81496,40962]]}},{type:"Feature",id:"659004",properties:{name:"五家渠市",cp:[87.5391,44.3024],childNum:1},geometry:{type:"Polygon",coordinates:["@@„çôÑlĕU»™¥ÝšUŗ™WkÛ@þVńÝĔ@ńÅþĶUX¦Æƒ"],encodeOffsets:[[89674,45636]]}},{type:"Feature",id:"659001",properties:{name:"石河子市",cp:[86.0229,44.2914],childNum:1},geometry:{type:"Polygon",coordinates:["@@lŁ—ǵm‚ĉ@mż™¼n°ÞmƼš@"],encodeOffsets:[[88178,45529]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/xi_zang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5424",properties:{name:"那曲地区",cp:[88.1982,33.3215],childNum:10},geometry:{type:"Polygon",coordinates:["@@ƨʔĸbܺÞwnxźbÞ°ô@„ĶŽĸIȼĊJŎÈôUšÝƒ¤ǔLސŎ@ĢŽȘblƒôL„ÇźçȤôLš¥ÞIÞ¯Ķxʊťƨ™ƿÑĉXVķŦ¯ȂKÇǕšÑ¯IUš£¯Óƿ£VĕōÞÿÆwƒƑ„£ǖxÞĕ±ÇÝaUÑȃU¯‚UōÈ݃wWŁĵ™±Ý„óĢÿ°IÞ±mÅ̝mÿ„¥°UnÑŤĢĕĶwǬŻͪwŎ¼źÇĢ„Ġĕˎٰóƨ¼Èa‚m@¥°wǔ„ǖ°ŽƨÇŤœšġƨ„ŎŃôbÈÛŎĊ°@Ġw²ÑÞJƃÆb²ƒ°êĊUނlȲƒV„ÈKĊÒĸĉ›»ÅôťUÅǃk¯@ǂÑklǁÅl™Ģ™VÑóƒ@°@„ÛĸƒV¯ƒÇĊ™n¯Uĕšƽ¯m›¯b™È@Ò°Ĭƒbĵ›¼„‚kxķýÇJk£ÝaUÑÅóĶǟkÓʉnĉƒÝ¼Ƒ„ó»Þmn£m™Č¯@ƒȮÿV¯ĸƒ™k@Ýówƒ»ğ„ġ±ǓLō„ƒšV¼Əèķĉ™è±b@Òţ„UÑóakƒl£™Ó@¯L@™ÇlUóȁš¯aġÈÅĕÝLķ¯Ė¯@WĬ—x‚ÒÈnW°ţôU²ǓÓġ²V°¯ôƒǔÝL—ċšk™š»Ý»Ýš¯ÞƒVƒwۄÝÇōͩÈĉċ»ĉm¯£W¥ţKkóġƏW@¯±kōŽÈ›b@җšÇaƒÆ¯a™„ƒkóŽÛƒÇ¦Ýa¯šÝ™ĉ@ǻۄmƒǓxķƛ¯lVĀÅÞġb™™ÇJUÅV™ĖƑW™zō»ōšƒW™n@è¯ÞóVkwƩnkźÇބҙޯƒƒýğÇUxÆÈnè±bĉÝ»ÈуwšwÞ@m»ÈV@ýÇ°ķ™xƒa„ݯXċ¥ƒÈóW@ôkxlnxVÈóĊkŤġ¼@°¯ŰƑL̻۱ŎÝV—Þ›VƒÇÞŎÇakƞ‚š@èğŎĸżšƾ°ÒšLÞôĠKȰĖźVÈÒĠ„¤™VôšŽU„ÈþťL@ôǬÞlÜÈnÇÒUŚ™@šĊƨW°™°Xƒ‚@ČÇþ„ƴĉÒķ¦@ŽĢôWĀôłUÞĢǬ™ź°¼š@ƒôV°„bUÆnzm¤ƽĸƒÈ"],encodeOffsets:[[88133,36721]]}},{type:"Feature",id:"5425",properties:{name:"阿里地区",cp:[82.3645,32.7667],childNum:7},geometry:{type:"Polygon",coordinates:["@@„Çƾķn£myVŃaU¯„ó™@¯»šŹġǫVÝóŁXÿġó@ĸ¥ĊуƳÈý@ċ„Wš¯X¯ĉƧ‚™š@VřÈÑÇmkÛǫÝ@óŦKÇýVƒ™U󚏃£ğÇÑŹUȯĕğLÝó™K¯Ñ™ƽķŻĠō@灙lƝÈbƍÈ݂„œU˜ÝÞU²ō̼ůƒK°ů@¯UK±—ĊƧbōÇmçÈġƒóšÅób™™źóš¥kól™ç™KôĵUƒÅ„VŃķ¥nÅŏm¯¹Å‚™»@ÑǍóxÝkʇȤU¤ķb@ƒ¯ĊÇx¯ĸĉKm°šĀk¦l„„KnĬȀƾÛ¦WÆÅmNJĉ°ōUţ¤UšŎ°šŎKÞłÆ„Ǔ¦ƒÞ™‚™„ř¯bmUÝl¯Um™ğl¯£șwŎǫaÝnĉ̓k@¯™K™šō»ĉn™aÞ»ťnkml™ĸ¥UŚŻkÑťƒĉV™ôó°LôīĠU„ÿĉǕÅz±Kƒ¤„²ō¤¯Ė¯UÝ¥Vĵ™óÈťÝwķșÑk¤ó„™ƒWýĵĕ™„VĠƒV󍃎Ǔ„ķ°k±VU±ţ¦UǟÝřJVљ¥XUċUŎlÛƆǕÆȗƆ¯wŏÞÅ@™šĉl݁óŽƒÒ™nUôńlxólÝôێ±™™LÛôÝL@‚ġ¯X¯ÇUżóa󤛼XÒġŎóLk¦‚ôżĸĠ™¼™KġƆô¦„ÆƑÔĉ͝ImÒ°¦n°¯Þl˜ÝČn„ƒÒšKĠޚĕkƒlýƾťœšôI‚ĖŤÒnƜm¼¯lnżóÞ@Ůó¦™ôƽĖċŚn°Ý°ôÈUƜƒblÞóŽ@Žǖô°UÈƆ°X„þôŽô‚lѢšŽ²Ėm¦°š@¤™XŽĊblܚzkºƒĖmX„šŎWVšóÞn°lĠxȚa°»żLźƒ„b@ưXĠÝȚxĊĕŤaȚ‚°È@„„@èŤ¦Ü¼œW˜ÞkŽÈ@V°lŤkŎ±²¦ƐUšlj°aÈÑŎb̃ŎbÆ¥ÞIȘlššôVÈU‚™šb„kɲĶn„mnXb̼òƾĖŎ@̐ȂÑôÓĠĖʊšĊÔ"],encodeOffsets:[[88133,36721]]}},{type:"Feature",id:"5423",properties:{name:"日喀则地区",cp:[86.2427,29.5093],childNum:18},geometry:{type:"Polygon",coordinates:["@@ĶĖXþš„ôƒl£šÒĸÇÞxÇŦšôUĶÞ¦°V°ĕŎ£ƒ±„£²LÆyĊǖƒĀğVóĬ¯KóôUš‚ĊŦ„lҙżVÆķ¦kšlnŦmݼšbĊmŎ¼š™šL@°„lĊĵÞmǬbƍȚx°¤Ġknš°VÞkVn°aƒŚš‚š„Ýǔ¥ÅƒÝŁōL¯™ōV™Ť£ŎVĊ¯nljƏXÅÜ¥ǿƽmīƒLkƒl¥™ÿn¯ĊL°ķÈw°ĉ@ƑĸaV£ʈȣÞlôwȎ@Қ¼Æ°ºŐnmÆĸ¦UńƃV„ó͚LšèôkŰlĬ™¦Źôššôa™Æ„ôÇĢnèŎÈƨa˜ĉ²‚VLĢ»lţôĉUǂwkmlw@óôX„ÇȦ°WƒÞ„b‚wĸšÈ¯@þÇUn¼Ý@™x„xÇńÞ¼Ċ޲amçÅÇVwĠȄþ°„šÝƒÑÈÝlŹƪmlxôU°Ý@çšm„XŎ™Ŏ¼šyƒXšĕÆUVÈIššĢaÆÝUÿ°kĸƜǔwn„܃ȼĊ@ޚ°™Þbȥ܄ô„lšƒ°b„ÅÈb˜™@ќa‚ǯUU¯Vġš»ƒ™¯aV¯Ç°Å™mnÑŤçǬVǬ™±ĉ¯¥Vĕ¯Ýk£˜ō—w@±ġÛ°ÇVїƒ@ۘa@ČL™Ƴ™„ƒÇa¯¤ÝIĵ¼U¥ƿōķÅţŻókÝóĕ‚¥¯™U»Æ£X¯ġŃÛkݰV°ó¼¯èWôÞĖ„ȎƒŽkĀƧĀówm¥¯JŹÝJݙōVVŁaݐƑ@ƒ˜ğŭǂ¯_ƒ˜ĵ—›VnxŃón›ƒĵxÇĖĉVÝÈğV™Ò󃯐±Żĉ£ķÆÅL™Ljĉý˜ţۃ¯VƒnV¤ÝÈ@°ÅÞݤ™ŰğŁm¦ÝxóKƒ¥ɱÈUĠôêVôÛ¼ÇWÝçĵaō¦óĖƧlÇĢƑŽnŎDŽV¼¼‚ºÛ@m¦ƽ„ĉmm¯ÝKÛç¯bŏłĬ™bƒ¼ÅLmŽ„xť°ÅU™šÝXkŽÝmĉ¦W„¯K„ÒknÝaV„Ýè¯KɅńÝKnÞ¯¼"],encodeOffsets:[[84117,30927]]}},{type:"Feature",id:"5426",properties:{name:"林芝地区",cp:[95.4602,29.1138],childNum:7},geometry:{type:"Polygon",coordinates:["@@‚VÈłVôÈk@š°K@ŽšÔk¤l„ôbVÒŤƒ@ѲašçĸĊƐçU»„™ŎƒǔK̲Ġƒ„¼ôx@ޚlƨĬ„Ul¯ÈLV‚šÞJ„°Ünʊ„wÜbXê‚VÞ¯°ššanaU°wƼɴÑWѰmÈýÈam¥Þ£Ť@„¥ôblÞĢ„ź¥ôxÈÅmݚ™ƒĕŃV»ĉōŤōnóƒ»ÈīķIUƒĠѰġĸLÞ¯VÒÆ‚@bš¼WôÈ@V¼ôóŤKÈÑU»šwVǫżnWÒÈx™¼‚lŦ£ĊōŤx²¯@ƒÆƒU¯šçÆ@„¤°£„é°k°lšůÈó@¯ŤÇÈĉƒkkÿó¥ÝXķљÜ@ÒóŚÝ¯°ĉówÇ±¦ÅJUÒĉĀķw¯°m˝„±akxÝÅnƒ™»lуK@¯lU™¯UVѯóĊ¯mōğVǓƅƒÞƒWÝÈÛ@ƿô¯ÜġzÅþ¯ólmôʇġĊÅUͿřŏȁˋŁóÇˡōƧƒÇb™w°Ķôk¦šÒƒnUþġҙÔkǔķèó@ƒ²@ŘōńĵyƒzġaݤÅIƒ¤Ƀť¦ğѯ¤ķbóš¯ó±ŽU²°¤ČÜVnÈÆ‚„ŚŎ°ôĢ„þÆzèVĀǎĀǘƒXŹÑ¯¤ówċķk¦šłUÒġzÇ@ƒ™ÆÝx@²Þ@Ƥ„Uô¦Uš°x„U"],encodeOffsets:[[94737,30809]]}},{type:"Feature",id:"5421",properties:{name:"昌都地区",cp:[97.0203,30.7068],childNum:11},geometry:{type:"Polygon",coordinates:["@@™ŽVĖm°ĉš„ÈU°ķ„ƒÜ¯@@ô„UÒġškš‚ÆkÈlށÒ@Èl°È„VÆóŦƂœ¼‚a„ÅĢ™Ʉwnōw@¥Ŏ¦°ŹÞmVš°wnÿƒw„wÝw@¯šmÞŗ°wĠ˜ĸkÞğlĔ²¦°@„ĕĸwVóšal@nĢÇĊn°@¦šŽźUXçǔůĸVš™ÆK„ÈÝĠš²ÅĔô@lšŽÈ_m˜„zǖl„šaU¼ôwV°¯¦‚ĬÈa„l@Čǎ„¼™„nŽ˜I„xô»ɜ@ƨ¥ɆŁ„ŃǪȁkƛƨȍʊȡóĭ›@—ÈÇVƒůރĸƅmēƨť™ÅÈʉVǵ°ġVŭÅɧ°ÿnɛš£mƒķ²ŃóÑUĉ°mÇ»¯@mxUèţ°ȁÝç„ġU¯ÆÇţÈ@°Çô™Ű¯k¯lƒê¯¤ƒ£Å@™èV°Å„@„±°ţwĉŎť¤kš»ÇwXÑŻmUǬ™xV¼ÇÒţLóôU»Ç@X󙻂a@ÿŁUÑݰķK¯ĢğÒV„ĸJÇĬ„¼môţŎĊŎU¼Æ„„Ė™šnÞÇÆówʦġƒkÝóaƒ¦ţ@ݤn¦ÇbÇþ¯nXÒɳÒÅ»¯xVmb™b¯™Ý°UWéÛaƒxʉÛmƒ¯ÝI™‚UÇKk°ƒVƧīķ„U°ȭĀ@„ċ°nšm¤Ýnô¼ƒƒÞ»Ċ„ʊmlÔĵǠÆôVÒÞbl¤ÈIĸþlwƒœ»ĶŽ„a¯ī@њǰanœƾ°"],encodeOffsets:[[97302,31917]]}},{type:"Feature",id:"5422",properties:{name:"山南地区",cp:[92.2083,28.3392],childNum:12},geometry:{type:"Polygon",coordinates:["@@°ÞU˰¦²ĊôÇÜLǖĀɜŽȘŰÞLĸźêÞ@UÜUŤ°ɞ¯Ü„°WŦĀmŎ„¦ĢyVљŁl¥Čĸôx°£źÒ„Wȗ‚ÿȍUÿ‚çÅyƒýóġō¯ƒřŁmÇÛUċޝ£V±²°ôô™ĸa°£ĠÒŦ¥ɄŽ„£ÆJÞ£Ģb„yĶzŎŃ@ŗ„±ô@ĸçlǓšÓĢÑVý„m™Ñl¥ĵó‚¯̻̥™ƛǫÝһÇƧĉyţ¼ҍēVĶĉŎ°ĸmšÞVÝĸ™ÒÛaċ„ó™ŹĖƒèÈÈl¼k¤ÝX@`ސŏ¼Æō¼ÇçĉKUÝÝ£ğ¤@¦ġl¯Òġĉ¯óš™móxÝÞğVšƴċK@—b@ܘ„UÒ¯ÈĢÜ@²˜x—Ŏl¤"],encodeOffsets:[[92363,29672]]}},{type:"Feature",id:"5401",properties:{name:"拉萨市",cp:[91.1865,30.1465],childNum:8},geometry:{type:"Polygon",coordinates:["@@Ŏ²l@°‚XĢƐlôŤLX¦°¤ĊnȼÇĊŎͪÞÈ܃„x„U°Ýޙ޼™¼lšČ™˜ŽÞK„Ǔ°óU¯Ģ±ǔÔV±ŤóX¯ÇmÑ˜wXī°@°ĕĸÞKÆĖĢǰbȂ™ÇفUƒV¯wV™ó¥ƒVÅ£Ý@@±ÞwšÅ‚„È@ƒ¥nōťÿ¯Xۃɝ°ţ¯ÛVVÝ@ŹéķÝKȗůɛǕÿÛKóÈǫšǫUţèmҚn¯Æ°ÈU‚°b„š™¼UĢV°°V"],encodeOffsets:[[92059,30696]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/yun_nan_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"5308",properties:{name:"普洱市",cp:[100.7446,23.4229],childNum:10},geometry:{type:"Polygon",coordinates:["@@U‚ô²‚a@޲²Ķ¥œV°šĶ²bl¤kVxl‚@œ°‚ڲ@˜„„y„@ô¦¯„@xƒxVxU„VššbVšÜm¼Ŏ„„ĢmºXXWÆ@œšmŽmXU°ÅÒm¼Þx°w„@°‚XêĠ°»nV°U„l@k„@V±ôī@£‚ƒČŃÆ£„KÞý@¥‚k@y„a@—nWV„UVƒšwƒmƒ£Jƒknm@wmkn‚X„˜šX„¥mUUlUnbš¯°ŽnkƒVInlIUw°n™mk@@mlanXlanmšk@wVWUw™_@éĠašnmUaÜ£ƒmXƒ¥¯@@„óUmݯ¯ÞÝlKnxô£š»„»Ġ„J°aV„UÝÿV¥ÛbƒI@wmŽón¯yÛL@ƒWkŎmș`IWa¯K@¯mUnmaXm™bmak„¯ŽƒĢ™ÒÝm¯mV¯KÇb¯KۜWW™X@a™V™knċLUWV™kXóW@k™a@ƒób¯Uƒwmb¥UUlaU¥U£ma횃KXkƒmÝ@kwmѯk±ċbUUVakaġ¦ƒƒkL@`ƒœ™a¯xƒm™Åƒ™LUWƒ@ċnŎUV°LkL@b°°@¤š²ƒ‚šnôôk„l°kè›ÒÈzV¤È„WôôƒnV@„ƒ¦@¼Ux"],encodeOffsets:[[101903,23637]]}},{type:"Feature",id:"5325",properties:{name:"红河哈尼族彝族自治州",cp:[103.0408,23.6041],childNum:13},geometry:{type:"Polygon",coordinates:["@@°°nÞôV@ƒ°@„¦WŽ„nÛ¤Vbmn™ğb@êš`VxUX@xš„ÆÞUnn˜WÞĸ̃šÈ@ŽÇè@zÛÜWšÅêlš²„˜KnV¯ĖĊx@bk@@„°JÆ£Èbl„nnm°nlUkVUUwVm„Kn„‚nVŽÞxVLX¥laX@@xl@VzȎVmšk@b°šÈĸmŽV¦`W„XšƒbUb‚bX¼°x@ašVVkn@lþnXUlVxŤÅ„y‚IUƒka‚IŎĊ@lXx@b„z@‚ô„ƒ¥„_V@l‚n@„ôy@al_l`nmƒÈ»@kƒmXwWK™U¯»™a™Å@wƒmUÝKUa™UUƒ™wWƒ@w²»@kƃV£—mm£VKkÑV@@»nwƒ¥™ƒ@kƙnllIVlnLVakalknJšWmnaUaVÑVVލn¥m@ƒ„¯Uÿl™@™™™VçƒaXaV¯UyVLVkš@nJlšXLlŽkxlbla²Òl@nVJVkšx„KlkUaVķÝÑU@Åm¯@±™Uó°ğńķĠmU™Ñ@ǯ¯Å¼@nml@°¯¯`@w™£@¯Çƒk@ƒ»nmċ¯U»™I™Ž¯LÇĶÛn@bó°™U›šwmޝ„™Umǯa„™ƒ™ƒI@ykIƒVUޝbƒIğŽƒ¼™¼ó¤mwkLÝÞ"],encodeOffsets:[[104243,23429]]}},{type:"Feature",id:"5326",properties:{name:"文山壮族苗族自治州",cp:[104.8865,23.5712],childNum:8},geometry:{type:"Polygon",coordinates:["@@šwô„š@²¯maUmôUÆxš@Xš˜bÞInlVUVw„JVaU„K°¥„xmÞXnlKlnna°@ĊČ„ÆwUmnkl@°ƒƒ£nyn@VV@Vak™ƒ@@kÞ݄bmx°Vnw°klÞInĖÞVlKl™@Xa°„„KlV„U@šJnx‚U@ÈĢbUKlm@ak_‚wšanWUk°ƒl»„k@Wk@lwU_ƒ@UalóU¥ƒÇnƒ™kJWƒ@mVXx±bƒK@nV±a@™Åa™£ÝK²ƒWknamKknǏk¯ƒaV™™V¯ĀƒU™„™Ò¥ƒI@mm¯¯xōW@@`k@ó»ƒUU¯lm£ÅWlĵ„w@mmwÅmWU@y±U—xmwU„¯Uƒ¥Ý¥¯£m@kŽÇVUV°VbklƒL™wUlUIm‚k@±ÑkbkalwkWKk™mI™@UlUKVzU°Wb„bU蚚@škšVƒ°@„n‚m¦ÝŽUUUÒVbmbXn™‚mIkllbUbmKUkkJmkŚ@lš„„¦mx@¼U@lÒULn¤˜nU¤Å„@l±¼@xX„šxV„šVVbÞLVŽ„n@xšÆšb°¼šV"],encodeOffsets:[[106504,25037]]}},{type:"Feature",id:"5303",properties:{name:"曲靖市",cp:[103.9417,25.7025],childNum:9},geometry:{type:"Polygon",coordinates:["@@ȦlKÞĕUV¯Um¯„ÇVUnVVUƒĉn™ĊÇƾLn°°È„JÆw„@lbÞa„¦V„XJ°¯W¯„aÞJVkUša„ƒ@lKnÅmWUk¯a¯»@m±@уkkbWWX_WÓU»_l™kÑm@U»m@l@IWċn¯l@VanV„UV™UVwVx„KȄVmUē‚@„ƒn@VÝÆL„w„VVwnVlmkUVÑǰka@k™ÿÝaÞUl£™›—ċĕX±±ĉƒa@UnVnalónk@wl™UVmkÝJ—aW™™@ÅwóVVnnb±°™@óƒ™xXLWx„n@lǼn„m‚k_k`@bózƒ‚m@kU@ƒ`„¦óƒ@nWš@ÜÅXWw@ƒyƒb¦@ÒlnUb@x™lܐk‚@²Ç@Uƒ¯bmy@kV@bƒb„¦U`lLVx@b—Ll¼Þ¤@„°VVބU@WސUb›J@nnš@lnnm„šxUŽƒUUbƒK@šÇwklkUƒVWakn@ŽlbU@@„ULVxkKUn‚°¯Ò@¼™„kmƒ¦m@kl™Ȱ@lU„l¦„@Vl°wšnnþĊUÆbUx™b„ŽV„šĖU°„a‚nnašV„al@@b"],encodeOffsets:[[106099,27653]]}},{type:"Feature",id:"5323",properties:{name:"楚雄彝族自治州",cp:[101.6016,25.3619],childNum:10},geometry:{type:"Polygon",coordinates:["@@mҁXU`Wnšš™@Xl±¦š„Uxnbl°knmKUx„„ƒxVôUx°¼ôÒȄ°JlnÞKĠœW°¦ƒ„Vx²JVwš_°¥@UV@@wnymknK¯I@‚™²b°ƒš£V¥šwU‚V„¤nLškÆJÈwôô°„l»Č¯ƒġVƒUU@@ƒ°ƒƒÝXl@U»°Å„@U„¯@w±¯VmUUlm@m™„ÑnIVyUwmak£Vwm±—@Çw@nƒ@UxkwlÇnL‚mkř@±Žk™ka@kóJV¯Ç»U£lw¯™Xalbl¥¯UXƒ@a˜™UaÈL@ÇVIVƒkaU¯mm™akLWkUJ¯Umxnšƒ@ƒkUx¯xƒ„mWÅīÝkkbƒŤƒbkxWmXwWk¯wƒKkƒƒLŤċń„@¤óĬU²ƒ@@lƒk¯VmU¯¼@xV@k°l°kbUš°nm‚VnUš@°„š„UVèރÆbUÒÞnU¦›V—¼lô„@Vl"],encodeOffsets:[[103433,26196]]}},{type:"Feature",id:"5329",properties:{name:"大理白族自治州",cp:[99.9536,25.6805],childNum:12},geometry:{type:"Polygon",coordinates:["@@lbœKVIUa˜@²m@b™xôÒÜxXLmbnšl@š„„K°šš¼k„Uô‚xôlV¦nJ„Uš™Ænšm„@šx„ÆwšbXšÆôô„LUVwôK@wlmšaVwœ@WknmƒIUmlnJla@_™@kÝmKUašÑm¯Xw°aUaVl»²JV„bÆJkôͲVVk„mšbVwUó„wƒƒVwnLlmk¯maVw™ƒ²¥Wkš@™™XmV_‚WnÑUkƒ@k󘻜UV¥ÝmVÑÅa݄UçƒVƒ™@¯V™Umn¯mV™lak¯l¯U@@wğŽW鯁ƒ@¯xÝw¯š¯Jċa¯U¥mLU¤„bÞȤƒbÇLWUwmIUVW¼kbš`U„Vb¯L±ĊÛkƒÿÝKkwƒKţê™UĉþƒÈƒV¯ÞVbUްKVšk²Ý‚mI—ƒmV@kƒm™UkšVxm„¯KXÈķJU¦V°ULWxšL@môƒšb@bkx±LnVUŽVLnkÜWnwlLŃmW@kkJU_ƒV„šWĊ„Þ"],encodeOffsets:[[101408,26770]]}},{type:"Feature",id:"5309",properties:{name:"临沧市",cp:[99.613,24.0546],childNum:8},geometry:{type:"Polygon",coordinates:["@@‚xĢ„l`²X°ŽV„šx@x°Þ°KXašğUњW‚bnIl`X²°b„xl°„„šV@xVxk¦mb„l@xšXV‚ÆzX¤™Æ˜k°„kx@lźêlaX»VUnJVx‚XÈK„aÝȣƒaV£nKV¦°‚Čb°I°™n»ÆÑV¯nWn›™@ÿXÅWWn¹ƒġōƒn»‚ÛU™™aU™VƒUw„w@w°ƒó¥ƒ@ƒz—ƒ±@ř›¯@kUwlk£±aĵޝ™›Uĵ¦±±@bó±VÝ@ó¤ƒw¯I@mńóm±XޝIólƒK@š°Ullb™zkKlln@@ԙºƒUmVk²ôҙx™ŎUVóLƒb„ŽmÈnŽmbnl‚a„x@z„@Ǝ„¦kš"],encodeOffsets:[[101251,24734]]}},{type:"Feature",id:"5334",properties:{name:"迪庆藏族自治州",cp:[99.4592,27.9327],childNum:3},geometry:{type:"Polygon",coordinates:["@@W™Xwƒ™@akk@y›—k°īX¥›Uóķ¯w@n»UaVaUۃ¯ƒmV¼k‚™Þċô@n¯xÛÒm„V‚¯Ô@xƒ‚@šk™wm™Åa@ƒUa‚݁¯VŃyV„a@ÿšn»ÝVmank™mmÞÅôƒ@n£±›ğzÇmU¦™Vm„nÜmbn@°nV@xmzÅ@mºV¦k°ln¤š¼õô„n@xkƃIUxUš@Ťƒ¦VšmVkmkXW¤XzVx@ƚx™¼ƒÞ¯b@lVš™ĸގV„m¼XŽm¦V„ŽÞ@Ǝš¹Vón¥ÆKn„‚KX¯x@èĊȱłXšaÆxnlV@UÛlȻkğV¥„m²ljmÅÞĕƒƛm°„ÆmX¤mznƃŽV¦ÞVVb°bnÞWbnްl@V„È@„‚VĵĊ±@ó„InxÆw„¥@£Þ›W¯ĸ£UƒUK‚ƒk±akkkbmWmÈķ„aÆÇU—ȃÆW@wmknmU¯"],encodeOffsets:[[102702,28401]]}},{type:"Feature",id:"5306",properties:{name:"昭通市",cp:[104.0955,27.6031],childNum:11},geometry:{type:"Polygon",coordinates:["@@mƒnK@wmƒUř¥mšóXǓŏmX@Ž—VƒmL@xţ™nk@mlUšŻÒğŋ@ƒL@mmLkm™š@b™XŎW¼ka¯lÇŹ¯aÇ»™ÝÝ_@m„@@a™@UklwUm@ak@ƒb™UmbmƒbV¯™ĕUƒƒšaVwÅaĉVmý™m¯xUkƒ@k¥VƒUXƒ¤VÈm`@„—ńÇÜ@Ākn‚ĔkƞÆĠ„™Þš‚U„VôƆÞI@ŽUxƦn„l@ĊĊnxUÒ°¦Vb¯WUnWށIml@xn„Ubô¤‚¼ÈxlI„»šKVš„@ÈԂJkšU˱ÆVb@nœ„VÜVUVƒšL„wĠl„kn„Ġ@nx°¥Æ„²mUwƒ@m™mÅUl¯UњÑUm„Lll„Il±š@VkwƒW@w°@U»™kUóI°ƒ„»ĢтL„™š`nUĠ²lm„bôV@n„JUxƦX¦l@š‚ŎUƒV„@lV„KVřV£UaÞU™ƒnW@¯VU@ó™"],encodeOffsets:[[107787,28244]]}},{type:"Feature",id:"5301",properties:{name:"昆明市",cp:[102.9199,25.4663],childNum:11},geometry:{type:"Polygon",coordinates:["@@n@Vk‚VUn²°@xƒ°Vƒ@¯ÆV¼k@WŽ„Þ¯„@„@‚VVU„„Ģċ°k¼V„Ċxœ¤Ōœx°mVkƒÑȏšL‚°„x°Xœ°VmĊLVxU˰bX¦VW@kšȯlkn@„¥lnšƒ@»°Ñ¯VmlLUwVK@ƒV@ka@lmXb„UlVlkÈx@™„LVa„VV™wnƒmm@km™@mœIVaݏ@XƒVUݯU@ƒÝ£k»˜K@aUwkKV_ƒ¥„a@alU@nz°aV„È@@±lÛšk@wVakm@т¥„a„z‚@XxÆW@ÛX™@m@ƒy@aWw@kōĉJlbV„JƒzţÆUwVkmWkým@Ul™U@b¯wVºƒU™VUêšĠƒXUaUbVĊUŽWXUmkK™™WnUUU™V™ƒƒVV™Ý@kk±‚™¯ƒƒLkƒš±WkXlVklƒ@ƒwXbmLƒ›VUIVmk@Ubma@kkaVKUƒ™kmlXLWn™J¯ÒĊ°@zkºlLUŤn@@n›ô@lƁnmKkÈlxVw„@@mÈx˜@n²Uxl¤nbVxUzmJƒÒnš"],encodeOffsets:[[104828,25999]]}},{type:"Feature",id:"5307",properties:{name:"丽江市",cp:[100.448,26.955],childNum:5},geometry:{type:"Polygon",coordinates:["@@l@™„@w°ÓUnƒÜѰw@mČóšÝlU»n°„„VÜUbVbm¼@ްxôĸœVW¦¯Ĭlœ˜@zll@b„šWxXš‚a„X@ÆĠÆaXwl@XaƦn¼˜Jn@mnKW¯È»V¯°ak™VanXVwl@VyUĕVU„bÈīlaUk°ƒk¯lƒ²V˜Ukƛô@ƒ„I@mVwĊa„™ƒVaka„™ÆbUŽVLšaXIWKUw™ƒ„aWÑÅKUaVk°ƒ@Uw„ƒ¯¥›XğÝLkm¯Iǃóѯ»™aƒnUl±UĵÿlóÅIƒaU‚±Ik¼UŽVb¯bWxn°™ÒVbnLlޚ@@`kbmIkŽVn„JmnXl›@Ux™bkn@xóLUxVŽƒKóóŐW™™aÅxƒŽ™wƒ@™nÅm™šƒV™„ƒôX„ƒLlVU¤ƒb¦m¼™Ž@ƒbU‚„zUƂ°ÞVb@„Æbnššx"],encodeOffsets:[[101937,28227]]}},{type:"Feature",id:"5328",properties:{name:"西双版纳傣族自治州",cp:[100.8984,21.8628],childNum:3},geometry:{type:"Polygon",coordinates:["@@l²°ŽnÒlxÞ@„nWl„Lĸ™nbV¤V¦kbVV‚¦na„x°Vôa@„šb@lôXlWUšVXČKlmššU@bšWXXܛ°LÈa°LnU°‚ÞnšÑ„ġ°lƒnbšaƒ¯¯KWƒœó@kmK@UšĉV@k°„VV¹„a@y‚_ċl_nÓlL@anI@ƒóWl£VU—ƒl™kĕl™šKVw„U@™kVƒam¯ÅL@bƒ‚Ýk@Vn„UbÇbÝwÅ@ċ¥¯lk‚¼ÅŽ™Ò°b@¦nlUn@ŽÇV„mƁbWôU@ÝÅōm™¯ƒaU™™mk™WWw—@±ƒ™n¯U™è™a™Lƒ¯mƒL™škwƒl@°mnÈÒ¯šów@V™xƒĀU¤°Įƒ°Xl"],encodeOffsets:[[102376,22579]]}},{type:"Feature",id:"5305",properties:{name:"保山市",cp:[99.0637,24.9884],childNum:5},geometry:{type:"Polygon",coordinates:["@@X°„Il‚@¦ƒŽÈ¼m¼ÞaÞÅl„ÈxV¼šlVôÈÆlLޣȺlkUƒ‚ƒUw„¯UĕVwĊ@n¦mlnVĸIWǰLnƒUwl™šV„n@lnU˜„nJށl±U™¯LVUa°Ý„U„ÇĊýšVŤé„LlxÞL„ĀÜl²ĉ°KUaVƒ™_Źé@klw¯ƒlÅ—šW£ÅyU™W@wƒknal¥Uw@w™Uƒƒk¯ƒw¯aW±k_mJa™XVҙĠWb¯L¯Ý@w™wUƒ¯±Wk_ġƒwƒwōKmb@¤„bk°l˃ô„UJƒšVnÅlťUš¯°VbnbWxX„m„ÞššWUĀ™L™yWzÛKmbUxVKkn݃kŽVšĀċ¤Ux„@ޝŽm@ƒ¦"],encodeOffsets:[[100440,25943]]}},{type:"Feature",id:"5304",properties:{name:"玉溪市",cp:[101.9312,23.8898],childNum:9},geometry:{type:"Polygon",coordinates:["@@l„„L°xXlWxXnlw„a„ţlaÞlÆĬnX„ƒ°wVw„l„@m™nw°VVIXllKšbnnV°lbU„UJ@ÈÇKVb—š@bW„°Vk¦kaWb°škxV¤È¼U°ôI@llblš²š@‚@œó@mm@VţkKl¹@yĉ¯°ÑšIXmWKnkšlV„ULlb@lnbVal@UnVJœU‚„nKWa„x„@lkkUlW²X„™‚l„K°„šl²@lšÞUŽ„U‚„UšVšVVXmššlLVnXWVUĉVaVb„W™ğVéšU„VU¹W»aVa„aW™Xƒ‚_U¥nÇ흙@a™lUnǍUyk@@wW@kbW¦UKÝwUmmƒƒLUnVxUVVlk¯mmnƒmkÇaŤ¯I@ƒl@@aĉw°ĕmU—L±ƒk™ÆéX™ÜÛ@yÈç@™Çġ„Ýķ—XmmÝVՙƒ™lmnkbmWkb@nl@nŽmš¯VxkJmUJ„ml¯™°makVVnVƒ¦™Wƒ—Wmnl@xmn„l‚I„¤„n™xU„ƒVUŽmX@˜ƒb@zl@¦Ýþ"],encodeOffsets:[[103703,24874]]}},{type:"Feature",id:"5333",properties:{name:"怒江傈僳族自治州",cp:[99.1516,26.5594],childNum:4},geometry:{type:"Polygon",coordinates:["@@WyX£lWlnnUU™„¥@ţV™Vw„JlÅ@wƒmö󙻂£kml¯U¥n¹Æ@ny@wmU@¯mnamÛnƒšUV¥ÈnĠy²œm¤„@ÆónݚnmlnbÞU‚¥„aV£kU„KWƒ„óšƒmIU¥ókwVólƒ™»¯™ƒL™ƒk@m™naWKÛwóњw@a±n—@VbUJ›LkaƒÝXĉƒ™„UV`lI@lnXÆƑkKmxÛXmlUKVmU²Klw@a™aó„@n™KXwVKU¯V¥mUnkm¥ĉ@UxV˃°Vx„V„klmޙkKWĀkVWšnl°Lnm@°ŽUxlV@nk¦™JVȰŽVÒ@nX°@ÆlUômlnôƒ²nxmłnVV„¯x@Èm°XblVUšl°@xkXU¤WXX‚W„Xƃ„mkÅJmށw±bƒxUīkKmÅVUĖÝèV„kx@š›lX„lnk¤ƒLkŽ‚Ėk¦‚xUššL°‚¯Ė@LnK@b°xVI„¥Ua°Ñ@»nm@¹‚KŎÞÈWln²n"],encodeOffsets:[[101071,28891]]}},{type:"Feature",id:"5331",properties:{name:"德宏傣族景颇族自治州",cp:[98.1299,24.5874],childNum:5},geometry:{type:"Polygon",coordinates:["@@„¥n@°@ƒVwČ£™ÿUlÞ„lmULVwnaÜLXyšzšKVÿ™XݙnƒWƒXwmaUa°¯V™ŦŽÆkUm„™VIƒ„ókĕl¯ƒa@£nama™@¯m¯œó@óyţbġkÅm±ÛammVkƒLwU`Wk@VƒkUmŃlUUKmbkkUVUwƒ¦óް¼šbn°ô¦lºƒz@xšŽ¯„™@UްnƒšU¤ţU„°VƆ@ÈmlnzÞl°¦Æa„xUxƒLkxWƒn@‚š²ŰšW„™‚@°ÈXl°Llx"],encodeOffsets:[[100440,25943]]}}],UTF8Encoding:!0}}),define("echarts/util/mapData/geoJson/zhe_jiang_geo",[],function(){return{type:"FeatureCollection",features:[{type:"Feature",id:"3311",properties:{name:"丽水市",cp:[119.5642,28.1854],childNum:9},geometry:{type:"Polygon",coordinates:["@@@V‚bVl@Xn‚UXƒKVŽ@¦nxlUXV‚n„KVmnL‚UV@bn¤lLXK˜²„`nnlJXIVJ‚I„Vnn°KnnVll@VLXWV@UkVaVK„zV@„ƒšVVaUK@U»VUl@@WnUUƒ@wVLn@Vwl@XW°LVbn@VU‚@X„l`@XnKVbkl@XVJlUnlV„„xlL@lnXl„@VšUnV°°„@a„UVLXblWVXn@VVUV@Lš¤VLV„U‚VbnalLUUVX_laVa„WVzXKV@@a@KUmImmXama@kU@yVIUK‚aVa@kXK@aWU@VIUmW@kkVm„Uš@VwUa@K@k@Uƒ`@kUKVk@UV@VaUm²Vy@klUUWUkVmUa@_ƒKVaXa›XmƒU@mUlWkaUXƒ@mmkL@w™JƒnVVÅbWKXa™@@I@aƒJUUÇ@V„UL™W@akLmb@K@a™XXw@mƒVmUVkUy@£@aU@@VkUWm@kUKƒXUWU_mW@wkkmJUUkLWWUXƒW@IkJ@k@mW_kӃ_Ul™Lƒm@I@aUa¯m@kƒa¯LUJƒ@mVVxUb™a@LUKkXƒbm@Uak@@a@Um`ƒIUbUJ@nUVW@@LnVV@lšUbVlUX@`š@blXklW„Ušm„Xlm¦U@@V¯bml@š@nUb@llnn@VbX@lV@ŽUVULmU@JVn„bVbkb™VWxU@@nUVk@"],encodeOffsets:[[121546,28992]]}},{type:"Feature",id:"3301",properties:{name:"杭州市",cp:[119.5313,29.8773],childNum:6},geometry:{type:"Polygon",coordinates:["@@X@l„°KXXlW„b@²„`šššb‚I„šX`l@„@bWl@n@VnLUV@V„@°¦@šl@XVlU@š@xVbUb@Vkb@‚@XVJVz™J@Lޚ@VmLUxUJ@LU„Vx‚b„xXUl@VaÈw„b‚aÞa@Vl@XUVx@V@V„LlbnV„al@lb„Vnn‚LnKnL@VlbVJXalIšb@KUU@mVInJ˜„U„Vl@xUšVLnUš@UÞaV@lkV@UanK„L@UlKVUnbÆmn@@nUlVnVJl@@UXU„L@WVIVJVxVLXV@IÜKnbn@V¥V@@I@ƒƒ„y°b@UUwnk°ÆƨVlUšçXm›£aƒÇ™IkVƒ@WV@@aWIUWUIkb@WW@UnƒK@UU@kaWVkƒVIVVnU@UWVUV@VmVkKkWIkVWaULU`UImJUImm—U@ƒƒwmwUV™IUWVkUamaU@mV—kƒb@KVU@aVU@anKULVJ‚U@kÛU™JUV›kkƒVakU@ƒaVwkW@UWkXmWaULUaUK@XƒJUUmƒVU@UVƒUkJ@ImwmKU@k„@lU„W@@akKm„kamIkWl_UwVm@UkaVUUaƒ@UamakbWlkL@aUalU@mkL@U@U™lmK@XkKm@Ýakb@xƒnXbƒ`ƒnUUU@›™U@™wU@@ƒmKkkƒV¯U@lULUbVbUb@V‚a@L™ºÝb@bLmK™x@VUL@bk@mxULWl"],encodeOffsets:[[121185,30184]]}},{type:"Feature",id:"3303",properties:{name:"温州市",cp:[120.498,27.8119],childNum:9},geometry:{type:"Polygon",coordinates:["@@ll@xnXV`VX„WVL@lXnlV@UV@@b@¤VzUlnV„U@nWxšW@b@LnalK@bšXVKUƒÈ@VV„I@b@Jš@WbXLÆaUU„mšI@xlKnn„@VWlbkXV‚@n„VWnœ‚WbUb„L@`VbUnVlVXkV@lUz±‚VnUbU@@VUlVL@l„_@V@l@LVbV@XLV`VÈlxn@lU@aœaVV‚k„@XJ@nl@@LU`°LVb„L°a@a„UVy@anI@a„a‚nV@²wÜJX@VšVV°k„na@WVk„aWwU@m@™ƒkƒaUĕ™ÝšÝŤnÈa„aóI›»@±X™WkUķ@kV±kw™ƒUkWw„™UƒÝ»ÛkɳlImaUaWóXÿǬk‚UnWVmmk™KţnŏÞğl™„UlUx@XWb„V@JkXƒ°mb@VULVxUVk@@LWWk@WIkšƒUkJmUkVmI@yƒ@Ua™kLm‚U@mUUUkaVk™@mK@UlUU@UmKmbUUUJ@n@KVLUL@VkJWXX`mnULWlkL@JVLVb@°kxkU@LVŽ™V@„VLV`UL@VUX"],encodeOffsets:[[122502,28334]]}},{type:"Feature",id:"3302",properties:{name:"宁波市",cp:[121.5967,29.6466],childNum:6},geometry:{type:"Polygon",coordinates:["@@Ċ¦ĸ°‚nXÞVšKškƨƑźÿ°»n„@wô¥ÜbœU°ÆXÞWóçĉݱIUƒÈ¥@U°wÆ»²mm_@aXƒVKÞVlk@akk›̅@£X»VwƏXWa¯aȗb™KƽۃĊ™xƒLóŽk@ƒƒƒ@¯nƒKUL@xkL›ÑkWULUUmJUXVŽU@mŽUX¯@V`mbXbV@@nn¤WXšx@škJ@nVVUVl²UbÝVUVk@Wx@V@„ƒVXzmlaƒL@VlLU`„XUVVVUnl@VbnJlnUVVnƒlUKkbmnn„VxlJnxmbU@UL@KUV™X@xmb@lk@mnVVUš™è"],encodeOffsets:[[123784,30977]]}},{type:"Feature",id:"3309",properties:{name:"舟山市",cp:[122.2559,30.2234],childNum:3},geometry:{type:"Polygon",coordinates:["@@l΢ƒʠþÆVĢLĊƒǬXĊ܄XôV„ÑÆw„ƒlšƏÈóVĭVǓ@ƒĉwɛkmK@ĉXīWaĉUĵÝmƒ¯ĉƒwĉ±±nż¯x@VǦV„²JĊÞôèÝXÅW¯›VÛaó¦@xƒŽmޝ¼ŹĀ"],encodeOffsets:[[124437,30983]]}},{type:"Feature",id:"3310",properties:{name:"台州市",cp:[121.1353,28.6688],childNum:7},geometry:{type:"Polygon",coordinates:["@@lV„IVWVz@bXJl@Xal@°„nLll@nVxnV„K@UJVbƒ¦°„k`UIWJXnƚ@bUJ„Xl@lb„Wn@UzVV@bVVšmVnnJVXna‚bšKUKnUVVUnVLlKVLXa„Jm£@mU@WanaU_°@VWnV@UVWnIVVVKlXœÒlK@wVK„L°m„@„„l@ô„Kšw„ĉƾůUƒl£@»UƒVk„m@ƅUƒƒaÛIŏmUk@m„w@a™£ƒWk@ţšƒIm±@ankôUlaU™Uw¯ƒōaƒbÇbţm™ÞšÞVĖ„b„l@š@n‚VXxƒbUl@XmbƒŽ¯lUUU™W@ÛI±xU@mƒb@bmJ@bUzƒV@b¯bƒKUa¯KV_@Kk@@mWIƒ@lUU›b@bkVm@kwUÇU_WKU@Ux™@ƒVUnllX@Vn‚J@UXV@bWL@lUbbVLUJ@z‚V@lnbWbnnnJVŽ@L"],encodeOffsets:[[123312,29526]]}},{type:"Feature",id:"3307",properties:{name:"金华市",cp:[120.0037,29.1028],childNum:8},geometry:{type:"Polygon",coordinates:["@@nbVb„@VbUVlb@VUnVxk`lXnJlbnƒlL@bX@Vƒ@klƒV@nLnx@JlI„V‚U@VUVn„VV„I@WVLVbVKXbWnXl@VlXUx„b@ŽlVUbl„œlVUšIÜVnalKX@@bV@@aUUlUƒwUw„@naWW„UVaUUšaVb„LlxXJVk°ƒUƒlkU¥@k„a@LVlXLVlšVWznVn@lxšJl_@WX_@mVa„a@alU@kVVna„KVLlK„b@UUaVašbnUWmXU@k@yVI@ařWmXIVJl_¯ƒ„¥UaVI@ƒLmUUw@mkkmK¯ƒk@Wbk@WI@aUyUXƒJkU@bU@WLUyƒXUbkbW`UVVkKmbUaVUƒUK™£@KVUUUm@UWkXWaUKƒV@b¯ƒ¯mU™V@UkƒmW@kkKƒwUƒmkkVUI@WlkUamL@Wk_Wƒ@UVm@Ua¯KWXk@Uxm@UK@xV„mV@Xk@UVV¼@‚VLUb™Uƒ„U@ƒyULUbVlU@@XlVUVVbƒU@lXXVW@XUVl@@VUVƒÈn@VVU„@lVa@„U„mL@`X@`WL@VUX@lUL@xlx"],encodeOffsets:[[122119,29948]]}},{type:"Feature",id:"3308",properties:{name:"衢州市",cp:[118.6853,28.8666],childNum:5},geometry:{type:"Polygon",coordinates:["@@XkVKnwl@@aVK@UšwnL‚K@aÞaš¹@Kb@UVaUaVaVK@k°V„UllnL@„V@šxV@œšV@VV„m„_Wa„m@wlaÞbn@lL@WnLšk@V@VlK@nkVVb@blKXklakw@wVK@kVW@UXK@_‚W@_nKVƒ@ƒUb@kVƒUUm@„ÇVU@Uk@VU@WUXWW@k„VUaVUkU@WWXUKk@Ukmm¯LmmƒUJUIWJkImmƒ_—±WLkKm£@aVUmKUnƒLmWUkVmw@¥U„LVWm@WUka@UmmLmm@@bUX™@@WUIm@UVUK@UVUUU™VVJmb@b„Xn‚mVƒ¼nnn¦mJUVƒL„V@VW@UzUlVnUbl`UnVl@XU@kl@bmÈUx™Vk@@J@„ƒ¼W@ÅaVVnzmVƒ„@WJk@kWJ@ƒlXbWbXxmVnšlLXb@°lKVXnWšbWV„„X„mbV@Xl‚bšI@Kn@@x@šVLlm"],encodeOffsets:[[121185,30184]]}},{type:"Feature",id:"3306",properties:{name:"绍兴市",cp:[120.564,29.7565],childNum:6},geometry:{type:"Polygon",coordinates:["@@„x@„˜VnnVJnIVJV_VKXblUXJlŽlLUŽUnU@UVVX@ŽmVUUUJl„XUlbV@@V„LVmX@@XlaVJVXXJ@b‚@XU„@lUšJ„È‚bœ¤Ō„JšçV™UUnml@@kna@wšWVU@LVKV@namwkIUwmƒnmlaVL„kUmVUkmmIUak@VmUUVUƒWV_kK@U„K‚bnkWy„U@ƒ@UXwl@VUÞUVak±VUUU@mlI@™™wXWƒIWbUKkLUKVmUUmVVL™LambUWmIUm™nUU@aUUVym@ƒXkak@ƒW@z@lWVXnmV™aUbVb@VƒakLUKƒLmbUU@lkV@bƒbUb@nW`@Xk`™Ikwm@mUXy™UUkWKUk@Kƒb@lV¦klV„¯„UlWIkwƒKUa™bVVUbƒVXXmbƒ@Vx„xkVVV@bU@@aW@kLmb@lVUIVKmL@bUV@bUV@L„a˜lnUV@nbVbUlVXšJVUnx"],encodeOffsets:[[122997,30561]]}},{type:"Feature",id:"3304",properties:{name:"嘉兴市",cp:[120.9155,30.6354],childNum:6},geometry:{type:"Polygon",coordinates:["@@@blIX@@VÜVUnn@l‚k„lKnI°Þl`²LVKVbnbVaVLUVn@W¦@VkVVb„@VI„`@blLnL‚aX@„VVb@U‚@XlVa„@@kVaUKV»U_lWXUƒƒ@alb„k@VllnLVKn@@UVIUw@y°IVVXU@VV@lw„m@wVkƾaœJ‚LkΡƧƒ™l™LÝUmW¯ķÿĉ¥ƒIŋŽWn™èkVƧU¯ÅmlVx@V¯aƒz„Ž@„@JU@U¦m@@šnVmn@V„LV‚"],encodeOffsets:[[123233,31382]]}},{type:"Feature",id:"3305",properties:{name:"湖州市",cp:[119.8608,30.7782],childNum:4},geometry:{type:"Polygon",coordinates:["@@kLlƒkm@VmÛU@UW@kJ@aUƒK@UnmmU@™maÛL@JWUUKUwUIUJ@XƒKWV@Vk@UIUmVk@mm@ÅnmaUVkL@VƒKmLVbU@klU@ÝbV™@mVUKV™@wUkVƒ—ƒmIUJ@nVV@L™akJWbUIka@UmKmLKmmƒUUVk@@nmLX`WXUV@Ž@nUl™kmlU@Ub„„ƒxVVšIlV„Žšnn„@@n˜„UҚ@„°n@@xmb@„VbnV@šš„@b@`@L@L@x@blVklVbnnV@‚aXb°VlU@W„b°U„LXWVUV™„™VwÈwÜ»ĸaĠnUVw²X@V@lVU@wlaUUVm@knUV›"],encodeOffsets:[[123379,31500]]}}],UTF8Encoding:!0}}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/radar.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/radar.js deleted file mode 100644 index 9bf18b5..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/radar.js +++ /dev/null @@ -1 +0,0 @@ -define("echarts/chart/radar",["require","./base","zrender/shape/Polygon","../component/polar","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../util/accMath","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Polygon");e("../component/polar");var a=e("../config");a.radar={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,polarIndex:0,itemStyle:{normal:{label:{show:!1},lineStyle:{width:2,type:"solid"}},emphasis:{label:{show:!1}}},symbolSize:2};var o=e("../util/ecData"),r=e("zrender/tool/util"),s=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_RADAR,_buildShape:function(){this.selectedMap={},this._symbol=this.option.symbolList,this._queryTarget,this._dropBoxList=[],this._radarDataCounter=0;for(var e,t=this.series,i=this.component.legend,n=0,o=t.length;o>n;n++)t[n].type===a.CHART_TYPE_RADAR&&(this.serie=this.reformOption(t[n]),this.legendHoverLink=t[n].legendHoverLink||this.legendHoverLink,e=this.serie.name||"",this.selectedMap[e]=i?i.isSelected(e):!0,this.selectedMap[e]&&(this._queryTarget=[this.serie,this.option],this.deepQuery(this._queryTarget,"calculable")&&this._addDropBox(n),this._buildSingleRadar(n),this.buildMark(n)));this.addShapeList()},_buildSingleRadar:function(e){for(var t,i,n,a,o=this.component.legend,r=this.serie.data,s=this.deepQuery(this._queryTarget,"calculable"),l=0;lr;r++)n=this.getDataFromOption(t.value[r]),i="-"!=n?o.getVector(e,r,n):!1,i&&a.push(i);return a},_addSymbol:function(e,t,i,n,a){for(var r,s=this.series,l=this.component.polar,h=0,d=e.length;d>h;h++)r=this.getSymbolShape(this.deepMerge([s[n].data[i],s[n]]),n,s[n].data[i].value[h],h,l.getIndicatorText(a,h),e[h][0],e[h][1],this._symbol[this._radarDataCounter%this._symbol.length],t,"#fff","vertical"),r.zlevel=this.getZlevelBase(),r.z=this.getZBase()+1,o.set(r,"data",s[n].data[i]),o.set(r,"value",s[n].data[i].value),o.set(r,"dataIndex",i),o.set(r,"special",h),this.shapeList.push(r)},_addDataShape:function(e,t,i,a,r,l){var h=this.series,d=[i,this.serie],c=this.getItemStyleColor(this.deepQuery(d,"itemStyle.normal.color"),a,r,i),p=this.deepQuery(d,"itemStyle.normal.lineStyle.width"),m=this.deepQuery(d,"itemStyle.normal.lineStyle.type"),u=this.deepQuery(d,"itemStyle.normal.areaStyle.color"),g=this.deepQuery(d,"itemStyle.normal.areaStyle"),V={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:e,brushType:g?"both":"stroke",color:u||c||("string"==typeof t?s.alpha(t,.5):t),strokeColor:c||t,lineWidth:p,lineType:m},highlightStyle:{brushType:this.deepQuery(d,"itemStyle.emphasis.areaStyle")||g?"both":"stroke",color:this.deepQuery(d,"itemStyle.emphasis.areaStyle.color")||u||c||("string"==typeof t?s.alpha(t,.5):t),strokeColor:this.getItemStyleColor(this.deepQuery(d,"itemStyle.emphasis.color"),a,r,i)||c||t,lineWidth:this.deepQuery(d,"itemStyle.emphasis.lineStyle.width")||p,lineType:this.deepQuery(d,"itemStyle.emphasis.lineStyle.type")||m}};o.pack(V,h[a],a,i,r,i.name,this.component.polar.getIndicator(h[a].polarIndex)),l&&(V.draggable=!0,this.setCalculable(V)),V=new n(V),this.shapeList.push(V)},_addDropBox:function(e){var t=this.series,i=this.deepQuery(this._queryTarget,"polarIndex");if(!this._dropBoxList[i]){var n=this.component.polar.getDropBox(i);n.zlevel=this.getZlevelBase(),n.z=this.getZBase(),this.setCalculable(n),o.pack(n,t,e,void 0,-1),this.shapeList.push(n),this._dropBoxList[i]=!0}},ondragend:function(e,t){var i=this.series;if(this.isDragend&&e.target){var n=e.target,a=o.get(n,"seriesIndex"),r=o.get(n,"dataIndex");this.component.legend&&this.component.legend.del(i[a].data[r].name),i[a].data.splice(r,1),t.dragOut=!0,t.needRefresh=!0,this.isDragend=!1}},ondrop:function(t,i){var n=this.series;if(this.isDrop&&t.target){var a,r,s=t.target,l=t.dragged,h=o.get(s,"seriesIndex"),d=o.get(s,"dataIndex"),c=this.component.legend;if(-1===d)a={value:o.get(l,"value"),name:o.get(l,"name")},n[h].data.push(a),c&&c.add(a.name,l.style.color||l.style.strokeColor);else{var p=e("../util/accMath");a=n[h].data[d],c&&c.del(a.name),a.name+=this.option.nameConnector+o.get(l,"name"),r=o.get(l,"value");for(var m=0;mh;h++)t=d.polar2cartesian(s,o*Math.PI/180+r*h),l.push({vector:[t[1],-t[0]]})},_getRadius:function(){var e=this.polar[this._index];return this.parsePercent(e.radius,Math.min(this.zr.getWidth(),this.zr.getHeight())/2)},_buildSpiderWeb:function(e){var t=this.polar[e],i=t.__ecIndicator,n=t.splitArea,a=t.splitLine,o=this.getCenter(e),r=t.splitNumber,s=a.lineStyle.color,l=a.lineStyle.width,h=a.show,d=this.deepQuery(this._queryTarget,"axisLine");this._addArea(i,r,o,n,s,l,h),d.show&&this._addLine(i,o,d)},_addAxisLabel:function(t){for(var i,a,o,r,a,s,l,d,c,p,m=e("../util/accMath"),u=this.polar[t],g=this.deepQuery(this._queryTarget,"indicator"),V=u.__ecIndicator,y=this.deepQuery(this._queryTarget,"splitNumber"),U=this.getCenter(t),f=0;f=x;x+=p+1)r=h.merge({},o),l=m.accAdd(s.min,m.accMul(s.step,x)),l="function"==typeof b?b(l):"string"==typeof b?b.replace("{a}","{a0}").replace("{a0}",l):this.numAddCommas(l),r.text=l,r.x=x*a[0]/y+Math.cos(d)*c+U[0],r.y=x*a[1]/y+Math.sin(d)*c+U[1],this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:r,draggable:!1,hoverable:!1}))}},_buildText:function(e){for(var t,i,a,o,r,s,l,h=this.polar[e],d=h.__ecIndicator,c=this.deepQuery(this._queryTarget,"indicator"),p=this.getCenter(e),m=0,u=0,g=0;g0?"left":Math.round(t[0])<0?"right":"center",null==o.margin?t=this._mapVector(t,p,1.1):(s=o.margin,m=t[0]>0?s:-s,u=t[1]>0?s:-s,m=0===t[0]?0:m,u=0===t[1]?0:u,t=this._mapVector(t,p,1)),i.textAlign=a,i.x=t[0]+m,i.y=t[1]+u,r=o.rotate?[o.rotate/180*Math.PI,t[0],t[1]]:[0,0,0],this.shapeList.push(new n({zlevel:this.getZlevelBase(),z:this.getZBase(),style:i,draggable:!1,hoverable:!1,rotation:r})))},getIndicatorText:function(e,t){return this.polar[e]&&this.polar[e].__ecIndicator[t]&&this.polar[e].__ecIndicator[t].text},getDropBox:function(e){var t,i,e=e||0,n=this.polar[e],a=this.getCenter(e),o=n.__ecIndicator,r=o.length,s=[],l=n.type;if("polygon"==l){for(var h=0;r>h;h++)t=o[h].vector,s.push(this._mapVector(t,a,1.2));i=this._getShape(s,"fill","rgba(0,0,0,0)","",1)}else"circle"==l&&(i=this._getCircle("",1,1.2,a,"fill","rgba(0,0,0,0)"));return i},_addArea:function(e,t,i,n,a,o,r){for(var s,l,h,d,c=this.deepQuery(this._queryTarget,"type"),p=0;t>p;p++)l=(t-p)/t,r&&("polygon"==c?(d=this._getPointList(e,l,i),s=this._getShape(d,"stroke","",a,o)):"circle"==c&&(s=this._getCircle(a,o,l,i,"stroke")),this.shapeList.push(s)),n.show&&(h=(t-p-1)/t,this._addSplitArea(e,n,l,h,i,p))},_getCircle:function(e,t,i,n,a,o){var s=this._getRadius();return new r({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:n[0],y:n[1],r:s*i,brushType:a,strokeColor:e,lineWidth:t,color:o},hoverable:!1,draggable:!1})},_getRing:function(e,t,i,n){var a=this._getRadius();return new s({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:n[0],y:n[1],r:t*a,r0:i*a,color:e,brushType:"fill"},hoverable:!1,draggable:!1})},_getPointList:function(e,t,i){for(var n,a=[],o=e.length,r=0;o>r;r++)n=e[r].vector,a.push(this._mapVector(n,i,t));return a},_getShape:function(e,t,i,n,a){return new o({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{pointList:e,brushType:t,color:i,strokeColor:n,lineWidth:a},hoverable:!1,draggable:!1})},_addSplitArea:function(e,t,i,n,a,o){var r,s,l,h,d,c=e.length,p=t.areaStyle.color,m=[],c=e.length,u=this.deepQuery(this._queryTarget,"type");if("string"==typeof p&&(p=[p]),s=p.length,r=p[o%s],"polygon"==u)for(var g=0;c>g;g++)m=[],l=e[g].vector,h=e[(g+1)%c].vector,m.push(this._mapVector(l,a,i)),m.push(this._mapVector(l,a,n)),m.push(this._mapVector(h,a,n)),m.push(this._mapVector(h,a,i)),d=this._getShape(m,"fill",r,"",1),this.shapeList.push(d);else"circle"==u&&(d=this._getRing(r,i,n,a),this.shapeList.push(d))},_mapVector:function(e,t,i){return[e[0]*i+t[0],e[1]*i+t[1]]},getCenter:function(e){var e=e||0;return this.parseCenter(this.zr,this.polar[e].center)},_addLine:function(e,t,i){for(var n,a,o=e.length,r=i.lineStyle,s=r.color,l=r.width,h=r.type,d=0;o>d;d++)a=e[d].vector,n=this._getLine(t[0],t[1],a[0]+t[0],a[1]+t[1],s,l,h),this.shapeList.push(n)},_getLine:function(e,t,i,n,o,r,s){return new a({zlevel:this.getZlevelBase(),z:this.getZBase(),style:{xStart:e,yStart:t,xEnd:i,yEnd:n,strokeColor:o,lineWidth:r,lineType:s},hoverable:!1})},_adjustIndicatorValue:function(t){for(var i,n,a,o=this.polar[t],r=this.deepQuery(this._queryTarget,"indicator"),s=r.length,l=o.__ecIndicator,h=this._getSeriesData(t),d=o.boundaryGap,c=o.splitNumber,p=o.scale,m=e("../util/smartSteps"),u=0;s>u;u++){if("number"==typeof r[u].max)i=r[u].max,n=r[u].min||0,a={max:i,min:n};else{var g=this._findValue(h,u,c,d);n=g.min,i=g.max}!p&&n>=0&&i>=0&&(n=0),!p&&0>=n&&0>=i&&(i=0);var V=m(n,i,c,a);l[u].value={min:V.min,max:V.max,step:V.step}}},_getSeriesData:function(e){for(var t,i,n,a=[],o=this.component.legend,r=0;ro||void 0===o)&&(o=e),(r>e||void 0===r)&&(r=e)}var o,r,s;if(e&&0!==e.length){if(1==e.length&&(r=0),1!=e.length)for(var l=0;l0?r=o/i:o/=i),{max:o,min:r}}},getVector:function(e,t,i){e=e||0,t=t||0;var n=this.polar[e].__ecIndicator;if(!(t>=n.length)){var a,o=this.polar[e].__ecIndicator[t],r=this.getCenter(e),s=o.vector,l=o.value.max,h=o.value.min;if("undefined"==typeof i)return r;switch(i){case"min":i=h;break;case"max":i=l;break;case"center":i=(l+h)/2}return a=l!=h?(i-h)/(l-h):.5,this._mapVector(s,r,a)}},isInside:function(e){var t=this.getNearestIndex(e);return t?t.polarIndex:-1},getNearestIndex:function(e){for(var t,i,n,a,o,r,s,l,h,c=0;ca[0])return{polarIndex:c,valueIndex:Math.floor((h+l/2)/l)%s}}},getIndicator:function(e){var e=e||0;return this.polar[e].indicator},refresh:function(e){e&&(this.option=e,this.polar=this.option.polar,this.series=this.option.series),this.clear(),this._buildShape()}},h.inherits(t,i),e("../component").define("polar",t),t}),define("echarts/util/coordinates",["require","zrender/tool/math"],function(e){function t(e,t){return[e*n.sin(t),e*n.cos(t)]}function i(e,t){return[Math.sqrt(e*e+t*t),Math.atan(t/e)]}var n=e("zrender/tool/math");return{polar2cartesian:t,cartesian2polar:i}}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/scatter.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/scatter.js deleted file mode 100644 index b6ee365..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/scatter.js +++ /dev/null @@ -1 +0,0 @@ -define("echarts/chart/scatter",["require","./base","../util/shape/Symbol","../component/axis","../component/grid","../component/dataZoom","../component/dataRange","../config","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../util/shape/Symbol");e("../component/axis"),e("../component/grid"),e("../component/dataZoom"),e("../component/dataRange");var a=e("../config");a.scatter={zlevel:0,z:2,clickable:!0,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbolSize:4,large:!1,largeThreshold:2e3,itemStyle:{normal:{label:{show:!1}},emphasis:{label:{show:!1}}}};var o=e("zrender/tool/util"),r=e("zrender/tool/color");return t.prototype={type:a.CHART_TYPE_SCATTER,_buildShape:function(){var e=this.series;this._sIndex2ColorMap={},this._symbol=this.option.symbolList,this._sIndex2ShapeMap={},this.selectedMap={},this.xMarkMap={};for(var t,i,n,o,s=this.component.legend,l=[],h=0,d=e.length;d>h;h++)if(t=e[h],i=t.name,t.type===a.CHART_TYPE_SCATTER){if(e[h]=this.reformOption(e[h]),this.legendHoverLink=e[h].legendHoverLink||this.legendHoverLink,this._sIndex2ShapeMap[h]=this.query(t,"symbol")||this._symbol[h%this._symbol.length],s){if(this.selectedMap[i]=s.isSelected(i),this._sIndex2ColorMap[h]=r.alpha(s.getColor(i),.5),n=s.getItemShape(i)){var o=this._sIndex2ShapeMap[h];n.style.brushType=o.match("empty")?"stroke":"both",o=o.replace("empty","").toLowerCase(),o.match("rectangle")&&(n.style.x+=Math.round((n.style.width-n.style.height)/2),n.style.width=n.style.height),o.match("star")&&(n.style.n=o.replace("star","")-0||5,o="star"),o.match("image")&&(n.style.image=o.replace(new RegExp("^image:\\/\\/"),""),n.style.x+=Math.round((n.style.width-n.style.height)/2),n.style.width=n.style.height,o="image"),n.style.iconType=o,s.setItemShape(i,n)}}else this.selectedMap[i]=!0,this._sIndex2ColorMap[h]=r.alpha(this.zr.getColor(h),.5);this.selectedMap[i]&&l.push(h)}this._buildSeries(l),this.addShapeList()},_buildSeries:function(e){if(0!==e.length){for(var t,i,n,a,o,r,s,l,h=this.series,d={},c=0,m=e.length;m>c;c++)if(t=e[c],i=h[t],0!==i.data.length){o=this.component.xAxis.getAxis(i.xAxisIndex||0),r=this.component.yAxis.getAxis(i.yAxisIndex||0),d[t]=[];for(var p=0,u=i.data.length;u>p;p++)n=i.data[p],a=this.getDataFromOption(n,"-"),"-"===a||a.length<2||(s=o.getCoord(a[0]),l=r.getCoord(a[1]),d[t].push([s,l,p,n.name||""]));this.xMarkMap[t]=this._markMap(o,r,i.data,d[t]),this.buildMark(t)}this._buildPointList(d)}},_markMap:function(e,t,i,n){for(var a,o={min0:Number.POSITIVE_INFINITY,max0:Number.NEGATIVE_INFINITY,sum0:0,counter0:0,average0:0,min1:Number.POSITIVE_INFINITY,max1:Number.NEGATIVE_INFINITY,sum1:0,counter1:0,average1:0},r=0,s=n.length;s>r;r++)a=i[n[r][2]].value||i[n[r][2]],o.min0>a[0]&&(o.min0=a[0],o.minY0=n[r][1],o.minX0=n[r][0]),o.max0a[1]&&(o.min1=a[1],o.minY1=n[r][1],o.minX1=n[r][0]),o.max1t.largeThreshold)this.shapeList.push(this._getLargeSymbol(t,i,this.getItemStyleColor(this.query(t,"itemStyle.normal.color"),r,-1)||this._sIndex2ColorMap[r]));else for(var s=0,l=i.length;l>s;s++)n=i[s],a=this._getSymbol(r,n[2],n[3],n[0],n[1]),a&&this.shapeList.push(a)},_getSymbol:function(e,t,i,n,a){var o,r=this.series,s=r[e],l=s.data[t],h=this.component.dataRange;if(h){if(o=isNaN(l[2])?this._sIndex2ColorMap[e]:h.getColor(l[2]),!o)return null}else o=this._sIndex2ColorMap[e];var d=this.getSymbolShape(s,e,l,t,i,n,a,this._sIndex2ShapeMap[e],o,"rgba(0,0,0,0)","vertical");return d.zlevel=s.zlevel,d.z=s.z,d._main=!0,d},_getLargeSymbol:function(e,t,i){return new n({zlevel:e.zlevel,z:e.z,_main:!0,hoverable:!1,style:{pointList:t,color:i,strokeColor:i},highlightStyle:{pointList:[]}})},getMarkCoord:function(e,t){var i,n=this.series[e],a=this.xMarkMap[e],o=this.component.xAxis.getAxis(n.xAxisIndex),r=this.component.yAxis.getAxis(n.yAxisIndex);if(!t.type||"max"!==t.type&&"min"!==t.type&&"average"!==t.type)i=["string"!=typeof t.xAxis&&o.getCoordByIndex?o.getCoordByIndex(t.xAxis||0):o.getCoord(t.xAxis||0),"string"!=typeof t.yAxis&&r.getCoordByIndex?r.getCoordByIndex(t.yAxis||0):r.getCoord(t.yAxis||0)];else{var s=null!=t.valueIndex?t.valueIndex:1;i=[a[t.type+"X"+s],a[t.type+"Y"+s],a[t.type+"Line"+s],a[t.type+s]]}return i},refresh:function(e){e&&(this.option=e,this.series=e.series),this.backupShapeList(),this._buildShape()},ondataRange:function(e,t){this.component.dataRange&&(this.refresh(),t.needRefresh=!0)}},o.inherits(t,i),e("../chart").define("scatter",t),t}),define("echarts/component/dataRange",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","../util/shape/HandlePolygon","../config","zrender/tool/util","zrender/tool/event","zrender/tool/area","zrender/tool/color","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var s=this;s._ondrift=function(e,t){return s.__ondrift(this,e,t)},s._ondragend=function(){return s.__ondragend()},s._dataRangeSelected=function(e){return s.__dataRangeSelected(e)},s._dispatchHoverLink=function(e){return s.__dispatchHoverLink(e)},s._onhoverlink=function(e){return s.__onhoverlink(e)},this._selectedMap={},this._range={},this.refresh(a),t.bind(r.EVENT.HOVER,this._onhoverlink)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("../util/shape/HandlePolygon"),r=e("../config");r.dataRange={zlevel:0,z:4,show:!0,orient:"vertical",x:"left",y:"bottom",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemWidth:20,itemHeight:14,precision:0,splitNumber:5,splitList:null,calculable:!1,selectedMode:!0,hoverLink:!0,realtime:!0,color:["#006edd","#e0ffff"],textStyle:{color:"#333"}};var s=e("zrender/tool/util"),l=e("zrender/tool/event"),h=e("zrender/tool/area"),d=e("zrender/tool/color");return t.prototype={type:r.COMPONENT_TYPE_DATARANGE,_textGap:10,_buildShape:function(){if(this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._isContinuity()?this._buildGradient():this._buildItem(),this.dataRangeOption.show)for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e]);this._syncShapeFromRange()},_buildItem:function(){var e,t,i,o,r=this._valueTextList,s=r.length,l=this.getFont(this.dataRangeOption.textStyle),d=this._itemGroupLocation.x,c=this._itemGroupLocation.y,m=this.dataRangeOption.itemWidth,p=this.dataRangeOption.itemHeight,u=this.dataRangeOption.itemGap,g=h.getTextHeight("国",l);"vertical"==this.dataRangeOption.orient&&"right"==this.dataRangeOption.x&&(d=this._itemGroupLocation.x+this._itemGroupLocation.width-m);var V=!0;this.dataRangeOption.text&&(V=!1,this.dataRangeOption.text[0]&&(i=this._getTextShape(d,c,this.dataRangeOption.text[0]),"horizontal"==this.dataRangeOption.orient?d+=h.getTextWidth(this.dataRangeOption.text[0],l)+this._textGap:(c+=g+this._textGap,i.style.y+=g/2+this._textGap,i.style.textBaseline="bottom"),this.shapeList.push(new n(i))));for(var U=0;s>U;U++)e=r[U],o=this.getColorByIndex(U),t=this._getItemShape(d,c,m,p,this._selectedMap[U]?o:"#ccc"),t._idx=U,t.onmousemove=this._dispatchHoverLink,this.dataRangeOption.selectedMode&&(t.clickable=!0,t.onclick=this._dataRangeSelected),this.shapeList.push(new a(t)),V&&(i={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:d+m+5,y:c,color:this._selectedMap[U]?this.dataRangeOption.textStyle.color:"#ccc",text:r[U],textFont:l,textBaseline:"top"},highlightStyle:{brushType:"fill"}},"vertical"==this.dataRangeOption.orient&&"right"==this.dataRangeOption.x&&(i.style.x-=m+10,i.style.textAlign="right"),i._idx=U,i.onmousemove=this._dispatchHoverLink,this.dataRangeOption.selectedMode&&(i.clickable=!0,i.onclick=this._dataRangeSelected),this.shapeList.push(new n(i))),"horizontal"==this.dataRangeOption.orient?d+=m+(V?5:0)+(V?h.getTextWidth(e,l):0)+u:c+=p+u;!V&&this.dataRangeOption.text[1]&&("horizontal"==this.dataRangeOption.orient?d=d-u+this._textGap:c=c-u+this._textGap,i=this._getTextShape(d,c,this.dataRangeOption.text[1]),"horizontal"!=this.dataRangeOption.orient&&(i.style.y-=5,i.style.textBaseline="top"),this.shapeList.push(new n(i)))},_buildGradient:function(){var t,i,o=this.getFont(this.dataRangeOption.textStyle),r=this._itemGroupLocation.x,s=this._itemGroupLocation.y,l=this.dataRangeOption.itemWidth,d=this.dataRangeOption.itemHeight,c=h.getTextHeight("国",o),m=10,p=!0;this.dataRangeOption.text&&(p=!1,this.dataRangeOption.text[0]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[0]),"horizontal"==this.dataRangeOption.orient?r+=h.getTextWidth(this.dataRangeOption.text[0],o)+this._textGap:(s+=c+this._textGap,i.style.y+=c/2+this._textGap,i.style.textBaseline="bottom"),this.shapeList.push(new n(i))));for(var u=e("zrender/tool/color"),g=1/(this.dataRangeOption.color.length-1),V=[],U=0,f=this.dataRangeOption.color.length;f>U;U++)V.push([U*g,this.dataRangeOption.color[U]]);"horizontal"==this.dataRangeOption.orient?(t={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:r,y:s,width:l*m,height:d,color:u.getLinearGradient(r,s,r+l*m,s,V)},hoverable:!1},r+=l*m+this._textGap):(t={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:r,y:s,width:l,height:d*m,color:u.getLinearGradient(r,s,r,s+d*m,V)},hoverable:!1},s+=d*m+this._textGap),this.shapeList.push(new a(t)),this._calculableLocation=t.style,this.dataRangeOption.calculable&&(this._buildFiller(),this._bulidMask(),this._bulidHandle()),this._buildIndicator(),!p&&this.dataRangeOption.text[1]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[1]),this.shapeList.push(new n(i)))},_buildIndicator:function(){var e,t,i=this._calculableLocation.x,n=this._calculableLocation.y,a=this._calculableLocation.width,r=this._calculableLocation.height,s=5;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[i,n+r],[i-s,n+r+s],[i+s,n+r+s]],t="bottom"):(e=[[i,n],[i-s,n-s],[i+s,n-s]],t="top"):"right"!=this.dataRangeOption.x?(e=[[i+a,n],[i+a+s,n-s],[i+a+s,n+s]],t="right"):(e=[[i,n],[i-s,n-s],[i-s,n+s]],t="left"),this._indicatorShape={style:{pointList:e,color:"#fff",__rect:{x:Math.min(e[0][0],e[1][0]),y:Math.min(e[0][1],e[1][1]),width:s*("horizontal"==this.dataRangeOption.orient?2:1),height:s*("horizontal"==this.dataRangeOption.orient?1:2)}},highlightStyle:{brushType:"fill",textPosition:t,textColor:this.dataRangeOption.textStyle.color},hoverable:!1},this._indicatorShape=new o(this._indicatorShape)},_buildFiller:function(){this._fillerShape={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:this._calculableLocation.x,y:this._calculableLocation.y,width:this._calculableLocation.width,height:this._calculableLocation.height,color:"rgba(255,255,255,0)"},highlightStyle:{strokeColor:"rgba(255,255,255,0.5)",lineWidth:1},draggable:!0,ondrift:this._ondrift,ondragend:this._ondragend,onmousemove:this._dispatchHoverLink,_type:"filler"},this._fillerShape=new a(this._fillerShape),this.shapeList.push(this._fillerShape)},_bulidHandle:function(){var e,t,i,n,a,r,s,l,d=this._calculableLocation.x,c=this._calculableLocation.y,m=this._calculableLocation.width,p=this._calculableLocation.height,u=this.getFont(this.dataRangeOption.textStyle),g=h.getTextHeight("国",u),V=Math.max(h.getTextWidth(this._textFormat(this.dataRangeOption.max),u),h.getTextWidth(this._textFormat(this.dataRangeOption.min),u))+2;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[d,c],[d,c+p+g],[d-g,c+p+g],[d-1,c+p],[d-1,c]],t=d-V/2-g,i=c+p+g/2+2,n={x:d-V-g,y:c+p,width:V+g,height:g},a=[[d+m,c],[d+m,c+p+g],[d+m+g,c+p+g],[d+m+1,c+p],[d+m+1,c]],r=d+m+V/2+g,s=i,l={x:d+m,y:c+p,width:V+g,height:g}):(e=[[d,c+p],[d,c-g],[d-g,c-g],[d-1,c],[d-1,c+p]],t=d-V/2-g,i=c-g/2-2,n={x:d-V-g,y:c-g,width:V+g,height:g},a=[[d+m,c+p],[d+m,c-g],[d+m+g,c-g],[d+m+1,c],[d+m+1,c+p]],r=d+m+V/2+g,s=i,l={x:d+m,y:c-g,width:V+g,height:g}):(V+=g,"right"!=this.dataRangeOption.x?(e=[[d,c],[d+m+g,c],[d+m+g,c-g],[d+m,c-1],[d,c-1]],t=d+m+V/2+g/2,i=c-g/2,n={x:d+m,y:c-g,width:V+g,height:g},a=[[d,c+p],[d+m+g,c+p],[d+m+g,c+g+p],[d+m,c+1+p],[d,c+p+1]],r=t,s=c+p+g/2,l={x:d+m,y:c+p,width:V+g,height:g}):(e=[[d+m,c],[d-g,c],[d-g,c-g],[d,c-1],[d+m,c-1]],t=d-V/2-g/2,i=c-g/2,n={x:d-V-g,y:c-g,width:V+g,height:g},a=[[d+m,c+p],[d-g,c+p],[d-g,c+g+p],[d,c+1+p],[d+m,c+p+1]],r=t,s=c+p+g/2,l={x:d-V-g,y:c+p,width:V+g,height:g})),this._startShape={style:{pointList:e,text:this._textFormat(this.dataRangeOption.max),textX:t,textY:i,textFont:u,color:this.getColor(this.dataRangeOption.max),rect:n,x:e[0][0],y:e[0][1],_x:e[0][0],_y:e[0][1]}},this._startShape.highlightStyle={strokeColor:this._startShape.style.color,lineWidth:1},this._endShape={style:{pointList:a,text:this._textFormat(this.dataRangeOption.min),textX:r,textY:s,textFont:u,color:this.getColor(this.dataRangeOption.min),rect:l,x:a[0][0],y:a[0][1],_x:a[0][0],_y:a[0][1]}},this._endShape.highlightStyle={strokeColor:this._endShape.style.color,lineWidth:1},this._startShape.zlevel=this._endShape.zlevel=this.getZlevelBase(),this._startShape.z=this._endShape.z=this.getZBase()+1,this._startShape.draggable=this._endShape.draggable=!0,this._startShape.ondrift=this._endShape.ondrift=this._ondrift,this._startShape.ondragend=this._endShape.ondragend=this._ondragend,this._startShape.style.textColor=this._endShape.style.textColor=this.dataRangeOption.textStyle.color,this._startShape.style.textAlign=this._endShape.style.textAlign="center",this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape.style.textBaseline=this._endShape.style.textBaseline="middle",this._startShape.style.width=this._endShape.style.width=0,this._startShape.style.height=this._endShape.style.height=0,this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape=new o(this._startShape),this._endShape=new o(this._endShape),this.shapeList.push(this._startShape),this.shapeList.push(this._endShape)},_bulidMask:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;this._startMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:e,y:t,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._endMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:"horizontal"==this.dataRangeOption.orient?e+i:e,y:"horizontal"==this.dataRangeOption.orient?t:t+n,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._startMask=new a(this._startMask),this._endMask=new a(this._endMask),this.shapeList.push(this._startMask),this.shapeList.push(this._endMask)},_buildBackground:function(){var e=this.reformCssArray(this.dataRangeOption.padding);this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.dataRangeOption.borderWidth?"fill":"both",color:this.dataRangeOption.backgroundColor,strokeColor:this.dataRangeOption.borderColor,lineWidth:this.dataRangeOption.borderWidth}}))},_getItemGroupLocation:function(){var e=this._valueTextList,t=e.length,i=this.dataRangeOption.itemGap,n=this.dataRangeOption.itemWidth,a=this.dataRangeOption.itemHeight,o=0,r=0,s=this.getFont(this.dataRangeOption.textStyle),l=h.getTextHeight("国",s),d=10;if("horizontal"==this.dataRangeOption.orient){if(this.dataRangeOption.text||this._isContinuity())o=(this._isContinuity()?n*d+i:t*(n+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?h.getTextWidth(this.dataRangeOption.text[0],s)+this._textGap:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?h.getTextWidth(this.dataRangeOption.text[1],s)+this._textGap:0);else{n+=5;for(var c=0;t>c;c++)o+=n+h.getTextWidth(e[c],s)+i}o-=i,r=Math.max(l,a)}else{var m;if(this.dataRangeOption.text||this._isContinuity())r=(this._isContinuity()?a*d+i:t*(a+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?this._textGap+l:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?this._textGap+l:0),m=Math.max(h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[0]||"",s),h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[1]||"",s)),o=Math.max(n,m);else{r=(a+i)*t,n+=5,m=0;for(var c=0;t>c;c++)m=Math.max(m,h.getTextWidth(e[c],s));o=n+m}r-=i}var p,u=this.reformCssArray(this.dataRangeOption.padding),g=this.zr.getWidth();switch(this.dataRangeOption.x){case"center":p=Math.floor((g-o)/2);break;case"left":p=u[3]+this.dataRangeOption.borderWidth;break;case"right":p=g-o-u[1]-this.dataRangeOption.borderWidth;break;default:p=this.parsePercent(this.dataRangeOption.x,g),p=isNaN(p)?0:p}var V,U=this.zr.getHeight();switch(this.dataRangeOption.y){case"top":V=u[0]+this.dataRangeOption.borderWidth;break;case"bottom":V=U-r-u[2]-this.dataRangeOption.borderWidth;break;case"center":V=Math.floor((U-r)/2);break;default:V=this.parsePercent(this.dataRangeOption.y,U),V=isNaN(V)?0:V}if(this.dataRangeOption.calculable){var f=Math.max(h.getTextWidth(this.dataRangeOption.max,s),h.getTextWidth(this.dataRangeOption.min,s))+l;"horizontal"==this.dataRangeOption.orient?(f>p&&(p=f),p+o+f>g&&(p-=f)):(l>V&&(V=l),V+r+l>U&&(V-=l))}return{x:p,y:V,width:o,height:r}},_getTextShape:function(e,t,i){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:"horizontal"==this.dataRangeOption.orient?e:this._itemGroupLocation.x+this._itemGroupLocation.width/2,y:"horizontal"==this.dataRangeOption.orient?this._itemGroupLocation.y+this._itemGroupLocation.height/2:t,color:this.dataRangeOption.textStyle.color,text:i,textFont:this.getFont(this.dataRangeOption.textStyle),textBaseline:"horizontal"==this.dataRangeOption.orient?"middle":"top",textAlign:"horizontal"==this.dataRangeOption.orient?"left":"center"},hoverable:!1}},_getItemShape:function(e,t,i,n,a){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:e,y:t+1,width:i,height:n-2,color:a},highlightStyle:{strokeColor:a,lineWidth:1}}},__ondrift:function(e,t,i){var n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;return"horizontal"==this.dataRangeOption.orient?e.style.x+t<=n?e.style.x=n:e.style.x+t+e.style.width>=n+o?e.style.x=n+o-e.style.width:e.style.x+=t:e.style.y+i<=a?e.style.y=a:e.style.y+i+e.style.height>=a+r?e.style.y=a+r-e.style.height:e.style.y+=i,"filler"==e._type?this._syncHandleShape():this._syncFillerShape(e),this.dataRangeOption.realtime&&this._dispatchDataRange(),!0},__ondragend:function(){this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(t.dragOut=!0,t.dragIn=!0,this.dataRangeOption.realtime||this._dispatchDataRange(),t.needRefresh=!1,this.isDragend=!1)},_syncShapeFromRange:function(){var e=this.dataRangeOption.range||{},t=e.start,i=e.end;if(t>i&&(t=[i,i=t][0]),this._range.end=null!=t?t:null!=this._range.end?this._range.end:0,this._range.start=null!=i?i:null!=this._range.start?this._range.start:100,100!=this._range.start||0!==this._range.end){if("horizontal"==this.dataRangeOption.orient){var n=this._fillerShape.style.width;this._fillerShape.style.x+=n*(100-this._range.start)/100,this._fillerShape.style.width=n*(this._range.start-this._range.end)/100}else{var a=this._fillerShape.style.height;this._fillerShape.style.y+=a*(100-this._range.start)/100,this._fillerShape.style.height=a*(this._range.start-this._range.end)/100}this.zr.modShape(this._fillerShape.id),this._syncHandleShape()}},_syncHandleShape:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(this._startShape.style.x=this._fillerShape.style.x,this._startMask.style.width=this._startShape.style.x-e,this._endShape.style.x=this._fillerShape.style.x+this._fillerShape.style.width,this._endMask.style.x=this._endShape.style.x,this._endMask.style.width=e+i-this._endShape.style.x,this._range.start=Math.ceil(100-(this._startShape.style.x-e)/i*100),this._range.end=Math.floor(100-(this._endShape.style.x-e)/i*100)):(this._startShape.style.y=this._fillerShape.style.y,this._startMask.style.height=this._startShape.style.y-t,this._endShape.style.y=this._fillerShape.style.y+this._fillerShape.style.height,this._endMask.style.y=this._endShape.style.y,this._endMask.style.height=t+n-this._endShape.style.y,this._range.start=Math.ceil(100-(this._startShape.style.y-t)/n*100),this._range.end=Math.floor(100-(this._endShape.style.y-t)/n*100)),this._syncShape()},_syncFillerShape:function(e){var t,i,n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(t=this._startShape.style.x,i=this._endShape.style.x,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.x=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.x=t),this._fillerShape.style.x=t,this._fillerShape.style.width=i-t,this._startMask.style.width=t-n,this._endMask.style.x=i,this._endMask.style.width=n+o-i,this._range.start=Math.ceil(100-(t-n)/o*100),this._range.end=Math.floor(100-(i-n)/o*100)):(t=this._startShape.style.y,i=this._endShape.style.y,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.y=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.y=t),this._fillerShape.style.y=t,this._fillerShape.style.height=i-t,this._startMask.style.height=t-a,this._endMask.style.y=i,this._endMask.style.height=a+r-i,this._range.start=Math.ceil(100-(t-a)/r*100),this._range.end=Math.floor(100-(i-a)/r*100)),this._syncShape()},_syncShape:function(){this._startShape.position=[this._startShape.style.x-this._startShape.style._x,this._startShape.style.y-this._startShape.style._y],this._startShape.style.text=this._textFormat(this._gap*this._range.start+this.dataRangeOption.min),this._startShape.style.color=this._startShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.start+this.dataRangeOption.min),this._endShape.position=[this._endShape.style.x-this._endShape.style._x,this._endShape.style.y-this._endShape.style._y],this._endShape.style.text=this._textFormat(this._gap*this._range.end+this.dataRangeOption.min),this._endShape.style.color=this._endShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.end+this.dataRangeOption.min),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.modShape(this._startMask.id),this.zr.modShape(this._endMask.id),this.zr.modShape(this._fillerShape.id),this.zr.refreshNextFrame()},_dispatchDataRange:function(){this.messageCenter.dispatch(r.EVENT.DATA_RANGE,null,{range:{start:this._range.end,end:this._range.start}},this.myChart)},__dataRangeSelected:function(e){if("single"===this.dataRangeOption.selectedMode)for(var t in this._selectedMap)this._selectedMap[t]=!1;var i=e.target._idx;this._selectedMap[i]=!this._selectedMap[i];var n,a;this._useCustomizedSplit()?(n=this._splitList[i].max,a=this._splitList[i].min):(n=(this._colorList.length-i)*this._gap+this.dataRangeOption.min,a=n-this._gap),this.messageCenter.dispatch(r.EVENT.DATA_RANGE_SELECTED,e.event,{selected:this._selectedMap,target:i,valueMax:n,valueMin:a},this.myChart),this.messageCenter.dispatch(r.EVENT.REFRESH,null,null,this.myChart)},__dispatchHoverLink:function(e){var t,i;if(this.dataRangeOption.calculable){var n,a=this.dataRangeOption.max-this.dataRangeOption.min;n="horizontal"==this.dataRangeOption.orient?(1-(l.getX(e.event)-this._calculableLocation.x)/this._calculableLocation.width)*a:(1-(l.getY(e.event)-this._calculableLocation.y)/this._calculableLocation.height)*a,t=n-.05*a,i=n+.05*a}else if(this._useCustomizedSplit()){var o=e.target._idx;i=this._splitList[o].max,t=this._splitList[o].min}else{var o=e.target._idx;i=(this._colorList.length-o)*this._gap+this.dataRangeOption.min,t=i-this._gap}this.messageCenter.dispatch(r.EVENT.DATA_RANGE_HOVERLINK,e.event,{valueMin:t,valueMax:i},this.myChart)},__onhoverlink:function(e){if(this.dataRangeOption.show&&this.dataRangeOption.hoverLink&&this._indicatorShape&&e&&null!=e.seriesIndex&&null!=e.dataIndex){var t=e.value;if(""===t||isNaN(t))return;tthis.dataRangeOption.max&&(t=this.dataRangeOption.max),this._indicatorShape.position="horizontal"==this.dataRangeOption.orient?[(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.width,0]:[0,(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.height],this._indicatorShape.style.text=this._textFormat(e.value),this._indicatorShape.style.color=this.getColor(t),this.zr.addHoverShape(this._indicatorShape)}},_textFormat:function(e,t){var i=this.dataRangeOption;if(e!==-Number.MAX_VALUE&&(e=(+e).toFixed(i.precision)),null!=t&&t!==Number.MAX_VALUE&&(t=(+t).toFixed(i.precision)),i.formatter){if("string"==typeof i.formatter)return i.formatter.replace("{value}",e===-Number.MAX_VALUE?"min":e).replace("{value2}",t===Number.MAX_VALUE?"max":t);if("function"==typeof i.formatter)return i.formatter.call(this.myChart,e,t)}return null==t?e:e===-Number.MAX_VALUE?"< "+t:t===Number.MAX_VALUE?"> "+e:e+" - "+t},_isContinuity:function(){var e=this.dataRangeOption;return!(e.splitList?e.splitList.length>0:e.splitNumber>0)||e.calculable},_useCustomizedSplit:function(){var e=this.dataRangeOption;return e.splitList&&e.splitList.length>0},_buildColorList:function(e){if(this._colorList=d.getGradientColors(this.dataRangeOption.color,Math.max((e-this.dataRangeOption.color.length)/(this.dataRangeOption.color.length-1),0)+1),this._colorList.length>e){for(var t=this._colorList.length,i=[this._colorList[0]],n=t/(e-1),a=1;e-1>a;a++)i.push(this._colorList[Math.floor(a*n)]);i.push(this._colorList[t-1]),this._colorList=i}if(this._useCustomizedSplit())for(var o=this._splitList,a=0,t=o.length;t>a;a++)o[a].color&&(this._colorList[a]=o[a].color)},_buildGap:function(e){if(!this._useCustomizedSplit()){var t=this.dataRangeOption.precision;for(this._gap=(this.dataRangeOption.max-this.dataRangeOption.min)/e;this._gap.toFixed(t)-0!=this._gap&&5>t;)t++;this.dataRangeOption.precision=t,this._gap=((this.dataRangeOption.max-this.dataRangeOption.min)/e).toFixed(t)-0}},_buildDataList:function(e){for(var t=this._valueTextList=[],i=this.dataRangeOption,n=this._useCustomizedSplit(),a=0;e>a;a++){this._selectedMap[a]=!0;var o="";if(n){var r=this._splitList[e-1-a];o=null!=r.label?r.label:null!=r.single?this._textFormat(r.single):this._textFormat(r.min,r.max)}else o=this._textFormat(a*this._gap+i.min,(a+1)*this._gap+i.min);t.unshift(o)}},_buildSplitList:function(){if(this._useCustomizedSplit())for(var e=this.dataRangeOption.splitList,t=this._splitList=[],i=0,n=e.length;n>i;i++){var a=e[i];if(!a||null==a.start&&null==a.end)throw new Error("Empty item exists in splitList!");var o={label:a.label,color:a.color};o.min=a.start,o.max=a.end,o.min>o.max&&(o.min=[o.max,o.max=o.min][0]),o.min===o.max&&(o.single=o.max),null==o.min&&(o.min=-Number.MAX_VALUE),null==o.max&&(o.max=Number.MAX_VALUE),t.push(o)}},refresh:function(e){if(e){this.option=e,this.option.dataRange=this.reformOption(this.option.dataRange);var t=this.dataRangeOption=this.option.dataRange;if(!this._useCustomizedSplit()&&(null==t.min||null==t.max))throw new Error("option.dataRange.min or option.dataRange.max has not been defined.");this.myChart.canvasSupported||(t.realtime=!1);var i=this._isContinuity()?100:this._useCustomizedSplit()?t.splitList.length:t.splitNumber;this._buildSplitList(),this._buildColorList(i),this._buildGap(i),this._buildDataList(i)}this.clear(),this._buildShape()},getColor:function(e){if(isNaN(e))return null;var t;if(this._useCustomizedSplit()){for(var i=this._splitList,n=0,a=i.length;a>n;n++)if(i[n].min<=e&&i[n].max>=e){t=n;break}}else{if(this.dataRangeOption.min==this.dataRangeOption.max)return this._colorList[0];if(ethis.dataRangeOption.max&&(e=this.dataRangeOption.max),this.dataRangeOption.calculable&&(e-(this._gap*this._range.start+this.dataRangeOption.min)>5e-5||e-(this._gap*this._range.end+this.dataRangeOption.min)<-5e-5))return null;t=this._colorList.length-Math.ceil((e-this.dataRangeOption.min)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._colorList.length),t==this._colorList.length&&t--}return this._selectedMap[t]?this._colorList[t]:null},getColorByIndex:function(e){return e>=this._colorList.length?e=this._colorList.length-1:0>e&&(e=0),this._colorList[e]},onbeforDispose:function(){this.messageCenter.unbind(r.EVENT.HOVER,this._onhoverlink)}},s.inherits(t,i),e("../component").define("dataRange",t),t}),define("echarts/util/shape/HandlePolygon",["require","zrender/shape/Base","zrender/shape/Polygon","zrender/tool/util"],function(e){function t(e){i.call(this,e)}var i=e("zrender/shape/Base"),n=e("zrender/shape/Polygon"),a=e("zrender/tool/util");return t.prototype={type:"handle-polygon",buildPath:function(e,t){n.prototype.buildPath(e,t)},isCover:function(e,t){var i=this.transformCoordToLocal(e,t);e=i[0],t=i[1];var n=this.style.rect;return e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height?!0:!1}},a.inherits(t,i),t}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/tree.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/tree.js deleted file mode 100644 index b2560fc..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/tree.js +++ /dev/null @@ -1 +0,0 @@ -define("echarts/chart/tree",["require","./base","../util/shape/Icon","zrender/shape/Image","zrender/shape/Line","zrender/shape/BezierCurve","../layout/Tree","../data/Tree","../config","../util/ecData","zrender/config","zrender/tool/event","zrender/tool/util","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=.618,a=e("../util/shape/Icon"),o=e("zrender/shape/Image"),r=e("zrender/shape/Line"),s=e("zrender/shape/BezierCurve"),l=e("../layout/Tree"),h=e("../data/Tree"),m=e("../config");m.tree={zlevel:1,z:2,calculable:!1,clickable:!0,rootLocation:{},orient:"vertical",symbol:"circle",symbolSize:20,nodePadding:30,layerPadding:100,itemStyle:{normal:{label:{show:!0},lineStyle:{width:1,color:"#777",type:"curve"}},emphasis:{}}};var V=e("../util/ecData"),U=(e("zrender/config"),e("zrender/tool/event"),e("zrender/tool/util"));return t.prototype={type:m.CHART_TYPE_TREE,_buildShape:function(e,t){var i=e.data[0];this.tree=h.fromOptionData(i.name,i.children),this.tree.root.data=i,this._setTreeShape(e),this.tree.traverse(function(i){this._buildItem(i,e,t),i.children.length>0&&this._buildLink(i,e)},this);var n=e.roam===!0||"move"===e.roam,a=e.roam===!0||"scale"===e.roam;this.zr.modLayer(this.getZlevelBase(),{panable:n,zoomable:a}),(this.query("markPoint.effect.show")||this.query("markLine.effect.show"))&&this.zr.modLayer(m.EFFECT_ZLEVEL,{panable:n,zoomable:a}),this.addShapeList()},_buildItem:function(e,t,i){var n=[e.data,t],r=this.deepQuery(n,"symbol"),s=this.deepMerge(n,"itemStyle.normal")||{},l=this.deepMerge(n,"itemStyle.emphasis")||{},h=s.color||this.zr.getColor(),m=l.color||this.zr.getColor(),U=-e.layout.angle||0;e.id===this.tree.root.id&&(U=0);var d="right";Math.abs(U)>=Math.PI/2&&Math.abs(U)<3*Math.PI/2&&(U+=Math.PI,d="left");var p=[U,e.layout.position[0],e.layout.position[1]],c=new a({zlevel:this.getZlevelBase(),z:this.getZBase()+1,rotation:p,clickable:this.deepQuery(n,"clickable"),style:{x:e.layout.position[0]-.5*e.layout.width,y:e.layout.position[1]-.5*e.layout.height,width:e.layout.width,height:e.layout.height,iconType:r,color:h,brushType:"both",lineWidth:s.borderWidth,strokeColor:s.borderColor},highlightStyle:{color:m,lineWidth:l.borderWidth,strokeColor:l.borderColor}});c.style.iconType.match("image")&&(c.style.image=c.style.iconType.replace(new RegExp("^image:\\/\\/"),""),c=new o({rotation:p,style:c.style,highlightStyle:c.highlightStyle,clickable:c.clickable,zlevel:this.getZlevelBase(),z:this.getZBase()})),this.deepQuery(n,"itemStyle.normal.label.show")&&(c.style.text=null==e.data.label?e.id:e.data.label,c.style.textPosition=this.deepQuery(n,"itemStyle.normal.label.position"),"radial"===t.orient&&"inside"!==c.style.textPosition&&(c.style.textPosition=d),c.style.textColor=this.deepQuery(n,"itemStyle.normal.label.textStyle.color"),c.style.textFont=this.getFont(this.deepQuery(n,"itemStyle.normal.label.textStyle")||{})),this.deepQuery(n,"itemStyle.emphasis.label.show")&&(c.highlightStyle.textPosition=this.deepQuery(n,"itemStyle.emphasis.label.position"),c.highlightStyle.textColor=this.deepQuery(n,"itemStyle.emphasis.label.textStyle.color"),c.highlightStyle.textFont=this.getFont(this.deepQuery(n,"itemStyle.emphasis.label.textStyle")||{})),V.pack(c,t,i,e.data,0,e.id),this.shapeList.push(c)},_buildLink:function(e,t){var i=t.itemStyle.normal.lineStyle;if("broken"===i.type)return void this._buildBrokenLine(e,i,t);for(var n=0;nr&&(t=r),r>n&&(n=r)}e.layout.position[0]=e.children.length>0?(t+n)/2:0;var s=this._layerOffsets[e.depth]||0;if(s>e.layout.position[0]){var l=s-e.layout.position[0];this._shiftSubtree(e,l);for(var a=e.depth+1;a=0&&(t.splice(i,1),e.parent=null)},t.prototype.traverse=function(e,t){e.call(t,this);for(var i=0;it&&(t=n.height)}this.height=t+1},t.prototype.getNodeById=function(e){if(this.id===e)return this;for(var t=0;tt.width||e.normal.label.y+U>t.height)&&(h=""):h="",e.emphasis.label.show?(s.x+u>t.width||s.y+y>t.height)&&(p=""):p="";var g={style:{textX:t.x+e.normal.label.x,textY:t.y+e.normal.label.y,text:h,textPosition:"specific",textColor:o.color,textFont:m},highlightStyle:{textX:t.x+e.emphasis.label.x,textY:t.y+e.emphasis.label.y,text:p,textColor:s.color,textPosition:"specific"}};return g},getLabelText:function(e,t,i){return i?"function"==typeof i?i.call(this.myChart,e,t):"string"==typeof i?(i=i.replace("{b}","{b0}").replace("{c}","{c0}"),i=i.replace("{b0}",e).replace("{c0}",t)):void 0:e},_buildChildrenTreemap:function(e,t,i,n){for(var a=i.width*i.height,o=0,r=[],l=0;l ":"")},V),clickable:!0,highlightStyle:p});m.set(u,"seriesIndex",t),m.set(u,"name",a[c]),i+=u.getRect(u.style).width,this.shapeList.push(u)}},__onclick:function(e){var t=e.target;if(t){var i=m.get(t,"seriesIndex"),n=m.get(t,"name"),a=this._treesMap[i],o=a.getNodeById(n);o&&o.children.length&&this._buildTreemap(o,i)}}},U.inherits(t,i),e("../chart").define("treemap",t),t}),define("echarts/layout/TreeMap",["require"],function(){function e(e){({x:e.x,y:e.y,width:e.width,height:e.height});this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height}return e.prototype.run=function(e){var t=[];return this._squarify(e,{x:this.x,y:this.y,width:this.width,height:this.height},t),t},e.prototype._squarify=function(e,t,i){var n="VERTICAL",a=t.width,o=t.height;t.widthl;l++)r[s].y+=r[l].height}var h={};if("VERTICAL"==n){for(var m=0;ml;l++){var h=i*e[l]/o;a.push({width:s,height:h})}return a},e.prototype._isFirstBetter=function(e,t){var i=e[0].height/e[0].width;i=i>1?1/i:i;var n=t[0].height/t[0].width;return n=n>1?1/n:n,Math.abs(i-1)<=Math.abs(n-1)?!0:!1},e}),define("echarts/data/Tree",["require","zrender/tool/util"],function(e){function t(e,t){this.id=e,this.depth=0,this.height=0,this.children=[],this.parent=null,this.data=t||null}function i(e){this.root=new t(e)}var n=e("zrender/tool/util");return t.prototype.add=function(e){var t=this.children;e.parent!==this&&(t.push(e),e.parent=this)},t.prototype.remove=function(e){var t=this.children,i=n.indexOf(t,e);i>=0&&(t.splice(i,1),e.parent=null)},t.prototype.traverse=function(e,t){e.call(t,this);for(var i=0;it&&(t=n.height)}this.height=t+1},t.prototype.getNodeById=function(e){if(this.id===e)return this;for(var t=0;ta[1].value?(t=this.zr.getHeight()/3,i=t*Math.sqrt(a[1].value)/Math.sqrt(a[0].value)):(i=this.zr.getHeight()/3,t=i*Math.sqrt(a[0].value)/Math.sqrt(a[1].value));var o=this.zr.getWidth()/2-t,r=(t+i)/2*Math.sqrt(a[2].value)/Math.sqrt((a[0].value+a[1].value)/2),s=t+i;0!==a[2].value&&(s=this._getCoincideLength(a[0].value,a[1].value,a[2].value,t,i,r,Math.abs(t-i),t+i));var l=o+s,h=this.zr.getHeight()/2;if(this._buildItem(e,0,a[0],o,h,t),this._buildItem(e,1,a[1],l,h,i),0!==a[2].value&&a[2].value!==a[0].value&&a[2].value!==a[1].value){var m=(t*t-i*i)/(2*s)+s/2,V=s/2-(t*t-i*i)/(2*s),U=Math.sqrt(t*t-m*m),d=0,p=0;a[0].value>a[1].value&&o+m>l&&(p=1),a[0].valuel&&(d=1),this._buildCoincideItem(e,2,a[2],o+m,h-U,h+U,t,i,d,p)}},_getCoincideLength:function(e,t,i,n,a,o,r,s){var l=(n*n-a*a)/(2*o)+o/2,h=o/2-(n*n-a*a)/(2*o),m=Math.acos(l/n),V=Math.acos(h/a),U=n*n*Math.PI,d=m*n*n-l*n*Math.sin(m)+V*a*a-h*a*Math.sin(V),p=d/U,c=i/e,u=Math.abs(p/c);return u>.999&&1.001>u?o:.999>=u?(s=o,o=(o+r)/2,this._getCoincideLength(e,t,i,n,a,o,r,s)):(r=o,o=(o+s)/2,this._getCoincideLength(e,t,i,n,a,o,r,s))},_buildItem:function(e,t,i,n,a,o){var r=this.series,l=r[e],h=this.getCircle(e,t,i,n,a,o);if(s.pack(h,l,e,i,t,i.name),this.shapeList.push(h),l.itemStyle.normal.label.show){var m=this.getLabel(e,t,i,n,a,o);s.pack(m,l,e,l.data[t],t,l.data[t].name),this.shapeList.push(m)}},_buildCoincideItem:function(e,t,i,n,a,r,l,h,m,V){var U=this.series,d=U[e],p=[i,d],c=this.deepMerge(p,"itemStyle.normal")||{},u=this.deepMerge(p,"itemStyle.emphasis")||{},y=c.color||this.zr.getColor(t),g=u.color||this.zr.getColor(t),b="M"+n+","+a+"A"+l+","+l+",0,"+m+",1,"+n+","+r+"A"+h+","+h+",0,"+V+",1,"+n+","+a,f={color:y,path:b},k={zlevel:d.zlevel,z:d.z,style:f,highlightStyle:{color:g,lineWidth:u.borderWidth,strokeColor:u.borderColor}};k=new o(k),k.buildPathArray&&(k.style.pathArray=k.buildPathArray(f.path)),s.pack(k,U[e],0,i,t,i.name),this.shapeList.push(k)},getCircle:function(e,t,i,n,o,r){var s=this.series[e],l=[i,s],h=this.deepMerge(l,"itemStyle.normal")||{},m=this.deepMerge(l,"itemStyle.emphasis")||{},V=h.color||this.zr.getColor(t),U=m.color||this.zr.getColor(t),d={zlevel:s.zlevel,z:s.z,clickable:!0,style:{x:n,y:o,r:r,brushType:"fill",opacity:1,color:V},highlightStyle:{color:U,lineWidth:m.borderWidth,strokeColor:m.borderColor}};return this.deepQuery([i,s,this.option],"calculable")&&(this.setCalculable(d),d.draggable=!0),new a(d)},getLabel:function(e,t,i,a,o,r){var s=this.series[e],l=s.itemStyle,h=[i,s],m=this.deepMerge(h,"itemStyle.normal")||{},V="normal",U=l[V].label,d=U.textStyle||{},p=this.getLabelText(t,i,V),c=this.getFont(d),u=m.color||this.zr.getColor(t),y=d.fontSize||12,g={zlevel:s.zlevel,z:s.z,style:{x:a,y:o-r-y,color:d.color||u,text:p,textFont:c,textAlign:"center"}};return new n(g)},getLabelText:function(e,t,i){var n=this.series,a=n[0],o=this.deepQuery([t,a],"itemStyle."+i+".label.formatter");return o?"function"==typeof o?o(a.name,t.name,t.value):"string"==typeof o?(o=o.replace("{a}","{a0}").replace("{b}","{b0}").replace("{c}","{c0}"),o=o.replace("{a0}",a.name).replace("{b0}",t.name).replace("{c0}",t.value)):void 0:t.name},refresh:function(e){e&&(this.option=e,this.series=e.series),this._buildShape()}},l.inherits(t,i),e("../chart").define("venn",t),t}),define("zrender/shape/Path",["require","./Base","./util/PathProxy","../tool/util"],function(e){var t=e("./Base"),i=e("./util/PathProxy"),n=i.PathSegment,a=function(e){return Math.sqrt(e[0]*e[0]+e[1]*e[1])},o=function(e,t){return(e[0]*t[0]+e[1]*t[1])/(a(e)*a(t))},r=function(e,t){return(e[0]*t[1]0&&""===d[0]&&d.shift();for(var p=0;p0&&!isNaN(d[0]);){var c,u,y,g,b,f,k,_,x=null,L=[],W=h,X=m;switch(U){case"l":h+=d.shift(),m+=d.shift(),x="L",L.push(h,m);break;case"L":h=d.shift(),m=d.shift(),L.push(h,m);break;case"m":h+=d.shift(),m+=d.shift(),x="M",L.push(h,m),U="l";break;case"M":h=d.shift(),m=d.shift(),x="M",L.push(h,m),U="L";break;case"h":h+=d.shift(),x="L",L.push(h,m);break;case"H":h=d.shift(),x="L",L.push(h,m);break;case"v":m+=d.shift(),x="L",L.push(h,m);break;case"V":m=d.shift(),x="L",L.push(h,m);break;case"C":L.push(d.shift(),d.shift(),d.shift(),d.shift()),h=d.shift(),m=d.shift(),L.push(h,m);break;case"c":L.push(h+d.shift(),m+d.shift(),h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),x="C",L.push(h,m);break;case"S":c=h,u=m,y=l[l.length-1],"C"===y.command&&(c=h+(h-y.points[2]),u=m+(m-y.points[3])),L.push(c,u,d.shift(),d.shift()),h=d.shift(),m=d.shift(),x="C",L.push(h,m);break;case"s":c=h,u=m,y=l[l.length-1],"C"===y.command&&(c=h+(h-y.points[2]),u=m+(m-y.points[3])),L.push(c,u,h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),x="C",L.push(h,m);break;case"Q":L.push(d.shift(),d.shift()),h=d.shift(),m=d.shift(),L.push(h,m);break;case"q":L.push(h+d.shift(),m+d.shift()),h+=d.shift(),m+=d.shift(),x="Q",L.push(h,m);break;case"T":c=h,u=m,y=l[l.length-1],"Q"===y.command&&(c=h+(h-y.points[0]),u=m+(m-y.points[1])),h=d.shift(),m=d.shift(),x="Q",L.push(c,u,h,m);break;case"t":c=h,u=m,y=l[l.length-1],"Q"===y.command&&(c=h+(h-y.points[0]),u=m+(m-y.points[1])),h+=d.shift(),m+=d.shift(),x="Q",L.push(c,u,h,m);break;case"A":g=d.shift(),b=d.shift(),f=d.shift(),k=d.shift(),_=d.shift(),W=h,X=m,h=d.shift(),m=d.shift(),x="A",L=this._convertPoint(W,X,h,m,k,_,g,b,f);break;case"a":g=d.shift(),b=d.shift(),f=d.shift(),k=d.shift(),_=d.shift(),W=h,X=m,h+=d.shift(),m+=d.shift(),x="A",L=this._convertPoint(W,X,h,m,k,_,g,b,f)}for(var v=0,K=L.length;K>v;v+=2)L[v]+=t,L[v+1]+=i;l.push(new n(x||U,L))}("z"===U||"Z"===U)&&l.push(new n("z",[]))}return l},_convertPoint:function(e,t,i,n,a,s,l,h,m){var V=m*(Math.PI/180),U=Math.cos(V)*(e-i)/2+Math.sin(V)*(t-n)/2,d=-1*Math.sin(V)*(e-i)/2+Math.cos(V)*(t-n)/2,p=U*U/(l*l)+d*d/(h*h);p>1&&(l*=Math.sqrt(p),h*=Math.sqrt(p));var c=Math.sqrt((l*l*h*h-l*l*d*d-h*h*U*U)/(l*l*d*d+h*h*U*U));a===s&&(c*=-1),isNaN(c)&&(c=0);var u=c*l*d/h,y=c*-h*U/l,g=(e+i)/2+Math.cos(V)*u-Math.sin(V)*y,b=(t+n)/2+Math.sin(V)*u+Math.cos(V)*y,f=r([1,0],[(U-u)/l,(d-y)/h]),k=[(U-u)/l,(d-y)/h],_=[(-1*U-u)/l,(-1*d-y)/h],x=r(k,_);return o(k,_)<=-1&&(x=Math.PI),o(k,_)>=1&&(x=0),0===s&&x>0&&(x-=2*Math.PI),1===s&&0>x&&(x+=2*Math.PI),[g,b,l,h,f,x,V,s]},buildPath:function(e,t){var i=t.path,n=t.x||0,a=t.y||0;t.pathArray=t.pathArray||this.buildPathArray(i,n,a);for(var o=t.pathArray,r=t.pointList=[],s=[],l=0,h=o.length;h>l;l++){"M"==o[l].command.toUpperCase()&&(s.length>0&&r.push(s),s=[]);for(var m=o[l].points,V=0,U=m.length;U>V;V+=2)s.push([m[V],m[V+1]])}s.length>0&&r.push(s);for(var l=0,h=o.length;h>l;l++){var d=o[l].command,m=o[l].points;switch(d){case"L":e.lineTo(m[0],m[1]);break;case"M":e.moveTo(m[0],m[1]);break;case"C":e.bezierCurveTo(m[0],m[1],m[2],m[3],m[4],m[5]);break;case"Q":e.quadraticCurveTo(m[0],m[1],m[2],m[3]);break;case"A":var p=m[0],c=m[1],u=m[2],y=m[3],g=m[4],b=m[5],f=m[6],k=m[7],_=u>y?u:y,x=u>y?1:u/y,L=u>y?y/u:1;e.translate(p,c),e.rotate(f),e.scale(x,L),e.arc(0,0,_,g,g+b,1-k),e.scale(1/x,1/L),e.rotate(-f),e.translate(-p,-c);break;case"z":e.closePath()}}},getRect:function(e){if(e.__rect)return e.__rect;var t;t="stroke"==e.brushType||"fill"==e.brushType?e.lineWidth||1:0;for(var i=Number.MAX_VALUE,n=Number.MIN_VALUE,a=Number.MAX_VALUE,o=Number.MIN_VALUE,r=e.x||0,s=e.y||0,l=e.pathArray||this.buildPathArray(e.path),h=0;hn&&(n=m[V])):(m[V]+so&&(o=m[V]));var U;return U=i===Number.MAX_VALUE||n===Number.MIN_VALUE||a===Number.MAX_VALUE||o===Number.MIN_VALUE?{x:0,y:0,width:0,height:0}:{x:Math.round(i-t/2),y:Math.round(a-t/2),width:n-i+t,height:o-a+t},e.__rect=U,U}},e("../tool/util").inherits(s,t),s}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/wordCloud.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/wordCloud.js deleted file mode 100644 index 9ab4fab..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/dist/chart/wordCloud.js +++ /dev/null @@ -1,2 +0,0 @@ -define("echarts/chart/wordCloud",["require","./base","zrender/shape/Text","../layout/WordCloud","../component/grid","../component/dataRange","../config","../util/ecData","zrender/tool/util","zrender/tool/color","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("../layout/WordCloud");e("../component/grid"),e("../component/dataRange");var o=e("../config"),r=e("../util/ecData"),s=e("zrender/tool/util"),l=e("zrender/tool/color");return o.wordCloud={zlevel:0,z:2,clickable:!0,center:["50%","50%"],size:["40%","40%"],textRotation:[0,90],textPadding:0,autoSize:{enable:!0,minSize:12},itemStyle:{normal:{textStyle:{fontSize:function(e){return e.value}}}}},t.prototype={type:o.CHART_TYPE_WORDCLOUD,refresh:function(e){e&&(this.option=e,this.series=e.series),this._init()},_init:function(){var e=this.series;this.backupShapeList();for(var t=this.component.legend,i=0;ii;i++)this._buildTextShape(e[i],0,i);this.addShapeList()},_buildTextShape:function(e,t,i){var a=this.series,o=a[t],s=o.name||"",h=o.data[i],m=[h,o],V=this.component.legend,d=V?V.getColor(s):this.zr.getColor(t),U=this.deepMerge(m,"itemStyle.normal")||{},p=this.deepMerge(m,"itemStyle.emphasis")||{},c=this.getItemStyleColor(U.color,t,i,h)||d,u=this.getItemStyleColor(p.color,t,i,h)||("string"==typeof c?l.lift(c,-.2):c),g=new n({zlevel:o.zlevel,z:o.z,hoverable:!0,clickable:this.deepQuery(m,"clickable"),style:{x:0,y:0,text:e.text,color:c,textFont:[e.style,e.weight,e.size+"px",e.font].join(" "),textBaseline:"alphabetic",textAlign:"center"},highlightStyle:{brushType:p.borderWidth?"both":"fill",color:u,lineWidth:p.borderWidth||0,strokeColor:p.borderColor},position:[e.x,e.y],rotation:[-e.rotate/180*Math.PI,0,0]});r.pack(g,o,t,h,i,h.name),this.shapeList.push(g)}},s.inherits(t,i),e("../chart").define("wordCloud",t),t}),define("echarts/layout/WordCloud",["require","../layout/WordCloudRectZero","zrender/tool/util"],function(e){function t(e){this._init(e)}var i=e("../layout/WordCloudRectZero"),n=e("zrender/tool/util");return t.prototype={start:function(){function e(){p.totalArea=r,d.autoSizeCal.enable&&p._autoCalTextSize(m,r,a,o,d.autoSizeCal.minSize),V.timer&&clearInterval(V.timer),V.timer=setInterval(t,0),t()}function t(){for(var e,t=+new Date,i=m.length;+new Date-t>1,e.y=U[1]>>1,p._cloudSprite(e,m,s),e.hasText&&p._place(n,e,h)&&(l.push(e),e.x-=U[0]>>1,e.y-=U[1]>>1);s>=i&&(p.stop(),p._fixTagPosition(l),V.endcallback(l))}var n=null,a=0,o=0,r=0,s=-1,l=[],h=null,m=this.wordsdata,V=this.defaultOption,d=V.wordletype,U=V.size,p=this,c=new i({type:d.type,width:U[0],height:U[1]});return c.calculate(function(t){n=t.initarr,a=t.maxWit,o=t.maxHit,r=t.area,h=t.imgboard,e()},this),this},_fixTagPosition:function(e){for(var t=this.defaultOption.center,i=0,n=e.length;n>i;i++)e[i].x+=t[0],e[i].y+=t[1]},stop:function(){return this.defaultOption.timer&&(clearInterval(this.defaultOption.timer),this.defaultOption.timer=null),this},end:function(e){return e&&(this.defaultOption.endcallback=e),this},_init:function(e){this.defaultOption={},this._initProperty(e),this._initMethod(e),this._initCanvas(),this._initData(e.data)},_initData:function(e){var t=this,i=t.defaultOption;this.wordsdata=e.map(function(e,n){return e.text=i.text.call(t,e,n),e.font=i.font.call(t,e,n),e.style=i.fontStyle.call(t,e,n),e.weight=i.fontWeight.call(t,e,n),e.rotate=i.rotate.call(t,e,n),e.size=~~i.fontSize.call(t,e,n),e.padding=i.padding.call(t,e,n),e}).sort(function(e,t){return t.value-e.value})},_initMethod:function(e){function t(e){return e.name}function i(){return"sans-serif"}function n(){return"normal"}function a(e){return e.value}function o(){return 0}function r(e){return function(){return e[Math.round(Math.random()*(e.length-1))]}}function s(){return 0}function l(e){var t=e[0]/e[1];return function(e){return[t*(e*=.1)*Math.cos(e),e*Math.sin(e)]}}function h(e){var t=4,i=t*e[0]/e[1],n=0,a=0;return function(e){var o=0>e?-1:1;switch(Math.sqrt(1+4*o*e)-o&3){case 0:n+=i;break;case 1:a+=t;break;case 2:n-=i;break;default:a-=t}return[n,a]}}function m(e){return"function"==typeof e?e:function(){return e}}var V=this.defaultOption;V.text=e.text?m(e.text):t,V.font=e.font?m(e.font):i,V.fontSize=e.fontSize?m(e.fontSize):a,V.fontStyle=e.fontStyle?m(e.fontStyle):n,V.fontWeight=e.fontWeight?m(e.fontWeight):n,V.rotate=e.rotate?r(e.rotate):o,V.padding=e.padding?m(e.padding):s,V.center=e.center,V.spiral=l,V.endcallback=function(){},V.rectangularSpiral=h,V.archimedeanSpiral=l},_initProperty:function(e){var t=this.defaultOption;t.size=e.size||[256,256],t.wordletype=e.wordletype,t.words=e.words||[],t.timeInterval=1/0,t.timer=null,t.spirals={archimedean:t.archimedeanSpiral,rectangular:t.rectangularSpiral},n.merge(t,{size:[256,256],wordletype:{type:"RECT",areaPresent:.058,autoSizeCal:{enable:!0,minSize:12}}})},_initCanvas:function(){var e,t=Math.PI/180,i=64,n=2048,a=1;"undefined"!=typeof document?(e=document.createElement("canvas"),e.width=1,e.height=1,a=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2),e.width=(i<<5)/a,e.height=n/a):e=new Canvas(i<<5,n);var o=e.getContext("2d");o.fillStyle=o.strokeStyle="red",o.textAlign="center",this.defaultOption.c=o,this.defaultOption.cw=i,this.defaultOption.ch=n,this.defaultOption.ratio=a,this.defaultOption.cloudRadians=t},_cloudSprite:function(e,t,i){if(!e.sprite){var n=this.defaultOption.cw,a=this.defaultOption.ch,o=this.defaultOption.c,r=this.defaultOption.ratio,s=this.defaultOption.cloudRadians;o.clearRect(0,0,(n<<5)/r,a/r);var l=0,h=0,m=0,V=t.length;for(--i;++i>5<<5,U=~~Math.max(Math.abs(g+y),Math.abs(g-y))}else d=d+31>>5<<5;if(U>m&&(m=U),l+d>=n<<5&&(l=0,h+=m,m=0),h+U>=a)break;o.translate((l+(d>>1))/r,(h+(U>>1))/r),e.rotate&&o.rotate(e.rotate*s),o.fillText(e.text,0,0),e.padding&&(o.lineWidth=2*e.padding,o.strokeText(e.text,0,0)),o.restore(),e.width=d,e.height=U,e.xoff=l,e.yoff=h,e.x1=d>>1,e.y1=U>>1,e.x0=-e.x1,e.y0=-e.y1,e.hasText=!0,l+=d}for(var f=o.getImageData(0,0,(n<<5)/r,a/r).data,k=[];--i>=0;)if(e=t[i],e.hasText){for(var d=e.width,_=d>>5,U=e.y1-e.y0,x=0;U*_>x;x++)k[x]=0;if(l=e.xoff,null==l)return;h=e.yoff;for(var L=0,W=-1,X=0;U>X;X++){for(var x=0;d>x;x++){var v=_*X+(x>>5),w=f[(h+X)*(n<<5)+(l+x)<<2]?1<<31-x%32:0;k[v]|=w,L|=w}L?W=X:(e.y0++,U--,X--,h++)}e.y1=e.y0+W,e.sprite=k.slice(0,(e.y1-e.y0)*_)}}},_place:function(e,t,i){function n(e,t,i){i>>=5;for(var n,a=e.sprite,o=e.width>>5,r=e.x-(o<<4),s=127&r,l=32-s,h=e.y1-e.y0,m=(e.y+e.y0)*i+(r>>5),V=0;h>V;V++){n=0;for(var d=0;o>=d;d++)if((n<d?(n=a[V*o+d])>>>s:0))&t[m+d])return!0;m+=i}return!1}function a(e,t){return t.row[e.y]&&t.cloumn[e.x]&&e.x>=t.row[e.y].start&&e.x<=t.row[e.y].end&&e.y>=t.cloumn[e.x].start&&e.y<=t.cloumn[e.x].end}for(var o,r,s,l=this.defaultOption.size,h=([{x:0,y:0},{x:l[0],y:l[1]}],t.x),m=t.y,V=Math.sqrt(l[0]*l[0]+l[1]*l[1]),d=this.defaultOption.spiral(l),U=Math.random()<.5?1:-1,p=-U;(o=d(p+=U))&&(r=~~o[0],s=~~o[1],!(Math.min(r,s)>V));)if(t.x=h+r,t.y=m+s,!(t.x+t.x0<0||t.y+t.y0<0||t.x+t.x1>l[0]||t.y+t.y1>l[1])&&!n(t,e,l[0])&&a(t,i)){for(var c,u=t.sprite,g=t.width>>5,y=l[0]>>5,b=t.x-(g<<4),f=127&b,k=32-f,_=t.y1-t.y0,x=(t.y+t.y0)*y+(b>>5),L=0;_>L;L++){c=0;for(var W=0;g>=W;W++)e[x+W]|=c<W?(c=u[L*g+W])>>>f:0);x+=y}return delete t.sprite,!0}return!1},_autoCalTextSize:function(e,t,i,n,a){function o(e){c.clearRect(0,0,(U<<5)/u,p/u),c.save(),c.font=e.style+" "+e.weight+" "+~~((e.size+1)/u)+"px "+e.font;var t=c.measureText(e.text+"m").width*u,r=e.size<<1;t=t+31>>5<<5,c.restore(),e.aw=t,e.ah=r;var s,l,h;if(e.rotate){var m=Math.sin(e.rotate*g),V=Math.cos(e.rotate*g),y=t*V,b=t*m,f=r*V,k=r*m;l=Math.max(Math.abs(y+k),Math.abs(y-k))+31>>5<<5,h=~~Math.max(Math.abs(b+f),Math.abs(b-f))}return e.size<=d||e.rotate&&t*r<=e.area&&i>=l&&n>=h||t*r<=e.area&&i>=t&&n>=r?void(e.area=t*r):(s=e.rotate&&l>i&&h>n?Math.min(i/l,n/h):t>i||r>n?Math.min(i/t,n/r):Math.sqrt(e.area/(e.aw*e.ah)),e.size=~~(s*e.size),e.sizel?l:V:l,s.area=t*s.areapre,s.totalarea=t,o(s)}},t}),define("echarts/component/dataRange",["require","./base","zrender/shape/Text","zrender/shape/Rectangle","../util/shape/HandlePolygon","../config","zrender/tool/util","zrender/tool/event","zrender/tool/area","zrender/tool/color","../component"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o);var s=this;s._ondrift=function(e,t){return s.__ondrift(this,e,t)},s._ondragend=function(){return s.__ondragend()},s._dataRangeSelected=function(e){return s.__dataRangeSelected(e)},s._dispatchHoverLink=function(e){return s.__dispatchHoverLink(e)},s._onhoverlink=function(e){return s.__onhoverlink(e)},this._selectedMap={},this._range={},this.refresh(a),t.bind(r.EVENT.HOVER,this._onhoverlink)}var i=e("./base"),n=e("zrender/shape/Text"),a=e("zrender/shape/Rectangle"),o=e("../util/shape/HandlePolygon"),r=e("../config");r.dataRange={zlevel:0,z:4,show:!0,orient:"vertical",x:"left",y:"bottom",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,itemWidth:20,itemHeight:14,precision:0,splitNumber:5,splitList:null,calculable:!1,selectedMode:!0,hoverLink:!0,realtime:!0,color:["#006edd","#e0ffff"],textStyle:{color:"#333"}};var s=e("zrender/tool/util"),l=e("zrender/tool/event"),h=e("zrender/tool/area"),m=e("zrender/tool/color");return t.prototype={type:r.COMPONENT_TYPE_DATARANGE,_textGap:10,_buildShape:function(){if(this._itemGroupLocation=this._getItemGroupLocation(),this._buildBackground(),this._isContinuity()?this._buildGradient():this._buildItem(),this.dataRangeOption.show)for(var e=0,t=this.shapeList.length;t>e;e++)this.zr.addShape(this.shapeList[e]);this._syncShapeFromRange()},_buildItem:function(){var e,t,i,o,r=this._valueTextList,s=r.length,l=this.getFont(this.dataRangeOption.textStyle),m=this._itemGroupLocation.x,V=this._itemGroupLocation.y,d=this.dataRangeOption.itemWidth,U=this.dataRangeOption.itemHeight,p=this.dataRangeOption.itemGap,c=h.getTextHeight("国",l);"vertical"==this.dataRangeOption.orient&&"right"==this.dataRangeOption.x&&(m=this._itemGroupLocation.x+this._itemGroupLocation.width-d);var u=!0;this.dataRangeOption.text&&(u=!1,this.dataRangeOption.text[0]&&(i=this._getTextShape(m,V,this.dataRangeOption.text[0]),"horizontal"==this.dataRangeOption.orient?m+=h.getTextWidth(this.dataRangeOption.text[0],l)+this._textGap:(V+=c+this._textGap,i.style.y+=c/2+this._textGap,i.style.textBaseline="bottom"),this.shapeList.push(new n(i))));for(var g=0;s>g;g++)e=r[g],o=this.getColorByIndex(g),t=this._getItemShape(m,V,d,U,this._selectedMap[g]?o:"#ccc"),t._idx=g,t.onmousemove=this._dispatchHoverLink,this.dataRangeOption.selectedMode&&(t.clickable=!0,t.onclick=this._dataRangeSelected),this.shapeList.push(new a(t)),u&&(i={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:m+d+5,y:V,color:this._selectedMap[g]?this.dataRangeOption.textStyle.color:"#ccc",text:r[g],textFont:l,textBaseline:"top"},highlightStyle:{brushType:"fill"}},"vertical"==this.dataRangeOption.orient&&"right"==this.dataRangeOption.x&&(i.style.x-=d+10,i.style.textAlign="right"),i._idx=g,i.onmousemove=this._dispatchHoverLink,this.dataRangeOption.selectedMode&&(i.clickable=!0,i.onclick=this._dataRangeSelected),this.shapeList.push(new n(i))),"horizontal"==this.dataRangeOption.orient?m+=d+(u?5:0)+(u?h.getTextWidth(e,l):0)+p:V+=U+p;!u&&this.dataRangeOption.text[1]&&("horizontal"==this.dataRangeOption.orient?m=m-p+this._textGap:V=V-p+this._textGap,i=this._getTextShape(m,V,this.dataRangeOption.text[1]),"horizontal"!=this.dataRangeOption.orient&&(i.style.y-=5,i.style.textBaseline="top"),this.shapeList.push(new n(i)))},_buildGradient:function(){var t,i,o=this.getFont(this.dataRangeOption.textStyle),r=this._itemGroupLocation.x,s=this._itemGroupLocation.y,l=this.dataRangeOption.itemWidth,m=this.dataRangeOption.itemHeight,V=h.getTextHeight("国",o),d=10,U=!0;this.dataRangeOption.text&&(U=!1,this.dataRangeOption.text[0]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[0]),"horizontal"==this.dataRangeOption.orient?r+=h.getTextWidth(this.dataRangeOption.text[0],o)+this._textGap:(s+=V+this._textGap,i.style.y+=V/2+this._textGap,i.style.textBaseline="bottom"),this.shapeList.push(new n(i))));for(var p=e("zrender/tool/color"),c=1/(this.dataRangeOption.color.length-1),u=[],g=0,y=this.dataRangeOption.color.length;y>g;g++)u.push([g*c,this.dataRangeOption.color[g]]);"horizontal"==this.dataRangeOption.orient?(t={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:r,y:s,width:l*d,height:m,color:p.getLinearGradient(r,s,r+l*d,s,u)},hoverable:!1},r+=l*d+this._textGap):(t={zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:r,y:s,width:l,height:m*d,color:p.getLinearGradient(r,s,r,s+m*d,u)},hoverable:!1},s+=m*d+this._textGap),this.shapeList.push(new a(t)),this._calculableLocation=t.style,this.dataRangeOption.calculable&&(this._buildFiller(),this._bulidMask(),this._bulidHandle()),this._buildIndicator(),!U&&this.dataRangeOption.text[1]&&(i=this._getTextShape(r,s,this.dataRangeOption.text[1]),this.shapeList.push(new n(i)))},_buildIndicator:function(){var e,t,i=this._calculableLocation.x,n=this._calculableLocation.y,a=this._calculableLocation.width,r=this._calculableLocation.height,s=5;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[i,n+r],[i-s,n+r+s],[i+s,n+r+s]],t="bottom"):(e=[[i,n],[i-s,n-s],[i+s,n-s]],t="top"):"right"!=this.dataRangeOption.x?(e=[[i+a,n],[i+a+s,n-s],[i+a+s,n+s]],t="right"):(e=[[i,n],[i-s,n-s],[i-s,n+s]],t="left"),this._indicatorShape={style:{pointList:e,color:"#fff",__rect:{x:Math.min(e[0][0],e[1][0]),y:Math.min(e[0][1],e[1][1]),width:s*("horizontal"==this.dataRangeOption.orient?2:1),height:s*("horizontal"==this.dataRangeOption.orient?1:2)}},highlightStyle:{brushType:"fill",textPosition:t,textColor:this.dataRangeOption.textStyle.color},hoverable:!1},this._indicatorShape=new o(this._indicatorShape)},_buildFiller:function(){this._fillerShape={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:this._calculableLocation.x,y:this._calculableLocation.y,width:this._calculableLocation.width,height:this._calculableLocation.height,color:"rgba(255,255,255,0)"},highlightStyle:{strokeColor:"rgba(255,255,255,0.5)",lineWidth:1},draggable:!0,ondrift:this._ondrift,ondragend:this._ondragend,onmousemove:this._dispatchHoverLink,_type:"filler"},this._fillerShape=new a(this._fillerShape),this.shapeList.push(this._fillerShape)},_bulidHandle:function(){var e,t,i,n,a,r,s,l,m=this._calculableLocation.x,V=this._calculableLocation.y,d=this._calculableLocation.width,U=this._calculableLocation.height,p=this.getFont(this.dataRangeOption.textStyle),c=h.getTextHeight("国",p),u=Math.max(h.getTextWidth(this._textFormat(this.dataRangeOption.max),p),h.getTextWidth(this._textFormat(this.dataRangeOption.min),p))+2;"horizontal"==this.dataRangeOption.orient?"bottom"!=this.dataRangeOption.y?(e=[[m,V],[m,V+U+c],[m-c,V+U+c],[m-1,V+U],[m-1,V]],t=m-u/2-c,i=V+U+c/2+2,n={x:m-u-c,y:V+U,width:u+c,height:c},a=[[m+d,V],[m+d,V+U+c],[m+d+c,V+U+c],[m+d+1,V+U],[m+d+1,V]],r=m+d+u/2+c,s=i,l={x:m+d,y:V+U,width:u+c,height:c}):(e=[[m,V+U],[m,V-c],[m-c,V-c],[m-1,V],[m-1,V+U]],t=m-u/2-c,i=V-c/2-2,n={x:m-u-c,y:V-c,width:u+c,height:c},a=[[m+d,V+U],[m+d,V-c],[m+d+c,V-c],[m+d+1,V],[m+d+1,V+U]],r=m+d+u/2+c,s=i,l={x:m+d,y:V-c,width:u+c,height:c}):(u+=c,"right"!=this.dataRangeOption.x?(e=[[m,V],[m+d+c,V],[m+d+c,V-c],[m+d,V-1],[m,V-1]],t=m+d+u/2+c/2,i=V-c/2,n={x:m+d,y:V-c,width:u+c,height:c},a=[[m,V+U],[m+d+c,V+U],[m+d+c,V+c+U],[m+d,V+1+U],[m,V+U+1]],r=t,s=V+U+c/2,l={x:m+d,y:V+U,width:u+c,height:c}):(e=[[m+d,V],[m-c,V],[m-c,V-c],[m,V-1],[m+d,V-1]],t=m-u/2-c/2,i=V-c/2,n={x:m-u-c,y:V-c,width:u+c,height:c},a=[[m+d,V+U],[m-c,V+U],[m-c,V+c+U],[m,V+1+U],[m+d,V+U+1]],r=t,s=V+U+c/2,l={x:m-u-c,y:V+U,width:u+c,height:c})),this._startShape={style:{pointList:e,text:this._textFormat(this.dataRangeOption.max),textX:t,textY:i,textFont:p,color:this.getColor(this.dataRangeOption.max),rect:n,x:e[0][0],y:e[0][1],_x:e[0][0],_y:e[0][1]}},this._startShape.highlightStyle={strokeColor:this._startShape.style.color,lineWidth:1},this._endShape={style:{pointList:a,text:this._textFormat(this.dataRangeOption.min),textX:r,textY:s,textFont:p,color:this.getColor(this.dataRangeOption.min),rect:l,x:a[0][0],y:a[0][1],_x:a[0][0],_y:a[0][1]}},this._endShape.highlightStyle={strokeColor:this._endShape.style.color,lineWidth:1},this._startShape.zlevel=this._endShape.zlevel=this.getZlevelBase(),this._startShape.z=this._endShape.z=this.getZBase()+1,this._startShape.draggable=this._endShape.draggable=!0,this._startShape.ondrift=this._endShape.ondrift=this._ondrift,this._startShape.ondragend=this._endShape.ondragend=this._ondragend,this._startShape.style.textColor=this._endShape.style.textColor=this.dataRangeOption.textStyle.color,this._startShape.style.textAlign=this._endShape.style.textAlign="center",this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape.style.textBaseline=this._endShape.style.textBaseline="middle",this._startShape.style.width=this._endShape.style.width=0,this._startShape.style.height=this._endShape.style.height=0,this._startShape.style.textPosition=this._endShape.style.textPosition="specific",this._startShape=new o(this._startShape),this._endShape=new o(this._endShape),this.shapeList.push(this._startShape),this.shapeList.push(this._endShape)},_bulidMask:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;this._startMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:e,y:t,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._endMask={zlevel:this.getZlevelBase(),z:this.getZBase()+1,style:{x:"horizontal"==this.dataRangeOption.orient?e+i:e,y:"horizontal"==this.dataRangeOption.orient?t:t+n,width:"horizontal"==this.dataRangeOption.orient?0:i,height:"horizontal"==this.dataRangeOption.orient?n:0,color:"#ccc"},hoverable:!1},this._startMask=new a(this._startMask),this._endMask=new a(this._endMask),this.shapeList.push(this._startMask),this.shapeList.push(this._endMask)},_buildBackground:function(){var e=this.reformCssArray(this.dataRangeOption.padding);this.shapeList.push(new a({zlevel:this.getZlevelBase(),z:this.getZBase(),hoverable:!1,style:{x:this._itemGroupLocation.x-e[3],y:this._itemGroupLocation.y-e[0],width:this._itemGroupLocation.width+e[3]+e[1],height:this._itemGroupLocation.height+e[0]+e[2],brushType:0===this.dataRangeOption.borderWidth?"fill":"both",color:this.dataRangeOption.backgroundColor,strokeColor:this.dataRangeOption.borderColor,lineWidth:this.dataRangeOption.borderWidth}}))},_getItemGroupLocation:function(){var e=this._valueTextList,t=e.length,i=this.dataRangeOption.itemGap,n=this.dataRangeOption.itemWidth,a=this.dataRangeOption.itemHeight,o=0,r=0,s=this.getFont(this.dataRangeOption.textStyle),l=h.getTextHeight("国",s),m=10;if("horizontal"==this.dataRangeOption.orient){if(this.dataRangeOption.text||this._isContinuity())o=(this._isContinuity()?n*m+i:t*(n+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?h.getTextWidth(this.dataRangeOption.text[0],s)+this._textGap:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?h.getTextWidth(this.dataRangeOption.text[1],s)+this._textGap:0);else{n+=5;for(var V=0;t>V;V++)o+=n+h.getTextWidth(e[V],s)+i}o-=i,r=Math.max(l,a)}else{var d;if(this.dataRangeOption.text||this._isContinuity())r=(this._isContinuity()?a*m+i:t*(a+i))+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[0]?this._textGap+l:0)+(this.dataRangeOption.text&&"undefined"!=typeof this.dataRangeOption.text[1]?this._textGap+l:0),d=Math.max(h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[0]||"",s),h.getTextWidth(this.dataRangeOption.text&&this.dataRangeOption.text[1]||"",s)),o=Math.max(n,d);else{r=(a+i)*t,n+=5,d=0;for(var V=0;t>V;V++)d=Math.max(d,h.getTextWidth(e[V],s));o=n+d}r-=i}var U,p=this.reformCssArray(this.dataRangeOption.padding),c=this.zr.getWidth();switch(this.dataRangeOption.x){case"center":U=Math.floor((c-o)/2);break;case"left":U=p[3]+this.dataRangeOption.borderWidth;break;case"right":U=c-o-p[1]-this.dataRangeOption.borderWidth;break;default:U=this.parsePercent(this.dataRangeOption.x,c),U=isNaN(U)?0:U}var u,g=this.zr.getHeight();switch(this.dataRangeOption.y){case"top":u=p[0]+this.dataRangeOption.borderWidth;break;case"bottom":u=g-r-p[2]-this.dataRangeOption.borderWidth;break;case"center":u=Math.floor((g-r)/2);break;default:u=this.parsePercent(this.dataRangeOption.y,g),u=isNaN(u)?0:u}if(this.dataRangeOption.calculable){var y=Math.max(h.getTextWidth(this.dataRangeOption.max,s),h.getTextWidth(this.dataRangeOption.min,s))+l;"horizontal"==this.dataRangeOption.orient?(y>U&&(U=y),U+o+y>c&&(U-=y)):(l>u&&(u=l),u+r+l>g&&(u-=l))}return{x:U,y:u,width:o,height:r}},_getTextShape:function(e,t,i){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:"horizontal"==this.dataRangeOption.orient?e:this._itemGroupLocation.x+this._itemGroupLocation.width/2,y:"horizontal"==this.dataRangeOption.orient?this._itemGroupLocation.y+this._itemGroupLocation.height/2:t,color:this.dataRangeOption.textStyle.color,text:i,textFont:this.getFont(this.dataRangeOption.textStyle),textBaseline:"horizontal"==this.dataRangeOption.orient?"middle":"top",textAlign:"horizontal"==this.dataRangeOption.orient?"left":"center"},hoverable:!1}},_getItemShape:function(e,t,i,n,a){return{zlevel:this.getZlevelBase(),z:this.getZBase(),style:{x:e,y:t+1,width:i,height:n-2,color:a},highlightStyle:{strokeColor:a,lineWidth:1}}},__ondrift:function(e,t,i){var n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;return"horizontal"==this.dataRangeOption.orient?e.style.x+t<=n?e.style.x=n:e.style.x+t+e.style.width>=n+o?e.style.x=n+o-e.style.width:e.style.x+=t:e.style.y+i<=a?e.style.y=a:e.style.y+i+e.style.height>=a+r?e.style.y=a+r-e.style.height:e.style.y+=i,"filler"==e._type?this._syncHandleShape():this._syncFillerShape(e),this.dataRangeOption.realtime&&this._dispatchDataRange(),!0},__ondragend:function(){this.isDragend=!0},ondragend:function(e,t){this.isDragend&&e.target&&(t.dragOut=!0,t.dragIn=!0,this.dataRangeOption.realtime||this._dispatchDataRange(),t.needRefresh=!1,this.isDragend=!1)},_syncShapeFromRange:function(){var e=this.dataRangeOption.range||{},t=e.start,i=e.end;if(t>i&&(t=[i,i=t][0]),this._range.end=null!=t?t:null!=this._range.end?this._range.end:0,this._range.start=null!=i?i:null!=this._range.start?this._range.start:100,100!=this._range.start||0!==this._range.end){if("horizontal"==this.dataRangeOption.orient){var n=this._fillerShape.style.width;this._fillerShape.style.x+=n*(100-this._range.start)/100,this._fillerShape.style.width=n*(this._range.start-this._range.end)/100}else{var a=this._fillerShape.style.height;this._fillerShape.style.y+=a*(100-this._range.start)/100,this._fillerShape.style.height=a*(this._range.start-this._range.end)/100}this.zr.modShape(this._fillerShape.id),this._syncHandleShape()}},_syncHandleShape:function(){var e=this._calculableLocation.x,t=this._calculableLocation.y,i=this._calculableLocation.width,n=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(this._startShape.style.x=this._fillerShape.style.x,this._startMask.style.width=this._startShape.style.x-e,this._endShape.style.x=this._fillerShape.style.x+this._fillerShape.style.width,this._endMask.style.x=this._endShape.style.x,this._endMask.style.width=e+i-this._endShape.style.x,this._range.start=Math.ceil(100-(this._startShape.style.x-e)/i*100),this._range.end=Math.floor(100-(this._endShape.style.x-e)/i*100)):(this._startShape.style.y=this._fillerShape.style.y,this._startMask.style.height=this._startShape.style.y-t,this._endShape.style.y=this._fillerShape.style.y+this._fillerShape.style.height,this._endMask.style.y=this._endShape.style.y,this._endMask.style.height=t+n-this._endShape.style.y,this._range.start=Math.ceil(100-(this._startShape.style.y-t)/n*100),this._range.end=Math.floor(100-(this._endShape.style.y-t)/n*100)),this._syncShape()},_syncFillerShape:function(e){var t,i,n=this._calculableLocation.x,a=this._calculableLocation.y,o=this._calculableLocation.width,r=this._calculableLocation.height;"horizontal"==this.dataRangeOption.orient?(t=this._startShape.style.x,i=this._endShape.style.x,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.x=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.x=t),this._fillerShape.style.x=t,this._fillerShape.style.width=i-t,this._startMask.style.width=t-n,this._endMask.style.x=i,this._endMask.style.width=n+o-i,this._range.start=Math.ceil(100-(t-n)/o*100),this._range.end=Math.floor(100-(i-n)/o*100)):(t=this._startShape.style.y,i=this._endShape.style.y,e.id==this._startShape.id&&t>=i?(i=t,this._endShape.style.y=t):e.id==this._endShape.id&&t>=i&&(t=i,this._startShape.style.y=t),this._fillerShape.style.y=t,this._fillerShape.style.height=i-t,this._startMask.style.height=t-a,this._endMask.style.y=i,this._endMask.style.height=a+r-i,this._range.start=Math.ceil(100-(t-a)/r*100),this._range.end=Math.floor(100-(i-a)/r*100)),this._syncShape()},_syncShape:function(){this._startShape.position=[this._startShape.style.x-this._startShape.style._x,this._startShape.style.y-this._startShape.style._y],this._startShape.style.text=this._textFormat(this._gap*this._range.start+this.dataRangeOption.min),this._startShape.style.color=this._startShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.start+this.dataRangeOption.min),this._endShape.position=[this._endShape.style.x-this._endShape.style._x,this._endShape.style.y-this._endShape.style._y],this._endShape.style.text=this._textFormat(this._gap*this._range.end+this.dataRangeOption.min),this._endShape.style.color=this._endShape.highlightStyle.strokeColor=this.getColor(this._gap*this._range.end+this.dataRangeOption.min),this.zr.modShape(this._startShape.id),this.zr.modShape(this._endShape.id),this.zr.modShape(this._startMask.id),this.zr.modShape(this._endMask.id),this.zr.modShape(this._fillerShape.id),this.zr.refreshNextFrame()},_dispatchDataRange:function(){this.messageCenter.dispatch(r.EVENT.DATA_RANGE,null,{range:{start:this._range.end,end:this._range.start}},this.myChart)},__dataRangeSelected:function(e){if("single"===this.dataRangeOption.selectedMode)for(var t in this._selectedMap)this._selectedMap[t]=!1;var i=e.target._idx;this._selectedMap[i]=!this._selectedMap[i];var n,a;this._useCustomizedSplit()?(n=this._splitList[i].max,a=this._splitList[i].min):(n=(this._colorList.length-i)*this._gap+this.dataRangeOption.min,a=n-this._gap),this.messageCenter.dispatch(r.EVENT.DATA_RANGE_SELECTED,e.event,{selected:this._selectedMap,target:i,valueMax:n,valueMin:a},this.myChart),this.messageCenter.dispatch(r.EVENT.REFRESH,null,null,this.myChart)},__dispatchHoverLink:function(e){var t,i;if(this.dataRangeOption.calculable){var n,a=this.dataRangeOption.max-this.dataRangeOption.min;n="horizontal"==this.dataRangeOption.orient?(1-(l.getX(e.event)-this._calculableLocation.x)/this._calculableLocation.width)*a:(1-(l.getY(e.event)-this._calculableLocation.y)/this._calculableLocation.height)*a,t=n-.05*a,i=n+.05*a}else if(this._useCustomizedSplit()){var o=e.target._idx;i=this._splitList[o].max,t=this._splitList[o].min}else{var o=e.target._idx;i=(this._colorList.length-o)*this._gap+this.dataRangeOption.min,t=i-this._gap}this.messageCenter.dispatch(r.EVENT.DATA_RANGE_HOVERLINK,e.event,{valueMin:t,valueMax:i},this.myChart)},__onhoverlink:function(e){if(this.dataRangeOption.show&&this.dataRangeOption.hoverLink&&this._indicatorShape&&e&&null!=e.seriesIndex&&null!=e.dataIndex){var t=e.value;if(""===t||isNaN(t))return;tthis.dataRangeOption.max&&(t=this.dataRangeOption.max),this._indicatorShape.position="horizontal"==this.dataRangeOption.orient?[(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.width,0]:[0,(this.dataRangeOption.max-t)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._calculableLocation.height],this._indicatorShape.style.text=this._textFormat(e.value),this._indicatorShape.style.color=this.getColor(t),this.zr.addHoverShape(this._indicatorShape)}},_textFormat:function(e,t){var i=this.dataRangeOption;if(e!==-Number.MAX_VALUE&&(e=(+e).toFixed(i.precision)),null!=t&&t!==Number.MAX_VALUE&&(t=(+t).toFixed(i.precision)),i.formatter){if("string"==typeof i.formatter)return i.formatter.replace("{value}",e===-Number.MAX_VALUE?"min":e).replace("{value2}",t===Number.MAX_VALUE?"max":t);if("function"==typeof i.formatter)return i.formatter.call(this.myChart,e,t)}return null==t?e:e===-Number.MAX_VALUE?"< "+t:t===Number.MAX_VALUE?"> "+e:e+" - "+t},_isContinuity:function(){var e=this.dataRangeOption;return!(e.splitList?e.splitList.length>0:e.splitNumber>0)||e.calculable},_useCustomizedSplit:function(){var e=this.dataRangeOption;return e.splitList&&e.splitList.length>0},_buildColorList:function(e){if(this._colorList=m.getGradientColors(this.dataRangeOption.color,Math.max((e-this.dataRangeOption.color.length)/(this.dataRangeOption.color.length-1),0)+1),this._colorList.length>e){for(var t=this._colorList.length,i=[this._colorList[0]],n=t/(e-1),a=1;e-1>a;a++)i.push(this._colorList[Math.floor(a*n)]);i.push(this._colorList[t-1]),this._colorList=i}if(this._useCustomizedSplit())for(var o=this._splitList,a=0,t=o.length;t>a;a++)o[a].color&&(this._colorList[a]=o[a].color)},_buildGap:function(e){if(!this._useCustomizedSplit()){var t=this.dataRangeOption.precision;for(this._gap=(this.dataRangeOption.max-this.dataRangeOption.min)/e;this._gap.toFixed(t)-0!=this._gap&&5>t;)t++;this.dataRangeOption.precision=t,this._gap=((this.dataRangeOption.max-this.dataRangeOption.min)/e).toFixed(t)-0}},_buildDataList:function(e){for(var t=this._valueTextList=[],i=this.dataRangeOption,n=this._useCustomizedSplit(),a=0;e>a;a++){this._selectedMap[a]=!0;var o="";if(n){var r=this._splitList[e-1-a];o=null!=r.label?r.label:null!=r.single?this._textFormat(r.single):this._textFormat(r.min,r.max)}else o=this._textFormat(a*this._gap+i.min,(a+1)*this._gap+i.min);t.unshift(o)}},_buildSplitList:function(){if(this._useCustomizedSplit())for(var e=this.dataRangeOption.splitList,t=this._splitList=[],i=0,n=e.length;n>i;i++){var a=e[i];if(!a||null==a.start&&null==a.end)throw new Error("Empty item exists in splitList!");var o={label:a.label,color:a.color};o.min=a.start,o.max=a.end,o.min>o.max&&(o.min=[o.max,o.max=o.min][0]),o.min===o.max&&(o.single=o.max),null==o.min&&(o.min=-Number.MAX_VALUE),null==o.max&&(o.max=Number.MAX_VALUE), -t.push(o)}},refresh:function(e){if(e){this.option=e,this.option.dataRange=this.reformOption(this.option.dataRange);var t=this.dataRangeOption=this.option.dataRange;if(!this._useCustomizedSplit()&&(null==t.min||null==t.max))throw new Error("option.dataRange.min or option.dataRange.max has not been defined.");this.myChart.canvasSupported||(t.realtime=!1);var i=this._isContinuity()?100:this._useCustomizedSplit()?t.splitList.length:t.splitNumber;this._buildSplitList(),this._buildColorList(i),this._buildGap(i),this._buildDataList(i)}this.clear(),this._buildShape()},getColor:function(e){if(isNaN(e))return null;var t;if(this._useCustomizedSplit()){for(var i=this._splitList,n=0,a=i.length;a>n;n++)if(i[n].min<=e&&i[n].max>=e){t=n;break}}else{if(this.dataRangeOption.min==this.dataRangeOption.max)return this._colorList[0];if(ethis.dataRangeOption.max&&(e=this.dataRangeOption.max),this.dataRangeOption.calculable&&(e-(this._gap*this._range.start+this.dataRangeOption.min)>5e-5||e-(this._gap*this._range.end+this.dataRangeOption.min)<-5e-5))return null;t=this._colorList.length-Math.ceil((e-this.dataRangeOption.min)/(this.dataRangeOption.max-this.dataRangeOption.min)*this._colorList.length),t==this._colorList.length&&t--}return this._selectedMap[t]?this._colorList[t]:null},getColorByIndex:function(e){return e>=this._colorList.length?e=this._colorList.length-1:0>e&&(e=0),this._colorList[e]},onbeforDispose:function(){this.messageCenter.unbind(r.EVENT.HOVER,this._onhoverlink)}},s.inherits(t,i),e("../component").define("dataRange",t),t}),define("echarts/layout/WordCloudRectZero",["require"],function(){function e(e){this.defaultOption={type:"RECT"},this._init(e)}return e.prototype={RECT:"_calculateRect",_init:function(e){this._initOption(e),this._initCanvas()},_initOption:function(e){for(k in e)this.defaultOption[k]=e[k]},_initCanvas:function(){var e=document.createElement("canvas");e.width=1,e.height=1;var t=Math.sqrt(e.getContext("2d").getImageData(0,0,1,1).data.length>>2);if(e.width=this.defaultOption.width,e.height=this.defaultOption.height,e.getContext)var i=e.getContext("2d");this.canvas=e,this.ctx=i,this.ratio=t},calculate:function(e,t){var i=this.defaultOption.type,n=this[i];this[n].call(this,e,t)},_calculateReturn:function(e,t,i){t.call(i,e)},_calculateRect:function(e,t){var i={},n=this.defaultOption.width>>5<<5,a=this.defaultOption.height;i.initarr=this._rectZeroArray(n*a),i.area=n*a,i.maxHit=a,i.maxWit=n,i.imgboard=this._rectBoard(n,a),this._calculateReturn(i,e,t)},_rectBoard:function(e,t){for(var i=[],n=0;t>n;n++)i.push({y:n,start:0,end:e});for(var a=[],n=0;e>n;n++)a.push({x:n,start:0,end:t});return{row:i,cloumn:a}},_rectZeroArray:function(e){for(var t=[],i=e,n=-1;++n=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height?!0:!1}},a.inherits(t,i),t}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/echarts-optimize-conf.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/echarts-optimize-conf.js deleted file mode 100644 index c30fd93..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/echarts-optimize-conf.js +++ /dev/null @@ -1,86 +0,0 @@ -exports.modules = { - main: { - name: 'echarts/echarts', - includeShallow: [ - 'echarts/component/dataRange' - ] - }, - parts: [ - {name: 'echarts/chart/line', weight: 100}, - {name: 'echarts/chart/bar', weight: 100}, - {name: 'echarts/chart/scatter', weight: 90}, - {name: 'echarts/chart/k', weight: 30}, - {name: 'echarts/chart/pie', weight: 90}, - {name: 'echarts/chart/radar', weight: 30}, - {name: 'echarts/chart/chord', weight: 30}, - {name: 'echarts/chart/force', weight: 30}, - { - name: 'echarts/chart/map', - weight: 90, - includeShallow: [ - 'echarts/util/mapData/geoJson/an_hui_geo', - 'echarts/util/mapData/geoJson/ao_men_geo', - 'echarts/util/mapData/geoJson/bei_jing_geo', - 'echarts/util/mapData/geoJson/china_geo', - 'echarts/util/mapData/geoJson/chong_qing_geo', - 'echarts/util/mapData/geoJson/fu_jian_geo', - 'echarts/util/mapData/geoJson/gan_su_geo', - 'echarts/util/mapData/geoJson/guang_dong_geo', - 'echarts/util/mapData/geoJson/guang_xi_geo', - 'echarts/util/mapData/geoJson/gui_zhou_geo', - 'echarts/util/mapData/geoJson/hai_nan_geo', - 'echarts/util/mapData/geoJson/hei_long_jiang_geo', - 'echarts/util/mapData/geoJson/he_bei_geo', - 'echarts/util/mapData/geoJson/he_nan_geo', - 'echarts/util/mapData/geoJson/hu_bei_geo', - 'echarts/util/mapData/geoJson/hu_nan_geo', - 'echarts/util/mapData/geoJson/jiang_su_geo', - 'echarts/util/mapData/geoJson/jiang_xi_geo', - 'echarts/util/mapData/geoJson/ji_lin_geo', - 'echarts/util/mapData/geoJson/liao_ning_geo', - 'echarts/util/mapData/geoJson/nei_meng_gu_geo', - 'echarts/util/mapData/geoJson/ning_xia_geo', - 'echarts/util/mapData/geoJson/qing_hai_geo', - 'echarts/util/mapData/geoJson/shang_hai_geo', - 'echarts/util/mapData/geoJson/shan_dong_geo', - 'echarts/util/mapData/geoJson/shan_xi_1_geo', - 'echarts/util/mapData/geoJson/shan_xi_2_geo', - 'echarts/util/mapData/geoJson/si_chuan_geo', - 'echarts/util/mapData/geoJson/tai_wan_geo', - 'echarts/util/mapData/geoJson/tian_jin_geo', - 'echarts/util/mapData/geoJson/world_geo', - 'echarts/util/mapData/geoJson/xiang_gang_geo', - 'echarts/util/mapData/geoJson/xin_jiang_geo', - 'echarts/util/mapData/geoJson/xi_zang_geo', - 'echarts/util/mapData/geoJson/yun_nan_geo', - 'echarts/util/mapData/geoJson/zhe_jiang_geo' - ] - }, - {name: 'echarts/chart/gauge', weight: 30}, - {name: 'echarts/chart/funnel', weight: 30}, - {name: 'echarts/chart/eventRiver', weight: 10}, - {name: 'echarts/chart/venn', weight: 10}, - {name: 'echarts/chart/treemap', weight: 10}, - {name: 'echarts/chart/tree', weight: 10}, - {name: 'echarts/chart/wordCloud', weight: 10}, - {name: 'echarts/chart/heatmap', weight: 10, includeShallow: [ - 'echarts/layer/heatmap' - ]} - ] -}; - -exports.amd = { - baseUrl: process.cwd(), - packages: [ - { - name: 'echarts', - location: '../src', - main: 'echarts' - }, - { - name: 'zrender', - location: '../../zrender/src', - main: 'zrender' - } - ] -}; \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/bar.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/bar.js deleted file mode 100644 index d68c7bf..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/bar.js +++ /dev/null @@ -1,648 +0,0 @@ -define('echarts/chart/bar', [ - 'require', - './base', - 'zrender/shape/Rectangle', - '../component/axis', - '../component/grid', - '../component/dataZoom', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var RectangleShape = require('zrender/shape/Rectangle'); - require('../component/axis'); - require('../component/grid'); - require('../component/dataZoom'); - var ecConfig = require('../config'); - ecConfig.bar = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - xAxisIndex: 0, - yAxisIndex: 0, - barMinHeight: 0, - barGap: '30%', - barCategoryGap: '20%', - itemStyle: { - normal: { - barBorderColor: '#fff', - barBorderRadius: 0, - barBorderWidth: 0, - label: { show: false } - }, - emphasis: { - barBorderColor: '#fff', - barBorderRadius: 0, - barBorderWidth: 0, - label: { show: false } - } - } - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function Bar(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Bar.prototype = { - type: ecConfig.CHART_TYPE_BAR, - _buildShape: function () { - this._buildPosition(); - }, - _buildNormal: function (seriesArray, maxDataLength, locationMap, xMarkMap, orient) { - var series = this.series; - var seriesIndex = locationMap[0][0]; - var serie = series[seriesIndex]; - var isHorizontal = orient == 'horizontal'; - var xAxis = this.component.xAxis; - var yAxis = this.component.yAxis; - var categoryAxis = isHorizontal ? xAxis.getAxis(serie.xAxisIndex) : yAxis.getAxis(serie.yAxisIndex); - var valueAxis; - var size = this._mapSize(categoryAxis, locationMap); - var gap = size.gap; - var barGap = size.barGap; - var barWidthMap = size.barWidthMap; - var barMaxWidthMap = size.barMaxWidthMap; - var barWidth = size.barWidth; - var barMinHeightMap = size.barMinHeightMap; - var barHeight; - var curBarWidth; - var interval = size.interval; - var x; - var y; - var lastP; - var baseP; - var lastN; - var baseN; - var barShape; - var data; - var value; - var islandR = this.deepQuery([ - this.ecTheme, - ecConfig - ], 'island.r'); - for (var i = 0, l = maxDataLength; i < l; i++) { - if (categoryAxis.getNameByIndex(i) == null) { - break; - } - isHorizontal ? x = categoryAxis.getCoordByIndex(i) - gap / 2 : y = categoryAxis.getCoordByIndex(i) + gap / 2; - for (var j = 0, k = locationMap.length; j < k; j++) { - var yAxisIndex = series[locationMap[j][0]].yAxisIndex || 0; - var xAxisIndex = series[locationMap[j][0]].xAxisIndex || 0; - valueAxis = isHorizontal ? yAxis.getAxis(yAxisIndex) : xAxis.getAxis(xAxisIndex); - baseP = lastP = baseN = lastN = valueAxis.getCoord(0); - for (var m = 0, n = locationMap[j].length; m < n; m++) { - seriesIndex = locationMap[j][m]; - serie = series[seriesIndex]; - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { - min: Number.POSITIVE_INFINITY, - max: Number.NEGATIVE_INFINITY, - sum: 0, - counter: 0, - average: 0 - }; - curBarWidth = Math.min(barMaxWidthMap[seriesIndex] || Number.MAX_VALUE, barWidthMap[seriesIndex] || barWidth); - if (value === '-') { - continue; - } - if (value > 0) { - barHeight = m > 0 ? valueAxis.getCoordSize(value) : isHorizontal ? baseP - valueAxis.getCoord(value) : valueAxis.getCoord(value) - baseP; - if (n === 1 && barMinHeightMap[seriesIndex] > barHeight) { - barHeight = barMinHeightMap[seriesIndex]; - } - if (isHorizontal) { - lastP -= barHeight; - y = lastP; - } else { - x = lastP; - lastP += barHeight; - } - } else if (value < 0) { - barHeight = m > 0 ? valueAxis.getCoordSize(value) : isHorizontal ? valueAxis.getCoord(value) - baseN : baseN - valueAxis.getCoord(value); - if (n === 1 && barMinHeightMap[seriesIndex] > barHeight) { - barHeight = barMinHeightMap[seriesIndex]; - } - if (isHorizontal) { - y = lastN; - lastN += barHeight; - } else { - lastN -= barHeight; - x = lastN; - } - } else { - barHeight = 0; - if (isHorizontal) { - lastP -= barHeight; - y = lastP; - } else { - x = lastP; - lastP += barHeight; - } - } - xMarkMap[seriesIndex][i] = isHorizontal ? x + curBarWidth / 2 : y - curBarWidth / 2; - if (xMarkMap[seriesIndex].min > value) { - xMarkMap[seriesIndex].min = value; - if (isHorizontal) { - xMarkMap[seriesIndex].minY = y; - xMarkMap[seriesIndex].minX = xMarkMap[seriesIndex][i]; - } else { - xMarkMap[seriesIndex].minX = x + barHeight; - xMarkMap[seriesIndex].minY = xMarkMap[seriesIndex][i]; - } - } - if (xMarkMap[seriesIndex].max < value) { - xMarkMap[seriesIndex].max = value; - if (isHorizontal) { - xMarkMap[seriesIndex].maxY = y; - xMarkMap[seriesIndex].maxX = xMarkMap[seriesIndex][i]; - } else { - xMarkMap[seriesIndex].maxX = x + barHeight; - xMarkMap[seriesIndex].maxY = xMarkMap[seriesIndex][i]; - } - } - xMarkMap[seriesIndex].sum += value; - xMarkMap[seriesIndex].counter++; - if (i % interval === 0) { - barShape = this._getBarItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y - (isHorizontal ? 0 : curBarWidth), isHorizontal ? curBarWidth : barHeight, isHorizontal ? barHeight : curBarWidth, isHorizontal ? 'vertical' : 'horizontal'); - this.shapeList.push(new RectangleShape(barShape)); - } - } - for (var m = 0, n = locationMap[j].length; m < n; m++) { - seriesIndex = locationMap[j][m]; - serie = series[seriesIndex]; - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - curBarWidth = Math.min(barMaxWidthMap[seriesIndex] || Number.MAX_VALUE, barWidthMap[seriesIndex] || barWidth); - if (value != '-') { - continue; - } - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - if (isHorizontal) { - lastP -= islandR; - y = lastP; - } else { - x = lastP; - lastP += islandR; - } - barShape = this._getBarItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y - (isHorizontal ? 0 : curBarWidth), isHorizontal ? curBarWidth : islandR, isHorizontal ? islandR : curBarWidth, isHorizontal ? 'vertical' : 'horizontal'); - barShape.hoverable = false; - barShape.draggable = false; - barShape.style.lineWidth = 1; - barShape.style.brushType = 'stroke'; - barShape.style.strokeColor = serie.calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor; - this.shapeList.push(new RectangleShape(barShape)); - } - } - isHorizontal ? x += curBarWidth + barGap : y -= curBarWidth + barGap; - } - } - this._calculMarkMapXY(xMarkMap, locationMap, isHorizontal ? 'y' : 'x'); - }, - _buildHorizontal: function (seriesArray, maxDataLength, locationMap, xMarkMap) { - return this._buildNormal(seriesArray, maxDataLength, locationMap, xMarkMap, 'horizontal'); - }, - _buildVertical: function (seriesArray, maxDataLength, locationMap, xMarkMap) { - return this._buildNormal(seriesArray, maxDataLength, locationMap, xMarkMap, 'vertical'); - }, - _buildOther: function (seriesArray, maxDataLength, locationMap, xMarkMap) { - var series = this.series; - for (var j = 0, k = locationMap.length; j < k; j++) { - for (var m = 0, n = locationMap[j].length; m < n; m++) { - var seriesIndex = locationMap[j][m]; - var serie = series[seriesIndex]; - var xAxisIndex = serie.xAxisIndex || 0; - var xAxis = this.component.xAxis.getAxis(xAxisIndex); - var baseX = xAxis.getCoord(0); - var yAxisIndex = serie.yAxisIndex || 0; - var yAxis = this.component.yAxis.getAxis(yAxisIndex); - var baseY = yAxis.getCoord(0); - xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { - min0: Number.POSITIVE_INFINITY, - min1: Number.POSITIVE_INFINITY, - max0: Number.NEGATIVE_INFINITY, - max1: Number.NEGATIVE_INFINITY, - sum0: 0, - sum1: 0, - counter0: 0, - counter1: 0, - average0: 0, - average1: 0 - }; - for (var i = 0, l = serie.data.length; i < l; i++) { - var data = serie.data[i]; - var value = this.getDataFromOption(data, '-'); - if (!(value instanceof Array)) { - continue; - } - var x = xAxis.getCoord(value[0]); - var y = yAxis.getCoord(value[1]); - var queryTarget = [ - data, - serie - ]; - var barWidth = this.deepQuery(queryTarget, 'barWidth') || 10; - var barHeight = this.deepQuery(queryTarget, 'barHeight'); - var orient; - var barShape; - if (barHeight != null) { - orient = 'horizontal'; - if (value[0] > 0) { - barWidth = x - baseX; - x -= barWidth; - } else if (value[0] < 0) { - barWidth = baseX - x; - } else { - barWidth = 0; - } - barShape = this._getBarItem(seriesIndex, i, value[0], x, y - barHeight / 2, barWidth, barHeight, orient); - } else { - orient = 'vertical'; - if (value[1] > 0) { - barHeight = baseY - y; - } else if (value[1] < 0) { - barHeight = y - baseY; - y -= barHeight; - } else { - barHeight = 0; - } - barShape = this._getBarItem(seriesIndex, i, value[0], x - barWidth / 2, y, barWidth, barHeight, orient); - } - this.shapeList.push(new RectangleShape(barShape)); - x = xAxis.getCoord(value[0]); - y = yAxis.getCoord(value[1]); - if (xMarkMap[seriesIndex].min0 > value[0]) { - xMarkMap[seriesIndex].min0 = value[0]; - xMarkMap[seriesIndex].minY0 = y; - xMarkMap[seriesIndex].minX0 = x; - } - if (xMarkMap[seriesIndex].max0 < value[0]) { - xMarkMap[seriesIndex].max0 = value[0]; - xMarkMap[seriesIndex].maxY0 = y; - xMarkMap[seriesIndex].maxX0 = x; - } - xMarkMap[seriesIndex].sum0 += value[0]; - xMarkMap[seriesIndex].counter0++; - if (xMarkMap[seriesIndex].min1 > value[1]) { - xMarkMap[seriesIndex].min1 = value[1]; - xMarkMap[seriesIndex].minY1 = y; - xMarkMap[seriesIndex].minX1 = x; - } - if (xMarkMap[seriesIndex].max1 < value[1]) { - xMarkMap[seriesIndex].max1 = value[1]; - xMarkMap[seriesIndex].maxY1 = y; - xMarkMap[seriesIndex].maxX1 = x; - } - xMarkMap[seriesIndex].sum1 += value[1]; - xMarkMap[seriesIndex].counter1++; - } - } - } - this._calculMarkMapXY(xMarkMap, locationMap, 'xy'); - }, - _mapSize: function (categoryAxis, locationMap, ignoreUserDefined) { - var res = this._findSpecialBarSzie(locationMap, ignoreUserDefined); - var barWidthMap = res.barWidthMap; - var barMaxWidthMap = res.barMaxWidthMap; - var barMinHeightMap = res.barMinHeightMap; - var sBarWidthCounter = res.sBarWidthCounter; - var sBarWidthTotal = res.sBarWidthTotal; - var barGap = res.barGap; - var barCategoryGap = res.barCategoryGap; - var gap; - var barWidth; - var interval = 1; - if (locationMap.length != sBarWidthCounter) { - if (!ignoreUserDefined) { - gap = typeof barCategoryGap === 'string' && barCategoryGap.match(/%$/) ? (categoryAxis.getGap() * (100 - parseFloat(barCategoryGap)) / 100).toFixed(2) - 0 : categoryAxis.getGap() - barCategoryGap; - if (typeof barGap === 'string' && barGap.match(/%$/)) { - barGap = parseFloat(barGap) / 100; - barWidth = +((gap - sBarWidthTotal) / ((locationMap.length - 1) * barGap + locationMap.length - sBarWidthCounter)).toFixed(2); - barGap = barWidth * barGap; - } else { - barGap = parseFloat(barGap); - barWidth = +((gap - sBarWidthTotal - barGap * (locationMap.length - 1)) / (locationMap.length - sBarWidthCounter)).toFixed(2); - } - if (barWidth <= 0) { - return this._mapSize(categoryAxis, locationMap, true); - } - } else { - gap = categoryAxis.getGap(); - barGap = 0; - barWidth = +(gap / locationMap.length).toFixed(2); - if (barWidth <= 0) { - interval = Math.floor(locationMap.length / gap); - barWidth = 1; - } - } - } else { - gap = sBarWidthCounter > 1 ? typeof barCategoryGap === 'string' && barCategoryGap.match(/%$/) ? +(categoryAxis.getGap() * (100 - parseFloat(barCategoryGap)) / 100).toFixed(2) : categoryAxis.getGap() - barCategoryGap : sBarWidthTotal; - barWidth = 0; - barGap = sBarWidthCounter > 1 ? +((gap - sBarWidthTotal) / (sBarWidthCounter - 1)).toFixed(2) : 0; - if (barGap < 0) { - return this._mapSize(categoryAxis, locationMap, true); - } - } - return this._recheckBarMaxWidth(locationMap, barWidthMap, barMaxWidthMap, barMinHeightMap, gap, barWidth, barGap, interval); - }, - _findSpecialBarSzie: function (locationMap, ignoreUserDefined) { - var series = this.series; - var barWidthMap = {}; - var barMaxWidthMap = {}; - var barMinHeightMap = {}; - var sBarWidth; - var sBarMaxWidth; - var sBarWidthCounter = 0; - var sBarWidthTotal = 0; - var barGap; - var barCategoryGap; - for (var j = 0, k = locationMap.length; j < k; j++) { - var hasFound = { - barWidth: false, - barMaxWidth: false - }; - for (var m = 0, n = locationMap[j].length; m < n; m++) { - var seriesIndex = locationMap[j][m]; - var queryTarget = series[seriesIndex]; - if (!ignoreUserDefined) { - if (!hasFound.barWidth) { - sBarWidth = this.query(queryTarget, 'barWidth'); - if (sBarWidth != null) { - barWidthMap[seriesIndex] = sBarWidth; - sBarWidthTotal += sBarWidth; - sBarWidthCounter++; - hasFound.barWidth = true; - for (var ii = 0, ll = m; ii < ll; ii++) { - var pSeriesIndex = locationMap[j][ii]; - barWidthMap[pSeriesIndex] = sBarWidth; - } - } - } else { - barWidthMap[seriesIndex] = sBarWidth; - } - if (!hasFound.barMaxWidth) { - sBarMaxWidth = this.query(queryTarget, 'barMaxWidth'); - if (sBarMaxWidth != null) { - barMaxWidthMap[seriesIndex] = sBarMaxWidth; - hasFound.barMaxWidth = true; - for (var ii = 0, ll = m; ii < ll; ii++) { - var pSeriesIndex = locationMap[j][ii]; - barMaxWidthMap[pSeriesIndex] = sBarMaxWidth; - } - } - } else { - barMaxWidthMap[seriesIndex] = sBarMaxWidth; - } - } - barMinHeightMap[seriesIndex] = this.query(queryTarget, 'barMinHeight'); - barGap = barGap != null ? barGap : this.query(queryTarget, 'barGap'); - barCategoryGap = barCategoryGap != null ? barCategoryGap : this.query(queryTarget, 'barCategoryGap'); - } - } - return { - barWidthMap: barWidthMap, - barMaxWidthMap: barMaxWidthMap, - barMinHeightMap: barMinHeightMap, - sBarWidth: sBarWidth, - sBarMaxWidth: sBarMaxWidth, - sBarWidthCounter: sBarWidthCounter, - sBarWidthTotal: sBarWidthTotal, - barGap: barGap, - barCategoryGap: barCategoryGap - }; - }, - _recheckBarMaxWidth: function (locationMap, barWidthMap, barMaxWidthMap, barMinHeightMap, gap, barWidth, barGap, interval) { - for (var j = 0, k = locationMap.length; j < k; j++) { - var seriesIndex = locationMap[j][0]; - if (barMaxWidthMap[seriesIndex] && barMaxWidthMap[seriesIndex] < barWidth) { - gap -= barWidth - barMaxWidthMap[seriesIndex]; - } - } - return { - barWidthMap: barWidthMap, - barMaxWidthMap: barMaxWidthMap, - barMinHeightMap: barMinHeightMap, - gap: gap, - barWidth: barWidth, - barGap: barGap, - interval: interval - }; - }, - _getBarItem: function (seriesIndex, dataIndex, name, x, y, width, height, orient) { - var series = this.series; - var barShape; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var defaultColor = this._sIndex2ColorMap[seriesIndex]; - var queryTarget = [ - data, - serie - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal'); - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis'); - var normalBorderWidth = normal.barBorderWidth; - barShape = { - zlevel: serie.zlevel, - z: serie.z, - clickable: this.deepQuery(queryTarget, 'clickable'), - style: { - x: x, - y: y, - width: width, - height: height, - brushType: 'both', - color: this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color') || defaultColor, seriesIndex, dataIndex, data), - radius: normal.barBorderRadius, - lineWidth: normalBorderWidth, - strokeColor: normal.barBorderColor - }, - highlightStyle: { - color: this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), seriesIndex, dataIndex, data), - radius: emphasis.barBorderRadius, - lineWidth: emphasis.barBorderWidth, - strokeColor: emphasis.barBorderColor - }, - _orient: orient - }; - var barShapeStyle = barShape.style; - barShape.highlightStyle.color = barShape.highlightStyle.color || (typeof barShapeStyle.color === 'string' ? zrColor.lift(barShapeStyle.color, -0.3) : barShapeStyle.color); - barShapeStyle.x = Math.floor(barShapeStyle.x); - barShapeStyle.y = Math.floor(barShapeStyle.y); - barShapeStyle.height = Math.ceil(barShapeStyle.height); - barShapeStyle.width = Math.ceil(barShapeStyle.width); - if (normalBorderWidth > 0 && barShapeStyle.height > normalBorderWidth && barShapeStyle.width > normalBorderWidth) { - barShapeStyle.y += normalBorderWidth / 2; - barShapeStyle.height -= normalBorderWidth; - barShapeStyle.x += normalBorderWidth / 2; - barShapeStyle.width -= normalBorderWidth; - } else { - barShapeStyle.brushType = 'fill'; - } - barShape.highlightStyle.textColor = barShape.highlightStyle.color; - barShape = this.addLabel(barShape, serie, data, name, orient); - var barShapeStyleList = [ - barShapeStyle, - barShape.highlightStyle - ]; - for (var i = 0, l = barShapeStyleList.length; i < l; i++) { - var textPosition = barShapeStyleList[i].textPosition; - if (textPosition === 'insideLeft' || textPosition === 'insideRight' || textPosition === 'insideTop' || textPosition === 'insideBottom') { - var gap = 5; - switch (textPosition) { - case 'insideLeft': - barShapeStyleList[i].textX = barShapeStyle.x + gap; - barShapeStyleList[i].textY = barShapeStyle.y + barShapeStyle.height / 2; - barShapeStyleList[i].textAlign = 'left'; - barShapeStyleList[i].textBaseline = 'middle'; - break; - case 'insideRight': - barShapeStyleList[i].textX = barShapeStyle.x + barShapeStyle.width - gap; - barShapeStyleList[i].textY = barShapeStyle.y + barShapeStyle.height / 2; - barShapeStyleList[i].textAlign = 'right'; - barShapeStyleList[i].textBaseline = 'middle'; - break; - case 'insideTop': - barShapeStyleList[i].textX = barShapeStyle.x + barShapeStyle.width / 2; - barShapeStyleList[i].textY = barShapeStyle.y + gap / 2; - barShapeStyleList[i].textAlign = 'center'; - barShapeStyleList[i].textBaseline = 'top'; - break; - case 'insideBottom': - barShapeStyleList[i].textX = barShapeStyle.x + barShapeStyle.width / 2; - barShapeStyleList[i].textY = barShapeStyle.y + barShapeStyle.height - gap / 2; - barShapeStyleList[i].textAlign = 'center'; - barShapeStyleList[i].textBaseline = 'bottom'; - break; - } - barShapeStyleList[i].textPosition = 'specific'; - barShapeStyleList[i].textColor = barShapeStyleList[i].textColor || '#fff'; - } - } - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - this.setCalculable(barShape); - barShape.draggable = true; - } - ecData.pack(barShape, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, name); - return barShape; - }, - getMarkCoord: function (seriesIndex, mpData) { - var serie = this.series[seriesIndex]; - var xMarkMap = this.xMarkMap[seriesIndex]; - var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex); - var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex); - var dataIndex; - var pos; - if (mpData.type && (mpData.type === 'max' || mpData.type === 'min' || mpData.type === 'average')) { - var valueIndex = mpData.valueIndex != null ? mpData.valueIndex : xMarkMap.maxX0 != null ? '1' : ''; - pos = [ - xMarkMap[mpData.type + 'X' + valueIndex], - xMarkMap[mpData.type + 'Y' + valueIndex], - xMarkMap[mpData.type + 'Line' + valueIndex], - xMarkMap[mpData.type + valueIndex] - ]; - } else if (xMarkMap.isHorizontal) { - dataIndex = typeof mpData.xAxis === 'string' && xAxis.getIndexByName ? xAxis.getIndexByName(mpData.xAxis) : mpData.xAxis || 0; - var x = xMarkMap[dataIndex]; - x = x != null ? x : typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0); - pos = [ - x, - yAxis.getCoord(mpData.yAxis || 0) - ]; - } else { - dataIndex = typeof mpData.yAxis === 'string' && yAxis.getIndexByName ? yAxis.getIndexByName(mpData.yAxis) : mpData.yAxis || 0; - var y = xMarkMap[dataIndex]; - y = y != null ? y : typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0); - pos = [ - xAxis.getCoord(mpData.xAxis || 0), - y - ]; - } - return pos; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - }, - addDataAnimation: function (params, done) { - var series = this.series; - var aniMap = {}; - for (var i = 0, l = params.length; i < l; i++) { - aniMap[params[i][0]] = params[i]; - } - var x; - var dx; - var y; - var dy; - var serie; - var seriesIndex; - var dataIndex; - var aniCount = 0; - function animationDone() { - aniCount--; - if (aniCount === 0) { - done && done(); - } - } - for (var i = this.shapeList.length - 1; i >= 0; i--) { - seriesIndex = ecData.get(this.shapeList[i], 'seriesIndex'); - if (aniMap[seriesIndex] && !aniMap[seriesIndex][3]) { - if (this.shapeList[i].type === 'rectangle') { - dataIndex = ecData.get(this.shapeList[i], 'dataIndex'); - serie = series[seriesIndex]; - if (aniMap[seriesIndex][2] && dataIndex === serie.data.length - 1) { - this.zr.delShape(this.shapeList[i].id); - continue; - } else if (!aniMap[seriesIndex][2] && dataIndex === 0) { - this.zr.delShape(this.shapeList[i].id); - continue; - } - if (this.shapeList[i]._orient === 'horizontal') { - dy = this.component.yAxis.getAxis(serie.yAxisIndex || 0).getGap(); - y = aniMap[seriesIndex][2] ? -dy : dy; - x = 0; - } else { - dx = this.component.xAxis.getAxis(serie.xAxisIndex || 0).getGap(); - x = aniMap[seriesIndex][2] ? dx : -dx; - y = 0; - } - this.shapeList[i].position = [ - 0, - 0 - ]; - aniCount++; - this.zr.animate(this.shapeList[i].id, '').when(this.query(this.option, 'animationDurationUpdate'), { - position: [ - x, - y - ] - }).done(animationDone).start(); - } - } - } - if (!aniCount) { - done && done(); - } - } - }; - zrUtil.inherits(Bar, ChartBase); - require('../chart').define('bar', Bar); - return Bar; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/chord.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/chord.js deleted file mode 100644 index 822236c..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/chord.js +++ /dev/null @@ -1,1254 +0,0 @@ -define('echarts/chart/chord', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Line', - 'zrender/shape/Sector', - '../util/shape/Ribbon', - '../util/shape/Icon', - 'zrender/shape/BezierCurve', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/vector', - '../data/Graph', - '../layout/Chord', - '../chart' -], function (require) { - 'use strict'; - var ChartBase = require('./base'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var SectorShape = require('zrender/shape/Sector'); - var RibbonShape = require('../util/shape/Ribbon'); - var IconShape = require('../util/shape/Icon'); - var BezierCurveShape = require('zrender/shape/BezierCurve'); - var ecConfig = require('../config'); - ecConfig.chord = { - zlevel: 0, - z: 2, - clickable: true, - radius: [ - '65%', - '75%' - ], - center: [ - '50%', - '50%' - ], - padding: 2, - sort: 'none', - sortSub: 'none', - startAngle: 90, - clockWise: true, - ribbonType: true, - minRadius: 10, - maxRadius: 20, - symbol: 'circle', - showScale: false, - showScaleText: false, - itemStyle: { - normal: { - borderWidth: 0, - borderColor: '#000', - label: { - show: true, - rotate: false, - distance: 5 - }, - chordStyle: { - width: 1, - color: 'black', - borderWidth: 1, - borderColor: '#999', - opacity: 0.5 - } - }, - emphasis: { - borderWidth: 0, - borderColor: '#000', - chordStyle: { - width: 1, - color: 'black', - borderWidth: 1, - borderColor: '#999' - } - } - } - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var vec2 = require('zrender/tool/vector'); - var Graph = require('../data/Graph'); - var ChordLayout = require('../layout/Chord'); - function Chord(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.scaleLineLength = 4; - this.scaleUnitAngle = 4; - this.refresh(option); - } - Chord.prototype = { - type: ecConfig.CHART_TYPE_CHORD, - _init: function () { - var series = this.series; - this.selectedMap = {}; - var chordSeriesMap = {}; - var chordSeriesGroups = {}; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === this.type) { - var _isSelected = this.isSelected(series[i].name); - this.selectedMap[series[i].name] = _isSelected; - if (_isSelected) { - this.buildMark(i); - } - this.reformOption(series[i]); - chordSeriesMap[series[i].name] = series[i]; - } - } - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === this.type) { - if (series[i].insertToSerie) { - var referenceSerie = chordSeriesMap[series[i].insertToSerie]; - series[i]._referenceSerie = referenceSerie; - } else { - chordSeriesGroups[series[i].name] = [series[i]]; - } - } - } - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === this.type) { - if (series[i].insertToSerie) { - var mainSerie = series[i]._referenceSerie; - while (mainSerie && mainSerie._referenceSerie) { - mainSerie = mainSerie._referenceSerie; - } - if (chordSeriesGroups[mainSerie.name] && this.selectedMap[series[i].name]) { - chordSeriesGroups[mainSerie.name].push(series[i]); - } - } - } - } - for (var name in chordSeriesGroups) { - this._buildChords(chordSeriesGroups[name]); - } - this.addShapeList(); - }, - _getNodeCategory: function (serie, group) { - return serie.categories && serie.categories[group.category || 0]; - }, - _getNodeQueryTarget: function (serie, group) { - var category = this._getNodeCategory(serie, group); - return [ - group, - category, - serie - ]; - }, - _getEdgeQueryTarget: function (serie, edge, type) { - type = type || 'normal'; - return [ - edge.itemStyle && edge.itemStyle[type], - serie.itemStyle[type].chordStyle - ]; - }, - _buildChords: function (series) { - var graphs = []; - var mainSerie = series[0]; - var nodeFilter = function (n) { - return n.layout.size > 0; - }; - var createEdgeFilter = function (graph) { - return function (e) { - return graph.getEdge(e.node2, e.node1); - }; - }; - for (var i = 0; i < series.length; i++) { - var serie = series[i]; - if (this.selectedMap[serie.name]) { - var graph; - if (serie.matrix) { - graph = this._getSerieGraphFromDataMatrix(serie, mainSerie); - } else if (serie.links) { - graph = this._getSerieGraphFromNodeLinks(serie, mainSerie); - } - graph.filterNode(nodeFilter, this); - if (serie.ribbonType) { - graph.filterEdge(createEdgeFilter(graph)); - } - graphs.push(graph); - graph.__serie = serie; - } - } - if (!graphs.length) { - return; - } - var mainGraph = graphs[0]; - if (!mainSerie.ribbonType) { - var minRadius = mainSerie.minRadius; - var maxRadius = mainSerie.maxRadius; - var min = Infinity, max = -Infinity; - mainGraph.eachNode(function (node) { - max = Math.max(node.layout.size, max); - min = Math.min(node.layout.size, min); - }); - var multiplier = (maxRadius - minRadius) / (max - min); - mainGraph.eachNode(function (node) { - var queryTarget = this._getNodeQueryTarget(mainSerie, node); - var symbolSize = this.query(queryTarget, 'symbolSize'); - if (max === min) { - node.layout.size = symbolSize || min; - } else { - node.layout.size = symbolSize || (node.layout.size - min) * multiplier + minRadius; - } - }, this); - } - var layout = new ChordLayout(); - layout.clockWise = mainSerie.clockWise; - layout.startAngle = mainSerie.startAngle * Math.PI / 180; - if (!layout.clockWise) { - layout.startAngle = -layout.startAngle; - } - layout.padding = mainSerie.padding * Math.PI / 180; - layout.sort = mainSerie.sort; - layout.sortSub = mainSerie.sortSub; - layout.directed = mainSerie.ribbonType; - layout.run(graphs); - var showLabel = this.query(mainSerie, 'itemStyle.normal.label.show'); - if (mainSerie.ribbonType) { - this._buildSectors(mainSerie, 0, mainGraph, mainSerie, graphs); - if (showLabel) { - this._buildLabels(mainSerie, 0, mainGraph, mainSerie, graphs); - } - for (var i = 0, j = 0; i < series.length; i++) { - if (this.selectedMap[series[i].name]) { - this._buildRibbons(series, i, graphs[j++], mainSerie); - } - } - if (mainSerie.showScale) { - this._buildScales(mainSerie, 0, mainGraph); - } - } else { - this._buildNodeIcons(mainSerie, 0, mainGraph, mainSerie, graphs); - if (showLabel) { - this._buildLabels(mainSerie, 0, mainGraph, mainSerie, graphs); - } - for (var i = 0, j = 0; i < series.length; i++) { - if (this.selectedMap[series[i].name]) { - this._buildEdgeCurves(series, i, graphs[j++], mainSerie, mainGraph); - } - } - } - this._initHoverHandler(series, graphs); - }, - _getSerieGraphFromDataMatrix: function (serie, mainSerie) { - var nodesData = []; - var count = 0; - var matrix = []; - for (var i = 0; i < serie.matrix.length; i++) { - matrix[i] = serie.matrix[i].slice(); - } - var data = serie.data || serie.nodes; - for (var i = 0; i < data.length; i++) { - var node = {}; - var group = data[i]; - group.rawIndex = i; - for (var key in group) { - if (key === 'name') { - node['id'] = group['name']; - } else { - node[key] = group[key]; - } - } - var category = this._getNodeCategory(mainSerie, group); - var name = category ? category.name : group.name; - this.selectedMap[name] = this.isSelected(name); - if (this.selectedMap[name]) { - nodesData.push(node); - count++; - } else { - matrix.splice(count, 1); - for (var j = 0; j < matrix.length; j++) { - matrix[j].splice(count, 1); - } - } - } - var graph = Graph.fromMatrix(nodesData, matrix, true); - graph.eachNode(function (n, idx) { - n.layout = { size: n.data.outValue }; - n.rawIndex = n.data.rawIndex; - }); - graph.eachEdge(function (e) { - e.layout = { weight: e.data.weight }; - }); - return graph; - }, - _getSerieGraphFromNodeLinks: function (serie, mainSerie) { - var graph = new Graph(true); - var nodes = serie.data || serie.nodes; - for (var i = 0, len = nodes.length; i < len; i++) { - var n = nodes[i]; - if (!n || n.ignore) { - continue; - } - var category = this._getNodeCategory(mainSerie, n); - var name = category ? category.name : n.name; - this.selectedMap[name] = this.isSelected(name); - if (this.selectedMap[name]) { - var node = graph.addNode(n.name, n); - node.rawIndex = i; - } - } - for (var i = 0, len = serie.links.length; i < len; i++) { - var e = serie.links[i]; - var n1 = e.source; - var n2 = e.target; - if (typeof n1 === 'number') { - n1 = nodes[n1]; - if (n1) { - n1 = n1.name; - } - } - if (typeof n2 === 'number') { - n2 = nodes[n2]; - if (n2) { - n2 = n2.name; - } - } - var edge = graph.addEdge(n1, n2, e); - if (edge) { - edge.rawIndex = i; - } - } - graph.eachNode(function (n) { - var value = n.data.value; - if (value == null) { - value = 0; - if (mainSerie.ribbonType) { - for (var i = 0; i < n.outEdges.length; i++) { - value += n.outEdges[i].data.weight || 0; - } - } else { - for (var i = 0; i < n.edges.length; i++) { - value += n.edges[i].data.weight || 0; - } - } - } - n.layout = { size: value }; - }); - graph.eachEdge(function (e) { - e.layout = { weight: e.data.weight == null ? 1 : e.data.weight }; - }); - return graph; - }, - _initHoverHandler: function (series, graphs) { - var mainSerie = series[0]; - var mainGraph = graphs[0]; - var self = this; - mainGraph.eachNode(function (node) { - node.shape.onmouseover = function () { - mainGraph.eachNode(function (n) { - n.shape.style.opacity = 0.1; - if (n.labelShape) { - n.labelShape.style.opacity = 0.1; - n.labelShape.modSelf(); - } - n.shape.modSelf(); - }); - for (var i = 0; i < graphs.length; i++) { - for (var j = 0; j < graphs[i].edges.length; j++) { - var e = graphs[i].edges[j]; - var queryTarget = self._getEdgeQueryTarget(graphs[i].__serie, e.data); - e.shape.style.opacity = self.deepQuery(queryTarget, 'opacity') * 0.1; - e.shape.modSelf(); - } - } - node.shape.style.opacity = 1; - if (node.labelShape) { - node.labelShape.style.opacity = 1; - } - for (var i = 0; i < graphs.length; i++) { - var n = graphs[i].getNodeById(node.id); - if (n) { - for (var j = 0; j < n.outEdges.length; j++) { - var e = n.outEdges[j]; - var queryTarget = self._getEdgeQueryTarget(graphs[i].__serie, e.data); - e.shape.style.opacity = self.deepQuery(queryTarget, 'opacity'); - var other = graphs[0].getNodeById(e.node2.id); - if (other) { - if (other.shape) { - other.shape.style.opacity = 1; - } - if (other.labelShape) { - other.labelShape.style.opacity = 1; - } - } - } - } - } - self.zr.refreshNextFrame(); - }; - node.shape.onmouseout = function () { - mainGraph.eachNode(function (n) { - n.shape.style.opacity = 1; - if (n.labelShape) { - n.labelShape.style.opacity = 1; - n.labelShape.modSelf(); - } - n.shape.modSelf(); - }); - for (var i = 0; i < graphs.length; i++) { - for (var j = 0; j < graphs[i].edges.length; j++) { - var e = graphs[i].edges[j]; - var queryTarget = [ - e.data, - mainSerie - ]; - e.shape.style.opacity = self.deepQuery(queryTarget, 'itemStyle.normal.chordStyle.opacity'); - e.shape.modSelf(); - } - } - self.zr.refreshNextFrame(); - }; - }); - }, - _buildSectors: function (serie, serieIdx, graph, mainSerie) { - var center = this.parseCenter(this.zr, mainSerie.center); - var radius = this.parseRadius(this.zr, mainSerie.radius); - var clockWise = mainSerie.clockWise; - var sign = clockWise ? 1 : -1; - graph.eachNode(function (node) { - var category = this._getNodeCategory(mainSerie, node.data); - var color = category ? this.getColor(category.name) : this.getColor(node.id); - var startAngle = node.layout.startAngle / Math.PI * 180 * sign; - var endAngle = node.layout.endAngle / Math.PI * 180 * sign; - var sector = new SectorShape({ - zlevel: serie.zlevel, - z: serie.z, - style: { - x: center[0], - y: center[1], - r0: radius[0], - r: radius[1], - startAngle: startAngle, - endAngle: endAngle, - brushType: 'fill', - opacity: 1, - color: color, - clockWise: clockWise - }, - clickable: mainSerie.clickable, - highlightStyle: { brushType: 'fill' } - }); - sector.style.lineWidth = this.deepQuery([ - node.data, - mainSerie - ], 'itemStyle.normal.borderWidth'); - sector.highlightStyle.lineWidth = this.deepQuery([ - node.data, - mainSerie - ], 'itemStyle.emphasis.borderWidth'); - sector.style.strokeColor = this.deepQuery([ - node.data, - mainSerie - ], 'itemStyle.normal.borderColor'); - sector.highlightStyle.strokeColor = this.deepQuery([ - node.data, - mainSerie - ], 'itemStyle.emphasis.borderColor'); - if (sector.style.lineWidth > 0) { - sector.style.brushType = 'both'; - } - if (sector.highlightStyle.lineWidth > 0) { - sector.highlightStyle.brushType = 'both'; - } - ecData.pack(sector, serie, serieIdx, node.data, node.rawIndex, node.id, node.category); - this.shapeList.push(sector); - node.shape = sector; - }, this); - }, - _buildNodeIcons: function (serie, serieIdx, graph, mainSerie) { - var center = this.parseCenter(this.zr, mainSerie.center); - var radius = this.parseRadius(this.zr, mainSerie.radius); - var r = radius[1]; - graph.eachNode(function (node) { - var startAngle = node.layout.startAngle; - var endAngle = node.layout.endAngle; - var angle = (startAngle + endAngle) / 2; - var x = r * Math.cos(angle); - var y = r * Math.sin(angle); - var queryTarget = this._getNodeQueryTarget(mainSerie, node.data); - var category = this._getNodeCategory(mainSerie, node.data); - var color = this.deepQuery(queryTarget, 'itemStyle.normal.color'); - if (!color) { - color = category ? this.getColor(category.name) : this.getColor(node.id); - } - var iconShape = new IconShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - style: { - x: -node.layout.size, - y: -node.layout.size, - width: node.layout.size * 2, - height: node.layout.size * 2, - iconType: this.deepQuery(queryTarget, 'symbol'), - color: color, - brushType: 'both', - lineWidth: this.deepQuery(queryTarget, 'itemStyle.normal.borderWidth'), - strokeColor: this.deepQuery(queryTarget, 'itemStyle.normal.borderColor') - }, - highlightStyle: { - color: this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), - lineWidth: this.deepQuery(queryTarget, 'itemStyle.emphasis.borderWidth'), - strokeColor: this.deepQuery(queryTarget, 'itemStyle.emphasis.borderColor') - }, - clickable: mainSerie.clickable, - position: [ - x + center[0], - y + center[1] - ] - }); - ecData.pack(iconShape, serie, serieIdx, node.data, node.rawIndex, node.id, node.category); - this.shapeList.push(iconShape); - node.shape = iconShape; - }, this); - }, - _buildLabels: function (serie, serieIdx, graph, mainSerie) { - var rotateLabel = this.query(mainSerie, 'itemStyle.normal.label.rotate'); - var labelDistance = this.query(mainSerie, 'itemStyle.normal.label.distance'); - var center = this.parseCenter(this.zr, mainSerie.center); - var radius = this.parseRadius(this.zr, mainSerie.radius); - var clockWise = mainSerie.clockWise; - var sign = clockWise ? 1 : -1; - graph.eachNode(function (node) { - var startAngle = node.layout.startAngle / Math.PI * 180 * sign; - var endAngle = node.layout.endAngle / Math.PI * 180 * sign; - var angle = (startAngle * -sign + endAngle * -sign) / 2; - angle %= 360; - if (angle < 0) { - angle += 360; - } - var isRightSide = angle <= 90 || angle >= 270; - angle = angle * Math.PI / 180; - var v = [ - Math.cos(angle), - -Math.sin(angle) - ]; - var distance = 0; - if (mainSerie.ribbonType) { - distance = mainSerie.showScaleText ? 35 + labelDistance : labelDistance; - } else { - distance = labelDistance + node.layout.size; - } - var start = vec2.scale([], v, radius[1] + distance); - vec2.add(start, start, center); - var labelShape = { - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - text: node.data.label == null ? node.id : node.data.label, - textAlign: isRightSide ? 'left' : 'right' - } - }; - if (rotateLabel) { - labelShape.rotation = isRightSide ? angle : Math.PI + angle; - if (isRightSide) { - labelShape.style.x = radius[1] + distance; - } else { - labelShape.style.x = -radius[1] - distance; - } - labelShape.style.y = 0; - labelShape.position = center.slice(); - } else { - labelShape.style.x = start[0]; - labelShape.style.y = start[1]; - } - labelShape.style.color = this.deepQuery([ - node.data, - mainSerie - ], 'itemStyle.normal.label.textStyle.color') || '#000000'; - labelShape.style.textFont = this.getFont(this.deepQuery([ - node.data, - mainSerie - ], 'itemStyle.normal.label.textStyle')); - labelShape = new TextShape(labelShape); - this.shapeList.push(labelShape); - node.labelShape = labelShape; - }, this); - }, - _buildRibbons: function (series, serieIdx, graph, mainSerie) { - var serie = series[serieIdx]; - var center = this.parseCenter(this.zr, mainSerie.center); - var radius = this.parseRadius(this.zr, mainSerie.radius); - graph.eachEdge(function (edge, idx) { - var color; - var other = graph.getEdge(edge.node2, edge.node1); - if (!other || edge.shape) { - return; - } - if (other.shape) { - edge.shape = other.shape; - return; - } - var s0 = edge.layout.startAngle / Math.PI * 180; - var s1 = edge.layout.endAngle / Math.PI * 180; - var t0 = other.layout.startAngle / Math.PI * 180; - var t1 = other.layout.endAngle / Math.PI * 180; - if (series.length === 1) { - if (edge.layout.weight <= other.layout.weight) { - color = this.getColor(edge.node1.id); - } else { - color = this.getColor(edge.node2.id); - } - } else { - color = this.getColor(serie.name); - } - var queryTarget = this._getEdgeQueryTarget(serie, edge.data); - var queryTargetEmphasis = this._getEdgeQueryTarget(serie, edge.data, 'emphasis'); - var ribbon = new RibbonShape({ - zlevel: serie.zlevel, - z: serie.z, - style: { - x: center[0], - y: center[1], - r: radius[0], - source0: s0, - source1: s1, - target0: t0, - target1: t1, - brushType: 'both', - opacity: this.deepQuery(queryTarget, 'opacity'), - color: color, - lineWidth: this.deepQuery(queryTarget, 'borderWidth'), - strokeColor: this.deepQuery(queryTarget, 'borderColor'), - clockWise: mainSerie.clockWise - }, - clickable: mainSerie.clickable, - highlightStyle: { - brushType: 'both', - opacity: this.deepQuery(queryTargetEmphasis, 'opacity'), - lineWidth: this.deepQuery(queryTargetEmphasis, 'borderWidth'), - strokeColor: this.deepQuery(queryTargetEmphasis, 'borderColor') - } - }); - var node1, node2; - if (edge.layout.weight <= other.layout.weight) { - node1 = other.node1; - node2 = other.node2; - } else { - node1 = edge.node1; - node2 = edge.node2; - } - ecData.pack(ribbon, serie, serieIdx, edge.data, edge.rawIndex == null ? idx : edge.rawIndex, edge.data.name || node1.id + '-' + node2.id, node1.id, node2.id); - this.shapeList.push(ribbon); - edge.shape = ribbon; - }, this); - }, - _buildEdgeCurves: function (series, serieIdx, graph, mainSerie, mainGraph) { - var serie = series[serieIdx]; - var center = this.parseCenter(this.zr, mainSerie.center); - graph.eachEdge(function (e, idx) { - var node1 = mainGraph.getNodeById(e.node1.id); - var node2 = mainGraph.getNodeById(e.node2.id); - var shape1 = node1.shape; - var shape2 = node2.shape; - var queryTarget = this._getEdgeQueryTarget(serie, e.data); - var queryTargetEmphasis = this._getEdgeQueryTarget(serie, e.data, 'emphasis'); - var curveShape = new BezierCurveShape({ - zlevel: serie.zlevel, - z: serie.z, - style: { - xStart: shape1.position[0], - yStart: shape1.position[1], - xEnd: shape2.position[0], - yEnd: shape2.position[1], - cpX1: center[0], - cpY1: center[1], - lineWidth: this.deepQuery(queryTarget, 'width'), - strokeColor: this.deepQuery(queryTarget, 'color'), - opacity: this.deepQuery(queryTarget, 'opacity') - }, - highlightStyle: { - lineWidth: this.deepQuery(queryTargetEmphasis, 'width'), - strokeColor: this.deepQuery(queryTargetEmphasis, 'color'), - opacity: this.deepQuery(queryTargetEmphasis, 'opacity') - } - }); - ecData.pack(curveShape, serie, serieIdx, e.data, e.rawIndex == null ? idx : e.rawIndex, e.data.name || e.node1.id + '-' + e.node2.id, e.node1.id, e.node2.id); - this.shapeList.push(curveShape); - e.shape = curveShape; - }, this); - }, - _buildScales: function (serie, serieIdx, graph) { - var clockWise = serie.clockWise; - var center = this.parseCenter(this.zr, serie.center); - var radius = this.parseRadius(this.zr, serie.radius); - var sign = clockWise ? 1 : -1; - var sumValue = 0; - var maxValue = -Infinity; - var unitPostfix; - var unitScale; - if (serie.showScaleText) { - graph.eachNode(function (node) { - var val = node.data.value; - if (val > maxValue) { - maxValue = val; - } - sumValue += val; - }); - if (maxValue > 10000000000) { - unitPostfix = 'b'; - unitScale = 1e-9; - } else if (maxValue > 10000000) { - unitPostfix = 'm'; - unitScale = 0.000001; - } else if (maxValue > 10000) { - unitPostfix = 'k'; - unitScale = 0.001; - } else { - unitPostfix = ''; - unitScale = 1; - } - } - var unitValue = sumValue / (360 - serie.padding); - graph.eachNode(function (node) { - var startAngle = node.layout.startAngle / Math.PI * 180; - var endAngle = node.layout.endAngle / Math.PI * 180; - var scaleAngle = startAngle; - while (true) { - if (clockWise && scaleAngle > endAngle || !clockWise && scaleAngle < endAngle) { - break; - } - var theta = scaleAngle / 180 * Math.PI; - var v = [ - Math.cos(theta), - Math.sin(theta) - ]; - var start = vec2.scale([], v, radius[1] + 1); - vec2.add(start, start, center); - var end = vec2.scale([], v, radius[1] + this.scaleLineLength); - vec2.add(end, end, center); - var scaleShape = new LineShape({ - zlevel: serie.zlevel, - z: serie.z - 1, - hoverable: false, - style: { - xStart: start[0], - yStart: start[1], - xEnd: end[0], - yEnd: end[1], - lineCap: 'round', - brushType: 'stroke', - strokeColor: '#666', - lineWidth: 1 - } - }); - this.shapeList.push(scaleShape); - scaleAngle += sign * this.scaleUnitAngle; - } - if (!serie.showScaleText) { - return; - } - var scaleTextAngle = startAngle; - var step = unitValue * 5 * this.scaleUnitAngle; - var scaleValue = 0; - while (true) { - if (clockWise && scaleTextAngle > endAngle || !clockWise && scaleTextAngle < endAngle) { - break; - } - var theta = scaleTextAngle; - theta = theta % 360; - if (theta < 0) { - theta += 360; - } - var isRightSide = theta <= 90 || theta >= 270; - var textShape = new TextShape({ - zlevel: serie.zlevel, - z: serie.z - 1, - hoverable: false, - style: { - x: isRightSide ? radius[1] + this.scaleLineLength + 4 : -radius[1] - this.scaleLineLength - 4, - y: 0, - text: Math.round(scaleValue * 10) / 10 + unitPostfix, - textAlign: isRightSide ? 'left' : 'right' - }, - position: center.slice(), - rotation: isRightSide ? [ - -theta / 180 * Math.PI, - 0, - 0 - ] : [ - -(theta + 180) / 180 * Math.PI, - 0, - 0 - ] - }); - this.shapeList.push(textShape); - scaleValue += step * unitScale; - scaleTextAngle += sign * this.scaleUnitAngle * 5; - } - }, this); - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.legend = this.component.legend; - if (this.legend) { - this.getColor = function (param) { - return this.legend.getColor(param); - }; - this.isSelected = function (param) { - return this.legend.isSelected(param); - }; - } else { - var colorMap = {}; - var count = 0; - this.getColor = function (key) { - if (colorMap[key]) { - return colorMap[key]; - } - if (!colorMap[key]) { - colorMap[key] = this.zr.getColor(count++); - } - return colorMap[key]; - }; - this.isSelected = function () { - return true; - }; - } - this.backupShapeList(); - this._init(); - }, - reformOption: function (opt) { - var _merge = zrUtil.merge; - opt = _merge(_merge(opt || {}, this.ecTheme.chord), ecConfig.chord); - opt.itemStyle.normal.label.textStyle = this.getTextStyle(opt.itemStyle.normal.label.textStyle); - this.z = opt.z; - this.zlevel = opt.zlevel; - } - }; - zrUtil.inherits(Chord, ChartBase); - require('../chart').define('chord', Chord); - return Chord; -});define('echarts/util/shape/Ribbon', [ - 'require', - 'zrender/shape/Base', - 'zrender/shape/util/PathProxy', - 'zrender/tool/util', - 'zrender/tool/area' -], function (require) { - var Base = require('zrender/shape/Base'); - var PathProxy = require('zrender/shape/util/PathProxy'); - var zrUtil = require('zrender/tool/util'); - var area = require('zrender/tool/area'); - function RibbonShape(options) { - Base.call(this, options); - this._pathProxy = new PathProxy(); - } - RibbonShape.prototype = { - type: 'ribbon', - buildPath: function (ctx, style) { - var clockWise = style.clockWise || false; - var path = this._pathProxy; - path.begin(ctx); - var cx = style.x; - var cy = style.y; - var r = style.r; - var s0 = style.source0 / 180 * Math.PI; - var s1 = style.source1 / 180 * Math.PI; - var t0 = style.target0 / 180 * Math.PI; - var t1 = style.target1 / 180 * Math.PI; - var sx0 = cx + Math.cos(s0) * r; - var sy0 = cy + Math.sin(s0) * r; - var sx1 = cx + Math.cos(s1) * r; - var sy1 = cy + Math.sin(s1) * r; - var tx0 = cx + Math.cos(t0) * r; - var ty0 = cy + Math.sin(t0) * r; - var tx1 = cx + Math.cos(t1) * r; - var ty1 = cy + Math.sin(t1) * r; - path.moveTo(sx0, sy0); - path.arc(cx, cy, style.r, s0, s1, !clockWise); - path.bezierCurveTo((cx - sx1) * 0.7 + sx1, (cy - sy1) * 0.7 + sy1, (cx - tx0) * 0.7 + tx0, (cy - ty0) * 0.7 + ty0, tx0, ty0); - if (style.source0 === style.target0 && style.source1 === style.target1) { - return; - } - path.arc(cx, cy, style.r, t0, t1, !clockWise); - path.bezierCurveTo((cx - tx1) * 0.7 + tx1, (cy - ty1) * 0.7 + ty1, (cx - sx0) * 0.7 + sx0, (cy - sy0) * 0.7 + sy0, sx0, sy0); - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - if (!this._pathProxy.isEmpty()) { - this.buildPath(null, style); - } - return this._pathProxy.fastBoundingRect(); - }, - isCover: function (x, y) { - var rect = this.getRect(this.style); - if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) { - return area.isInsidePath(this._pathProxy.pathCommands, 0, 'fill', x, y); - } - } - }; - zrUtil.inherits(RibbonShape, Base); - return RibbonShape; -});define('echarts/data/Graph', [ - 'require', - 'zrender/tool/util' -], function (require) { - var util = require('zrender/tool/util'); - 'use strict'; - var Graph = function (directed) { - this._directed = directed || false; - this.nodes = []; - this.edges = []; - this._nodesMap = {}; - this._edgesMap = {}; - }; - Graph.prototype.isDirected = function () { - return this._directed; - }; - Graph.prototype.addNode = function (id, data) { - if (this._nodesMap[id]) { - return this._nodesMap[id]; - } - var node = new Graph.Node(id, data); - this.nodes.push(node); - this._nodesMap[id] = node; - return node; - }; - Graph.prototype.getNodeById = function (id) { - return this._nodesMap[id]; - }; - Graph.prototype.addEdge = function (n1, n2, data) { - if (typeof n1 == 'string') { - n1 = this._nodesMap[n1]; - } - if (typeof n2 == 'string') { - n2 = this._nodesMap[n2]; - } - if (!n1 || !n2) { - return; - } - var key = n1.id + '-' + n2.id; - if (this._edgesMap[key]) { - return this._edgesMap[key]; - } - var edge = new Graph.Edge(n1, n2, data); - if (this._directed) { - n1.outEdges.push(edge); - n2.inEdges.push(edge); - } - n1.edges.push(edge); - if (n1 !== n2) { - n2.edges.push(edge); - } - this.edges.push(edge); - this._edgesMap[key] = edge; - return edge; - }; - Graph.prototype.removeEdge = function (edge) { - var n1 = edge.node1; - var n2 = edge.node2; - var key = n1.id + '-' + n2.id; - if (this._directed) { - n1.outEdges.splice(util.indexOf(n1.outEdges, edge), 1); - n2.inEdges.splice(util.indexOf(n2.inEdges, edge), 1); - } - n1.edges.splice(util.indexOf(n1.edges, edge), 1); - if (n1 !== n2) { - n2.edges.splice(util.indexOf(n2.edges, edge), 1); - } - delete this._edgesMap[key]; - this.edges.splice(util.indexOf(this.edges, edge), 1); - }; - Graph.prototype.getEdge = function (n1, n2) { - if (typeof n1 !== 'string') { - n1 = n1.id; - } - if (typeof n2 !== 'string') { - n2 = n2.id; - } - if (this._directed) { - return this._edgesMap[n1 + '-' + n2]; - } else { - return this._edgesMap[n1 + '-' + n2] || this._edgesMap[n2 + '-' + n1]; - } - }; - Graph.prototype.removeNode = function (node) { - if (typeof node === 'string') { - node = this._nodesMap[node]; - if (!node) { - return; - } - } - delete this._nodesMap[node.id]; - this.nodes.splice(util.indexOf(this.nodes, node), 1); - for (var i = 0; i < this.edges.length;) { - var edge = this.edges[i]; - if (edge.node1 === node || edge.node2 === node) { - this.removeEdge(edge); - } else { - i++; - } - } - }; - Graph.prototype.filterNode = function (cb, context) { - var len = this.nodes.length; - for (var i = 0; i < len;) { - if (cb.call(context, this.nodes[i], i)) { - i++; - } else { - this.removeNode(this.nodes[i]); - len--; - } - } - }; - Graph.prototype.filterEdge = function (cb, context) { - var len = this.edges.length; - for (var i = 0; i < len;) { - if (cb.call(context, this.edges[i], i)) { - i++; - } else { - this.removeEdge(this.edges[i]); - len--; - } - } - }; - Graph.prototype.eachNode = function (cb, context) { - var len = this.nodes.length; - for (var i = 0; i < len; i++) { - if (this.nodes[i]) { - cb.call(context, this.nodes[i], i); - } - } - }; - Graph.prototype.eachEdge = function (cb, context) { - var len = this.edges.length; - for (var i = 0; i < len; i++) { - if (this.edges[i]) { - cb.call(context, this.edges[i], i); - } - } - }; - Graph.prototype.clear = function () { - this.nodes.length = 0; - this.edges.length = 0; - this._nodesMap = {}; - this._edgesMap = {}; - }; - Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) { - if (typeof startNode === 'string') { - startNode = this._nodesMap[startNode]; - } - if (!startNode) { - return; - } - var edgeType = 'edges'; - if (direction === 'out') { - edgeType = 'outEdges'; - } else if (direction === 'in') { - edgeType = 'inEdges'; - } - for (var i = 0; i < this.nodes.length; i++) { - this.nodes[i].__visited = false; - } - if (cb.call(context, startNode, null)) { - return; - } - var queue = [startNode]; - while (queue.length) { - var currentNode = queue.shift(); - var edges = currentNode[edgeType]; - for (var i = 0; i < edges.length; i++) { - var e = edges[i]; - var otherNode = e.node1 === currentNode ? e.node2 : e.node1; - if (!otherNode.__visited) { - if (cb.call(otherNode, otherNode, currentNode)) { - return; - } - queue.push(otherNode); - otherNode.__visited = true; - } - } - } - }; - Graph.prototype.clone = function () { - var graph = new Graph(this._directed); - for (var i = 0; i < this.nodes.length; i++) { - graph.addNode(this.nodes[i].id, this.nodes[i].data); - } - for (var i = 0; i < this.edges.length; i++) { - var e = this.edges[i]; - graph.addEdge(e.node1.id, e.node2.id, e.data); - } - return graph; - }; - var Node = function (id, data) { - this.id = id; - this.data = data || null; - this.inEdges = []; - this.outEdges = []; - this.edges = []; - }; - Node.prototype.degree = function () { - return this.edges.length; - }; - Node.prototype.inDegree = function () { - return this.inEdges.length; - }; - Node.prototype.outDegree = function () { - return this.outEdges.length; - }; - var Edge = function (node1, node2, data) { - this.node1 = node1; - this.node2 = node2; - this.data = data || null; - }; - Graph.Node = Node; - Graph.Edge = Edge; - Graph.fromMatrix = function (nodesData, matrix, directed) { - if (!matrix || !matrix.length || matrix[0].length !== matrix.length || nodesData.length !== matrix.length) { - return; - } - var size = matrix.length; - var graph = new Graph(directed); - for (var i = 0; i < size; i++) { - var node = graph.addNode(nodesData[i].id, nodesData[i]); - node.data.value = 0; - if (directed) { - node.data.outValue = node.data.inValue = 0; - } - } - for (var i = 0; i < size; i++) { - for (var j = 0; j < size; j++) { - var item = matrix[i][j]; - if (directed) { - graph.nodes[i].data.outValue += item; - graph.nodes[j].data.inValue += item; - } - graph.nodes[i].data.value += item; - graph.nodes[j].data.value += item; - } - } - for (var i = 0; i < size; i++) { - for (var j = i; j < size; j++) { - var item = matrix[i][j]; - if (item === 0) { - continue; - } - var n1 = graph.nodes[i]; - var n2 = graph.nodes[j]; - var edge = graph.addEdge(n1, n2, {}); - edge.data.weight = item; - if (i !== j) { - if (directed && matrix[j][i]) { - var inEdge = graph.addEdge(n2, n1, {}); - inEdge.data.weight = matrix[j][i]; - } - } - } - } - return graph; - }; - return Graph; -});define('echarts/layout/Chord', ['require'], function (require) { - var ChordLayout = function (opts) { - opts = opts || {}; - this.sort = opts.sort || null; - this.sortSub = opts.sortSub || null; - this.padding = 0.05; - this.startAngle = opts.startAngle || 0; - this.clockWise = opts.clockWise == null ? false : opts.clockWise; - this.center = opts.center || [ - 0, - 0 - ]; - this.directed = true; - }; - ChordLayout.prototype.run = function (graphs) { - if (!(graphs instanceof Array)) { - graphs = [graphs]; - } - var gl = graphs.length; - if (!gl) { - return; - } - var graph0 = graphs[0]; - var nl = graph0.nodes.length; - var groups = []; - var sumSize = 0; - for (var i = 0; i < nl; i++) { - var g0node = graph0.nodes[i]; - var group = { - size: 0, - subGroups: [], - node: g0node - }; - groups.push(group); - var sumWeight = 0; - for (var k = 0; k < graphs.length; k++) { - var graph = graphs[k]; - var node = graph.getNodeById(g0node.id); - if (!node) { - continue; - } - group.size += node.layout.size; - var edges = this.directed ? node.outEdges : node.edges; - for (var j = 0; j < edges.length; j++) { - var e = edges[j]; - var w = e.layout.weight; - group.subGroups.push({ - weight: w, - edge: e, - graph: graph - }); - sumWeight += w; - } - } - sumSize += group.size; - var multiplier = group.size / sumWeight; - for (var j = 0; j < group.subGroups.length; j++) { - group.subGroups[j].weight *= multiplier; - } - if (this.sortSub === 'ascending') { - group.subGroups.sort(compareSubGroups); - } else if (this.sort === 'descending') { - group.subGroups.sort(compareSubGroups); - group.subGroups.reverse(); - } - } - if (this.sort === 'ascending') { - groups.sort(compareGroups); - } else if (this.sort === 'descending') { - groups.sort(compareGroups); - groups.reverse(); - } - var multiplier = (Math.PI * 2 - this.padding * nl) / sumSize; - var angle = this.startAngle; - var sign = this.clockWise ? 1 : -1; - for (var i = 0; i < nl; i++) { - var group = groups[i]; - group.node.layout.startAngle = angle; - group.node.layout.endAngle = angle + sign * group.size * multiplier; - group.node.layout.subGroups = []; - for (var j = 0; j < group.subGroups.length; j++) { - var subGroup = group.subGroups[j]; - subGroup.edge.layout.startAngle = angle; - angle += sign * subGroup.weight * multiplier; - subGroup.edge.layout.endAngle = angle; - } - angle = group.node.layout.endAngle + sign * this.padding; - } - }; - var compareSubGroups = function (a, b) { - return a.weight - b.weight; - }; - var compareGroups = function (a, b) { - return a.size - b.size; - }; - return ChordLayout; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/eventRiver.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/eventRiver.js deleted file mode 100644 index 7bfadd9..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/eventRiver.js +++ /dev/null @@ -1,399 +0,0 @@ -define('echarts/chart/eventRiver', [ - 'require', - './base', - '../layout/eventRiver', - 'zrender/shape/Polygon', - '../component/axis', - '../component/grid', - '../component/dataZoom', - '../config', - '../util/ecData', - '../util/date', - 'zrender/tool/util', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var eventRiverLayout = require('../layout/eventRiver'); - var PolygonShape = require('zrender/shape/Polygon'); - require('../component/axis'); - require('../component/grid'); - require('../component/dataZoom'); - var ecConfig = require('../config'); - ecConfig.eventRiver = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - itemStyle: { - normal: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - label: { - show: true, - position: 'inside', - formatter: '{b}' - } - }, - emphasis: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - label: { show: true } - } - } - }; - var ecData = require('../util/ecData'); - var ecDate = require('../util/date'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function EventRiver(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._ondragend = function () { - self.isDragend = true; - }; - this.refresh(option); - } - EventRiver.prototype = { - type: ecConfig.CHART_TYPE_EVENTRIVER, - _buildShape: function () { - var series = this.series; - this.selectedMap = {}; - this._dataPreprocessing(); - var legend = this.component.legend; - var eventRiverSeries = []; - for (var i = 0; i < series.length; i++) { - if (series[i].type === this.type) { - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - var serieName = series[i].name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (!this.selectedMap[serieName]) { - continue; - } - this.buildMark(i); - eventRiverSeries.push(this.series[i]); - } - } - eventRiverLayout(eventRiverSeries, this._intervalX, this.component.grid.getArea()); - this._drawEventRiver(); - this.addShapeList(); - }, - _dataPreprocessing: function () { - var series = this.series; - var xAxis; - var evolutionList; - for (var i = 0, iLen = series.length; i < iLen; i++) { - if (series[i].type === this.type) { - xAxis = this.component.xAxis.getAxis(series[i].xAxisIndex || 0); - for (var j = 0, jLen = series[i].data.length; j < jLen; j++) { - evolutionList = series[i].data[j].evolution; - for (var k = 0, kLen = evolutionList.length; k < kLen; k++) { - evolutionList[k].timeScale = xAxis.getCoord(ecDate.getNewDate(evolutionList[k].time) - 0); - evolutionList[k].valueScale = Math.pow(evolutionList[k].value, 0.8); - } - } - } - } - this._intervalX = Math.round(this.component.grid.getWidth() / 40); - }, - _drawEventRiver: function () { - var series = this.series; - for (var i = 0; i < series.length; i++) { - var serieName = series[i].name || ''; - if (series[i].type === this.type && this.selectedMap[serieName]) { - for (var j = 0; j < series[i].data.length; j++) { - this._drawEventBubble(series[i].data[j], i, j); - } - } - } - }, - _drawEventBubble: function (oneEvent, seriesIndex, dataIndex) { - var series = this.series; - var serie = series[seriesIndex]; - var serieName = serie.name || ''; - var data = serie.data[dataIndex]; - var queryTarget = [ - data, - serie - ]; - var legend = this.component.legend; - var defaultColor = legend ? legend.getColor(serieName) : this.zr.getColor(seriesIndex); - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor; - var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor); - var pts = this._calculateControlPoints(oneEvent); - var eventBubbleShape = { - zlevel: serie.zlevel, - z: serie.z, - clickable: this.deepQuery(queryTarget, 'clickable'), - style: { - pointList: pts, - smooth: 'spline', - brushType: 'both', - lineJoin: 'round', - color: normalColor, - lineWidth: normal.borderWidth, - strokeColor: normal.borderColor - }, - highlightStyle: { - color: emphasisColor, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor - }, - draggable: 'vertical', - ondragend: this._ondragend - }; - eventBubbleShape = new PolygonShape(eventBubbleShape); - this.addLabel(eventBubbleShape, serie, data, oneEvent.name); - ecData.pack(eventBubbleShape, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name); - this.shapeList.push(eventBubbleShape); - }, - _calculateControlPoints: function (oneEvent) { - var intervalX = this._intervalX; - var posY = oneEvent.y; - var evolution = oneEvent.evolution; - var n = evolution.length; - if (n < 1) { - return; - } - var time = []; - var value = []; - for (var i = 0; i < n; i++) { - time.push(evolution[i].timeScale); - value.push(evolution[i].valueScale); - } - var pts = []; - pts.push([ - time[0], - posY - ]); - var i = 0; - for (i = 0; i < n - 1; i++) { - pts.push([ - (time[i] + time[i + 1]) / 2, - value[i] / -2 + posY - ]); - } - pts.push([ - (time[i] + (time[i] + intervalX)) / 2, - value[i] / -2 + posY - ]); - pts.push([ - time[i] + intervalX, - posY - ]); - pts.push([ - (time[i] + (time[i] + intervalX)) / 2, - value[i] / 2 + posY - ]); - for (i = n - 1; i > 0; i--) { - pts.push([ - (time[i] + time[i - 1]) / 2, - value[i - 1] / 2 + posY - ]); - } - return pts; - }, - ondragend: function (param, status) { - if (!this.isDragend || !param.target) { - return; - } - status.dragOut = true; - status.dragIn = true; - status.needRefresh = false; - this.isDragend = false; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - } - }; - zrUtil.inherits(EventRiver, ChartBase); - require('../chart').define('eventRiver', EventRiver); - return EventRiver; -});define('echarts/layout/eventRiver', ['require'], function (require) { - function eventRiverLayout(series, intervalX, area) { - var space = 4; - var scale = intervalX; - function importanceSort(a, b) { - var x = a.importance; - var y = b.importance; - return x > y ? -1 : x < y ? 1 : 0; - } - function indexOf(array, value) { - if (array.indexOf) { - return array.indexOf(value); - } - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] === value) { - return i; - } - } - return -1; - } - for (var i = 0; i < series.length; i++) { - for (var j = 0; j < series[i].data.length; j++) { - if (series[i].data[j].weight == null) { - series[i].data[j].weight = 1; - } - var importance = 0; - for (var k = 0; k < series[i].data[j].evolution.length; k++) { - importance += series[i].data[j].evolution[k].valueScale; - } - series[i].data[j].importance = importance * series[i].data[j].weight; - } - series[i].data.sort(importanceSort); - } - for (var i = 0; i < series.length; i++) { - if (series[i].weight == null) { - series[i].weight = 1; - } - var importance = 0; - for (var j = 0; j < series[i].data.length; j++) { - importance += series[i].data[j].weight; - } - series[i].importance = importance * series[i].weight; - } - series.sort(importanceSort); - var minTime = Number.MAX_VALUE; - var maxTime = 0; - for (var i = 0; i < series.length; i++) { - for (var j = 0; j < series[i].data.length; j++) { - for (var k = 0; k < series[i].data[j].evolution.length; k++) { - var time = series[i].data[j].evolution[k].timeScale; - minTime = Math.min(minTime, time); - maxTime = Math.max(maxTime, time); - } - } - } - minTime = ~~minTime; - maxTime = ~~maxTime; - var flagForOffset = function () { - var length = maxTime - minTime + 1 + ~~intervalX; - if (length <= 0) { - return [0]; - } - var result = []; - while (length--) { - result.push(0); - } - return result; - }(); - var flagForPos = flagForOffset.slice(0); - var bubbleData = []; - var totalMaxy = 0; - var totalOffset = 0; - for (var i = 0; i < series.length; i++) { - for (var j = 0; j < series[i].data.length; j++) { - var e = series[i].data[j]; - e.time = []; - e.value = []; - var tmp; - var maxy = 0; - for (var k = 0; k < series[i].data[j].evolution.length; k++) { - tmp = series[i].data[j].evolution[k]; - e.time.push(tmp.timeScale); - e.value.push(tmp.valueScale); - maxy = Math.max(maxy, tmp.valueScale); - } - bubbleBound(e, intervalX, minTime); - e.y = findLocation(flagForPos, e, function (e, index) { - return e.ypx[index]; - }); - e._offset = findLocation(flagForOffset, e, function () { - return space; - }); - totalMaxy = Math.max(totalMaxy, e.y + maxy); - totalOffset = Math.max(totalOffset, e._offset); - bubbleData.push(e); - } - } - scaleY(bubbleData, area, totalMaxy, totalOffset); - } - function scaleY(bubbleData, area, maxY, offset) { - var height = area.height; - var offsetScale = offset / height > 0.5 ? 0.5 : 1; - var yBase = area.y; - var yScale = (area.height - offset) / maxY; - for (var i = 0, length = bubbleData.length; i < length; i++) { - var e = bubbleData[i]; - e.y = yBase + yScale * e.y + e._offset * offsetScale; - delete e.time; - delete e.value; - delete e.xpx; - delete e.ypx; - delete e._offset; - var evolutionList = e.evolution; - for (var k = 0, klen = evolutionList.length; k < klen; k++) { - evolutionList[k].valueScale *= yScale; - } - } - } - function line(x0, y0, x1, y1) { - if (x0 === x1) { - throw new Error('x0 is equal with x1!!!'); - } - if (y0 === y1) { - return function () { - return y0; - }; - } - var k = (y0 - y1) / (x0 - x1); - var b = (y1 * x0 - y0 * x1) / (x0 - x1); - return function (x) { - return k * x + b; - }; - } - function bubbleBound(e, intervalX, minX) { - var space = ~~intervalX; - var length = e.time.length; - e.xpx = []; - e.ypx = []; - var i = 0; - var x0 = 0; - var x1 = 0; - var y0 = 0; - var y1 = 0; - var newline; - for (; i < length; i++) { - x0 = ~~e.time[i]; - y0 = e.value[i] / 2; - if (i === length - 1) { - x1 = x0 + space; - y1 = 0; - } else { - x1 = ~~e.time[i + 1]; - y1 = e.value[i + 1] / 2; - } - newline = line(x0, y0, x1, y1); - for (var x = x0; x < x1; x++) { - e.xpx.push(x - minX); - e.ypx.push(newline(x)); - } - } - e.xpx.push(x1 - minX); - e.ypx.push(y1); - } - function findLocation(flags, e, yvalue) { - var pos = 0; - var length = e.xpx.length; - var i = 0; - var y; - for (; i < length; i++) { - y = yvalue(e, i); - pos = Math.max(pos, y + flags[e.xpx[i]]); - } - for (i = 0; i < length; i++) { - y = yvalue(e, i); - flags[e.xpx[i]] = pos + y; - } - return pos; - } - return eventRiverLayout; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/force.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/force.js deleted file mode 100644 index f8e086c..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/force.js +++ /dev/null @@ -1,1697 +0,0 @@ -define('echarts/chart/force', [ - 'require', - './base', - '../data/Graph', - '../layout/Force', - 'zrender/shape/Line', - 'zrender/shape/BezierCurve', - 'zrender/shape/Image', - '../util/shape/Icon', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/config', - 'zrender/tool/vector', - '../chart' -], function (require) { - 'use strict'; - var ChartBase = require('./base'); - var Graph = require('../data/Graph'); - var ForceLayout = require('../layout/Force'); - var LineShape = require('zrender/shape/Line'); - var BezierCurveShape = require('zrender/shape/BezierCurve'); - var ImageShape = require('zrender/shape/Image'); - var IconShape = require('../util/shape/Icon'); - var ecConfig = require('../config'); - ecConfig.force = { - zlevel: 1, - z: 2, - center: [ - '50%', - '50%' - ], - size: '100%', - preventOverlap: false, - coolDown: 0.99, - minRadius: 10, - maxRadius: 20, - ratioScaling: false, - large: false, - useWorker: false, - steps: 1, - scaling: 1, - gravity: 1, - symbol: 'circle', - symbolSize: 0, - linkSymbol: null, - linkSymbolSize: [ - 10, - 15 - ], - draggable: true, - clickable: true, - roam: false, - itemStyle: { - normal: { - label: { - show: false, - position: 'inside' - }, - nodeStyle: { - brushType: 'both', - borderColor: '#5182ab', - borderWidth: 1 - }, - linkStyle: { - color: '#5182ab', - width: 1, - type: 'line' - } - }, - emphasis: { - label: { show: false }, - nodeStyle: {}, - linkStyle: { opacity: 0 } - } - } - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrConfig = require('zrender/config'); - var vec2 = require('zrender/tool/vector'); - function Force(ecTheme, messageCenter, zr, option, myChart) { - var self = this; - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.__nodePositionMap = {}; - this._graph = new Graph(true); - this._layout = new ForceLayout(); - this._layout.onupdate = function () { - self._step(); - }; - this._steps = 1; - this.ondragstart = function () { - ondragstart.apply(self, arguments); - }; - this.ondragend = function () { - ondragend.apply(self, arguments); - }; - this.ondrop = function () { - }; - this.shapeHandler.ondragstart = function () { - self.isDragstart = true; - }; - this.onmousemove = function () { - onmousemove.apply(self, arguments); - }; - this.refresh(option); - } - Force.prototype = { - constructor: Force, - type: ecConfig.CHART_TYPE_FORCE, - _init: function () { - this.selectedMap = {}; - var legend = this.component.legend; - var series = this.series; - var serieName; - this.clear(); - for (var i = 0, l = series.length; i < l; i++) { - var serie = series[i]; - if (serie.type === ecConfig.CHART_TYPE_FORCE) { - series[i] = this.reformOption(series[i]); - serieName = series[i].name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (!this.selectedMap[serieName]) { - continue; - } - this.buildMark(i); - this._initSerie(serie, i); - break; - } - } - this.animationEffect(); - }, - _getNodeCategory: function (serie, node) { - return serie.categories && serie.categories[node.category || 0]; - }, - _getNodeQueryTarget: function (serie, node, type) { - type = type || 'normal'; - var category = this._getNodeCategory(serie, node) || {}; - return [ - node.itemStyle && node.itemStyle[type], - category && category.itemStyle && category.itemStyle[type], - serie.itemStyle[type].nodeStyle - ]; - }, - _getEdgeQueryTarget: function (serie, edge, type) { - type = type || 'normal'; - return [ - edge.itemStyle && edge.itemStyle[type], - serie.itemStyle[type].linkStyle - ]; - }, - _initSerie: function (serie, serieIdx) { - this._temperature = 1; - if (serie.matrix) { - this._graph = this._getSerieGraphFromDataMatrix(serie); - } else if (serie.links) { - this._graph = this._getSerieGraphFromNodeLinks(serie); - } - this._buildLinkShapes(serie, serieIdx); - this._buildNodeShapes(serie, serieIdx); - var panable = serie.roam === true || serie.roam === 'move'; - var zoomable = serie.roam === true || serie.roam === 'scale'; - this.zr.modLayer(this.getZlevelBase(), { - panable: panable, - zoomable: zoomable - }); - if (this.query('markPoint.effect.show') || this.query('markLine.effect.show')) { - this.zr.modLayer(ecConfig.EFFECT_ZLEVEL, { - panable: panable, - zoomable: zoomable - }); - } - this._initLayout(serie); - this._step(); - }, - _getSerieGraphFromDataMatrix: function (serie) { - var nodesData = []; - var count = 0; - var matrix = []; - for (var i = 0; i < serie.matrix.length; i++) { - matrix[i] = serie.matrix[i].slice(); - } - var data = serie.data || serie.nodes; - for (var i = 0; i < data.length; i++) { - var node = {}; - var group = data[i]; - for (var key in group) { - if (key === 'name') { - node['id'] = group['name']; - } else { - node[key] = group[key]; - } - } - var category = this._getNodeCategory(serie, group); - var name = category ? category.name : group.name; - this.selectedMap[name] = this.isSelected(name); - if (this.selectedMap[name]) { - nodesData.push(node); - count++; - } else { - matrix.splice(count, 1); - for (var j = 0; j < matrix.length; j++) { - matrix[j].splice(count, 1); - } - } - } - var graph = Graph.fromMatrix(nodesData, matrix, true); - graph.eachNode(function (n, idx) { - n.layout = { - size: n.data.value, - mass: 0 - }; - n.rawIndex = idx; - }); - graph.eachEdge(function (e) { - e.layout = { weight: e.data.weight }; - }); - return graph; - }, - _getSerieGraphFromNodeLinks: function (serie) { - var graph = new Graph(true); - var nodes = serie.data || serie.nodes; - for (var i = 0, len = nodes.length; i < len; i++) { - var n = nodes[i]; - if (!n || n.ignore) { - continue; - } - var category = this._getNodeCategory(serie, n); - var name = category ? category.name : n.name; - this.selectedMap[name] = this.isSelected(name); - if (this.selectedMap[name]) { - var node = graph.addNode(n.name, n); - node.rawIndex = i; - } - } - for (var i = 0, len = serie.links.length; i < len; i++) { - var e = serie.links[i]; - var n1 = e.source; - var n2 = e.target; - if (typeof n1 === 'number') { - n1 = nodes[n1]; - if (n1) { - n1 = n1.name; - } - } - if (typeof n2 === 'number') { - n2 = nodes[n2]; - if (n2) { - n2 = n2.name; - } - } - var edge = graph.addEdge(n1, n2, e); - if (edge) { - edge.rawIndex = i; - } - } - graph.eachNode(function (n) { - var value = n.data.value; - if (value == null) { - value = 0; - for (var i = 0; i < n.edges.length; i++) { - value += n.edges[i].data.weight || 0; - } - } - n.layout = { - size: value, - mass: 0 - }; - }); - graph.eachEdge(function (e) { - e.layout = { weight: e.data.weight == null ? 1 : e.data.weight }; - }); - return graph; - }, - _initLayout: function (serie) { - var graph = this._graph; - var len = graph.nodes.length; - var minRadius = this.query(serie, 'minRadius'); - var maxRadius = this.query(serie, 'maxRadius'); - this._steps = serie.steps || 1; - var layout = this._layout; - layout.center = this.parseCenter(this.zr, serie.center); - layout.width = this.parsePercent(serie.size, this.zr.getWidth()); - layout.height = this.parsePercent(serie.size, this.zr.getHeight()); - layout.large = serie.large; - layout.scaling = serie.scaling; - layout.ratioScaling = serie.ratioScaling; - layout.gravity = serie.gravity; - layout.temperature = 1; - layout.coolDown = serie.coolDown; - layout.preventNodeEdgeOverlap = serie.preventOverlap; - layout.preventNodeOverlap = serie.preventOverlap; - var min = Infinity; - var max = -Infinity; - for (var i = 0; i < len; i++) { - var gNode = graph.nodes[i]; - max = Math.max(gNode.layout.size, max); - min = Math.min(gNode.layout.size, min); - } - var divider = max - min; - for (var i = 0; i < len; i++) { - var gNode = graph.nodes[i]; - if (divider > 0) { - gNode.layout.size = (gNode.layout.size - min) * (maxRadius - minRadius) / divider + minRadius; - gNode.layout.mass = gNode.layout.size / maxRadius; - } else { - gNode.layout.size = (maxRadius - minRadius) / 2; - gNode.layout.mass = 0.5; - } - } - for (var i = 0; i < len; i++) { - var gNode = graph.nodes[i]; - if (typeof this.__nodePositionMap[gNode.id] !== 'undefined') { - gNode.layout.position = vec2.create(); - vec2.copy(gNode.layout.position, this.__nodePositionMap[gNode.id]); - } else if (typeof gNode.data.initial !== 'undefined') { - gNode.layout.position = vec2.create(); - vec2.copy(gNode.layout.position, gNode.data.initial); - } else { - var center = this._layout.center; - var size = Math.min(this._layout.width, this._layout.height); - gNode.layout.position = _randomInSquare(center[0], center[1], size * 0.8); - } - var style = gNode.shape.style; - var radius = gNode.layout.size; - style.width = style.width || radius * 2; - style.height = style.height || radius * 2; - style.x = -style.width / 2; - style.y = -style.height / 2; - vec2.copy(gNode.shape.position, gNode.layout.position); - } - len = graph.edges.length; - max = -Infinity; - for (var i = 0; i < len; i++) { - var e = graph.edges[i]; - if (e.layout.weight > max) { - max = e.layout.weight; - } - } - for (var i = 0; i < len; i++) { - var e = graph.edges[i]; - e.layout.weight /= max; - } - this._layout.init(graph, serie.useWorker); - }, - _buildNodeShapes: function (serie, serieIdx) { - var graph = this._graph; - var categories = this.query(serie, 'categories'); - graph.eachNode(function (node) { - var category = this._getNodeCategory(serie, node.data); - var queryTarget = [ - node.data, - category, - serie - ]; - var styleQueryTarget = this._getNodeQueryTarget(serie, node.data); - var emphasisStyleQueryTarget = this._getNodeQueryTarget(serie, node.data, 'emphasis'); - var shape = new IconShape({ - style: { - x: 0, - y: 0, - color: this.deepQuery(styleQueryTarget, 'color'), - brushType: 'both', - strokeColor: this.deepQuery(styleQueryTarget, 'strokeColor') || this.deepQuery(styleQueryTarget, 'borderColor'), - lineWidth: this.deepQuery(styleQueryTarget, 'lineWidth') || this.deepQuery(styleQueryTarget, 'borderWidth') - }, - highlightStyle: { - color: this.deepQuery(emphasisStyleQueryTarget, 'color'), - strokeColor: this.deepQuery(emphasisStyleQueryTarget, 'strokeColor') || this.deepQuery(emphasisStyleQueryTarget, 'borderColor'), - lineWidth: this.deepQuery(emphasisStyleQueryTarget, 'lineWidth') || this.deepQuery(emphasisStyleQueryTarget, 'borderWidth') - }, - clickable: serie.clickable, - zlevel: this.getZlevelBase(), - z: this.getZBase() - }); - if (!shape.style.color) { - shape.style.color = category ? this.getColor(category.name) : this.getColor(node.id); - } - shape.style.iconType = this.deepQuery(queryTarget, 'symbol'); - var symbolSize = this.deepQuery(queryTarget, 'symbolSize') || 0; - if (typeof symbolSize === 'number') { - symbolSize = [ - symbolSize, - symbolSize - ]; - } - shape.style.width = symbolSize[0] * 2; - shape.style.height = symbolSize[1] * 2; - if (shape.style.iconType.match('image')) { - shape.style.image = shape.style.iconType.replace(new RegExp('^image:\\/\\/'), ''); - shape = new ImageShape({ - style: shape.style, - highlightStyle: shape.highlightStyle, - clickable: shape.clickable, - zlevel: this.getZlevelBase(), - z: this.getZBase() - }); - } - if (this.deepQuery(queryTarget, 'itemStyle.normal.label.show')) { - shape.style.text = node.data.label == null ? node.id : node.data.label; - shape.style.textPosition = this.deepQuery(queryTarget, 'itemStyle.normal.label.position'); - shape.style.textColor = this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle.color'); - shape.style.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle') || {}); - } - if (this.deepQuery(queryTarget, 'itemStyle.emphasis.label.show')) { - shape.highlightStyle.textPosition = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.position'); - shape.highlightStyle.textColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle.color'); - shape.highlightStyle.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle') || {}); - } - if (this.deepQuery(queryTarget, 'draggable')) { - this.setCalculable(shape); - shape.dragEnableTime = 0; - shape.draggable = true; - shape.ondragstart = this.shapeHandler.ondragstart; - shape.ondragover = null; - } - var categoryName = ''; - if (typeof node.category !== 'undefined') { - var category = categories[node.category]; - categoryName = category && category.name || ''; - } - ecData.pack(shape, serie, serieIdx, node.data, node.rawIndex, node.data.name || '', node.category); - this.shapeList.push(shape); - this.zr.addShape(shape); - node.shape = shape; - }, this); - }, - _buildLinkShapes: function (serie, serieIdx) { - var graph = this._graph; - var len = graph.edges.length; - for (var i = 0; i < len; i++) { - var gEdge = graph.edges[i]; - var link = gEdge.data; - var source = gEdge.node1; - var target = gEdge.node2; - var otherEdge = graph.getEdge(target, source); - var queryTarget = this._getEdgeQueryTarget(serie, link); - var linkType = this.deepQuery(queryTarget, 'type'); - if (serie.linkSymbol && serie.linkSymbol !== 'none') { - linkType = 'line'; - } - var LinkShapeCtor = linkType === 'line' ? LineShape : BezierCurveShape; - var linkShape = new LinkShapeCtor({ - style: { - xStart: 0, - yStart: 0, - xEnd: 0, - yEnd: 0 - }, - clickable: this.query(serie, 'clickable'), - highlightStyle: {}, - zlevel: this.getZlevelBase(), - z: this.getZBase() - }); - if (otherEdge && otherEdge.shape) { - linkShape.style.offset = 4; - otherEdge.shape.style.offset = 4; - } - zrUtil.merge(linkShape.style, this.query(serie, 'itemStyle.normal.linkStyle'), true); - zrUtil.merge(linkShape.highlightStyle, this.query(serie, 'itemStyle.emphasis.linkStyle'), true); - if (typeof link.itemStyle !== 'undefined') { - if (link.itemStyle.normal) { - zrUtil.merge(linkShape.style, link.itemStyle.normal, true); - } - if (link.itemStyle.emphasis) { - zrUtil.merge(linkShape.highlightStyle, link.itemStyle.emphasis, true); - } - } - linkShape.style.lineWidth = linkShape.style.lineWidth || linkShape.style.width; - linkShape.style.strokeColor = linkShape.style.strokeColor || linkShape.style.color; - linkShape.highlightStyle.lineWidth = linkShape.highlightStyle.lineWidth || linkShape.highlightStyle.width; - linkShape.highlightStyle.strokeColor = linkShape.highlightStyle.strokeColor || linkShape.highlightStyle.color; - ecData.pack(linkShape, serie, serieIdx, gEdge.data, gEdge.rawIndex == null ? i : gEdge.rawIndex, gEdge.data.name || source.id + ' - ' + target.id, source.id, target.id); - this.shapeList.push(linkShape); - this.zr.addShape(linkShape); - gEdge.shape = linkShape; - if (serie.linkSymbol && serie.linkSymbol !== 'none') { - var symbolShape = new IconShape({ - style: { - x: -5, - y: 0, - width: serie.linkSymbolSize[0], - height: serie.linkSymbolSize[1], - iconType: serie.linkSymbol, - brushType: 'fill', - color: linkShape.style.strokeColor - }, - highlightStyle: { brushType: 'fill' }, - position: [ - 0, - 0 - ], - rotation: 0, - zlevel: this.getZlevelBase(), - z: this.getZBase() - }); - linkShape._symbolShape = symbolShape; - this.shapeList.push(symbolShape); - this.zr.addShape(symbolShape); - } - } - }, - _updateLinkShapes: function () { - var v = vec2.create(); - var n = vec2.create(); - var p1 = vec2.create(); - var p2 = vec2.create(); - var edges = this._graph.edges; - for (var i = 0, len = edges.length; i < len; i++) { - var edge = edges[i]; - var sourceShape = edge.node1.shape; - var targetShape = edge.node2.shape; - vec2.copy(p1, sourceShape.position); - vec2.copy(p2, targetShape.position); - var edgeShapeStyle = edge.shape.style; - vec2.sub(v, p1, p2); - vec2.normalize(v, v); - if (edgeShapeStyle.offset) { - n[0] = v[1]; - n[1] = -v[0]; - vec2.scaleAndAdd(p1, p1, n, edgeShapeStyle.offset); - vec2.scaleAndAdd(p2, p2, n, edgeShapeStyle.offset); - } else if (edge.shape.type === 'bezier-curve') { - edgeShapeStyle.cpX1 = (p1[0] + p2[0]) / 2 - (p2[1] - p1[1]) / 4; - edgeShapeStyle.cpY1 = (p1[1] + p2[1]) / 2 - (p1[0] - p2[0]) / 4; - } - edgeShapeStyle.xStart = p1[0]; - edgeShapeStyle.yStart = p1[1]; - edgeShapeStyle.xEnd = p2[0]; - edgeShapeStyle.yEnd = p2[1]; - edge.shape.modSelf(); - if (edge.shape._symbolShape) { - var symbolShape = edge.shape._symbolShape; - vec2.copy(symbolShape.position, p2); - vec2.scaleAndAdd(symbolShape.position, symbolShape.position, v, targetShape.style.width / 2 + 2); - var angle = Math.atan2(v[1], v[0]); - symbolShape.rotation = Math.PI / 2 - angle; - symbolShape.modSelf(); - } - } - }, - _syncNodePositions: function () { - var graph = this._graph; - for (var i = 0; i < graph.nodes.length; i++) { - var gNode = graph.nodes[i]; - var position = gNode.layout.position; - var node = gNode.data; - var shape = gNode.shape; - var fixX = shape.fixed || node.fixX; - var fixY = shape.fixed || node.fixY; - if (fixX === true) { - fixX = 1; - } else if (isNaN(fixX)) { - fixX = 0; - } - if (fixY === true) { - fixY = 1; - } else if (isNaN(fixY)) { - fixY = 0; - } - shape.position[0] += (position[0] - shape.position[0]) * (1 - fixX); - shape.position[1] += (position[1] - shape.position[1]) * (1 - fixY); - vec2.copy(position, shape.position); - var nodeName = node.name; - if (nodeName) { - var gPos = this.__nodePositionMap[nodeName]; - if (!gPos) { - gPos = this.__nodePositionMap[nodeName] = vec2.create(); - } - vec2.copy(gPos, position); - } - shape.modSelf(); - } - }, - _step: function (e) { - this._syncNodePositions(); - this._updateLinkShapes(); - this.zr.refreshNextFrame(); - if (this._layout.temperature > 0.01) { - this._layout.step(this._steps); - } else { - this.messageCenter.dispatch(ecConfig.EVENT.FORCE_LAYOUT_END, {}, {}, this.myChart); - } - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = this.option.series; - } - this.legend = this.component.legend; - if (this.legend) { - this.getColor = function (param) { - return this.legend.getColor(param); - }; - this.isSelected = function (param) { - return this.legend.isSelected(param); - }; - } else { - var colorMap = {}; - var count = 0; - this.getColor = function (key) { - if (colorMap[key]) { - return colorMap[key]; - } - if (!colorMap[key]) { - colorMap[key] = this.zr.getColor(count++); - } - return colorMap[key]; - }; - this.isSelected = function () { - return true; - }; - } - this._init(); - }, - dispose: function () { - this.clear(); - this.shapeList = null; - this.effectList = null; - this._layout.dispose(); - this._layout = null; - this.__nodePositionMap = {}; - }, - getPosition: function () { - var position = []; - this._graph.eachNode(function (n) { - if (n.layout) { - position.push({ - name: n.data.name, - position: Array.prototype.slice.call(n.layout.position) - }); - } - }); - return position; - } - }; - function ondragstart(param) { - if (!this.isDragstart || !param.target) { - return; - } - var shape = param.target; - shape.fixed = true; - this.isDragstart = false; - this.zr.on(zrConfig.EVENT.MOUSEMOVE, this.onmousemove); - } - function onmousemove() { - this._layout.temperature = 0.8; - this._step(); - } - function ondragend(param, status) { - if (!this.isDragend || !param.target) { - return; - } - var shape = param.target; - shape.fixed = false; - status.dragIn = true; - status.needRefresh = false; - this.isDragend = false; - this.zr.un(zrConfig.EVENT.MOUSEMOVE, this.onmousemove); - } - function _randomInSquare(x, y, size) { - var v = vec2.create(); - v[0] = (Math.random() - 0.5) * size + x; - v[1] = (Math.random() - 0.5) * size + y; - return v; - } - zrUtil.inherits(Force, ChartBase); - require('../chart').define('force', Force); - return Force; -});define('echarts/data/Graph', [ - 'require', - 'zrender/tool/util' -], function (require) { - var util = require('zrender/tool/util'); - 'use strict'; - var Graph = function (directed) { - this._directed = directed || false; - this.nodes = []; - this.edges = []; - this._nodesMap = {}; - this._edgesMap = {}; - }; - Graph.prototype.isDirected = function () { - return this._directed; - }; - Graph.prototype.addNode = function (id, data) { - if (this._nodesMap[id]) { - return this._nodesMap[id]; - } - var node = new Graph.Node(id, data); - this.nodes.push(node); - this._nodesMap[id] = node; - return node; - }; - Graph.prototype.getNodeById = function (id) { - return this._nodesMap[id]; - }; - Graph.prototype.addEdge = function (n1, n2, data) { - if (typeof n1 == 'string') { - n1 = this._nodesMap[n1]; - } - if (typeof n2 == 'string') { - n2 = this._nodesMap[n2]; - } - if (!n1 || !n2) { - return; - } - var key = n1.id + '-' + n2.id; - if (this._edgesMap[key]) { - return this._edgesMap[key]; - } - var edge = new Graph.Edge(n1, n2, data); - if (this._directed) { - n1.outEdges.push(edge); - n2.inEdges.push(edge); - } - n1.edges.push(edge); - if (n1 !== n2) { - n2.edges.push(edge); - } - this.edges.push(edge); - this._edgesMap[key] = edge; - return edge; - }; - Graph.prototype.removeEdge = function (edge) { - var n1 = edge.node1; - var n2 = edge.node2; - var key = n1.id + '-' + n2.id; - if (this._directed) { - n1.outEdges.splice(util.indexOf(n1.outEdges, edge), 1); - n2.inEdges.splice(util.indexOf(n2.inEdges, edge), 1); - } - n1.edges.splice(util.indexOf(n1.edges, edge), 1); - if (n1 !== n2) { - n2.edges.splice(util.indexOf(n2.edges, edge), 1); - } - delete this._edgesMap[key]; - this.edges.splice(util.indexOf(this.edges, edge), 1); - }; - Graph.prototype.getEdge = function (n1, n2) { - if (typeof n1 !== 'string') { - n1 = n1.id; - } - if (typeof n2 !== 'string') { - n2 = n2.id; - } - if (this._directed) { - return this._edgesMap[n1 + '-' + n2]; - } else { - return this._edgesMap[n1 + '-' + n2] || this._edgesMap[n2 + '-' + n1]; - } - }; - Graph.prototype.removeNode = function (node) { - if (typeof node === 'string') { - node = this._nodesMap[node]; - if (!node) { - return; - } - } - delete this._nodesMap[node.id]; - this.nodes.splice(util.indexOf(this.nodes, node), 1); - for (var i = 0; i < this.edges.length;) { - var edge = this.edges[i]; - if (edge.node1 === node || edge.node2 === node) { - this.removeEdge(edge); - } else { - i++; - } - } - }; - Graph.prototype.filterNode = function (cb, context) { - var len = this.nodes.length; - for (var i = 0; i < len;) { - if (cb.call(context, this.nodes[i], i)) { - i++; - } else { - this.removeNode(this.nodes[i]); - len--; - } - } - }; - Graph.prototype.filterEdge = function (cb, context) { - var len = this.edges.length; - for (var i = 0; i < len;) { - if (cb.call(context, this.edges[i], i)) { - i++; - } else { - this.removeEdge(this.edges[i]); - len--; - } - } - }; - Graph.prototype.eachNode = function (cb, context) { - var len = this.nodes.length; - for (var i = 0; i < len; i++) { - if (this.nodes[i]) { - cb.call(context, this.nodes[i], i); - } - } - }; - Graph.prototype.eachEdge = function (cb, context) { - var len = this.edges.length; - for (var i = 0; i < len; i++) { - if (this.edges[i]) { - cb.call(context, this.edges[i], i); - } - } - }; - Graph.prototype.clear = function () { - this.nodes.length = 0; - this.edges.length = 0; - this._nodesMap = {}; - this._edgesMap = {}; - }; - Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) { - if (typeof startNode === 'string') { - startNode = this._nodesMap[startNode]; - } - if (!startNode) { - return; - } - var edgeType = 'edges'; - if (direction === 'out') { - edgeType = 'outEdges'; - } else if (direction === 'in') { - edgeType = 'inEdges'; - } - for (var i = 0; i < this.nodes.length; i++) { - this.nodes[i].__visited = false; - } - if (cb.call(context, startNode, null)) { - return; - } - var queue = [startNode]; - while (queue.length) { - var currentNode = queue.shift(); - var edges = currentNode[edgeType]; - for (var i = 0; i < edges.length; i++) { - var e = edges[i]; - var otherNode = e.node1 === currentNode ? e.node2 : e.node1; - if (!otherNode.__visited) { - if (cb.call(otherNode, otherNode, currentNode)) { - return; - } - queue.push(otherNode); - otherNode.__visited = true; - } - } - } - }; - Graph.prototype.clone = function () { - var graph = new Graph(this._directed); - for (var i = 0; i < this.nodes.length; i++) { - graph.addNode(this.nodes[i].id, this.nodes[i].data); - } - for (var i = 0; i < this.edges.length; i++) { - var e = this.edges[i]; - graph.addEdge(e.node1.id, e.node2.id, e.data); - } - return graph; - }; - var Node = function (id, data) { - this.id = id; - this.data = data || null; - this.inEdges = []; - this.outEdges = []; - this.edges = []; - }; - Node.prototype.degree = function () { - return this.edges.length; - }; - Node.prototype.inDegree = function () { - return this.inEdges.length; - }; - Node.prototype.outDegree = function () { - return this.outEdges.length; - }; - var Edge = function (node1, node2, data) { - this.node1 = node1; - this.node2 = node2; - this.data = data || null; - }; - Graph.Node = Node; - Graph.Edge = Edge; - Graph.fromMatrix = function (nodesData, matrix, directed) { - if (!matrix || !matrix.length || matrix[0].length !== matrix.length || nodesData.length !== matrix.length) { - return; - } - var size = matrix.length; - var graph = new Graph(directed); - for (var i = 0; i < size; i++) { - var node = graph.addNode(nodesData[i].id, nodesData[i]); - node.data.value = 0; - if (directed) { - node.data.outValue = node.data.inValue = 0; - } - } - for (var i = 0; i < size; i++) { - for (var j = 0; j < size; j++) { - var item = matrix[i][j]; - if (directed) { - graph.nodes[i].data.outValue += item; - graph.nodes[j].data.inValue += item; - } - graph.nodes[i].data.value += item; - graph.nodes[j].data.value += item; - } - } - for (var i = 0; i < size; i++) { - for (var j = i; j < size; j++) { - var item = matrix[i][j]; - if (item === 0) { - continue; - } - var n1 = graph.nodes[i]; - var n2 = graph.nodes[j]; - var edge = graph.addEdge(n1, n2, {}); - edge.data.weight = item; - if (i !== j) { - if (directed && matrix[j][i]) { - var inEdge = graph.addEdge(n2, n1, {}); - inEdge.data.weight = matrix[j][i]; - } - } - } - } - return graph; - }; - return Graph; -});define('echarts/layout/Force', [ - 'require', - './forceLayoutWorker', - 'zrender/tool/vector' -], function (require) { - var ForceLayoutWorker = require('./forceLayoutWorker'); - var vec2 = require('zrender/tool/vector'); - var requestAnimationFrame = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (func) { - setTimeout(func, 16); - }; - var ArrayCtor = typeof Float32Array == 'undefined' ? Array : Float32Array; - var workerUrl; - function createWorkerUrl() { - if (typeof Worker !== 'undefined' && typeof Blob !== 'undefined') { - try { - var blob = new Blob([ForceLayoutWorker.getWorkerCode()]); - workerUrl = window.URL.createObjectURL(blob); - } catch (e) { - workerUrl = ''; - } - } - return workerUrl; - } - var ForceLayout = function (opts) { - if (typeof workerUrl === 'undefined') { - createWorkerUrl(); - } - opts = opts || {}; - this.width = opts.width || 500; - this.height = opts.height || 500; - this.center = opts.center || [ - this.width / 2, - this.height / 2 - ]; - this.ratioScaling = opts.ratioScaling || false; - this.scaling = opts.scaling || 1; - this.gravity = typeof opts.gravity !== 'undefined' ? opts.gravity : 1; - this.large = opts.large || false; - this.preventNodeOverlap = opts.preventNodeOverlap || false; - this.preventNodeEdgeOverlap = opts.preventNodeEdgeOverlap || false; - this.maxSpeedIncrease = opts.maxSpeedIncrease || 1; - this.onupdate = opts.onupdate || function () { - }; - this.temperature = opts.temperature || 1; - this.coolDown = opts.coolDown || 0.99; - this._layout = null; - this._layoutWorker = null; - var self = this; - var _$onupdate = this._$onupdate; - this._$onupdate = function (e) { - _$onupdate.call(self, e); - }; - }; - ForceLayout.prototype.updateConfig = function () { - var width = this.width; - var height = this.height; - var size = Math.min(width, height); - var config = { - center: this.center, - width: this.ratioScaling ? width : size, - height: this.ratioScaling ? height : size, - scaling: this.scaling || 1, - gravity: this.gravity || 1, - barnesHutOptimize: this.large, - preventNodeOverlap: this.preventNodeOverlap, - preventNodeEdgeOverlap: this.preventNodeEdgeOverlap, - maxSpeedIncrease: this.maxSpeedIncrease - }; - if (this._layoutWorker) { - this._layoutWorker.postMessage({ - cmd: 'updateConfig', - config: config - }); - } else { - for (var name in config) { - this._layout[name] = config[name]; - } - } - }; - ForceLayout.prototype.init = function (graph, useWorker) { - if (this._layoutWorker) { - this._layoutWorker.terminate(); - this._layoutWorker = null; - } - if (workerUrl && useWorker) { - try { - if (!this._layoutWorker) { - this._layoutWorker = new Worker(workerUrl); - this._layoutWorker.onmessage = this._$onupdate; - } - this._layout = null; - } catch (e) { - this._layoutWorker = null; - if (!this._layout) { - this._layout = new ForceLayoutWorker(); - } - } - } else { - if (!this._layout) { - this._layout = new ForceLayoutWorker(); - } - } - this.temperature = 1; - this.graph = graph; - var len = graph.nodes.length; - var positionArr = new ArrayCtor(len * 2); - var massArr = new ArrayCtor(len); - var sizeArr = new ArrayCtor(len); - for (var i = 0; i < len; i++) { - var n = graph.nodes[i]; - positionArr[i * 2] = n.layout.position[0]; - positionArr[i * 2 + 1] = n.layout.position[1]; - massArr[i] = typeof n.layout.mass === 'undefined' ? 1 : n.layout.mass; - sizeArr[i] = typeof n.layout.size === 'undefined' ? 1 : n.layout.size; - n.layout.__index = i; - } - len = graph.edges.length; - var edgeArr = new ArrayCtor(len * 2); - var edgeWeightArr = new ArrayCtor(len); - for (var i = 0; i < len; i++) { - var edge = graph.edges[i]; - edgeArr[i * 2] = edge.node1.layout.__index; - edgeArr[i * 2 + 1] = edge.node2.layout.__index; - edgeWeightArr[i] = edge.layout.weight || 1; - } - if (this._layoutWorker) { - this._layoutWorker.postMessage({ - cmd: 'init', - nodesPosition: positionArr, - nodesMass: massArr, - nodesSize: sizeArr, - edges: edgeArr, - edgesWeight: edgeWeightArr - }); - } else { - this._layout.initNodes(positionArr, massArr, sizeArr); - this._layout.initEdges(edgeArr, edgeWeightArr); - } - this.updateConfig(); - }; - ForceLayout.prototype.step = function (steps) { - var nodes = this.graph.nodes; - if (this._layoutWorker) { - var positionArr = new ArrayCtor(nodes.length * 2); - for (var i = 0; i < nodes.length; i++) { - var n = nodes[i]; - positionArr[i * 2] = n.layout.position[0]; - positionArr[i * 2 + 1] = n.layout.position[1]; - } - this._layoutWorker.postMessage(positionArr.buffer, [positionArr.buffer]); - this._layoutWorker.postMessage({ - cmd: 'update', - steps: steps, - temperature: this.temperature, - coolDown: this.coolDown - }); - for (var i = 0; i < steps; i++) { - this.temperature *= this.coolDown; - } - } else { - requestAnimationFrame(this._$onupdate); - for (var i = 0; i < nodes.length; i++) { - var n = nodes[i]; - vec2.copy(this._layout.nodes[i].position, n.layout.position); - } - for (var i = 0; i < steps; i++) { - this._layout.temperature = this.temperature; - this._layout.update(); - this.temperature *= this.coolDown; - } - } - }; - ForceLayout.prototype._$onupdate = function (e) { - if (this._layoutWorker) { - var positionArr = new Float32Array(e.data); - for (var i = 0; i < this.graph.nodes.length; i++) { - var n = this.graph.nodes[i]; - n.layout.position[0] = positionArr[i * 2]; - n.layout.position[1] = positionArr[i * 2 + 1]; - } - this.onupdate && this.onupdate(); - } else if (this._layout) { - for (var i = 0; i < this.graph.nodes.length; i++) { - var n = this.graph.nodes[i]; - vec2.copy(n.layout.position, this._layout.nodes[i].position); - } - this.onupdate && this.onupdate(); - } - }; - ForceLayout.prototype.dispose = function () { - if (this._layoutWorker) { - this._layoutWorker.terminate(); - } - this._layoutWorker = null; - this._layout = null; - }; - return ForceLayout; -});define('echarts/layout/forceLayoutWorker', [ - 'require', - 'zrender/tool/vector' -], function __echartsForceLayoutWorker(require) { - 'use strict'; - var vec2; - var inWorker = typeof window === 'undefined' && typeof require === 'undefined'; - if (inWorker) { - vec2 = { - create: function (x, y) { - var out = new Float32Array(2); - out[0] = x || 0; - out[1] = y || 0; - return out; - }, - dist: function (a, b) { - var x = b[0] - a[0]; - var y = b[1] - a[1]; - return Math.sqrt(x * x + y * y); - }, - len: function (a) { - var x = a[0]; - var y = a[1]; - return Math.sqrt(x * x + y * y); - }, - scaleAndAdd: function (out, a, b, scale) { - out[0] = a[0] + b[0] * scale; - out[1] = a[1] + b[1] * scale; - return out; - }, - scale: function (out, a, b) { - out[0] = a[0] * b; - out[1] = a[1] * b; - return out; - }, - add: function (out, a, b) { - out[0] = a[0] + b[0]; - out[1] = a[1] + b[1]; - return out; - }, - sub: function (out, a, b) { - out[0] = a[0] - b[0]; - out[1] = a[1] - b[1]; - return out; - }, - dot: function (v1, v2) { - return v1[0] * v2[0] + v1[1] * v2[1]; - }, - normalize: function (out, a) { - var x = a[0]; - var y = a[1]; - var len = x * x + y * y; - if (len > 0) { - len = 1 / Math.sqrt(len); - out[0] = a[0] * len; - out[1] = a[1] * len; - } - return out; - }, - negate: function (out, a) { - out[0] = -a[0]; - out[1] = -a[1]; - return out; - }, - copy: function (out, a) { - out[0] = a[0]; - out[1] = a[1]; - return out; - }, - set: function (out, x, y) { - out[0] = x; - out[1] = y; - return out; - } - }; - } else { - vec2 = require('zrender/tool/vector'); - } - var ArrayCtor = typeof Float32Array == 'undefined' ? Array : Float32Array; - function Region() { - this.subRegions = []; - this.nSubRegions = 0; - this.node = null; - this.mass = 0; - this.centerOfMass = null; - this.bbox = new ArrayCtor(4); - this.size = 0; - } - Region.prototype.beforeUpdate = function () { - for (var i = 0; i < this.nSubRegions; i++) { - this.subRegions[i].beforeUpdate(); - } - this.mass = 0; - if (this.centerOfMass) { - this.centerOfMass[0] = 0; - this.centerOfMass[1] = 0; - } - this.nSubRegions = 0; - this.node = null; - }; - Region.prototype.afterUpdate = function () { - this.subRegions.length = this.nSubRegions; - for (var i = 0; i < this.nSubRegions; i++) { - this.subRegions[i].afterUpdate(); - } - }; - Region.prototype.addNode = function (node) { - if (this.nSubRegions === 0) { - if (this.node == null) { - this.node = node; - return; - } else { - this._addNodeToSubRegion(this.node); - this.node = null; - } - } - this._addNodeToSubRegion(node); - this._updateCenterOfMass(node); - }; - Region.prototype.findSubRegion = function (x, y) { - for (var i = 0; i < this.nSubRegions; i++) { - var region = this.subRegions[i]; - if (region.contain(x, y)) { - return region; - } - } - }; - Region.prototype.contain = function (x, y) { - return this.bbox[0] <= x && this.bbox[2] >= x && this.bbox[1] <= y && this.bbox[3] >= y; - }; - Region.prototype.setBBox = function (minX, minY, maxX, maxY) { - this.bbox[0] = minX; - this.bbox[1] = minY; - this.bbox[2] = maxX; - this.bbox[3] = maxY; - this.size = (maxX - minX + maxY - minY) / 2; - }; - Region.prototype._newSubRegion = function () { - var subRegion = this.subRegions[this.nSubRegions]; - if (!subRegion) { - subRegion = new Region(); - this.subRegions[this.nSubRegions] = subRegion; - } - this.nSubRegions++; - return subRegion; - }; - Region.prototype._addNodeToSubRegion = function (node) { - var subRegion = this.findSubRegion(node.position[0], node.position[1]); - var bbox = this.bbox; - if (!subRegion) { - var cx = (bbox[0] + bbox[2]) / 2; - var cy = (bbox[1] + bbox[3]) / 2; - var w = (bbox[2] - bbox[0]) / 2; - var h = (bbox[3] - bbox[1]) / 2; - var xi = node.position[0] >= cx ? 1 : 0; - var yi = node.position[1] >= cy ? 1 : 0; - var subRegion = this._newSubRegion(); - subRegion.setBBox(xi * w + bbox[0], yi * h + bbox[1], (xi + 1) * w + bbox[0], (yi + 1) * h + bbox[1]); - } - subRegion.addNode(node); - }; - Region.prototype._updateCenterOfMass = function (node) { - if (this.centerOfMass == null) { - this.centerOfMass = vec2.create(); - } - var x = this.centerOfMass[0] * this.mass; - var y = this.centerOfMass[1] * this.mass; - x += node.position[0] * node.mass; - y += node.position[1] * node.mass; - this.mass += node.mass; - this.centerOfMass[0] = x / this.mass; - this.centerOfMass[1] = y / this.mass; - }; - function GraphNode() { - this.position = vec2.create(); - this.force = vec2.create(); - this.forcePrev = vec2.create(); - this.speed = vec2.create(); - this.speedPrev = vec2.create(); - this.mass = 1; - this.inDegree = 0; - this.outDegree = 0; - } - function GraphEdge(node1, node2) { - this.node1 = node1; - this.node2 = node2; - this.weight = 1; - } - function ForceLayout() { - this.barnesHutOptimize = false; - this.barnesHutTheta = 1.5; - this.repulsionByDegree = false; - this.preventNodeOverlap = false; - this.preventNodeEdgeOverlap = false; - this.strongGravity = true; - this.gravity = 1; - this.scaling = 1; - this.edgeWeightInfluence = 1; - this.center = [ - 0, - 0 - ]; - this.width = 500; - this.height = 500; - this.maxSpeedIncrease = 1; - this.nodes = []; - this.edges = []; - this.bbox = new ArrayCtor(4); - this._rootRegion = new Region(); - this._rootRegion.centerOfMass = vec2.create(); - this._massArr = null; - this._k = 0; - } - ForceLayout.prototype.nodeToNodeRepulsionFactor = function (mass, d, k) { - return k * k * mass / d; - }; - ForceLayout.prototype.edgeToNodeRepulsionFactor = function (mass, d, k) { - return k * mass / d; - }; - ForceLayout.prototype.attractionFactor = function (w, d, k) { - return w * d / k; - }; - ForceLayout.prototype.initNodes = function (positionArr, massArr, sizeArr) { - this.temperature = 1; - var nNodes = positionArr.length / 2; - this.nodes.length = 0; - var haveSize = typeof sizeArr !== 'undefined'; - for (var i = 0; i < nNodes; i++) { - var node = new GraphNode(); - node.position[0] = positionArr[i * 2]; - node.position[1] = positionArr[i * 2 + 1]; - node.mass = massArr[i]; - if (haveSize) { - node.size = sizeArr[i]; - } - this.nodes.push(node); - } - this._massArr = massArr; - if (haveSize) { - this._sizeArr = sizeArr; - } - }; - ForceLayout.prototype.initEdges = function (edgeArr, edgeWeightArr) { - var nEdges = edgeArr.length / 2; - this.edges.length = 0; - var edgeHaveWeight = typeof edgeWeightArr !== 'undefined'; - for (var i = 0; i < nEdges; i++) { - var sIdx = edgeArr[i * 2]; - var tIdx = edgeArr[i * 2 + 1]; - var sNode = this.nodes[sIdx]; - var tNode = this.nodes[tIdx]; - if (!sNode || !tNode) { - continue; - } - sNode.outDegree++; - tNode.inDegree++; - var edge = new GraphEdge(sNode, tNode); - if (edgeHaveWeight) { - edge.weight = edgeWeightArr[i]; - } - this.edges.push(edge); - } - }; - ForceLayout.prototype.update = function () { - var nNodes = this.nodes.length; - this.updateBBox(); - this._k = 0.4 * this.scaling * Math.sqrt(this.width * this.height / nNodes); - if (this.barnesHutOptimize) { - this._rootRegion.setBBox(this.bbox[0], this.bbox[1], this.bbox[2], this.bbox[3]); - this._rootRegion.beforeUpdate(); - for (var i = 0; i < nNodes; i++) { - this._rootRegion.addNode(this.nodes[i]); - } - this._rootRegion.afterUpdate(); - } else { - var mass = 0; - var centerOfMass = this._rootRegion.centerOfMass; - vec2.set(centerOfMass, 0, 0); - for (var i = 0; i < nNodes; i++) { - var node = this.nodes[i]; - mass += node.mass; - vec2.scaleAndAdd(centerOfMass, centerOfMass, node.position, node.mass); - } - if (mass > 0) { - vec2.scale(centerOfMass, centerOfMass, 1 / mass); - } - } - this.updateForce(); - this.updatePosition(); - }; - ForceLayout.prototype.updateForce = function () { - var nNodes = this.nodes.length; - for (var i = 0; i < nNodes; i++) { - var node = this.nodes[i]; - vec2.copy(node.forcePrev, node.force); - vec2.copy(node.speedPrev, node.speed); - vec2.set(node.force, 0, 0); - } - this.updateNodeNodeForce(); - if (this.gravity > 0) { - this.updateGravityForce(); - } - this.updateEdgeForce(); - if (this.preventNodeEdgeOverlap) { - this.updateNodeEdgeForce(); - } - }; - ForceLayout.prototype.updatePosition = function () { - var nNodes = this.nodes.length; - var v = vec2.create(); - for (var i = 0; i < nNodes; i++) { - var node = this.nodes[i]; - var speed = node.speed; - vec2.scale(node.force, node.force, 1 / 30); - var df = vec2.len(node.force) + 0.1; - var scale = Math.min(df, 500) / df; - vec2.scale(node.force, node.force, scale); - vec2.add(speed, speed, node.force); - vec2.scale(speed, speed, this.temperature); - vec2.sub(v, speed, node.speedPrev); - var swing = vec2.len(v); - if (swing > 0) { - vec2.scale(v, v, 1 / swing); - var base = vec2.len(node.speedPrev); - if (base > 0) { - swing = Math.min(swing / base, this.maxSpeedIncrease) * base; - vec2.scaleAndAdd(speed, node.speedPrev, v, swing); - } - } - var ds = vec2.len(speed); - var scale = Math.min(ds, 100) / (ds + 0.1); - vec2.scale(speed, speed, scale); - vec2.add(node.position, node.position, speed); - } - }; - ForceLayout.prototype.updateNodeNodeForce = function () { - var nNodes = this.nodes.length; - for (var i = 0; i < nNodes; i++) { - var na = this.nodes[i]; - if (this.barnesHutOptimize) { - this.applyRegionToNodeRepulsion(this._rootRegion, na); - } else { - for (var j = i + 1; j < nNodes; j++) { - var nb = this.nodes[j]; - this.applyNodeToNodeRepulsion(na, nb, false); - } - } - } - }; - ForceLayout.prototype.updateGravityForce = function () { - for (var i = 0; i < this.nodes.length; i++) { - this.applyNodeGravity(this.nodes[i]); - } - }; - ForceLayout.prototype.updateEdgeForce = function () { - for (var i = 0; i < this.edges.length; i++) { - this.applyEdgeAttraction(this.edges[i]); - } - }; - ForceLayout.prototype.updateNodeEdgeForce = function () { - for (var i = 0; i < this.nodes.length; i++) { - for (var j = 0; j < this.edges.length; j++) { - this.applyEdgeToNodeRepulsion(this.edges[j], this.nodes[i]); - } - } - }; - ForceLayout.prototype.applyRegionToNodeRepulsion = function () { - var v = vec2.create(); - return function applyRegionToNodeRepulsion(region, node) { - if (region.node) { - this.applyNodeToNodeRepulsion(region.node, node, true); - } else { - if (region.mass === 0 && node.mass === 0) { - return; - } - vec2.sub(v, node.position, region.centerOfMass); - var d2 = v[0] * v[0] + v[1] * v[1]; - if (d2 > this.barnesHutTheta * region.size * region.size) { - var factor = this._k * this._k * (node.mass + region.mass) / (d2 + 1); - vec2.scaleAndAdd(node.force, node.force, v, factor * 2); - } else { - for (var i = 0; i < region.nSubRegions; i++) { - this.applyRegionToNodeRepulsion(region.subRegions[i], node); - } - } - } - }; - }(); - ForceLayout.prototype.applyNodeToNodeRepulsion = function () { - var v = vec2.create(); - return function applyNodeToNodeRepulsion(na, nb, oneWay) { - if (na === nb) { - return; - } - if (na.mass === 0 && nb.mass === 0) { - return; - } - vec2.sub(v, na.position, nb.position); - var d2 = v[0] * v[0] + v[1] * v[1]; - if (d2 === 0) { - return; - } - var factor; - var mass = na.mass + nb.mass; - var d = Math.sqrt(d2); - vec2.scale(v, v, 1 / d); - if (this.preventNodeOverlap) { - d = d - na.size - nb.size; - if (d > 0) { - factor = this.nodeToNodeRepulsionFactor(mass, d, this._k); - } else if (d <= 0) { - factor = this._k * this._k * 10 * mass; - } - } else { - factor = this.nodeToNodeRepulsionFactor(mass, d, this._k); - } - if (!oneWay) { - vec2.scaleAndAdd(na.force, na.force, v, factor * 2); - } - vec2.scaleAndAdd(nb.force, nb.force, v, -factor * 2); - }; - }(); - ForceLayout.prototype.applyEdgeAttraction = function () { - var v = vec2.create(); - return function applyEdgeAttraction(edge) { - var na = edge.node1; - var nb = edge.node2; - vec2.sub(v, na.position, nb.position); - var d = vec2.len(v); - var w; - if (this.edgeWeightInfluence === 0) { - w = 1; - } else if (this.edgeWeightInfluence == 1) { - w = edge.weight; - } else { - w = Math.pow(edge.weight, this.edgeWeightInfluence); - } - var factor; - if (this.preventOverlap) { - d = d - na.size - nb.size; - if (d <= 0) { - return; - } - } - var factor = this.attractionFactor(w, d, this._k); - vec2.scaleAndAdd(na.force, na.force, v, -factor); - vec2.scaleAndAdd(nb.force, nb.force, v, factor); - }; - }(); - ForceLayout.prototype.applyNodeGravity = function () { - var v = vec2.create(); - return function (node) { - vec2.sub(v, this.center, node.position); - if (this.width > this.height) { - v[1] *= this.width / this.height; - } else { - v[0] *= this.height / this.width; - } - var d = vec2.len(v) / 100; - if (this.strongGravity) { - vec2.scaleAndAdd(node.force, node.force, v, d * this.gravity * node.mass); - } else { - vec2.scaleAndAdd(node.force, node.force, v, this.gravity * node.mass / (d + 1)); - } - }; - }(); - ForceLayout.prototype.applyEdgeToNodeRepulsion = function () { - var v12 = vec2.create(); - var v13 = vec2.create(); - var p = vec2.create(); - return function (e, n3) { - var n1 = e.node1; - var n2 = e.node2; - if (n1 === n3 || n2 === n3) { - return; - } - vec2.sub(v12, n2.position, n1.position); - vec2.sub(v13, n3.position, n1.position); - var len12 = vec2.len(v12); - vec2.scale(v12, v12, 1 / len12); - var len = vec2.dot(v12, v13); - if (len < 0 || len > len12) { - return; - } - vec2.scaleAndAdd(p, n1.position, v12, len); - var dist = vec2.dist(p, n3.position) - n3.size; - var factor = this.edgeToNodeRepulsionFactor(n3.mass, Math.max(dist, 0.1), 100); - vec2.sub(v12, n3.position, p); - vec2.normalize(v12, v12); - vec2.scaleAndAdd(n3.force, n3.force, v12, factor); - vec2.scaleAndAdd(n1.force, n1.force, v12, -factor); - vec2.scaleAndAdd(n2.force, n2.force, v12, -factor); - }; - }(); - ForceLayout.prototype.updateBBox = function () { - var minX = Infinity; - var minY = Infinity; - var maxX = -Infinity; - var maxY = -Infinity; - for (var i = 0; i < this.nodes.length; i++) { - var pos = this.nodes[i].position; - minX = Math.min(minX, pos[0]); - minY = Math.min(minY, pos[1]); - maxX = Math.max(maxX, pos[0]); - maxY = Math.max(maxY, pos[1]); - } - this.bbox[0] = minX; - this.bbox[1] = minY; - this.bbox[2] = maxX; - this.bbox[3] = maxY; - }; - ForceLayout.getWorkerCode = function () { - var str = __echartsForceLayoutWorker.toString(); - return str.slice(str.indexOf('{') + 1, str.lastIndexOf('return')); - }; - if (inWorker) { - var forceLayout = null; - self.onmessage = function (e) { - if (e.data instanceof ArrayBuffer) { - if (!forceLayout) - return; - var positionArr = new Float32Array(e.data); - var nNodes = positionArr.length / 2; - for (var i = 0; i < nNodes; i++) { - var node = forceLayout.nodes[i]; - node.position[0] = positionArr[i * 2]; - node.position[1] = positionArr[i * 2 + 1]; - } - return; - } - switch (e.data.cmd) { - case 'init': - if (!forceLayout) { - forceLayout = new ForceLayout(); - } - forceLayout.initNodes(e.data.nodesPosition, e.data.nodesMass, e.data.nodesSize); - forceLayout.initEdges(e.data.edges, e.data.edgesWeight); - break; - case 'updateConfig': - if (forceLayout) { - for (var name in e.data.config) { - forceLayout[name] = e.data.config[name]; - } - } - break; - case 'update': - var steps = e.data.steps; - if (forceLayout) { - var nNodes = forceLayout.nodes.length; - var positionArr = new Float32Array(nNodes * 2); - forceLayout.temperature = e.data.temperature; - for (var i = 0; i < steps; i++) { - forceLayout.update(); - forceLayout.temperature *= e.data.coolDown; - } - for (var i = 0; i < nNodes; i++) { - var node = forceLayout.nodes[i]; - positionArr[i * 2] = node.position[0]; - positionArr[i * 2 + 1] = node.position[1]; - } - self.postMessage(positionArr.buffer, [positionArr.buffer]); - } else { - var emptyArr = new Float32Array(); - self.postMessage(emptyArr.buffer, [emptyArr.buffer]); - } - break; - } - }; - } - return ForceLayout; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/funnel.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/funnel.js deleted file mode 100644 index ea6a276..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/funnel.js +++ /dev/null @@ -1,553 +0,0 @@ -define('echarts/chart/funnel', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Line', - 'zrender/shape/Polygon', - '../config', - '../util/ecData', - '../util/number', - 'zrender/tool/util', - 'zrender/tool/color', - 'zrender/tool/area', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var PolygonShape = require('zrender/shape/Polygon'); - var ecConfig = require('../config'); - ecConfig.funnel = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - x: 80, - y: 60, - x2: 80, - y2: 60, - min: 0, - max: 100, - minSize: '0%', - maxSize: '100%', - sort: 'descending', - gap: 0, - funnelAlign: 'center', - itemStyle: { - normal: { - borderColor: '#fff', - borderWidth: 1, - label: { - show: true, - position: 'outer' - }, - labelLine: { - show: true, - length: 10, - lineStyle: { - width: 1, - type: 'solid' - } - } - }, - emphasis: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - label: { show: true }, - labelLine: { show: true } - } - } - }; - var ecData = require('../util/ecData'); - var number = require('../util/number'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - var zrArea = require('zrender/tool/area'); - function Funnel(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Funnel.prototype = { - type: ecConfig.CHART_TYPE_FUNNEL, - _buildShape: function () { - var series = this.series; - var legend = this.component.legend; - this._paramsMap = {}; - this._selected = {}; - this.selectedMap = {}; - var serieName; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === ecConfig.CHART_TYPE_FUNNEL) { - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - serieName = series[i].name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (!this.selectedMap[serieName]) { - continue; - } - this._buildSingleFunnel(i); - this.buildMark(i); - } - } - this.addShapeList(); - }, - _buildSingleFunnel: function (seriesIndex) { - var legend = this.component.legend; - var serie = this.series[seriesIndex]; - var data = this._mapData(seriesIndex); - var location = this._getLocation(seriesIndex); - this._paramsMap[seriesIndex] = { - location: location, - data: data - }; - var itemName; - var total = 0; - var selectedData = []; - for (var i = 0, l = data.length; i < l; i++) { - itemName = data[i].name; - this.selectedMap[itemName] = legend ? legend.isSelected(itemName) : true; - if (this.selectedMap[itemName] && !isNaN(data[i].value)) { - selectedData.push(data[i]); - total++; - } - } - if (total === 0) { - return; - } - var funnelCase = this._buildFunnelCase(seriesIndex); - var align = serie.funnelAlign; - var gap = serie.gap; - var height = total > 1 ? (location.height - (total - 1) * gap) / total : location.height; - var width; - var lastY = location.y; - var lastWidth = serie.sort === 'descending' ? this._getItemWidth(seriesIndex, selectedData[0].value) : number.parsePercent(serie.minSize, location.width); - var next = serie.sort === 'descending' ? 1 : 0; - var centerX = location.centerX; - var pointList = []; - var x; - var polygon; - var lastPolygon; - for (var i = 0, l = selectedData.length; i < l; i++) { - itemName = selectedData[i].name; - if (this.selectedMap[itemName] && !isNaN(selectedData[i].value)) { - width = i <= l - 2 ? this._getItemWidth(seriesIndex, selectedData[i + next].value) : serie.sort === 'descending' ? number.parsePercent(serie.minSize, location.width) : number.parsePercent(serie.maxSize, location.width); - switch (align) { - case 'left': - x = location.x; - break; - case 'right': - x = location.x + location.width - lastWidth; - break; - default: - x = centerX - lastWidth / 2; - } - polygon = this._buildItem(seriesIndex, selectedData[i]._index, legend ? legend.getColor(itemName) : this.zr.getColor(selectedData[i]._index), x, lastY, lastWidth, width, height, align); - lastY += height + gap; - lastPolygon = polygon.style.pointList; - pointList.unshift([ - lastPolygon[0][0] - 10, - lastPolygon[0][1] - ]); - pointList.push([ - lastPolygon[1][0] + 10, - lastPolygon[1][1] - ]); - if (i === 0) { - if (lastWidth === 0) { - lastPolygon = pointList.pop(); - align == 'center' && (pointList[0][0] += 10); - align == 'right' && (pointList[0][0] = lastPolygon[0]); - pointList[0][1] -= align == 'center' ? 10 : 15; - if (l == 1) { - lastPolygon = polygon.style.pointList; - } - } else { - pointList[pointList.length - 1][1] -= 5; - pointList[0][1] -= 5; - } - } - lastWidth = width; - } - } - if (funnelCase) { - pointList.unshift([ - lastPolygon[3][0] - 10, - lastPolygon[3][1] - ]); - pointList.push([ - lastPolygon[2][0] + 10, - lastPolygon[2][1] - ]); - if (lastWidth === 0) { - lastPolygon = pointList.pop(); - align == 'center' && (pointList[0][0] += 10); - align == 'right' && (pointList[0][0] = lastPolygon[0]); - pointList[0][1] += align == 'center' ? 10 : 15; - } else { - pointList[pointList.length - 1][1] += 5; - pointList[0][1] += 5; - } - funnelCase.style.pointList = pointList; - } - }, - _buildFunnelCase: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (this.deepQuery([ - serie, - this.option - ], 'calculable')) { - var location = this._paramsMap[seriesIndex].location; - var gap = 10; - var funnelCase = { - hoverable: false, - style: { - pointListd: [ - [ - location.x - gap, - location.y - gap - ], - [ - location.x + location.width + gap, - location.y - gap - ], - [ - location.x + location.width + gap, - location.y + location.height + gap - ], - [ - location.x - gap, - location.y + location.height + gap - ] - ], - brushType: 'stroke', - lineWidth: 1, - strokeColor: serie.calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor - } - }; - ecData.pack(funnelCase, serie, seriesIndex, undefined, -1); - this.setCalculable(funnelCase); - funnelCase = new PolygonShape(funnelCase); - this.shapeList.push(funnelCase); - return funnelCase; - } - }, - _getLocation: function (seriesIndex) { - var gridOption = this.series[seriesIndex]; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - var x = this.parsePercent(gridOption.x, zrWidth); - var y = this.parsePercent(gridOption.y, zrHeight); - var width = gridOption.width == null ? zrWidth - x - this.parsePercent(gridOption.x2, zrWidth) : this.parsePercent(gridOption.width, zrWidth); - return { - x: x, - y: y, - width: width, - height: gridOption.height == null ? zrHeight - y - this.parsePercent(gridOption.y2, zrHeight) : this.parsePercent(gridOption.height, zrHeight), - centerX: x + width / 2 - }; - }, - _mapData: function (seriesIndex) { - var serie = this.series[seriesIndex]; - var funnelData = zrUtil.clone(serie.data); - for (var i = 0, l = funnelData.length; i < l; i++) { - funnelData[i]._index = i; - } - function numDescending(a, b) { - if (a.value === '-') { - return 1; - } else if (b.value === '-') { - return -1; - } - return b.value - a.value; - } - function numAscending(a, b) { - return -numDescending(a, b); - } - if (serie.sort != 'none') { - funnelData.sort(serie.sort === 'descending' ? numDescending : numAscending); - } - return funnelData; - }, - _buildItem: function (seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var polygon = this.getPolygon(seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align); - ecData.pack(polygon, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name); - this.shapeList.push(polygon); - var label = this.getLabel(seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align); - ecData.pack(label, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name); - this.shapeList.push(label); - if (!this._needLabel(serie, data, false)) { - label.invisible = true; - } - var labelLine = this.getLabelLine(seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align); - this.shapeList.push(labelLine); - if (!this._needLabelLine(serie, data, false)) { - labelLine.invisible = true; - } - var polygonHoverConnect = []; - var labelHoverConnect = []; - if (this._needLabelLine(serie, data, true)) { - polygonHoverConnect.push(labelLine.id); - labelHoverConnect.push(labelLine.id); - } - if (this._needLabel(serie, data, true)) { - polygonHoverConnect.push(label.id); - labelHoverConnect.push(polygon.id); - } - polygon.hoverConnect = polygonHoverConnect; - label.hoverConnect = labelHoverConnect; - return polygon; - }, - _getItemWidth: function (seriesIndex, value) { - var serie = this.series[seriesIndex]; - var location = this._paramsMap[seriesIndex].location; - var min = serie.min; - var max = serie.max; - var minSize = number.parsePercent(serie.minSize, location.width); - var maxSize = number.parsePercent(serie.maxSize, location.width); - return (value - min) * (maxSize - minSize) / (max - min) + minSize; - }, - getPolygon: function (seriesIndex, dataIndex, defaultColor, xLT, y, topWidth, bottomWidth, height, align) { - var serie = this.series[seriesIndex]; - var data = serie.data[dataIndex]; - var queryTarget = [ - data, - serie - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor; - var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor); - var xLB; - switch (align) { - case 'left': - xLB = xLT; - break; - case 'right': - xLB = xLT + (topWidth - bottomWidth); - break; - default: - xLB = xLT + (topWidth - bottomWidth) / 2; - break; - } - var polygon = { - zlevel: serie.zlevel, - z: serie.z, - clickable: this.deepQuery(queryTarget, 'clickable'), - style: { - pointList: [ - [ - xLT, - y - ], - [ - xLT + topWidth, - y - ], - [ - xLB + bottomWidth, - y + height - ], - [ - xLB, - y + height - ] - ], - brushType: 'both', - color: normalColor, - lineWidth: normal.borderWidth, - strokeColor: normal.borderColor - }, - highlightStyle: { - color: emphasisColor, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor - } - }; - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - this.setCalculable(polygon); - polygon.draggable = true; - } - return new PolygonShape(polygon); - }, - getLabel: function (seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align) { - var serie = this.series[seriesIndex]; - var data = serie.data[dataIndex]; - var location = this._paramsMap[seriesIndex].location; - var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle); - var status = 'normal'; - var labelControl = itemStyle[status].label; - var textStyle = labelControl.textStyle || {}; - var lineLength = itemStyle[status].labelLine.length; - var text = this.getLabelText(seriesIndex, dataIndex, status); - var textFont = this.getFont(textStyle); - var textAlign; - var textColor = defaultColor; - labelControl.position = labelControl.position || itemStyle.normal.label.position; - if (labelControl.position === 'inner' || labelControl.position === 'inside' || labelControl.position === 'center') { - textAlign = align; - textColor = Math.max(topWidth, bottomWidth) / 2 > zrArea.getTextWidth(text, textFont) ? '#fff' : zrColor.reverse(defaultColor); - } else if (labelControl.position === 'left') { - textAlign = 'right'; - } else { - textAlign = 'left'; - } - var textShape = { - zlevel: serie.zlevel, - z: serie.z + 1, - style: { - x: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align), - y: y + height / 2, - color: textStyle.color || textColor, - text: text, - textAlign: textStyle.align || textAlign, - textBaseline: textStyle.baseline || 'middle', - textFont: textFont - } - }; - status = 'emphasis'; - labelControl = itemStyle[status].label || labelControl; - textStyle = labelControl.textStyle || textStyle; - lineLength = itemStyle[status].labelLine.length || lineLength; - labelControl.position = labelControl.position || itemStyle.normal.label.position; - text = this.getLabelText(seriesIndex, dataIndex, status); - textFont = this.getFont(textStyle); - textColor = defaultColor; - if (labelControl.position === 'inner' || labelControl.position === 'inside' || labelControl.position === 'center') { - textAlign = align; - textColor = Math.max(topWidth, bottomWidth) / 2 > zrArea.getTextWidth(text, textFont) ? '#fff' : zrColor.reverse(defaultColor); - } else if (labelControl.position === 'left') { - textAlign = 'right'; - } else { - textAlign = 'left'; - } - textShape.highlightStyle = { - x: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align), - color: textStyle.color || textColor, - text: text, - textAlign: textStyle.align || textAlign, - textFont: textFont, - brushType: 'fill' - }; - return new TextShape(textShape); - }, - getLabelText: function (seriesIndex, dataIndex, status) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var formatter = this.deepQuery([ - data, - serie - ], 'itemStyle.' + status + '.label.formatter'); - if (formatter) { - if (typeof formatter === 'function') { - return formatter.call(this.myChart, { - seriesIndex: seriesIndex, - seriesName: serie.name || '', - series: serie, - dataIndex: dataIndex, - data: data, - name: data.name, - value: data.value - }); - } else if (typeof formatter === 'string') { - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{a0}', serie.name).replace('{b0}', data.name).replace('{c0}', data.value); - return formatter; - } - } else { - return data.name; - } - }, - getLabelLine: function (seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align) { - var serie = this.series[seriesIndex]; - var data = serie.data[dataIndex]; - var location = this._paramsMap[seriesIndex].location; - var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle); - var status = 'normal'; - var labelLineControl = itemStyle[status].labelLine; - var lineLength = itemStyle[status].labelLine.length; - var lineStyle = labelLineControl.lineStyle || {}; - var labelControl = itemStyle[status].label; - labelControl.position = labelControl.position || itemStyle.normal.label.position; - var lineShape = { - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - xStart: this._getLabelLineStartPoint(x, location, topWidth, bottomWidth, align), - yStart: y + height / 2, - xEnd: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align), - yEnd: y + height / 2, - strokeColor: lineStyle.color || defaultColor, - lineType: lineStyle.type, - lineWidth: lineStyle.width - } - }; - status = 'emphasis'; - labelLineControl = itemStyle[status].labelLine || labelLineControl; - lineLength = itemStyle[status].labelLine.length || lineLength; - lineStyle = labelLineControl.lineStyle || lineStyle; - labelControl = itemStyle[status].label || labelControl; - labelControl.position = labelControl.position; - lineShape.highlightStyle = { - xEnd: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align), - strokeColor: lineStyle.color || defaultColor, - lineType: lineStyle.type, - lineWidth: lineStyle.width - }; - return new LineShape(lineShape); - }, - _getLabelPoint: function (position, x, location, topWidth, bottomWidth, lineLength, align) { - position = position === 'inner' || position === 'inside' ? 'center' : position; - switch (position) { - case 'center': - return align == 'center' ? x + topWidth / 2 : align == 'left' ? x + 10 : x + topWidth - 10; - case 'left': - if (lineLength === 'auto') { - return location.x - 10; - } else { - return align == 'center' ? location.centerX - Math.max(topWidth, bottomWidth) / 2 - lineLength : align == 'right' ? x - (topWidth < bottomWidth ? bottomWidth - topWidth : 0) - lineLength : location.x - lineLength; - } - break; - default: - if (lineLength === 'auto') { - return location.x + location.width + 10; - } else { - return align == 'center' ? location.centerX + Math.max(topWidth, bottomWidth) / 2 + lineLength : align == 'right' ? location.x + location.width + lineLength : x + Math.max(topWidth, bottomWidth) + lineLength; - } - } - }, - _getLabelLineStartPoint: function (x, location, topWidth, bottomWidth, align) { - return align == 'center' ? location.centerX : topWidth < bottomWidth ? x + Math.min(topWidth, bottomWidth) / 2 : x + Math.max(topWidth, bottomWidth) / 2; - }, - _needLabel: function (serie, data, isEmphasis) { - return this.deepQuery([ - data, - serie - ], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.label.show'); - }, - _needLabelLine: function (serie, data, isEmphasis) { - return this.deepQuery([ - data, - serie - ], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.labelLine.show'); - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - } - }; - zrUtil.inherits(Funnel, ChartBase); - require('../chart').define('funnel', Funnel); - return Funnel; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/gauge.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/gauge.js deleted file mode 100644 index 1848cc6..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/gauge.js +++ /dev/null @@ -1,577 +0,0 @@ -define('echarts/chart/gauge', [ - 'require', - './base', - '../util/shape/GaugePointer', - 'zrender/shape/Text', - 'zrender/shape/Line', - 'zrender/shape/Rectangle', - 'zrender/shape/Circle', - 'zrender/shape/Sector', - '../config', - '../util/ecData', - '../util/accMath', - 'zrender/tool/util', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var GaugePointerShape = require('../util/shape/GaugePointer'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var RectangleShape = require('zrender/shape/Rectangle'); - var CircleShape = require('zrender/shape/Circle'); - var SectorShape = require('zrender/shape/Sector'); - var ecConfig = require('../config'); - ecConfig.gauge = { - zlevel: 0, - z: 2, - center: [ - '50%', - '50%' - ], - clickable: true, - legendHoverLink: true, - radius: '75%', - startAngle: 225, - endAngle: -45, - min: 0, - max: 100, - splitNumber: 10, - axisLine: { - show: true, - lineStyle: { - color: [ - [ - 0.2, - '#228b22' - ], - [ - 0.8, - '#48b' - ], - [ - 1, - '#ff4500' - ] - ], - width: 30 - } - }, - axisTick: { - show: true, - splitNumber: 5, - length: 8, - lineStyle: { - color: '#eee', - width: 1, - type: 'solid' - } - }, - axisLabel: { - show: true, - textStyle: { color: 'auto' } - }, - splitLine: { - show: true, - length: 30, - lineStyle: { - color: '#eee', - width: 2, - type: 'solid' - } - }, - pointer: { - show: true, - length: '80%', - width: 8, - color: 'auto' - }, - title: { - show: true, - offsetCenter: [ - 0, - '-40%' - ], - textStyle: { - color: '#333', - fontSize: 15 - } - }, - detail: { - show: true, - backgroundColor: 'rgba(0,0,0,0)', - borderWidth: 0, - borderColor: '#ccc', - width: 100, - height: 40, - offsetCenter: [ - 0, - '40%' - ], - textStyle: { - color: 'auto', - fontSize: 30 - } - } - }; - var ecData = require('../util/ecData'); - var accMath = require('../util/accMath'); - var zrUtil = require('zrender/tool/util'); - function Gauge(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Gauge.prototype = { - type: ecConfig.CHART_TYPE_GAUGE, - _buildShape: function () { - var series = this.series; - this._paramsMap = {}; - this.selectedMap = {}; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === ecConfig.CHART_TYPE_GAUGE) { - this.selectedMap[series[i].name] = true; - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - this._buildSingleGauge(i); - this.buildMark(i); - } - } - this.addShapeList(); - }, - _buildSingleGauge: function (seriesIndex) { - var serie = this.series[seriesIndex]; - this._paramsMap[seriesIndex] = { - center: this.parseCenter(this.zr, serie.center), - radius: this.parseRadius(this.zr, serie.radius), - startAngle: serie.startAngle.toFixed(2) - 0, - endAngle: serie.endAngle.toFixed(2) - 0 - }; - this._paramsMap[seriesIndex].totalAngle = this._paramsMap[seriesIndex].startAngle - this._paramsMap[seriesIndex].endAngle; - this._colorMap(seriesIndex); - this._buildAxisLine(seriesIndex); - this._buildSplitLine(seriesIndex); - this._buildAxisTick(seriesIndex); - this._buildAxisLabel(seriesIndex); - this._buildPointer(seriesIndex); - this._buildTitle(seriesIndex); - this._buildDetail(seriesIndex); - }, - _buildAxisLine: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.axisLine.show) { - return; - } - var min = serie.min; - var total = serie.max - min; - var params = this._paramsMap[seriesIndex]; - var center = params.center; - var startAngle = params.startAngle; - var totalAngle = params.totalAngle; - var colorArray = params.colorArray; - var lineStyle = serie.axisLine.lineStyle; - var lineWidth = this.parsePercent(lineStyle.width, params.radius[1]); - var r = params.radius[1]; - var r0 = r - lineWidth; - var sectorShape; - var lastAngle = startAngle; - var newAngle; - for (var i = 0, l = colorArray.length; i < l; i++) { - newAngle = startAngle - totalAngle * (colorArray[i][0] - min) / total; - sectorShape = this._getSector(center, r0, r, newAngle, lastAngle, colorArray[i][1], lineStyle, serie.zlevel, serie.z); - lastAngle = newAngle; - sectorShape._animationAdd = 'r'; - ecData.set(sectorShape, 'seriesIndex', seriesIndex); - ecData.set(sectorShape, 'dataIndex', i); - this.shapeList.push(sectorShape); - } - }, - _buildSplitLine: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.splitLine.show) { - return; - } - var params = this._paramsMap[seriesIndex]; - var splitNumber = serie.splitNumber; - var min = serie.min; - var total = serie.max - min; - var splitLine = serie.splitLine; - var length = this.parsePercent(splitLine.length, params.radius[1]); - var lineStyle = splitLine.lineStyle; - var color = lineStyle.color; - var center = params.center; - var startAngle = params.startAngle * Math.PI / 180; - var totalAngle = params.totalAngle * Math.PI / 180; - var r = params.radius[1]; - var r0 = r - length; - var angle; - var sinAngle; - var cosAngle; - for (var i = 0; i <= splitNumber; i++) { - angle = startAngle - totalAngle / splitNumber * i; - sinAngle = Math.sin(angle); - cosAngle = Math.cos(angle); - this.shapeList.push(new LineShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - xStart: center[0] + cosAngle * r, - yStart: center[1] - sinAngle * r, - xEnd: center[0] + cosAngle * r0, - yEnd: center[1] - sinAngle * r0, - strokeColor: color === 'auto' ? this._getColor(seriesIndex, min + total / splitNumber * i) : color, - lineType: lineStyle.type, - lineWidth: lineStyle.width, - shadowColor: lineStyle.shadowColor, - shadowBlur: lineStyle.shadowBlur, - shadowOffsetX: lineStyle.shadowOffsetX, - shadowOffsetY: lineStyle.shadowOffsetY - } - })); - } - }, - _buildAxisTick: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.axisTick.show) { - return; - } - var params = this._paramsMap[seriesIndex]; - var splitNumber = serie.splitNumber; - var min = serie.min; - var total = serie.max - min; - var axisTick = serie.axisTick; - var tickSplit = axisTick.splitNumber; - var length = this.parsePercent(axisTick.length, params.radius[1]); - var lineStyle = axisTick.lineStyle; - var color = lineStyle.color; - var center = params.center; - var startAngle = params.startAngle * Math.PI / 180; - var totalAngle = params.totalAngle * Math.PI / 180; - var r = params.radius[1]; - var r0 = r - length; - var angle; - var sinAngle; - var cosAngle; - for (var i = 0, l = splitNumber * tickSplit; i <= l; i++) { - if (i % tickSplit === 0) { - continue; - } - angle = startAngle - totalAngle / l * i; - sinAngle = Math.sin(angle); - cosAngle = Math.cos(angle); - this.shapeList.push(new LineShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - xStart: center[0] + cosAngle * r, - yStart: center[1] - sinAngle * r, - xEnd: center[0] + cosAngle * r0, - yEnd: center[1] - sinAngle * r0, - strokeColor: color === 'auto' ? this._getColor(seriesIndex, min + total / l * i) : color, - lineType: lineStyle.type, - lineWidth: lineStyle.width, - shadowColor: lineStyle.shadowColor, - shadowBlur: lineStyle.shadowBlur, - shadowOffsetX: lineStyle.shadowOffsetX, - shadowOffsetY: lineStyle.shadowOffsetY - } - })); - } - }, - _buildAxisLabel: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.axisLabel.show) { - return; - } - var splitNumber = serie.splitNumber; - var min = serie.min; - var total = serie.max - min; - var textStyle = serie.axisLabel.textStyle; - var textFont = this.getFont(textStyle); - var color = textStyle.color; - var params = this._paramsMap[seriesIndex]; - var center = params.center; - var startAngle = params.startAngle; - var totalAngle = params.totalAngle; - var r0 = params.radius[1] - this.parsePercent(serie.splitLine.length, params.radius[1]) - 5; - var angle; - var sinAngle; - var cosAngle; - var value; - for (var i = 0; i <= splitNumber; i++) { - value = accMath.accAdd(min, accMath.accMul(accMath.accDiv(total, splitNumber), i)); - angle = startAngle - totalAngle / splitNumber * i; - sinAngle = Math.sin(angle * Math.PI / 180); - cosAngle = Math.cos(angle * Math.PI / 180); - angle = (angle + 360) % 360; - this.shapeList.push(new TextShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - x: center[0] + cosAngle * r0, - y: center[1] - sinAngle * r0, - color: color === 'auto' ? this._getColor(seriesIndex, value) : color, - text: this._getLabelText(serie.axisLabel.formatter, value), - textAlign: angle >= 110 && angle <= 250 ? 'left' : angle <= 70 || angle >= 290 ? 'right' : 'center', - textBaseline: angle >= 10 && angle <= 170 ? 'top' : angle >= 190 && angle <= 350 ? 'bottom' : 'middle', - textFont: textFont, - shadowColor: textStyle.shadowColor, - shadowBlur: textStyle.shadowBlur, - shadowOffsetX: textStyle.shadowOffsetX, - shadowOffsetY: textStyle.shadowOffsetY - } - })); - } - }, - _buildPointer: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.pointer.show) { - return; - } - var total = serie.max - serie.min; - var pointer = serie.pointer; - var params = this._paramsMap[seriesIndex]; - var length = this.parsePercent(pointer.length, params.radius[1]); - var width = this.parsePercent(pointer.width, params.radius[1]); - var center = params.center; - var value = this._getValue(seriesIndex); - value = value < serie.max ? value : serie.max; - var angle = (params.startAngle - params.totalAngle / total * (value - serie.min)) * Math.PI / 180; - var color = pointer.color === 'auto' ? this._getColor(seriesIndex, value) : pointer.color; - var pointShape = new GaugePointerShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - clickable: this.query(serie, 'clickable'), - style: { - x: center[0], - y: center[1], - r: length, - startAngle: params.startAngle * Math.PI / 180, - angle: angle, - color: color, - width: width, - shadowColor: pointer.shadowColor, - shadowBlur: pointer.shadowBlur, - shadowOffsetX: pointer.shadowOffsetX, - shadowOffsetY: pointer.shadowOffsetY - }, - highlightStyle: { - brushType: 'fill', - width: width > 2 ? 2 : width / 2, - color: '#fff' - } - }); - ecData.pack(pointShape, this.series[seriesIndex], seriesIndex, this.series[seriesIndex].data[0], 0, this.series[seriesIndex].data[0].name, value); - this.shapeList.push(pointShape); - this.shapeList.push(new CircleShape({ - zlevel: serie.zlevel, - z: serie.z + 2, - hoverable: false, - style: { - x: center[0], - y: center[1], - r: pointer.width / 2.5, - color: '#fff' - } - })); - }, - _buildTitle: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.title.show) { - return; - } - var data = serie.data[0]; - var name = data.name != null ? data.name : ''; - if (name !== '') { - var title = serie.title; - var offsetCenter = title.offsetCenter; - var textStyle = title.textStyle; - var textColor = textStyle.color; - var params = this._paramsMap[seriesIndex]; - var x = params.center[0] + this.parsePercent(offsetCenter[0], params.radius[1]); - var y = params.center[1] + this.parsePercent(offsetCenter[1], params.radius[1]); - this.shapeList.push(new TextShape({ - zlevel: serie.zlevel, - z: serie.z + (Math.abs(x - params.center[0]) + Math.abs(y - params.center[1]) < textStyle.fontSize * 2 ? 2 : 1), - hoverable: false, - style: { - x: x, - y: y, - color: textColor === 'auto' ? this._getColor(seriesIndex) : textColor, - text: name, - textAlign: 'center', - textFont: this.getFont(textStyle), - shadowColor: textStyle.shadowColor, - shadowBlur: textStyle.shadowBlur, - shadowOffsetX: textStyle.shadowOffsetX, - shadowOffsetY: textStyle.shadowOffsetY - } - })); - } - }, - _buildDetail: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.detail.show) { - return; - } - var detail = serie.detail; - var offsetCenter = detail.offsetCenter; - var color = detail.backgroundColor; - var textStyle = detail.textStyle; - var textColor = textStyle.color; - var params = this._paramsMap[seriesIndex]; - var value = this._getValue(seriesIndex); - var x = params.center[0] - detail.width / 2 + this.parsePercent(offsetCenter[0], params.radius[1]); - var y = params.center[1] + this.parsePercent(offsetCenter[1], params.radius[1]); - this.shapeList.push(new RectangleShape({ - zlevel: serie.zlevel, - z: serie.z + (Math.abs(x + detail.width / 2 - params.center[0]) + Math.abs(y + detail.height / 2 - params.center[1]) < textStyle.fontSize ? 2 : 1), - hoverable: false, - style: { - x: x, - y: y, - width: detail.width, - height: detail.height, - brushType: 'both', - color: color === 'auto' ? this._getColor(seriesIndex, value) : color, - lineWidth: detail.borderWidth, - strokeColor: detail.borderColor, - shadowColor: detail.shadowColor, - shadowBlur: detail.shadowBlur, - shadowOffsetX: detail.shadowOffsetX, - shadowOffsetY: detail.shadowOffsetY, - text: this._getLabelText(detail.formatter, value), - textFont: this.getFont(textStyle), - textPosition: 'inside', - textColor: textColor === 'auto' ? this._getColor(seriesIndex, value) : textColor - } - })); - }, - _getValue: function (seriesIndex) { - return this.getDataFromOption(this.series[seriesIndex].data[0]); - }, - _colorMap: function (seriesIndex) { - var serie = this.series[seriesIndex]; - var min = serie.min; - var total = serie.max - min; - var color = serie.axisLine.lineStyle.color; - if (!(color instanceof Array)) { - color = [[ - 1, - color - ]]; - } - var colorArray = []; - for (var i = 0, l = color.length; i < l; i++) { - colorArray.push([ - color[i][0] * total + min, - color[i][1] - ]); - } - this._paramsMap[seriesIndex].colorArray = colorArray; - }, - _getColor: function (seriesIndex, value) { - if (value == null) { - value = this._getValue(seriesIndex); - } - var colorArray = this._paramsMap[seriesIndex].colorArray; - for (var i = 0, l = colorArray.length; i < l; i++) { - if (colorArray[i][0] >= value) { - return colorArray[i][1]; - } - } - return colorArray[colorArray.length - 1][1]; - }, - _getSector: function (center, r0, r, startAngle, endAngle, color, lineStyle, zlevel, z) { - return new SectorShape({ - zlevel: zlevel, - z: z, - hoverable: false, - style: { - x: center[0], - y: center[1], - r0: r0, - r: r, - startAngle: startAngle, - endAngle: endAngle, - brushType: 'fill', - color: color, - shadowColor: lineStyle.shadowColor, - shadowBlur: lineStyle.shadowBlur, - shadowOffsetX: lineStyle.shadowOffsetX, - shadowOffsetY: lineStyle.shadowOffsetY - } - }); - }, - _getLabelText: function (formatter, value) { - if (formatter) { - if (typeof formatter === 'function') { - return formatter.call(this.myChart, value); - } else if (typeof formatter === 'string') { - return formatter.replace('{value}', value); - } - } - return value; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - } - }; - zrUtil.inherits(Gauge, ChartBase); - require('../chart').define('gauge', Gauge); - return Gauge; -});define('echarts/util/shape/GaugePointer', [ - 'require', - 'zrender/shape/Base', - 'zrender/tool/util', - './normalIsCover' -], function (require) { - var Base = require('zrender/shape/Base'); - var zrUtil = require('zrender/tool/util'); - function GaugePointer(options) { - Base.call(this, options); - } - GaugePointer.prototype = { - type: 'gauge-pointer', - buildPath: function (ctx, style) { - var r = style.r; - var width = style.width; - var angle = style.angle; - var x = style.x - Math.cos(angle) * width * (width >= r / 3 ? 1 : 2); - var y = style.y + Math.sin(angle) * width * (width >= r / 3 ? 1 : 2); - angle = style.angle - Math.PI / 2; - ctx.moveTo(x, y); - ctx.lineTo(style.x + Math.cos(angle) * width, style.y - Math.sin(angle) * width); - ctx.lineTo(style.x + Math.cos(style.angle) * r, style.y - Math.sin(style.angle) * r); - ctx.lineTo(style.x - Math.cos(angle) * width, style.y + Math.sin(angle) * width); - ctx.lineTo(x, y); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var width = style.width * 2; - var xStart = style.x; - var yStart = style.y; - var xEnd = xStart + Math.cos(style.angle) * style.r; - var yEnd = yStart - Math.sin(style.angle) * style.r; - style.__rect = { - x: Math.min(xStart, xEnd) - width, - y: Math.min(yStart, yEnd) - width, - width: Math.abs(xStart - xEnd) + width, - height: Math.abs(yStart - yEnd) + width - }; - return style.__rect; - }, - isCover: require('./normalIsCover') - }; - zrUtil.inherits(GaugePointer, Base); - return GaugePointer; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/heatmap.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/heatmap.js deleted file mode 100644 index 2e88b73..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/heatmap.js +++ /dev/null @@ -1,286 +0,0 @@ -define('echarts/chart/heatmap', [ - 'require', - './base', - '../layer/heatmap', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/color', - 'zrender/shape/Image', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var HeatmapLayer = require('../layer/heatmap'); - var ecConfig = require('../config'); - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - var zrImage = require('zrender/shape/Image'); - ecConfig.heatmap = { - zlevel: 0, - z: 2, - clickable: true - }; - function Heatmap(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Heatmap.prototype = { - type: ecConfig.CHART_TYPE_HEATMAP, - refresh: function (newOption) { - this.clear(); - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this._init(); - }, - _init: function () { - var series = this.series; - this.backupShapeList(); - var len = series.length; - for (var i = 0; i < len; ++i) { - if (series[i].type === ecConfig.CHART_TYPE_HEATMAP) { - series[i] = this.reformOption(series[i]); - var layer = new HeatmapLayer(series[i]); - var canvas = layer.getCanvas(series[i].data, this.zr.getWidth(), this.zr.getHeight()); - var image = new zrImage({ - position: [ - 0, - 0 - ], - scale: [ - 1, - 1 - ], - hoverable: this.option.hoverable, - style: { - x: 0, - y: 0, - image: canvas, - width: canvas.width, - height: canvas.height - } - }); - this.shapeList.push(image); - } - } - this.addShapeList(); - } - }; - zrUtil.inherits(Heatmap, ChartBase); - require('../chart').define('heatmap', Heatmap); - return Heatmap; -});define('echarts/layer/heatmap', ['require'], function (require) { - var defaultOptions = { - blurSize: 30, - gradientColors: [ - 'blue', - 'cyan', - 'lime', - 'yellow', - 'red' - ], - minAlpha: 0.05, - valueScale: 1, - opacity: 1 - }; - var BRUSH_SIZE = 20; - var GRADIENT_LEVELS = 256; - function Heatmap(opt) { - this.option = opt; - if (opt) { - for (var i in defaultOptions) { - if (opt[i] !== undefined) { - this.option[i] = opt[i]; - } else { - this.option[i] = defaultOptions[i]; - } - } - } else { - this.option = defaultOptions; - } - } - Heatmap.prototype = { - getCanvas: function (data, width, height) { - var brush = this._getBrush(); - var gradient = this._getGradient(); - var r = BRUSH_SIZE + this.option.blurSize; - var canvas = document.createElement('canvas'); - canvas.width = width; - canvas.height = height; - var ctx = canvas.getContext('2d'); - var len = data.length; - for (var i = 0; i < len; ++i) { - var p = data[i]; - var x = p[0]; - var y = p[1]; - var value = p[2]; - var alpha = Math.min(1, Math.max(value * this.option.valueScale || this.option.minAlpha, this.option.minAlpha)); - ctx.globalAlpha = alpha; - ctx.drawImage(brush, x - r, y - r); - } - var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); - var pixels = imageData.data; - var len = pixels.length / 4; - while (len--) { - var id = len * 4 + 3; - var alpha = pixels[id] / 256; - var colorOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)); - pixels[id - 3] = gradient[colorOffset * 4]; - pixels[id - 2] = gradient[colorOffset * 4 + 1]; - pixels[id - 1] = gradient[colorOffset * 4 + 2]; - pixels[id] *= this.option.opacity; - } - ctx.putImageData(imageData, 0, 0); - return canvas; - }, - _getBrush: function () { - if (!this._brushCanvas) { - this._brushCanvas = document.createElement('canvas'); - var r = BRUSH_SIZE + this.option.blurSize; - var d = r * 2; - this._brushCanvas.width = d; - this._brushCanvas.height = d; - var ctx = this._brushCanvas.getContext('2d'); - ctx.shadowOffsetX = d; - ctx.shadowBlur = this.option.blurSize; - ctx.shadowColor = 'black'; - ctx.beginPath(); - ctx.arc(-r, r, BRUSH_SIZE, 0, Math.PI * 2, true); - ctx.closePath(); - ctx.fill(); - } - return this._brushCanvas; - }, - _getGradient: function () { - if (!this._gradientPixels) { - var levels = GRADIENT_LEVELS; - var canvas = document.createElement('canvas'); - canvas.width = 1; - canvas.height = levels; - var ctx = canvas.getContext('2d'); - var gradient = ctx.createLinearGradient(0, 0, 0, levels); - var len = this.option.gradientColors.length; - for (var i = 0; i < len; ++i) { - if (typeof this.option.gradientColors[i] === 'string') { - gradient.addColorStop((i + 1) / len, this.option.gradientColors[i]); - } else { - gradient.addColorStop(this.option.gradientColors[i].offset, this.option.gradientColors[i].color); - } - } - ctx.fillStyle = gradient; - ctx.fillRect(0, 0, 1, levels); - this._gradientPixels = ctx.getImageData(0, 0, 1, levels).data; - } - return this._gradientPixels; - } - }; - return Heatmap; -});define('echarts/layer/heatmap', ['require'], function (require) { - var defaultOptions = { - blurSize: 30, - gradientColors: [ - 'blue', - 'cyan', - 'lime', - 'yellow', - 'red' - ], - minAlpha: 0.05, - valueScale: 1, - opacity: 1 - }; - var BRUSH_SIZE = 20; - var GRADIENT_LEVELS = 256; - function Heatmap(opt) { - this.option = opt; - if (opt) { - for (var i in defaultOptions) { - if (opt[i] !== undefined) { - this.option[i] = opt[i]; - } else { - this.option[i] = defaultOptions[i]; - } - } - } else { - this.option = defaultOptions; - } - } - Heatmap.prototype = { - getCanvas: function (data, width, height) { - var brush = this._getBrush(); - var gradient = this._getGradient(); - var r = BRUSH_SIZE + this.option.blurSize; - var canvas = document.createElement('canvas'); - canvas.width = width; - canvas.height = height; - var ctx = canvas.getContext('2d'); - var len = data.length; - for (var i = 0; i < len; ++i) { - var p = data[i]; - var x = p[0]; - var y = p[1]; - var value = p[2]; - var alpha = Math.min(1, Math.max(value * this.option.valueScale || this.option.minAlpha, this.option.minAlpha)); - ctx.globalAlpha = alpha; - ctx.drawImage(brush, x - r, y - r); - } - var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); - var pixels = imageData.data; - var len = pixels.length / 4; - while (len--) { - var id = len * 4 + 3; - var alpha = pixels[id] / 256; - var colorOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)); - pixels[id - 3] = gradient[colorOffset * 4]; - pixels[id - 2] = gradient[colorOffset * 4 + 1]; - pixels[id - 1] = gradient[colorOffset * 4 + 2]; - pixels[id] *= this.option.opacity; - } - ctx.putImageData(imageData, 0, 0); - return canvas; - }, - _getBrush: function () { - if (!this._brushCanvas) { - this._brushCanvas = document.createElement('canvas'); - var r = BRUSH_SIZE + this.option.blurSize; - var d = r * 2; - this._brushCanvas.width = d; - this._brushCanvas.height = d; - var ctx = this._brushCanvas.getContext('2d'); - ctx.shadowOffsetX = d; - ctx.shadowBlur = this.option.blurSize; - ctx.shadowColor = 'black'; - ctx.beginPath(); - ctx.arc(-r, r, BRUSH_SIZE, 0, Math.PI * 2, true); - ctx.closePath(); - ctx.fill(); - } - return this._brushCanvas; - }, - _getGradient: function () { - if (!this._gradientPixels) { - var levels = GRADIENT_LEVELS; - var canvas = document.createElement('canvas'); - canvas.width = 1; - canvas.height = levels; - var ctx = canvas.getContext('2d'); - var gradient = ctx.createLinearGradient(0, 0, 0, levels); - var len = this.option.gradientColors.length; - for (var i = 0; i < len; ++i) { - if (typeof this.option.gradientColors[i] === 'string') { - gradient.addColorStop((i + 1) / len, this.option.gradientColors[i]); - } else { - gradient.addColorStop(this.option.gradientColors[i].offset, this.option.gradientColors[i].color); - } - } - ctx.fillStyle = gradient; - ctx.fillRect(0, 0, 1, levels); - this._gradientPixels = ctx.getImageData(0, 0, 1, levels).data; - } - return this._gradientPixels; - } - }; - return Heatmap; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/k.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/k.js deleted file mode 100644 index f54dece..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/k.js +++ /dev/null @@ -1,325 +0,0 @@ -define('echarts/chart/k', [ - 'require', - './base', - '../util/shape/Candle', - '../component/axis', - '../component/grid', - '../component/dataZoom', - '../config', - '../util/ecData', - 'zrender/tool/util', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var CandleShape = require('../util/shape/Candle'); - require('../component/axis'); - require('../component/grid'); - require('../component/dataZoom'); - var ecConfig = require('../config'); - ecConfig.k = { - zlevel: 0, - z: 2, - clickable: true, - hoverable: true, - legendHoverLink: false, - xAxisIndex: 0, - yAxisIndex: 0, - itemStyle: { - normal: { - color: '#fff', - color0: '#00aa11', - lineStyle: { - width: 1, - color: '#ff3200', - color0: '#00aa11' - }, - label: { show: false } - }, - emphasis: { label: { show: false } } - } - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - function K(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - K.prototype = { - type: ecConfig.CHART_TYPE_K, - _buildShape: function () { - var series = this.series; - this.selectedMap = {}; - var _position2sIndexMap = { - top: [], - bottom: [] - }; - var xAxis; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === ecConfig.CHART_TYPE_K) { - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - xAxis = this.component.xAxis.getAxis(series[i].xAxisIndex); - if (xAxis.type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { - _position2sIndexMap[xAxis.getPosition()].push(i); - } - } - } - for (var position in _position2sIndexMap) { - if (_position2sIndexMap[position].length > 0) { - this._buildSinglePosition(position, _position2sIndexMap[position]); - } - } - this.addShapeList(); - }, - _buildSinglePosition: function (position, seriesArray) { - var mapData = this._mapData(seriesArray); - var locationMap = mapData.locationMap; - var maxDataLength = mapData.maxDataLength; - if (maxDataLength === 0 || locationMap.length === 0) { - return; - } - this._buildHorizontal(seriesArray, maxDataLength, locationMap); - for (var i = 0, l = seriesArray.length; i < l; i++) { - this.buildMark(seriesArray[i]); - } - }, - _mapData: function (seriesArray) { - var series = this.series; - var serie; - var serieName; - var legend = this.component.legend; - var locationMap = []; - var maxDataLength = 0; - for (var i = 0, l = seriesArray.length; i < l; i++) { - serie = series[seriesArray[i]]; - serieName = serie.name; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (this.selectedMap[serieName]) { - locationMap.push(seriesArray[i]); - } - maxDataLength = Math.max(maxDataLength, serie.data.length); - } - return { - locationMap: locationMap, - maxDataLength: maxDataLength - }; - }, - _buildHorizontal: function (seriesArray, maxDataLength, locationMap) { - var series = this.series; - var seriesIndex; - var serie; - var xAxisIndex; - var categoryAxis; - var yAxisIndex; - var valueAxis; - var pointList = {}; - var candleWidth; - var data; - var value; - var barMaxWidth; - for (var j = 0, k = locationMap.length; j < k; j++) { - seriesIndex = locationMap[j]; - serie = series[seriesIndex]; - xAxisIndex = serie.xAxisIndex || 0; - categoryAxis = this.component.xAxis.getAxis(xAxisIndex); - candleWidth = serie.barWidth || Math.floor(categoryAxis.getGap() / 2); - barMaxWidth = serie.barMaxWidth; - if (barMaxWidth && barMaxWidth < candleWidth) { - candleWidth = barMaxWidth; - } - yAxisIndex = serie.yAxisIndex || 0; - valueAxis = this.component.yAxis.getAxis(yAxisIndex); - pointList[seriesIndex] = []; - for (var i = 0, l = maxDataLength; i < l; i++) { - if (categoryAxis.getNameByIndex(i) == null) { - break; - } - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - if (value === '-' || value.length != 4) { - continue; - } - pointList[seriesIndex].push([ - categoryAxis.getCoordByIndex(i), - candleWidth, - valueAxis.getCoord(value[0]), - valueAxis.getCoord(value[1]), - valueAxis.getCoord(value[2]), - valueAxis.getCoord(value[3]), - i, - categoryAxis.getNameByIndex(i) - ]); - } - } - this._buildKLine(seriesArray, pointList); - }, - _buildKLine: function (seriesArray, pointList) { - var series = this.series; - var nLineWidth; - var nLineColor; - var nLineColor0; - var nColor; - var nColor0; - var eLineWidth; - var eLineColor; - var eLineColor0; - var eColor; - var eColor0; - var serie; - var queryTarget; - var data; - var seriesPL; - var singlePoint; - var candleType; - var seriesIndex; - for (var sIdx = 0, len = seriesArray.length; sIdx < len; sIdx++) { - seriesIndex = seriesArray[sIdx]; - serie = series[seriesIndex]; - seriesPL = pointList[seriesIndex]; - if (this._isLarge(seriesPL)) { - seriesPL = this._getLargePointList(seriesPL); - } - if (serie.type === ecConfig.CHART_TYPE_K && seriesPL != null) { - queryTarget = serie; - nLineWidth = this.query(queryTarget, 'itemStyle.normal.lineStyle.width'); - nLineColor = this.query(queryTarget, 'itemStyle.normal.lineStyle.color'); - nLineColor0 = this.query(queryTarget, 'itemStyle.normal.lineStyle.color0'); - nColor = this.query(queryTarget, 'itemStyle.normal.color'); - nColor0 = this.query(queryTarget, 'itemStyle.normal.color0'); - eLineWidth = this.query(queryTarget, 'itemStyle.emphasis.lineStyle.width'); - eLineColor = this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color'); - eLineColor0 = this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color0'); - eColor = this.query(queryTarget, 'itemStyle.emphasis.color'); - eColor0 = this.query(queryTarget, 'itemStyle.emphasis.color0'); - for (var i = 0, l = seriesPL.length; i < l; i++) { - singlePoint = seriesPL[i]; - data = serie.data[singlePoint[6]]; - queryTarget = data; - candleType = singlePoint[3] < singlePoint[2]; - this.shapeList.push(this._getCandle(seriesIndex, singlePoint[6], singlePoint[7], singlePoint[0], singlePoint[1], singlePoint[2], singlePoint[3], singlePoint[4], singlePoint[5], candleType ? this.query(queryTarget, 'itemStyle.normal.color') || nColor : this.query(queryTarget, 'itemStyle.normal.color0') || nColor0, this.query(queryTarget, 'itemStyle.normal.lineStyle.width') || nLineWidth, candleType ? this.query(queryTarget, 'itemStyle.normal.lineStyle.color') || nLineColor : this.query(queryTarget, 'itemStyle.normal.lineStyle.color0') || nLineColor0, candleType ? this.query(queryTarget, 'itemStyle.emphasis.color') || eColor || nColor : this.query(queryTarget, 'itemStyle.emphasis.color0') || eColor0 || nColor0, this.query(queryTarget, 'itemStyle.emphasis.lineStyle.width') || eLineWidth || nLineWidth, candleType ? this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color') || eLineColor || nLineColor : this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color0') || eLineColor0 || nLineColor0)); - } - } - } - }, - _isLarge: function (singlePL) { - return singlePL[0][1] < 0.5; - }, - _getLargePointList: function (singlePL) { - var total = this.component.grid.getWidth(); - var len = singlePL.length; - var newList = []; - for (var i = 0; i < total; i++) { - newList[i] = singlePL[Math.floor(len / total * i)]; - } - return newList; - }, - _getCandle: function (seriesIndex, dataIndex, name, x, width, y0, y1, y2, y3, nColor, nLinewidth, nLineColor, eColor, eLinewidth, eLineColor) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var queryTarget = [ - data, - serie - ]; - var itemShape = { - zlevel: serie.zlevel, - z: serie.z, - clickable: this.deepQuery(queryTarget, 'clickable'), - hoverable: this.deepQuery(queryTarget, 'hoverable'), - style: { - x: x, - y: [ - y0, - y1, - y2, - y3 - ], - width: width, - color: nColor, - strokeColor: nLineColor, - lineWidth: nLinewidth, - brushType: 'both' - }, - highlightStyle: { - color: eColor, - strokeColor: eLineColor, - lineWidth: eLinewidth - }, - _seriesIndex: seriesIndex - }; - itemShape = this.addLabel(itemShape, serie, data, name); - ecData.pack(itemShape, serie, seriesIndex, data, dataIndex, name); - itemShape = new CandleShape(itemShape); - return itemShape; - }, - getMarkCoord: function (seriesIndex, mpData) { - var serie = this.series[seriesIndex]; - var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex); - var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex); - return [ - typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0), - typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0) - ]; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - }, - addDataAnimation: function (params, done) { - var series = this.series; - var aniMap = {}; - for (var i = 0, l = params.length; i < l; i++) { - aniMap[params[i][0]] = params[i]; - } - var x; - var dx; - var y; - var serie; - var seriesIndex; - var dataIndex; - var aniCount = 0; - function animationDone() { - aniCount--; - if (aniCount === 0) { - done && done(); - } - } - for (var i = 0, l = this.shapeList.length; i < l; i++) { - seriesIndex = this.shapeList[i]._seriesIndex; - if (aniMap[seriesIndex] && !aniMap[seriesIndex][3]) { - if (this.shapeList[i].type === 'candle') { - dataIndex = ecData.get(this.shapeList[i], 'dataIndex'); - serie = series[seriesIndex]; - if (aniMap[seriesIndex][2] && dataIndex === serie.data.length - 1) { - this.zr.delShape(this.shapeList[i].id); - continue; - } else if (!aniMap[seriesIndex][2] && dataIndex === 0) { - this.zr.delShape(this.shapeList[i].id); - continue; - } - dx = this.component.xAxis.getAxis(serie.xAxisIndex || 0).getGap(); - x = aniMap[seriesIndex][2] ? dx : -dx; - y = 0; - aniCount++; - this.zr.animate(this.shapeList[i].id, '').when(this.query(this.option, 'animationDurationUpdate'), { - position: [ - x, - y - ] - }).done(animationDone).start(); - } - } - } - if (!aniCount) { - done && done(); - } - } - }; - zrUtil.inherits(K, ChartBase); - require('../chart').define('k', K); - return K; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/line.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/line.js deleted file mode 100644 index 3805ec9..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/line.js +++ /dev/null @@ -1,817 +0,0 @@ -define('echarts/chart/line', [ - 'require', - './base', - 'zrender/shape/Polyline', - '../util/shape/Icon', - '../util/shape/HalfSmoothPolygon', - '../component/axis', - '../component/grid', - '../component/dataZoom', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var PolylineShape = require('zrender/shape/Polyline'); - var IconShape = require('../util/shape/Icon'); - var HalfSmoothPolygonShape = require('../util/shape/HalfSmoothPolygon'); - require('../component/axis'); - require('../component/grid'); - require('../component/dataZoom'); - var ecConfig = require('../config'); - ecConfig.line = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - xAxisIndex: 0, - yAxisIndex: 0, - dataFilter: 'nearest', - itemStyle: { - normal: { - label: { show: false }, - lineStyle: { - width: 2, - type: 'solid', - shadowColor: 'rgba(0,0,0,0)', - shadowBlur: 0, - shadowOffsetX: 0, - shadowOffsetY: 0 - } - }, - emphasis: { label: { show: false } } - }, - symbolSize: 2, - showAllSymbol: false - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function Line(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Line.prototype = { - type: ecConfig.CHART_TYPE_LINE, - _buildShape: function () { - this.finalPLMap = {}; - this._buildPosition(); - }, - _buildHorizontal: function (seriesArray, maxDataLength, locationMap, xMarkMap) { - var series = this.series; - var seriesIndex = locationMap[0][0]; - var serie = series[seriesIndex]; - var categoryAxis = this.component.xAxis.getAxis(serie.xAxisIndex || 0); - var valueAxis; - var x; - var y; - var lastYP; - var baseYP; - var lastYN; - var baseYN; - var curPLMap = {}; - var data; - var value; - for (var i = 0, l = maxDataLength; i < l; i++) { - if (categoryAxis.getNameByIndex(i) == null) { - break; - } - x = categoryAxis.getCoordByIndex(i); - for (var j = 0, k = locationMap.length; j < k; j++) { - valueAxis = this.component.yAxis.getAxis(series[locationMap[j][0]].yAxisIndex || 0); - baseYP = lastYP = baseYN = lastYN = valueAxis.getCoord(0); - for (var m = 0, n = locationMap[j].length; m < n; m++) { - seriesIndex = locationMap[j][m]; - serie = series[seriesIndex]; - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - curPLMap[seriesIndex] = curPLMap[seriesIndex] || []; - xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { - min: Number.POSITIVE_INFINITY, - max: Number.NEGATIVE_INFINITY, - sum: 0, - counter: 0, - average: 0 - }; - if (value === '-') { - if (curPLMap[seriesIndex].length > 0) { - this.finalPLMap[seriesIndex] = this.finalPLMap[seriesIndex] || []; - this.finalPLMap[seriesIndex].push(curPLMap[seriesIndex]); - curPLMap[seriesIndex] = []; - } - continue; - } - if (value >= 0) { - lastYP -= m > 0 ? valueAxis.getCoordSize(value) : baseYP - valueAxis.getCoord(value); - y = lastYP; - } else if (value < 0) { - lastYN += m > 0 ? valueAxis.getCoordSize(value) : valueAxis.getCoord(value) - baseYN; - y = lastYN; - } - curPLMap[seriesIndex].push([ - x, - y, - i, - categoryAxis.getNameByIndex(i), - x, - baseYP - ]); - if (xMarkMap[seriesIndex].min > value) { - xMarkMap[seriesIndex].min = value; - xMarkMap[seriesIndex].minY = y; - xMarkMap[seriesIndex].minX = x; - } - if (xMarkMap[seriesIndex].max < value) { - xMarkMap[seriesIndex].max = value; - xMarkMap[seriesIndex].maxY = y; - xMarkMap[seriesIndex].maxX = x; - } - xMarkMap[seriesIndex].sum += value; - xMarkMap[seriesIndex].counter++; - } - } - lastYP = this.component.grid.getY(); - var symbolSize; - for (var j = 0, k = locationMap.length; j < k; j++) { - for (var m = 0, n = locationMap[j].length; m < n; m++) { - seriesIndex = locationMap[j][m]; - serie = series[seriesIndex]; - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - if (value != '-') { - continue; - } - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - symbolSize = this.deepQuery([ - data, - serie - ], 'symbolSize'); - lastYP += symbolSize * 2 + 5; - y = lastYP; - this.shapeList.push(this._getCalculableItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y, 'horizontal')); - } - } - } - } - for (var sId in curPLMap) { - if (curPLMap[sId].length > 0) { - this.finalPLMap[sId] = this.finalPLMap[sId] || []; - this.finalPLMap[sId].push(curPLMap[sId]); - curPLMap[sId] = []; - } - } - this._calculMarkMapXY(xMarkMap, locationMap, 'y'); - this._buildBorkenLine(seriesArray, this.finalPLMap, categoryAxis, 'horizontal'); - }, - _buildVertical: function (seriesArray, maxDataLength, locationMap, xMarkMap) { - var series = this.series; - var seriesIndex = locationMap[0][0]; - var serie = series[seriesIndex]; - var categoryAxis = this.component.yAxis.getAxis(serie.yAxisIndex || 0); - var valueAxis; - var x; - var y; - var lastXP; - var baseXP; - var lastXN; - var baseXN; - var curPLMap = {}; - var data; - var value; - for (var i = 0, l = maxDataLength; i < l; i++) { - if (categoryAxis.getNameByIndex(i) == null) { - break; - } - y = categoryAxis.getCoordByIndex(i); - for (var j = 0, k = locationMap.length; j < k; j++) { - valueAxis = this.component.xAxis.getAxis(series[locationMap[j][0]].xAxisIndex || 0); - baseXP = lastXP = baseXN = lastXN = valueAxis.getCoord(0); - for (var m = 0, n = locationMap[j].length; m < n; m++) { - seriesIndex = locationMap[j][m]; - serie = series[seriesIndex]; - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - curPLMap[seriesIndex] = curPLMap[seriesIndex] || []; - xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { - min: Number.POSITIVE_INFINITY, - max: Number.NEGATIVE_INFINITY, - sum: 0, - counter: 0, - average: 0 - }; - if (value === '-') { - if (curPLMap[seriesIndex].length > 0) { - this.finalPLMap[seriesIndex] = this.finalPLMap[seriesIndex] || []; - this.finalPLMap[seriesIndex].push(curPLMap[seriesIndex]); - curPLMap[seriesIndex] = []; - } - continue; - } - if (value >= 0) { - lastXP += m > 0 ? valueAxis.getCoordSize(value) : valueAxis.getCoord(value) - baseXP; - x = lastXP; - } else if (value < 0) { - lastXN -= m > 0 ? valueAxis.getCoordSize(value) : baseXN - valueAxis.getCoord(value); - x = lastXN; - } - curPLMap[seriesIndex].push([ - x, - y, - i, - categoryAxis.getNameByIndex(i), - baseXP, - y - ]); - if (xMarkMap[seriesIndex].min > value) { - xMarkMap[seriesIndex].min = value; - xMarkMap[seriesIndex].minX = x; - xMarkMap[seriesIndex].minY = y; - } - if (xMarkMap[seriesIndex].max < value) { - xMarkMap[seriesIndex].max = value; - xMarkMap[seriesIndex].maxX = x; - xMarkMap[seriesIndex].maxY = y; - } - xMarkMap[seriesIndex].sum += value; - xMarkMap[seriesIndex].counter++; - } - } - lastXP = this.component.grid.getXend(); - var symbolSize; - for (var j = 0, k = locationMap.length; j < k; j++) { - for (var m = 0, n = locationMap[j].length; m < n; m++) { - seriesIndex = locationMap[j][m]; - serie = series[seriesIndex]; - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - if (value != '-') { - continue; - } - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - symbolSize = this.deepQuery([ - data, - serie - ], 'symbolSize'); - lastXP -= symbolSize * 2 + 5; - x = lastXP; - this.shapeList.push(this._getCalculableItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y, 'vertical')); - } - } - } - } - for (var sId in curPLMap) { - if (curPLMap[sId].length > 0) { - this.finalPLMap[sId] = this.finalPLMap[sId] || []; - this.finalPLMap[sId].push(curPLMap[sId]); - curPLMap[sId] = []; - } - } - this._calculMarkMapXY(xMarkMap, locationMap, 'x'); - this._buildBorkenLine(seriesArray, this.finalPLMap, categoryAxis, 'vertical'); - }, - _buildOther: function (seriesArray, maxDataLength, locationMap, xMarkMap) { - var series = this.series; - var curPLMap = {}; - var xAxis; - for (var j = 0, k = locationMap.length; j < k; j++) { - for (var m = 0, n = locationMap[j].length; m < n; m++) { - var seriesIndex = locationMap[j][m]; - var serie = series[seriesIndex]; - xAxis = this.component.xAxis.getAxis(serie.xAxisIndex || 0); - var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex || 0); - var baseY = yAxis.getCoord(0); - curPLMap[seriesIndex] = curPLMap[seriesIndex] || []; - xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { - min0: Number.POSITIVE_INFINITY, - min1: Number.POSITIVE_INFINITY, - max0: Number.NEGATIVE_INFINITY, - max1: Number.NEGATIVE_INFINITY, - sum0: 0, - sum1: 0, - counter0: 0, - counter1: 0, - average0: 0, - average1: 0 - }; - for (var i = 0, l = serie.data.length; i < l; i++) { - var data = serie.data[i]; - var value = this.getDataFromOption(data, '-'); - if (!(value instanceof Array)) { - continue; - } - var x = xAxis.getCoord(value[0]); - var y = yAxis.getCoord(value[1]); - curPLMap[seriesIndex].push([ - x, - y, - i, - value[0], - x, - baseY - ]); - if (xMarkMap[seriesIndex].min0 > value[0]) { - xMarkMap[seriesIndex].min0 = value[0]; - xMarkMap[seriesIndex].minY0 = y; - xMarkMap[seriesIndex].minX0 = x; - } - if (xMarkMap[seriesIndex].max0 < value[0]) { - xMarkMap[seriesIndex].max0 = value[0]; - xMarkMap[seriesIndex].maxY0 = y; - xMarkMap[seriesIndex].maxX0 = x; - } - xMarkMap[seriesIndex].sum0 += value[0]; - xMarkMap[seriesIndex].counter0++; - if (xMarkMap[seriesIndex].min1 > value[1]) { - xMarkMap[seriesIndex].min1 = value[1]; - xMarkMap[seriesIndex].minY1 = y; - xMarkMap[seriesIndex].minX1 = x; - } - if (xMarkMap[seriesIndex].max1 < value[1]) { - xMarkMap[seriesIndex].max1 = value[1]; - xMarkMap[seriesIndex].maxY1 = y; - xMarkMap[seriesIndex].maxX1 = x; - } - xMarkMap[seriesIndex].sum1 += value[1]; - xMarkMap[seriesIndex].counter1++; - } - } - } - for (var sId in curPLMap) { - if (curPLMap[sId].length > 0) { - this.finalPLMap[sId] = this.finalPLMap[sId] || []; - this.finalPLMap[sId].push(curPLMap[sId]); - curPLMap[sId] = []; - } - } - this._calculMarkMapXY(xMarkMap, locationMap, 'xy'); - this._buildBorkenLine(seriesArray, this.finalPLMap, xAxis, 'other'); - }, - _buildBorkenLine: function (seriesArray, pointList, categoryAxis, curOrient) { - var orient = curOrient == 'other' ? 'horizontal' : curOrient; - var series = this.series; - var data; - for (var sIdx = seriesArray.length - 1; sIdx >= 0; sIdx--) { - var seriesIndex = seriesArray[sIdx]; - var serie = series[seriesIndex]; - var seriesPL = pointList[seriesIndex]; - if (serie.type === this.type && seriesPL != null) { - var bbox = this._getBbox(seriesIndex, orient); - var defaultColor = this._sIndex2ColorMap[seriesIndex]; - var lineWidth = this.query(serie, 'itemStyle.normal.lineStyle.width'); - var lineType = this.query(serie, 'itemStyle.normal.lineStyle.type'); - var lineColor = this.query(serie, 'itemStyle.normal.lineStyle.color'); - var normalColor = this.getItemStyleColor(this.query(serie, 'itemStyle.normal.color'), seriesIndex, -1); - var isFill = this.query(serie, 'itemStyle.normal.areaStyle') != null; - var fillNormalColor = this.query(serie, 'itemStyle.normal.areaStyle.color'); - for (var i = 0, l = seriesPL.length; i < l; i++) { - var singlePL = seriesPL[i]; - var isLarge = curOrient != 'other' && this._isLarge(orient, singlePL); - if (!isLarge) { - for (var j = 0, k = singlePL.length; j < k; j++) { - data = serie.data[singlePL[j][2]]; - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable') || this.deepQuery([ - data, - serie - ], 'showAllSymbol') || categoryAxis.type === 'categoryAxis' && categoryAxis.isMainAxis(singlePL[j][2]) && this.deepQuery([ - data, - serie - ], 'symbol') != 'none') { - this.shapeList.push(this._getSymbol(seriesIndex, singlePL[j][2], singlePL[j][3], singlePL[j][0], singlePL[j][1], orient)); - } - } - } else { - singlePL = this._getLargePointList(orient, singlePL, serie.dataFilter); - } - var polylineShape = new PolylineShape({ - zlevel: serie.zlevel, - z: serie.z, - style: { - miterLimit: lineWidth, - pointList: singlePL, - strokeColor: lineColor || normalColor || defaultColor, - lineWidth: lineWidth, - lineType: lineType, - smooth: this._getSmooth(serie.smooth), - smoothConstraint: bbox, - shadowColor: this.query(serie, 'itemStyle.normal.lineStyle.shadowColor'), - shadowBlur: this.query(serie, 'itemStyle.normal.lineStyle.shadowBlur'), - shadowOffsetX: this.query(serie, 'itemStyle.normal.lineStyle.shadowOffsetX'), - shadowOffsetY: this.query(serie, 'itemStyle.normal.lineStyle.shadowOffsetY') - }, - hoverable: false, - _main: true, - _seriesIndex: seriesIndex, - _orient: orient - }); - ecData.pack(polylineShape, series[seriesIndex], seriesIndex, 0, i, series[seriesIndex].name); - this.shapeList.push(polylineShape); - if (isFill) { - var halfSmoothPolygonShape = new HalfSmoothPolygonShape({ - zlevel: serie.zlevel, - z: serie.z, - style: { - miterLimit: lineWidth, - pointList: zrUtil.clone(singlePL).concat([ - [ - singlePL[singlePL.length - 1][4], - singlePL[singlePL.length - 1][5] - ], - [ - singlePL[0][4], - singlePL[0][5] - ] - ]), - brushType: 'fill', - smooth: this._getSmooth(serie.smooth), - smoothConstraint: bbox, - color: fillNormalColor ? fillNormalColor : zrColor.alpha(defaultColor, 0.5) - }, - highlightStyle: { brushType: 'fill' }, - hoverable: false, - _main: true, - _seriesIndex: seriesIndex, - _orient: orient - }); - ecData.pack(halfSmoothPolygonShape, series[seriesIndex], seriesIndex, 0, i, series[seriesIndex].name); - this.shapeList.push(halfSmoothPolygonShape); - } - } - } - } - }, - _getBbox: function (seriesIndex, orient) { - var bbox = this.component.grid.getBbox(); - var xMarkMap = this.xMarkMap[seriesIndex]; - if (xMarkMap.minX0 != null) { - return [ - [ - Math.min(xMarkMap.minX0, xMarkMap.maxX0, xMarkMap.minX1, xMarkMap.maxX1), - Math.min(xMarkMap.minY0, xMarkMap.maxY0, xMarkMap.minY1, xMarkMap.maxY1) - ], - [ - Math.max(xMarkMap.minX0, xMarkMap.maxX0, xMarkMap.minX1, xMarkMap.maxX1), - Math.max(xMarkMap.minY0, xMarkMap.maxY0, xMarkMap.minY1, xMarkMap.maxY1) - ] - ]; - } else if (orient === 'horizontal') { - bbox[0][1] = Math.min(xMarkMap.minY, xMarkMap.maxY); - bbox[1][1] = Math.max(xMarkMap.minY, xMarkMap.maxY); - } else { - bbox[0][0] = Math.min(xMarkMap.minX, xMarkMap.maxX); - bbox[1][0] = Math.max(xMarkMap.minX, xMarkMap.maxX); - } - return bbox; - }, - _isLarge: function (orient, singlePL) { - if (singlePL.length < 2) { - return false; - } else { - return orient === 'horizontal' ? Math.abs(singlePL[0][0] - singlePL[1][0]) < 0.5 : Math.abs(singlePL[0][1] - singlePL[1][1]) < 0.5; - } - }, - _getLargePointList: function (orient, singlePL, filter) { - var total; - if (orient === 'horizontal') { - total = this.component.grid.getWidth(); - } else { - total = this.component.grid.getHeight(); - } - var len = singlePL.length; - var newList = []; - if (typeof filter != 'function') { - switch (filter) { - case 'min': - filter = function (arr) { - return Math.max.apply(null, arr); - }; - break; - case 'max': - filter = function (arr) { - return Math.min.apply(null, arr); - }; - break; - case 'average': - filter = function (arr) { - var total = 0; - for (var i = 0; i < arr.length; i++) { - total += arr[i]; - } - return total / arr.length; - }; - break; - default: - filter = function (arr) { - return arr[0]; - }; - } - } - var windowData = []; - for (var i = 0; i < total; i++) { - var idx0 = Math.floor(len / total * i); - var idx1 = Math.min(Math.floor(len / total * (i + 1)), len); - if (idx1 <= idx0) { - continue; - } - for (var j = idx0; j < idx1; j++) { - windowData[j - idx0] = orient === 'horizontal' ? singlePL[j][1] : singlePL[j][0]; - } - windowData.length = idx1 - idx0; - var filteredVal = filter(windowData); - var nearestIdx = -1; - var minDist = Infinity; - for (var j = idx0; j < idx1; j++) { - var val = orient === 'horizontal' ? singlePL[j][1] : singlePL[j][0]; - var dist = Math.abs(val - filteredVal); - if (dist < minDist) { - nearestIdx = j; - minDist = dist; - } - } - var newItem = singlePL[nearestIdx].slice(); - if (orient === 'horizontal') { - newItem[1] = filteredVal; - } else { - newItem[0] = filteredVal; - } - newList.push(newItem); - } - return newList; - }, - _getSmooth: function (isSmooth) { - if (isSmooth) { - return 0.3; - } else { - return 0; - } - }, - _getCalculableItem: function (seriesIndex, dataIndex, name, x, y, orient) { - var series = this.series; - var color = series[seriesIndex].calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor; - var itemShape = this._getSymbol(seriesIndex, dataIndex, name, x, y, orient); - itemShape.style.color = color; - itemShape.style.strokeColor = color; - itemShape.rotation = [ - 0, - 0 - ]; - itemShape.hoverable = false; - itemShape.draggable = false; - itemShape.style.text = undefined; - return itemShape; - }, - _getSymbol: function (seriesIndex, dataIndex, name, x, y, orient) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var itemShape = this.getSymbolShape(serie, seriesIndex, data, dataIndex, name, x, y, this._sIndex2ShapeMap[seriesIndex], this._sIndex2ColorMap[seriesIndex], '#fff', orient === 'vertical' ? 'horizontal' : 'vertical'); - itemShape.zlevel = serie.zlevel; - itemShape.z = serie.z + 1; - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - this.setCalculable(itemShape); - itemShape.draggable = true; - } - return itemShape; - }, - getMarkCoord: function (seriesIndex, mpData) { - var serie = this.series[seriesIndex]; - var xMarkMap = this.xMarkMap[seriesIndex]; - var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex); - var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex); - if (mpData.type && (mpData.type === 'max' || mpData.type === 'min' || mpData.type === 'average')) { - var valueIndex = mpData.valueIndex != null ? mpData.valueIndex : xMarkMap.maxX0 != null ? '1' : ''; - return [ - xMarkMap[mpData.type + 'X' + valueIndex], - xMarkMap[mpData.type + 'Y' + valueIndex], - xMarkMap[mpData.type + 'Line' + valueIndex], - xMarkMap[mpData.type + valueIndex] - ]; - } - return [ - typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0), - typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0) - ]; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - }, - ontooltipHover: function (param, tipShape) { - var seriesIndex = param.seriesIndex; - var dataIndex = param.dataIndex; - var seriesPL; - var singlePL; - var len = seriesIndex.length; - while (len--) { - seriesPL = this.finalPLMap[seriesIndex[len]]; - if (seriesPL) { - for (var i = 0, l = seriesPL.length; i < l; i++) { - singlePL = seriesPL[i]; - for (var j = 0, k = singlePL.length; j < k; j++) { - if (dataIndex === singlePL[j][2]) { - tipShape.push(this._getSymbol(seriesIndex[len], singlePL[j][2], singlePL[j][3], singlePL[j][0], singlePL[j][1], 'horizontal')); - } - } - } - } - } - }, - addDataAnimation: function (params, done) { - var series = this.series; - var aniMap = {}; - for (var i = 0, l = params.length; i < l; i++) { - aniMap[params[i][0]] = params[i]; - } - var x; - var dx; - var y; - var dy; - var seriesIndex; - var pointList; - var isHorizontal; - var aniCount = 0; - function animationDone() { - aniCount--; - if (aniCount === 0) { - done && done(); - } - } - function animationDuring(target) { - target.style.controlPointList = null; - } - for (var i = this.shapeList.length - 1; i >= 0; i--) { - seriesIndex = this.shapeList[i]._seriesIndex; - if (aniMap[seriesIndex] && !aniMap[seriesIndex][3]) { - if (this.shapeList[i]._main && this.shapeList[i].style.pointList.length > 1) { - pointList = this.shapeList[i].style.pointList; - dx = Math.abs(pointList[0][0] - pointList[1][0]); - dy = Math.abs(pointList[0][1] - pointList[1][1]); - isHorizontal = this.shapeList[i]._orient === 'horizontal'; - if (aniMap[seriesIndex][2]) { - if (this.shapeList[i].type === 'half-smooth-polygon') { - var len = pointList.length; - this.shapeList[i].style.pointList[len - 3] = pointList[len - 2]; - this.shapeList[i].style.pointList[len - 3][isHorizontal ? 0 : 1] = pointList[len - 4][isHorizontal ? 0 : 1]; - this.shapeList[i].style.pointList[len - 2] = pointList[len - 1]; - } - this.shapeList[i].style.pointList.pop(); - isHorizontal ? (x = dx, y = 0) : (x = 0, y = -dy); - } else { - this.shapeList[i].style.pointList.shift(); - if (this.shapeList[i].type === 'half-smooth-polygon') { - var targetPoint = this.shapeList[i].style.pointList.pop(); - isHorizontal ? targetPoint[0] = pointList[0][0] : targetPoint[1] = pointList[0][1]; - this.shapeList[i].style.pointList.push(targetPoint); - } - isHorizontal ? (x = -dx, y = 0) : (x = 0, y = dy); - } - this.shapeList[i].style.controlPointList = null; - this.zr.modShape(this.shapeList[i]); - } else { - if (aniMap[seriesIndex][2] && this.shapeList[i]._dataIndex === series[seriesIndex].data.length - 1) { - this.zr.delShape(this.shapeList[i].id); - continue; - } else if (!aniMap[seriesIndex][2] && this.shapeList[i]._dataIndex === 0) { - this.zr.delShape(this.shapeList[i].id); - continue; - } - } - this.shapeList[i].position = [ - 0, - 0 - ]; - aniCount++; - this.zr.animate(this.shapeList[i].id, '').when(this.query(this.option, 'animationDurationUpdate'), { - position: [ - x, - y - ] - }).during(animationDuring).done(animationDone).start(); - } - } - if (!aniCount) { - done && done(); - } - } - }; - function legendLineIcon(ctx, style, refreshNextFrame) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - var dy = height / 2; - if (style.symbol.match('empty')) { - ctx.fillStyle = '#fff'; - } - style.brushType = 'both'; - var symbol = style.symbol.replace('empty', '').toLowerCase(); - if (symbol.match('star')) { - dy = symbol.replace('star', '') - 0 || 5; - y -= 1; - symbol = 'star'; - } else if (symbol === 'rectangle' || symbol === 'arrow') { - x += (width - height) / 2; - width = height; - } - var imageLocation = ''; - if (symbol.match('image')) { - imageLocation = symbol.replace(new RegExp('^image:\\/\\/'), ''); - symbol = 'image'; - x += Math.round((width - height) / 2) - 1; - width = height = height + 2; - } - symbol = IconShape.prototype.iconLibrary[symbol]; - if (symbol) { - var x2 = style.x; - var y2 = style.y; - ctx.moveTo(x2, y2 + dy); - ctx.lineTo(x2 + 5, y2 + dy); - ctx.moveTo(x2 + style.width - 5, y2 + dy); - ctx.lineTo(x2 + style.width, y2 + dy); - var self = this; - symbol(ctx, { - x: x + 4, - y: y + 4, - width: width - 8, - height: height - 8, - n: dy, - image: imageLocation - }, function () { - self.modSelf(); - refreshNextFrame(); - }); - } else { - ctx.moveTo(x, y + dy); - ctx.lineTo(x + width, y + dy); - } - } - IconShape.prototype.iconLibrary['legendLineIcon'] = legendLineIcon; - zrUtil.inherits(Line, ChartBase); - require('../chart').define('line', Line); - return Line; -});define('echarts/util/shape/HalfSmoothPolygon', [ - 'require', - 'zrender/shape/Base', - 'zrender/shape/util/smoothBezier', - 'zrender/tool/util', - 'zrender/shape/Polygon' -], function (require) { - var Base = require('zrender/shape/Base'); - var smoothBezier = require('zrender/shape/util/smoothBezier'); - var zrUtil = require('zrender/tool/util'); - function HalfSmoothPolygon(options) { - Base.call(this, options); - } - HalfSmoothPolygon.prototype = { - type: 'half-smooth-polygon', - buildPath: function (ctx, style) { - var pointList = style.pointList; - if (pointList.length < 2) { - return; - } - if (style.smooth) { - var controlPoints = smoothBezier(pointList.slice(0, -2), style.smooth, false, style.smoothConstraint); - ctx.moveTo(pointList[0][0], pointList[0][1]); - var cp1; - var cp2; - var p; - var l = pointList.length; - for (var i = 0; i < l - 3; i++) { - cp1 = controlPoints[i * 2]; - cp2 = controlPoints[i * 2 + 1]; - p = pointList[i + 1]; - ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); - } - ctx.lineTo(pointList[l - 2][0], pointList[l - 2][1]); - ctx.lineTo(pointList[l - 1][0], pointList[l - 1][1]); - ctx.lineTo(pointList[0][0], pointList[0][1]); - } else { - require('zrender/shape/Polygon').prototype.buildPath(ctx, style); - } - return; - } - }; - zrUtil.inherits(HalfSmoothPolygon, Base); - return HalfSmoothPolygon; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/map.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/map.js deleted file mode 100644 index fa7f244..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/map.js +++ /dev/null @@ -1,17866 +0,0 @@ -define('echarts/chart/map', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Path', - 'zrender/shape/Circle', - 'zrender/shape/Rectangle', - 'zrender/shape/Line', - 'zrender/shape/Polygon', - 'zrender/shape/Ellipse', - 'zrender/shape/Image', - '../component/dataRange', - '../component/roamController', - '../layer/heatmap', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/config', - 'zrender/tool/event', - '../util/mapData/params', - '../util/mapData/textFixed', - '../util/mapData/geoCoord', - '../util/projection/svg', - '../util/projection/normal', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var TextShape = require('zrender/shape/Text'); - var PathShape = require('zrender/shape/Path'); - var CircleShape = require('zrender/shape/Circle'); - var RectangleShape = require('zrender/shape/Rectangle'); - var LineShape = require('zrender/shape/Line'); - var PolygonShape = require('zrender/shape/Polygon'); - var EllipseShape = require('zrender/shape/Ellipse'); - var ZrImage = require('zrender/shape/Image'); - require('../component/dataRange'); - require('../component/roamController'); - var HeatmapLayer = require('../layer/heatmap'); - var ecConfig = require('../config'); - ecConfig.map = { - zlevel: 0, - z: 2, - mapType: 'china', - showLegendSymbol: true, - dataRangeHoverLink: true, - hoverable: true, - clickable: true, - itemStyle: { - normal: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - areaStyle: { color: '#ccc' }, - label: { - show: false, - textStyle: { color: 'rgb(139,69,19)' } - } - }, - emphasis: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - areaStyle: { color: 'rgba(255,215,0,0.8)' }, - label: { - show: false, - textStyle: { color: 'rgb(100,0,0)' } - } - } - } - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrConfig = require('zrender/config'); - var zrEvent = require('zrender/tool/event'); - var _mapParams = require('../util/mapData/params').params; - var _textFixed = require('../util/mapData/textFixed'); - var _geoCoord = require('../util/mapData/geoCoord'); - function Map(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._onmousewheel = function (params) { - return self.__onmousewheel(params); - }; - self._onmousedown = function (params) { - return self.__onmousedown(params); - }; - self._onmousemove = function (params) { - return self.__onmousemove(params); - }; - self._onmouseup = function (params) { - return self.__onmouseup(params); - }; - self._onroamcontroller = function (params) { - return self.__onroamcontroller(params); - }; - self._ondrhoverlink = function (params) { - return self.__ondrhoverlink(params); - }; - this._isAlive = true; - this._selectedMode = {}; - this._activeMapType = {}; - this._clickable = {}; - this._hoverable = {}; - this._showLegendSymbol = {}; - this._selected = {}; - this._mapTypeMap = {}; - this._mapDataMap = {}; - this._nameMap = {}; - this._specialArea = {}; - this._refreshDelayTicket; - this._mapDataRequireCounter; - this._markAnimation = false; - this._hoverLinkMap = {}; - this._roamMap = {}; - this._scaleLimitMap = {}; - this._mx; - this._my; - this._mousedown; - this._justMove; - this._curMapType; - this.refresh(option); - this.zr.on(zrConfig.EVENT.MOUSEWHEEL, this._onmousewheel); - this.zr.on(zrConfig.EVENT.MOUSEDOWN, this._onmousedown); - messageCenter.bind(ecConfig.EVENT.ROAMCONTROLLER, this._onroamcontroller); - messageCenter.bind(ecConfig.EVENT.DATA_RANGE_HOVERLINK, this._ondrhoverlink); - } - Map.prototype = { - type: ecConfig.CHART_TYPE_MAP, - _buildShape: function () { - var series = this.series; - this.selectedMap = {}; - this._activeMapType = {}; - var legend = this.component.legend; - var seriesName; - var valueData = {}; - var mapType; - var data; - var name; - var mapSeries = {}; - var mapValuePrecision = {}; - var valueCalculation = {}; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type == ecConfig.CHART_TYPE_MAP) { - series[i] = this.reformOption(series[i]); - mapType = series[i].mapType; - mapSeries[mapType] = mapSeries[mapType] || {}; - mapSeries[mapType][i] = true; - mapValuePrecision[mapType] = mapValuePrecision[mapType] || series[i].mapValuePrecision; - this._scaleLimitMap[mapType] = this._scaleLimitMap[mapType] || {}; - series[i].scaleLimit && zrUtil.merge(this._scaleLimitMap[mapType], series[i].scaleLimit, true); - this._roamMap[mapType] = series[i].roam || this._roamMap[mapType]; - if (this._hoverLinkMap[mapType] == null || this._hoverLinkMap[mapType]) { - this._hoverLinkMap[mapType] = series[i].dataRangeHoverLink; - } - this._nameMap[mapType] = this._nameMap[mapType] || {}; - series[i].nameMap && zrUtil.merge(this._nameMap[mapType], series[i].nameMap, true); - this._activeMapType[mapType] = true; - if (series[i].textFixed) { - zrUtil.merge(_textFixed, series[i].textFixed, true); - } - if (series[i].geoCoord) { - zrUtil.merge(_geoCoord, series[i].geoCoord, true); - } - this._selectedMode[mapType] = this._selectedMode[mapType] || series[i].selectedMode; - if (this._hoverable[mapType] == null || this._hoverable[mapType]) { - this._hoverable[mapType] = series[i].hoverable; - } - if (this._clickable[mapType] == null || this._clickable[mapType]) { - this._clickable[mapType] = series[i].clickable; - } - if (this._showLegendSymbol[mapType] == null || this._showLegendSymbol[mapType]) { - this._showLegendSymbol[mapType] = series[i].showLegendSymbol; - } - valueCalculation[mapType] = valueCalculation[mapType] || series[i].mapValueCalculation; - seriesName = series[i].name; - this.selectedMap[seriesName] = legend ? legend.isSelected(seriesName) : true; - if (this.selectedMap[seriesName]) { - valueData[mapType] = valueData[mapType] || {}; - data = series[i].data; - for (var j = 0, k = data.length; j < k; j++) { - name = this._nameChange(mapType, data[j].name); - valueData[mapType][name] = valueData[mapType][name] || { - seriesIndex: [], - valueMap: {}, - precision: 0 - }; - for (var key in data[j]) { - if (key != 'value') { - valueData[mapType][name][key] = data[j][key]; - } else if (!isNaN(data[j].value)) { - valueData[mapType][name].value == null && (valueData[mapType][name].value = 0); - valueData[mapType][name].precision = Math.max(this.getPrecision(+data[j].value), valueData[mapType][name].precision); - valueData[mapType][name].value += +data[j].value; - valueData[mapType][name].valueMap[i] = +data[j].value; - } - } - valueData[mapType][name].seriesIndex.push(i); - } - } - } - } - this._mapDataRequireCounter = 0; - for (var mt in valueData) { - this._mapDataRequireCounter++; - } - this._clearSelected(); - if (this._mapDataRequireCounter === 0) { - this.clear(); - this.zr && this.zr.delShape(this.lastShapeList); - this.lastShapeList = []; - } - for (var mt in valueData) { - for (var k in valueData[mt]) { - if (valueCalculation[mt] == 'average') { - valueData[mt][k].value /= valueData[mt][k].seriesIndex.length; - } - var value = valueData[mt][k].value; - if (value != null) { - valueData[mt][k].value = value.toFixed(mapValuePrecision[mt] == null ? valueData[mt][k].precision : mapValuePrecision[mt]) - 0; - } - } - this._mapDataMap[mt] = this._mapDataMap[mt] || {}; - if (this._mapDataMap[mt].mapData) { - this._mapDataCallback(mt, valueData[mt], mapSeries[mt])(this._mapDataMap[mt].mapData); - } else if (_mapParams[mt.replace(/\|.*/, '')].getGeoJson) { - this._specialArea[mt] = _mapParams[mt.replace(/\|.*/, '')].specialArea || this._specialArea[mt]; - _mapParams[mt.replace(/\|.*/, '')].getGeoJson(this._mapDataCallback(mt, valueData[mt], mapSeries[mt])); - } - } - }, - _mapDataCallback: function (mt, vd, ms) { - var self = this; - return function (md) { - if (!self._isAlive || self._activeMapType[mt] == null) { - return; - } - if (mt.indexOf('|') != -1) { - md = self._getSubMapData(mt, md); - } - self._mapDataMap[mt].mapData = md; - if (md.firstChild) { - self._mapDataMap[mt].rate = 1; - self._mapDataMap[mt].projection = require('../util/projection/svg'); - } else { - self._mapDataMap[mt].rate = 0.75; - self._mapDataMap[mt].projection = require('../util/projection/normal'); - } - self._buildMap(mt, self._getProjectionData(mt, md, ms), vd, ms); - self._buildMark(mt, ms); - if (--self._mapDataRequireCounter <= 0) { - self.addShapeList(); - self.zr.refreshNextFrame(); - } - self._buildHeatmap(mt); - }; - }, - _clearSelected: function () { - for (var k in this._selected) { - if (!this._activeMapType[this._mapTypeMap[k]]) { - delete this._selected[k]; - delete this._mapTypeMap[k]; - } - } - }, - _getSubMapData: function (mapType, mapData) { - var subType = mapType.replace(/^.*\|/, ''); - var features = mapData.features; - for (var i = 0, l = features.length; i < l; i++) { - if (features[i].properties && features[i].properties.name == subType) { - features = features[i]; - if (subType == 'United States of America' && features.geometry.coordinates.length > 1) { - features = { - geometry: { - coordinates: features.geometry.coordinates.slice(5, 6), - type: features.geometry.type - }, - id: features.id, - properties: features.properties, - type: features.type - }; - } - break; - } - } - return { - 'type': 'FeatureCollection', - 'features': [features] - }; - }, - _getProjectionData: function (mapType, mapData, mapSeries) { - var normalProjection = this._mapDataMap[mapType].projection; - var province = []; - var bbox = this._mapDataMap[mapType].bbox || normalProjection.getBbox(mapData, this._specialArea[mapType]); - var transform; - if (!this._mapDataMap[mapType].hasRoam) { - transform = this._getTransform(bbox, mapSeries, this._mapDataMap[mapType].rate); - } else { - transform = this._mapDataMap[mapType].transform; - } - var lastTransform = this._mapDataMap[mapType].lastTransform || { scale: {} }; - var pathArray; - if (transform.left != lastTransform.left || transform.top != lastTransform.top || transform.scale.x != lastTransform.scale.x || transform.scale.y != lastTransform.scale.y) { - pathArray = normalProjection.geoJson2Path(mapData, transform, this._specialArea[mapType]); - lastTransform = zrUtil.clone(transform); - } else { - transform = this._mapDataMap[mapType].transform; - pathArray = this._mapDataMap[mapType].pathArray; - } - this._mapDataMap[mapType].bbox = bbox; - this._mapDataMap[mapType].transform = transform; - this._mapDataMap[mapType].lastTransform = lastTransform; - this._mapDataMap[mapType].pathArray = pathArray; - var position = [ - transform.left, - transform.top - ]; - for (var i = 0, l = pathArray.length; i < l; i++) { - province.push(this._getSingleProvince(mapType, pathArray[i], position)); - } - if (this._specialArea[mapType]) { - for (var area in this._specialArea[mapType]) { - province.push(this._getSpecialProjectionData(mapType, mapData, area, this._specialArea[mapType][area], position)); - } - } - if (mapType == 'china') { - var leftTop = this.geo2pos(mapType, _geoCoord['南海诸岛'] || _mapParams['南海诸岛'].textCoord); - var scale = transform.scale.x / 10.5; - var textPosition = [ - 32 * scale + leftTop[0], - 83 * scale + leftTop[1] - ]; - if (_textFixed['南海诸岛']) { - textPosition[0] += _textFixed['南海诸岛'][0]; - textPosition[1] += _textFixed['南海诸岛'][1]; - } - province.push({ - name: this._nameChange(mapType, '南海诸岛'), - path: _mapParams['南海诸岛'].getPath(leftTop, scale), - position: position, - textX: textPosition[0], - textY: textPosition[1] - }); - } - return province; - }, - _getSpecialProjectionData: function (mapType, mapData, areaName, mapSize, position) { - mapData = this._getSubMapData('x|' + areaName, mapData); - var normalProjection = require('../util/projection/normal'); - var bbox = normalProjection.getBbox(mapData); - var leftTop = this.geo2pos(mapType, [ - mapSize.left, - mapSize.top - ]); - var rightBottom = this.geo2pos(mapType, [ - mapSize.left + mapSize.width, - mapSize.top + mapSize.height - ]); - var width = Math.abs(rightBottom[0] - leftTop[0]); - var height = Math.abs(rightBottom[1] - leftTop[1]); - var mapWidth = bbox.width; - var mapHeight = bbox.height; - var xScale = width / 0.75 / mapWidth; - var yScale = height / mapHeight; - if (xScale > yScale) { - xScale = yScale * 0.75; - width = mapWidth * xScale; - } else { - yScale = xScale; - xScale = yScale * 0.75; - height = mapHeight * yScale; - } - var transform = { - OffsetLeft: leftTop[0], - OffsetTop: leftTop[1], - scale: { - x: xScale, - y: yScale - } - }; - var pathArray = normalProjection.geoJson2Path(mapData, transform); - return this._getSingleProvince(mapType, pathArray[0], position); - }, - _getSingleProvince: function (mapType, path, position) { - var textPosition; - var name = path.properties.name; - var textFixed = _textFixed[name] || [ - 0, - 0 - ]; - if (_geoCoord[name]) { - textPosition = this.geo2pos(mapType, _geoCoord[name]); - } else if (path.cp) { - textPosition = [ - path.cp[0] + textFixed[0], - path.cp[1] + textFixed[1] - ]; - } else { - var bbox = this._mapDataMap[mapType].bbox; - textPosition = this.geo2pos(mapType, [ - bbox.left + bbox.width / 2, - bbox.top + bbox.height / 2 - ]); - textPosition[0] += textFixed[0]; - textPosition[1] += textFixed[1]; - } - path.name = this._nameChange(mapType, name); - path.position = position; - path.textX = textPosition[0]; - path.textY = textPosition[1]; - return path; - }, - _getTransform: function (bbox, mapSeries, rate) { - var series = this.series; - var mapLocation; - var x; - var cusX; - var y; - var cusY; - var width; - var height; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - var padding = Math.round(Math.min(zrWidth, zrHeight) * 0.02); - for (var key in mapSeries) { - mapLocation = series[key].mapLocation || {}; - cusX = mapLocation.x || cusX; - cusY = mapLocation.y || cusY; - width = mapLocation.width || width; - height = mapLocation.height || height; - } - x = this.parsePercent(cusX, zrWidth); - x = isNaN(x) ? padding : x; - y = this.parsePercent(cusY, zrHeight); - y = isNaN(y) ? padding : y; - width = width == null ? zrWidth - x - 2 * padding : this.parsePercent(width, zrWidth); - height = height == null ? zrHeight - y - 2 * padding : this.parsePercent(height, zrHeight); - var mapWidth = bbox.width; - var mapHeight = bbox.height; - var xScale = width / rate / mapWidth; - var yScale = height / mapHeight; - if (xScale > yScale) { - xScale = yScale * rate; - width = mapWidth * xScale; - } else { - yScale = xScale; - xScale = yScale * rate; - height = mapHeight * yScale; - } - if (isNaN(cusX)) { - cusX = cusX || 'center'; - switch (cusX + '') { - case 'center': - x = Math.floor((zrWidth - width) / 2); - break; - case 'right': - x = zrWidth - width; - break; - } - } - if (isNaN(cusY)) { - cusY = cusY || 'center'; - switch (cusY + '') { - case 'center': - y = Math.floor((zrHeight - height) / 2); - break; - case 'bottom': - y = zrHeight - height; - break; - } - } - return { - left: x, - top: y, - width: width, - height: height, - baseScale: 1, - scale: { - x: xScale, - y: yScale - } - }; - }, - _buildMap: function (mapType, mapData, valueData, mapSeries) { - var series = this.series; - var legend = this.component.legend; - var dataRange = this.component.dataRange; - var seriesName; - var name; - var data; - var value; - var queryTarget; - var color; - var font; - var style; - var highlightStyle; - var shape; - var textShape; - for (var i = 0, l = mapData.length; i < l; i++) { - style = zrUtil.clone(mapData[i]); - highlightStyle = { - name: style.name, - path: style.path, - position: zrUtil.clone(style.position) - }; - name = style.name; - data = valueData[name]; - if (data) { - queryTarget = [data]; - seriesName = ''; - for (var j = 0, k = data.seriesIndex.length; j < k; j++) { - var serie = series[data.seriesIndex[j]]; - queryTarget.push(serie); - seriesName += serie.name + ' '; - if (legend && this._showLegendSymbol[mapType] && legend.hasColor(serie.name)) { - this.shapeList.push(new CircleShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - position: zrUtil.clone(style.position), - _mapType: mapType, - style: { - x: style.textX + 3 + j * 7, - y: style.textY - 10, - r: 3, - color: legend.getColor(serie.name) - }, - hoverable: false - })); - } - } - value = data.value; - } else { - data = { - name: name, - value: '-' - }; - seriesName = ''; - queryTarget = []; - for (var key in mapSeries) { - queryTarget.push(series[key]); - } - value = '-'; - } - this.ecTheme.map && queryTarget.push(this.ecTheme.map); - queryTarget.push(ecConfig.map); - color = dataRange && !isNaN(value) ? dataRange.getColor(value) : null; - style.color = style.color || color || this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color'), data.seriesIndex, -1, data) || this.deepQuery(queryTarget, 'itemStyle.normal.areaStyle.color'); - style.strokeColor = style.strokeColor || this.deepQuery(queryTarget, 'itemStyle.normal.borderColor'); - style.lineWidth = style.lineWidth || this.deepQuery(queryTarget, 'itemStyle.normal.borderWidth'); - highlightStyle.color = this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), data.seriesIndex, -1, data) || this.deepQuery(queryTarget, 'itemStyle.emphasis.areaStyle.color') || style.color; - highlightStyle.strokeColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.borderColor') || style.strokeColor; - highlightStyle.lineWidth = this.deepQuery(queryTarget, 'itemStyle.emphasis.borderWidth') || style.lineWidth; - style.brushType = highlightStyle.brushType = style.brushType || 'both'; - style.lineJoin = highlightStyle.lineJoin = 'round'; - style._name = highlightStyle._name = name; - font = this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle'); - textShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - position: zrUtil.clone(style.position), - _mapType: mapType, - _geo: this.pos2geo(mapType, [ - style.textX, - style.textY - ]), - style: { - brushType: 'fill', - x: style.textX, - y: style.textY, - text: this.getLabelText(name, value, queryTarget, 'normal'), - _name: name, - textAlign: 'center', - color: this.deepQuery(queryTarget, 'itemStyle.normal.label.show') ? this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle.color') : 'rgba(0,0,0,0)', - textFont: this.getFont(font) - } - }; - textShape._style = zrUtil.clone(textShape.style); - textShape.highlightStyle = zrUtil.clone(textShape.style); - if (this.deepQuery(queryTarget, 'itemStyle.emphasis.label.show')) { - textShape.highlightStyle.text = this.getLabelText(name, value, queryTarget, 'emphasis'); - textShape.highlightStyle.color = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle.color') || textShape.style.color; - font = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle') || font; - textShape.highlightStyle.textFont = this.getFont(font); - } else { - textShape.highlightStyle.color = 'rgba(0,0,0,0)'; - } - shape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - position: zrUtil.clone(style.position), - style: style, - highlightStyle: highlightStyle, - _style: zrUtil.clone(style), - _mapType: mapType - }; - if (style.scale != null) { - shape.scale = zrUtil.clone(style.scale); - } - textShape = new TextShape(textShape); - switch (shape.style.shapeType) { - case 'rectangle': - shape = new RectangleShape(shape); - break; - case 'line': - shape = new LineShape(shape); - break; - case 'circle': - shape = new CircleShape(shape); - break; - case 'polygon': - shape = new PolygonShape(shape); - break; - case 'ellipse': - shape = new EllipseShape(shape); - break; - default: - shape = new PathShape(shape); - if (shape.buildPathArray) { - shape.style.pathArray = shape.buildPathArray(shape.style.path); - } - break; - } - if (this._selectedMode[mapType] && (this._selected[name] && data.selected !== false) || data.selected === true) { - textShape.style = textShape.highlightStyle; - shape.style = shape.highlightStyle; - } - textShape.clickable = shape.clickable = this._clickable[mapType] && (data.clickable == null || data.clickable); - if (this._selectedMode[mapType]) { - this._selected[name] = this._selected[name] != null ? this._selected[name] : data.selected; - this._mapTypeMap[name] = mapType; - if (data.selectable == null || data.selectable) { - shape.clickable = textShape.clickable = true; - shape.onclick = textShape.onclick = this.shapeHandler.onclick; - } - } - if (this._hoverable[mapType] && (data.hoverable == null || data.hoverable)) { - textShape.hoverable = shape.hoverable = true; - shape.hoverConnect = textShape.id; - textShape.hoverConnect = shape.id; - } else { - textShape.hoverable = shape.hoverable = false; - } - ecData.pack(textShape, { - name: seriesName, - tooltip: this.deepQuery(queryTarget, 'tooltip') - }, 0, data, 0, name); - this.shapeList.push(textShape); - ecData.pack(shape, { - name: seriesName, - tooltip: this.deepQuery(queryTarget, 'tooltip') - }, 0, data, 0, name); - this.shapeList.push(shape); - } - }, - _buildMark: function (mapType, mapSeries) { - this._seriesIndexToMapType = this._seriesIndexToMapType || {}; - this.markAttachStyle = this.markAttachStyle || {}; - var position = [ - this._mapDataMap[mapType].transform.left, - this._mapDataMap[mapType].transform.top - ]; - if (mapType == 'none') { - position = [ - 0, - 0 - ]; - } - for (var sIdx in mapSeries) { - this._seriesIndexToMapType[sIdx] = mapType; - this.markAttachStyle[sIdx] = { - position: position, - _mapType: mapType - }; - this.buildMark(sIdx); - } - }, - _buildHeatmap: function (mapType) { - var series = this.series; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].heatmap) { - var data = series[i].heatmap.data; - if (series[i].heatmap.needsTransform === false) { - var geo = []; - for (var j = 0, len = data.length; j < len; ++j) { - geo.push([ - data[j][3], - data[j][4], - data[j][2] - ]); - } - var pos = [ - 0, - 0 - ]; - } else { - var geoData = series[i].heatmap._geoData; - if (geoData === undefined) { - series[i].heatmap._geoData = []; - for (var j = 0, len = data.length; j < len; ++j) { - series[i].heatmap._geoData[j] = data[j]; - } - geoData = series[i].heatmap._geoData; - } - var len = data.length; - for (var id = 0; id < len; ++id) { - data[id] = this.geo2pos(mapType, [ - geoData[id][0], - geoData[id][1] - ]); - } - var pos = [ - this._mapDataMap[mapType].transform.left, - this._mapDataMap[mapType].transform.top - ]; - } - var layer = new HeatmapLayer(series[i].heatmap); - var canvas = layer.getCanvas(data[0][3] ? geo : data, this.zr.getWidth(), this.zr.getHeight()); - var image = new ZrImage({ - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - position: pos, - scale: [ - 1, - 1 - ], - hoverable: false, - style: { - x: 0, - y: 0, - image: canvas, - width: canvas.width, - height: canvas.height - } - }); - image.type = 'heatmap'; - image._mapType = mapType; - this.shapeList.push(image); - this.zr.addShape(image); - } - } - }, - getMarkCoord: function (seriesIndex, mpData) { - return mpData.geoCoord || _geoCoord[mpData.name] ? this.geo2pos(this._seriesIndexToMapType[seriesIndex], mpData.geoCoord || _geoCoord[mpData.name]) : [ - 0, - 0 - ]; - }, - getMarkGeo: function (mpData) { - return mpData.geoCoord || _geoCoord[mpData.name]; - }, - _nameChange: function (mapType, name) { - return this._nameMap[mapType][name] || name; - }, - getLabelText: function (name, value, queryTarget, status) { - var formatter = this.deepQuery(queryTarget, 'itemStyle.' + status + '.label.formatter'); - if (formatter) { - if (typeof formatter == 'function') { - return formatter.call(this.myChart, name, value); - } else if (typeof formatter == 'string') { - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}'); - formatter = formatter.replace('{a0}', name).replace('{b0}', value); - return formatter; - } - } else { - return name; - } - }, - _findMapTypeByPos: function (mx, my) { - var transform; - var left; - var top; - var width; - var height; - for (var mapType in this._mapDataMap) { - transform = this._mapDataMap[mapType].transform; - if (!transform || !this._roamMap[mapType] || !this._activeMapType[mapType]) { - continue; - } - left = transform.left; - top = transform.top; - width = transform.width; - height = transform.height; - if (mx >= left && mx <= left + width && my >= top && my <= top + height) { - return mapType; - } - } - return; - }, - __onmousewheel: function (params) { - if (this.shapeList.length <= 0) { - return; - } - for (var i = 0, l = this.shapeList.length; i < l; i++) { - var shape = this.shapeList[i]; - if (shape.__animating) { - return; - } - } - var event = params.event; - var mx = zrEvent.getX(event); - var my = zrEvent.getY(event); - var delta; - var eventDelta = zrEvent.getDelta(event); - var mapType; - var mapTypeControl = params.mapTypeControl; - if (!mapTypeControl) { - mapTypeControl = {}; - mapType = this._findMapTypeByPos(mx, my); - if (mapType && this._roamMap[mapType] && this._roamMap[mapType] != 'move') { - mapTypeControl[mapType] = true; - } - } - function scalePolyline(shapeStyle, delta) { - for (var i = 0; i < shapeStyle.pointList.length; i++) { - var point = shapeStyle.pointList[i]; - point[0] *= delta; - point[1] *= delta; - } - var controlPointList = shapeStyle.controlPointList; - if (controlPointList) { - for (var i = 0; i < controlPointList.length; i++) { - var point = controlPointList[i]; - point[0] *= delta; - point[1] *= delta; - } - } - } - function scaleMarkline(shapeStyle, delta) { - shapeStyle.xStart *= delta; - shapeStyle.yStart *= delta; - shapeStyle.xEnd *= delta; - shapeStyle.yEnd *= delta; - if (shapeStyle.cpX1 != null) { - shapeStyle.cpX1 *= delta; - shapeStyle.cpY1 *= delta; - } - } - var haveScale = false; - for (mapType in mapTypeControl) { - if (mapTypeControl[mapType]) { - haveScale = true; - var transform = this._mapDataMap[mapType].transform; - var left = transform.left; - var top = transform.top; - var width = transform.width; - var height = transform.height; - var geoAndPos = this.pos2geo(mapType, [ - mx - left, - my - top - ]); - if (eventDelta > 0) { - delta = 1.2; - if (this._scaleLimitMap[mapType].max != null && transform.baseScale >= this._scaleLimitMap[mapType].max) { - continue; - } - } else { - delta = 1 / 1.2; - if (this._scaleLimitMap[mapType].min != null && transform.baseScale <= this._scaleLimitMap[mapType].min) { - continue; - } - } - transform.baseScale *= delta; - transform.scale.x *= delta; - transform.scale.y *= delta; - transform.width = width * delta; - transform.height = height * delta; - this._mapDataMap[mapType].hasRoam = true; - this._mapDataMap[mapType].transform = transform; - geoAndPos = this.geo2pos(mapType, geoAndPos); - transform.left -= geoAndPos[0] - (mx - left); - transform.top -= geoAndPos[1] - (my - top); - this._mapDataMap[mapType].transform = transform; - this.clearEffectShape(true); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - var shape = this.shapeList[i]; - if (shape._mapType == mapType) { - var shapeType = shape.type; - var shapeStyle = shape.style; - shape.position[0] = transform.left; - shape.position[1] = transform.top; - switch (shapeType) { - case 'path': - case 'symbol': - case 'circle': - case 'rectangle': - case 'polygon': - case 'line': - case 'ellipse': - case 'heatmap': - shape.scale[0] *= delta; - shape.scale[1] *= delta; - break; - case 'mark-line': - scaleMarkline(shapeStyle, delta); - break; - case 'polyline': - scalePolyline(shapeStyle, delta); - break; - case 'shape-bundle': - for (var j = 0; j < shapeStyle.shapeList.length; j++) { - var subShape = shapeStyle.shapeList[j]; - if (subShape.type == 'mark-line') { - scaleMarkline(subShape.style, delta); - } else if (subShape.type == 'polyline') { - scalePolyline(subShape.style, delta); - } - } - break; - case 'icon': - case 'image': - geoAndPos = this.geo2pos(mapType, shape._geo); - shapeStyle.x = shapeStyle._x = geoAndPos[0] - shapeStyle.width / 2; - shapeStyle.y = shapeStyle._y = geoAndPos[1] - shapeStyle.height / 2; - break; - default: - geoAndPos = this.geo2pos(mapType, shape._geo); - shapeStyle.x = geoAndPos[0]; - shapeStyle.y = geoAndPos[1]; - if (shapeType == 'text') { - shape._style.x = shape.highlightStyle.x = geoAndPos[0]; - shape._style.y = shape.highlightStyle.y = geoAndPos[1]; - } - } - this.zr.modShape(shape.id); - } - } - } - } - if (haveScale) { - zrEvent.stop(event); - this.zr.refreshNextFrame(); - var self = this; - clearTimeout(this._refreshDelayTicket); - this._refreshDelayTicket = setTimeout(function () { - self && self.shapeList && self.animationEffect(); - }, 100); - this.messageCenter.dispatch(ecConfig.EVENT.MAP_ROAM, params.event, { type: 'scale' }, this.myChart); - } - }, - __onmousedown: function (params) { - if (this.shapeList.length <= 0) { - return; - } - var target = params.target; - if (target && target.draggable) { - return; - } - var event = params.event; - var mx = zrEvent.getX(event); - var my = zrEvent.getY(event); - var mapType = this._findMapTypeByPos(mx, my); - if (mapType && this._roamMap[mapType] && this._roamMap[mapType] != 'scale') { - this._mousedown = true; - this._mx = mx; - this._my = my; - this._curMapType = mapType; - this.zr.on(zrConfig.EVENT.MOUSEUP, this._onmouseup); - var self = this; - setTimeout(function () { - self.zr.on(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); - }, 100); - } - }, - __onmousemove: function (params) { - if (!this._mousedown || !this._isAlive) { - return; - } - var event = params.event; - var mx = zrEvent.getX(event); - var my = zrEvent.getY(event); - var transform = this._mapDataMap[this._curMapType].transform; - transform.hasRoam = true; - transform.left -= this._mx - mx; - transform.top -= this._my - my; - this._mx = mx; - this._my = my; - this._mapDataMap[this._curMapType].transform = transform; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i]._mapType == this._curMapType) { - this.shapeList[i].position[0] = transform.left; - this.shapeList[i].position[1] = transform.top; - this.zr.modShape(this.shapeList[i].id); - } - } - this.messageCenter.dispatch(ecConfig.EVENT.MAP_ROAM, params.event, { type: 'move' }, this.myChart); - this.clearEffectShape(true); - this.zr.refreshNextFrame(); - this._justMove = true; - zrEvent.stop(event); - }, - __onmouseup: function (params) { - var event = params.event; - this._mx = zrEvent.getX(event); - this._my = zrEvent.getY(event); - this._mousedown = false; - var self = this; - setTimeout(function () { - self._justMove && self.animationEffect(); - self._justMove = false; - self.zr.un(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); - self.zr.un(zrConfig.EVENT.MOUSEUP, self._onmouseup); - }, 120); - }, - __onroamcontroller: function (params) { - var event = params.event; - event.zrenderX = this.zr.getWidth() / 2; - event.zrenderY = this.zr.getHeight() / 2; - var mapTypeControl = params.mapTypeControl; - var top = 0; - var left = 0; - var step = params.step; - switch (params.roamType) { - case 'scaleUp': - event.zrenderDelta = 1; - this.__onmousewheel({ - event: event, - mapTypeControl: mapTypeControl - }); - return; - case 'scaleDown': - event.zrenderDelta = -1; - this.__onmousewheel({ - event: event, - mapTypeControl: mapTypeControl - }); - return; - case 'up': - top = -step; - break; - case 'down': - top = step; - break; - case 'left': - left = -step; - break; - case 'right': - left = step; - break; - } - var transform; - var curMapType; - for (curMapType in mapTypeControl) { - if (!this._mapDataMap[curMapType] || !this._activeMapType[curMapType]) { - continue; - } - transform = this._mapDataMap[curMapType].transform; - transform.hasRoam = true; - transform.left -= left; - transform.top -= top; - this._mapDataMap[curMapType].transform = transform; - } - for (var i = 0, l = this.shapeList.length; i < l; i++) { - curMapType = this.shapeList[i]._mapType; - if (!mapTypeControl[curMapType] || !this._activeMapType[curMapType]) { - continue; - } - transform = this._mapDataMap[curMapType].transform; - this.shapeList[i].position[0] = transform.left; - this.shapeList[i].position[1] = transform.top; - this.zr.modShape(this.shapeList[i].id); - } - this.messageCenter.dispatch(ecConfig.EVENT.MAP_ROAM, params.event, { type: 'move' }, this.myChart); - this.clearEffectShape(true); - this.zr.refreshNextFrame(); - clearTimeout(this.dircetionTimer); - var self = this; - this.dircetionTimer = setTimeout(function () { - self.animationEffect(); - }, 150); - }, - __ondrhoverlink: function (param) { - var curMapType; - var value; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - curMapType = this.shapeList[i]._mapType; - if (!this._hoverLinkMap[curMapType] || !this._activeMapType[curMapType]) { - continue; - } - value = ecData.get(this.shapeList[i], 'value'); - if (value != null && value >= param.valueMin && value <= param.valueMax) { - this.zr.addHoverShape(this.shapeList[i]); - } - } - }, - onclick: function (params) { - if (!this.isClick || !params.target || this._justMove || params.target.type == 'icon') { - return; - } - this.isClick = false; - var target = params.target; - var name = target.style._name; - var len = this.shapeList.length; - var mapType = target._mapType || ''; - if (this._selectedMode[mapType] == 'single') { - for (var p in this._selected) { - if (this._selected[p] && this._mapTypeMap[p] == mapType) { - for (var i = 0; i < len; i++) { - if (this.shapeList[i].style._name == p && this.shapeList[i]._mapType == mapType) { - this.shapeList[i].style = this.shapeList[i]._style; - this.zr.modShape(this.shapeList[i].id); - } - } - p != name && (this._selected[p] = false); - } - } - } - this._selected[name] = !this._selected[name]; - for (var i = 0; i < len; i++) { - if (this.shapeList[i].style._name == name && this.shapeList[i]._mapType == mapType) { - if (this._selected[name]) { - this.shapeList[i].style = this.shapeList[i].highlightStyle; - } else { - this.shapeList[i].style = this.shapeList[i]._style; - } - this.zr.modShape(this.shapeList[i].id); - } - } - this.messageCenter.dispatch(ecConfig.EVENT.MAP_SELECTED, params.event, { - selected: this._selected, - target: name - }, this.myChart); - this.zr.refreshNextFrame(); - var self = this; - setTimeout(function () { - self.zr.trigger(zrConfig.EVENT.MOUSEMOVE, params.event); - }, 100); - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - if (this._mapDataRequireCounter > 0) { - this.clear(); - } else { - this.backupShapeList(); - } - this._buildShape(); - this.zr.refreshHover(); - }, - ondataRange: function (param, status) { - if (this.component.dataRange) { - this.refresh(); - status.needRefresh = true; - } - return; - }, - pos2geo: function (mapType, p) { - if (!this._mapDataMap[mapType].transform) { - return null; - } - return this._mapDataMap[mapType].projection.pos2geo(this._mapDataMap[mapType].transform, p); - }, - getGeoByPos: function (mapType, p) { - if (!this._mapDataMap[mapType].transform) { - return null; - } - var position = [ - this._mapDataMap[mapType].transform.left, - this._mapDataMap[mapType].transform.top - ]; - if (p instanceof Array) { - p[0] -= position[0]; - p[1] -= position[1]; - } else { - p.x -= position[0]; - p.y -= position[1]; - } - return this.pos2geo(mapType, p); - }, - geo2pos: function (mapType, p) { - if (!this._mapDataMap[mapType].transform) { - return null; - } - return this._mapDataMap[mapType].projection.geo2pos(this._mapDataMap[mapType].transform, p); - }, - getPosByGeo: function (mapType, p) { - if (!this._mapDataMap[mapType].transform) { - return null; - } - var pos = this.geo2pos(mapType, p); - pos[0] += this._mapDataMap[mapType].transform.left; - pos[1] += this._mapDataMap[mapType].transform.top; - return pos; - }, - getMapPosition: function (mapType) { - if (!this._mapDataMap[mapType].transform) { - return null; - } - return [ - this._mapDataMap[mapType].transform.left, - this._mapDataMap[mapType].transform.top - ]; - }, - onbeforDispose: function () { - this._isAlive = false; - this.zr.un(zrConfig.EVENT.MOUSEWHEEL, this._onmousewheel); - this.zr.un(zrConfig.EVENT.MOUSEDOWN, this._onmousedown); - this.messageCenter.unbind(ecConfig.EVENT.ROAMCONTROLLER, this._onroamcontroller); - this.messageCenter.unbind(ecConfig.EVENT.DATA_RANGE_HOVERLINK, this._ondrhoverlink); - } - }; - zrUtil.inherits(Map, ChartBase); - require('../chart').define('map', Map); - return Map; -});define('zrender/shape/Path', [ - 'require', - './Base', - './util/PathProxy', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var PathProxy = require('./util/PathProxy'); - var PathSegment = PathProxy.PathSegment; - var vMag = function (v) { - return Math.sqrt(v[0] * v[0] + v[1] * v[1]); - }; - var vRatio = function (u, v) { - return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v)); - }; - var vAngle = function (u, v) { - return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v)); - }; - var Path = function (options) { - Base.call(this, options); - }; - Path.prototype = { - type: 'path', - buildPathArray: function (data, x, y) { - if (!data) { - return []; - } - x = x || 0; - y = y || 0; - var cs = data; - var cc = [ - 'm', - 'M', - 'l', - 'L', - 'v', - 'V', - 'h', - 'H', - 'z', - 'Z', - 'c', - 'C', - 'q', - 'Q', - 't', - 'T', - 's', - 'S', - 'a', - 'A' - ]; - cs = cs.replace(/-/g, ' -'); - cs = cs.replace(/ /g, ' '); - cs = cs.replace(/ /g, ','); - cs = cs.replace(/,,/g, ','); - var n; - for (n = 0; n < cc.length; n++) { - cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]); - } - var arr = cs.split('|'); - var ca = []; - var cpx = 0; - var cpy = 0; - for (n = 1; n < arr.length; n++) { - var str = arr[n]; - var c = str.charAt(0); - str = str.slice(1); - str = str.replace(new RegExp('e,-', 'g'), 'e-'); - var p = str.split(','); - if (p.length > 0 && p[0] === '') { - p.shift(); - } - for (var i = 0; i < p.length; i++) { - p[i] = parseFloat(p[i]); - } - while (p.length > 0) { - if (isNaN(p[0])) { - break; - } - var cmd = null; - var points = []; - var ctlPtx; - var ctlPty; - var prevCmd; - var rx; - var ry; - var psi; - var fa; - var fs; - var x1 = cpx; - var y1 = cpy; - switch (c) { - case 'l': - cpx += p.shift(); - cpy += p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'L': - cpx = p.shift(); - cpy = p.shift(); - points.push(cpx, cpy); - break; - case 'm': - cpx += p.shift(); - cpy += p.shift(); - cmd = 'M'; - points.push(cpx, cpy); - c = 'l'; - break; - case 'M': - cpx = p.shift(); - cpy = p.shift(); - cmd = 'M'; - points.push(cpx, cpy); - c = 'L'; - break; - case 'h': - cpx += p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'H': - cpx = p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'v': - cpy += p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'V': - cpy = p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'C': - points.push(p.shift(), p.shift(), p.shift(), p.shift()); - cpx = p.shift(); - cpy = p.shift(); - points.push(cpx, cpy); - break; - case 'c': - points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift()); - cpx += p.shift(); - cpy += p.shift(); - cmd = 'C'; - points.push(cpx, cpy); - break; - case 'S': - ctlPtx = cpx; - ctlPty = cpy; - prevCmd = ca[ca.length - 1]; - if (prevCmd.command === 'C') { - ctlPtx = cpx + (cpx - prevCmd.points[2]); - ctlPty = cpy + (cpy - prevCmd.points[3]); - } - points.push(ctlPtx, ctlPty, p.shift(), p.shift()); - cpx = p.shift(); - cpy = p.shift(); - cmd = 'C'; - points.push(cpx, cpy); - break; - case 's': - ctlPtx = cpx, ctlPty = cpy; - prevCmd = ca[ca.length - 1]; - if (prevCmd.command === 'C') { - ctlPtx = cpx + (cpx - prevCmd.points[2]); - ctlPty = cpy + (cpy - prevCmd.points[3]); - } - points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift()); - cpx += p.shift(); - cpy += p.shift(); - cmd = 'C'; - points.push(cpx, cpy); - break; - case 'Q': - points.push(p.shift(), p.shift()); - cpx = p.shift(); - cpy = p.shift(); - points.push(cpx, cpy); - break; - case 'q': - points.push(cpx + p.shift(), cpy + p.shift()); - cpx += p.shift(); - cpy += p.shift(); - cmd = 'Q'; - points.push(cpx, cpy); - break; - case 'T': - ctlPtx = cpx, ctlPty = cpy; - prevCmd = ca[ca.length - 1]; - if (prevCmd.command === 'Q') { - ctlPtx = cpx + (cpx - prevCmd.points[0]); - ctlPty = cpy + (cpy - prevCmd.points[1]); - } - cpx = p.shift(); - cpy = p.shift(); - cmd = 'Q'; - points.push(ctlPtx, ctlPty, cpx, cpy); - break; - case 't': - ctlPtx = cpx, ctlPty = cpy; - prevCmd = ca[ca.length - 1]; - if (prevCmd.command === 'Q') { - ctlPtx = cpx + (cpx - prevCmd.points[0]); - ctlPty = cpy + (cpy - prevCmd.points[1]); - } - cpx += p.shift(); - cpy += p.shift(); - cmd = 'Q'; - points.push(ctlPtx, ctlPty, cpx, cpy); - break; - case 'A': - rx = p.shift(); - ry = p.shift(); - psi = p.shift(); - fa = p.shift(); - fs = p.shift(); - x1 = cpx, y1 = cpy; - cpx = p.shift(), cpy = p.shift(); - cmd = 'A'; - points = this._convertPoint(x1, y1, cpx, cpy, fa, fs, rx, ry, psi); - break; - case 'a': - rx = p.shift(); - ry = p.shift(); - psi = p.shift(); - fa = p.shift(); - fs = p.shift(); - x1 = cpx, y1 = cpy; - cpx += p.shift(); - cpy += p.shift(); - cmd = 'A'; - points = this._convertPoint(x1, y1, cpx, cpy, fa, fs, rx, ry, psi); - break; - } - for (var j = 0, l = points.length; j < l; j += 2) { - points[j] += x; - points[j + 1] += y; - } - ca.push(new PathSegment(cmd || c, points)); - } - if (c === 'z' || c === 'Z') { - ca.push(new PathSegment('z', [])); - } - } - return ca; - }, - _convertPoint: function (x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) { - var psi = psiDeg * (Math.PI / 180); - var xp = Math.cos(psi) * (x1 - x2) / 2 + Math.sin(psi) * (y1 - y2) / 2; - var yp = -1 * Math.sin(psi) * (x1 - x2) / 2 + Math.cos(psi) * (y1 - y2) / 2; - var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry); - if (lambda > 1) { - rx *= Math.sqrt(lambda); - ry *= Math.sqrt(lambda); - } - var f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp))); - if (fa === fs) { - f *= -1; - } - if (isNaN(f)) { - f = 0; - } - var cxp = f * rx * yp / ry; - var cyp = f * -ry * xp / rx; - var cx = (x1 + x2) / 2 + Math.cos(psi) * cxp - Math.sin(psi) * cyp; - var cy = (y1 + y2) / 2 + Math.sin(psi) * cxp + Math.cos(psi) * cyp; - var theta = vAngle([ - 1, - 0 - ], [ - (xp - cxp) / rx, - (yp - cyp) / ry - ]); - var u = [ - (xp - cxp) / rx, - (yp - cyp) / ry - ]; - var v = [ - (-1 * xp - cxp) / rx, - (-1 * yp - cyp) / ry - ]; - var dTheta = vAngle(u, v); - if (vRatio(u, v) <= -1) { - dTheta = Math.PI; - } - if (vRatio(u, v) >= 1) { - dTheta = 0; - } - if (fs === 0 && dTheta > 0) { - dTheta = dTheta - 2 * Math.PI; - } - if (fs === 1 && dTheta < 0) { - dTheta = dTheta + 2 * Math.PI; - } - return [ - cx, - cy, - rx, - ry, - theta, - dTheta, - psi, - fs - ]; - }, - buildPath: function (ctx, style) { - var path = style.path; - var x = style.x || 0; - var y = style.y || 0; - style.pathArray = style.pathArray || this.buildPathArray(path, x, y); - var pathArray = style.pathArray; - var pointList = style.pointList = []; - var singlePointList = []; - for (var i = 0, l = pathArray.length; i < l; i++) { - if (pathArray[i].command.toUpperCase() == 'M') { - singlePointList.length > 0 && pointList.push(singlePointList); - singlePointList = []; - } - var p = pathArray[i].points; - for (var j = 0, k = p.length; j < k; j += 2) { - singlePointList.push([ - p[j], - p[j + 1] - ]); - } - } - singlePointList.length > 0 && pointList.push(singlePointList); - for (var i = 0, l = pathArray.length; i < l; i++) { - var c = pathArray[i].command; - var p = pathArray[i].points; - switch (c) { - case 'L': - ctx.lineTo(p[0], p[1]); - break; - case 'M': - ctx.moveTo(p[0], p[1]); - break; - case 'C': - ctx.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]); - break; - case 'Q': - ctx.quadraticCurveTo(p[0], p[1], p[2], p[3]); - break; - case 'A': - var cx = p[0]; - var cy = p[1]; - var rx = p[2]; - var ry = p[3]; - var theta = p[4]; - var dTheta = p[5]; - var psi = p[6]; - var fs = p[7]; - var r = rx > ry ? rx : ry; - var scaleX = rx > ry ? 1 : rx / ry; - var scaleY = rx > ry ? ry / rx : 1; - ctx.translate(cx, cy); - ctx.rotate(psi); - ctx.scale(scaleX, scaleY); - ctx.arc(0, 0, r, theta, theta + dTheta, 1 - fs); - ctx.scale(1 / scaleX, 1 / scaleY); - ctx.rotate(-psi); - ctx.translate(-cx, -cy); - break; - case 'z': - ctx.closePath(); - break; - } - } - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - var minX = Number.MAX_VALUE; - var maxX = Number.MIN_VALUE; - var minY = Number.MAX_VALUE; - var maxY = Number.MIN_VALUE; - var x = style.x || 0; - var y = style.y || 0; - var pathArray = style.pathArray || this.buildPathArray(style.path); - for (var i = 0; i < pathArray.length; i++) { - var p = pathArray[i].points; - for (var j = 0; j < p.length; j++) { - if (j % 2 === 0) { - if (p[j] + x < minX) { - minX = p[j]; - } - if (p[j] + x > maxX) { - maxX = p[j]; - } - } else { - if (p[j] + y < minY) { - minY = p[j]; - } - if (p[j] + y > maxY) { - maxY = p[j]; - } - } - } - } - var rect; - if (minX === Number.MAX_VALUE || maxX === Number.MIN_VALUE || minY === Number.MAX_VALUE || maxY === Number.MIN_VALUE) { - rect = { - x: 0, - y: 0, - width: 0, - height: 0 - }; - } else { - rect = { - x: Math.round(minX - lineWidth / 2), - y: Math.round(minY - lineWidth / 2), - width: maxX - minX + lineWidth, - height: maxY - minY + lineWidth - }; - } - style.__rect = rect; - return rect; - } - }; - require('../tool/util').inherits(Path, Base); - return Path; -});define('zrender/shape/Ellipse', [ - 'require', - './Base', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var Ellipse = function (options) { - Base.call(this, options); - }; - Ellipse.prototype = { - type: 'ellipse', - buildPath: function (ctx, style) { - var k = 0.5522848; - var x = style.x; - var y = style.y; - var a = style.a; - var b = style.b; - var ox = a * k; - var oy = b * k; - ctx.moveTo(x - a, y); - ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b); - ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y); - ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b); - ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y); - ctx.closePath(); - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - style.__rect = { - x: Math.round(style.x - style.a - lineWidth / 2), - y: Math.round(style.y - style.b - lineWidth / 2), - width: style.a * 2 + lineWidth, - height: style.b * 2 + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Ellipse, Base); - return Ellipse; -});define('echarts/component/dataRange', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Rectangle', - '../util/shape/HandlePolygon', - '../config', - 'zrender/tool/util', - 'zrender/tool/event', - 'zrender/tool/area', - 'zrender/tool/color', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var RectangleShape = require('zrender/shape/Rectangle'); - var HandlePolygonShape = require('../util/shape/HandlePolygon'); - var ecConfig = require('../config'); - ecConfig.dataRange = { - zlevel: 0, - z: 4, - show: true, - orient: 'vertical', - x: 'left', - y: 'bottom', - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - itemGap: 10, - itemWidth: 20, - itemHeight: 14, - precision: 0, - splitNumber: 5, - splitList: null, - calculable: false, - selectedMode: true, - hoverLink: true, - realtime: true, - color: [ - '#006edd', - '#e0ffff' - ], - textStyle: { color: '#333' } - }; - var zrUtil = require('zrender/tool/util'); - var zrEvent = require('zrender/tool/event'); - var zrArea = require('zrender/tool/area'); - var zrColor = require('zrender/tool/color'); - function DataRange(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._ondrift = function (dx, dy) { - return self.__ondrift(this, dx, dy); - }; - self._ondragend = function () { - return self.__ondragend(); - }; - self._dataRangeSelected = function (param) { - return self.__dataRangeSelected(param); - }; - self._dispatchHoverLink = function (param) { - return self.__dispatchHoverLink(param); - }; - self._onhoverlink = function (params) { - return self.__onhoverlink(params); - }; - this._selectedMap = {}; - this._range = {}; - this.refresh(option); - messageCenter.bind(ecConfig.EVENT.HOVER, this._onhoverlink); - } - DataRange.prototype = { - type: ecConfig.COMPONENT_TYPE_DATARANGE, - _textGap: 10, - _buildShape: function () { - this._itemGroupLocation = this._getItemGroupLocation(); - this._buildBackground(); - if (this._isContinuity()) { - this._buildGradient(); - } else { - this._buildItem(); - } - if (this.dataRangeOption.show) { - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - } - this._syncShapeFromRange(); - }, - _buildItem: function () { - var data = this._valueTextList; - var dataLength = data.length; - var itemName; - var itemShape; - var textShape; - var font = this.getFont(this.dataRangeOption.textStyle); - var lastX = this._itemGroupLocation.x; - var lastY = this._itemGroupLocation.y; - var itemWidth = this.dataRangeOption.itemWidth; - var itemHeight = this.dataRangeOption.itemHeight; - var itemGap = this.dataRangeOption.itemGap; - var textHeight = zrArea.getTextHeight('国', font); - var color; - if (this.dataRangeOption.orient == 'vertical' && this.dataRangeOption.x == 'right') { - lastX = this._itemGroupLocation.x + this._itemGroupLocation.width - itemWidth; - } - var needValueText = true; - if (this.dataRangeOption.text) { - needValueText = false; - if (this.dataRangeOption.text[0]) { - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[0]); - if (this.dataRangeOption.orient == 'horizontal') { - lastX += zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap; - } else { - lastY += textHeight + this._textGap; - textShape.style.y += textHeight / 2 + this._textGap; - textShape.style.textBaseline = 'bottom'; - } - this.shapeList.push(new TextShape(textShape)); - } - } - for (var i = 0; i < dataLength; i++) { - itemName = data[i]; - color = this.getColorByIndex(i); - itemShape = this._getItemShape(lastX, lastY, itemWidth, itemHeight, this._selectedMap[i] ? color : '#ccc'); - itemShape._idx = i; - itemShape.onmousemove = this._dispatchHoverLink; - if (this.dataRangeOption.selectedMode) { - itemShape.clickable = true; - itemShape.onclick = this._dataRangeSelected; - } - this.shapeList.push(new RectangleShape(itemShape)); - if (needValueText) { - textShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX + itemWidth + 5, - y: lastY, - color: this._selectedMap[i] ? this.dataRangeOption.textStyle.color : '#ccc', - text: data[i], - textFont: font, - textBaseline: 'top' - }, - highlightStyle: { brushType: 'fill' } - }; - if (this.dataRangeOption.orient == 'vertical' && this.dataRangeOption.x == 'right') { - textShape.style.x -= itemWidth + 10; - textShape.style.textAlign = 'right'; - } - textShape._idx = i; - textShape.onmousemove = this._dispatchHoverLink; - if (this.dataRangeOption.selectedMode) { - textShape.clickable = true; - textShape.onclick = this._dataRangeSelected; - } - this.shapeList.push(new TextShape(textShape)); - } - if (this.dataRangeOption.orient == 'horizontal') { - lastX += itemWidth + (needValueText ? 5 : 0) + (needValueText ? zrArea.getTextWidth(itemName, font) : 0) + itemGap; - } else { - lastY += itemHeight + itemGap; - } - } - if (!needValueText && this.dataRangeOption.text[1]) { - if (this.dataRangeOption.orient == 'horizontal') { - lastX = lastX - itemGap + this._textGap; - } else { - lastY = lastY - itemGap + this._textGap; - } - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[1]); - if (this.dataRangeOption.orient != 'horizontal') { - textShape.style.y -= 5; - textShape.style.textBaseline = 'top'; - } - this.shapeList.push(new TextShape(textShape)); - } - }, - _buildGradient: function () { - var itemShape; - var textShape; - var font = this.getFont(this.dataRangeOption.textStyle); - var lastX = this._itemGroupLocation.x; - var lastY = this._itemGroupLocation.y; - var itemWidth = this.dataRangeOption.itemWidth; - var itemHeight = this.dataRangeOption.itemHeight; - var textHeight = zrArea.getTextHeight('国', font); - var mSize = 10; - var needValueText = true; - if (this.dataRangeOption.text) { - needValueText = false; - if (this.dataRangeOption.text[0]) { - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[0]); - if (this.dataRangeOption.orient == 'horizontal') { - lastX += zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap; - } else { - lastY += textHeight + this._textGap; - textShape.style.y += textHeight / 2 + this._textGap; - textShape.style.textBaseline = 'bottom'; - } - this.shapeList.push(new TextShape(textShape)); - } - } - var zrColor = require('zrender/tool/color'); - var per = 1 / (this.dataRangeOption.color.length - 1); - var colorList = []; - for (var i = 0, l = this.dataRangeOption.color.length; i < l; i++) { - colorList.push([ - i * per, - this.dataRangeOption.color[i] - ]); - } - if (this.dataRangeOption.orient == 'horizontal') { - itemShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX, - y: lastY, - width: itemWidth * mSize, - height: itemHeight, - color: zrColor.getLinearGradient(lastX, lastY, lastX + itemWidth * mSize, lastY, colorList) - }, - hoverable: false - }; - lastX += itemWidth * mSize + this._textGap; - } else { - itemShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX, - y: lastY, - width: itemWidth, - height: itemHeight * mSize, - color: zrColor.getLinearGradient(lastX, lastY, lastX, lastY + itemHeight * mSize, colorList) - }, - hoverable: false - }; - lastY += itemHeight * mSize + this._textGap; - } - this.shapeList.push(new RectangleShape(itemShape)); - this._calculableLocation = itemShape.style; - if (this.dataRangeOption.calculable) { - this._buildFiller(); - this._bulidMask(); - this._bulidHandle(); - } - this._buildIndicator(); - if (!needValueText && this.dataRangeOption.text[1]) { - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[1]); - this.shapeList.push(new TextShape(textShape)); - } - }, - _buildIndicator: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - var size = 5; - var pointList; - var textPosition; - if (this.dataRangeOption.orient == 'horizontal') { - if (this.dataRangeOption.y != 'bottom') { - pointList = [ - [ - x, - y + height - ], - [ - x - size, - y + height + size - ], - [ - x + size, - y + height + size - ] - ]; - textPosition = 'bottom'; - } else { - pointList = [ - [ - x, - y - ], - [ - x - size, - y - size - ], - [ - x + size, - y - size - ] - ]; - textPosition = 'top'; - } - } else { - if (this.dataRangeOption.x != 'right') { - pointList = [ - [ - x + width, - y - ], - [ - x + width + size, - y - size - ], - [ - x + width + size, - y + size - ] - ]; - textPosition = 'right'; - } else { - pointList = [ - [ - x, - y - ], - [ - x - size, - y - size - ], - [ - x - size, - y + size - ] - ]; - textPosition = 'left'; - } - } - this._indicatorShape = { - style: { - pointList: pointList, - color: '#fff', - __rect: { - x: Math.min(pointList[0][0], pointList[1][0]), - y: Math.min(pointList[0][1], pointList[1][1]), - width: size * (this.dataRangeOption.orient == 'horizontal' ? 2 : 1), - height: size * (this.dataRangeOption.orient == 'horizontal' ? 1 : 2) - } - }, - highlightStyle: { - brushType: 'fill', - textPosition: textPosition, - textColor: this.dataRangeOption.textStyle.color - }, - hoverable: false - }; - this._indicatorShape = new HandlePolygonShape(this._indicatorShape); - }, - _buildFiller: function () { - this._fillerShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - x: this._calculableLocation.x, - y: this._calculableLocation.y, - width: this._calculableLocation.width, - height: this._calculableLocation.height, - color: 'rgba(255,255,255,0)' - }, - highlightStyle: { - strokeColor: 'rgba(255,255,255,0.5)', - lineWidth: 1 - }, - draggable: true, - ondrift: this._ondrift, - ondragend: this._ondragend, - onmousemove: this._dispatchHoverLink, - _type: 'filler' - }; - this._fillerShape = new RectangleShape(this._fillerShape); - this.shapeList.push(this._fillerShape); - }, - _bulidHandle: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - var font = this.getFont(this.dataRangeOption.textStyle); - var textHeight = zrArea.getTextHeight('国', font); - var textWidth = Math.max(zrArea.getTextWidth(this._textFormat(this.dataRangeOption.max), font), zrArea.getTextWidth(this._textFormat(this.dataRangeOption.min), font)) + 2; - var pointListStart; - var textXStart; - var textYStart; - var coverRectStart; - var pointListEnd; - var textXEnd; - var textYEnd; - var coverRectEnd; - if (this.dataRangeOption.orient == 'horizontal') { - if (this.dataRangeOption.y != 'bottom') { - pointListStart = [ - [ - x, - y - ], - [ - x, - y + height + textHeight - ], - [ - x - textHeight, - y + height + textHeight - ], - [ - x - 1, - y + height - ], - [ - x - 1, - y - ] - ]; - textXStart = x - textWidth / 2 - textHeight; - textYStart = y + height + textHeight / 2 + 2; - coverRectStart = { - x: x - textWidth - textHeight, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x + width, - y - ], - [ - x + width, - y + height + textHeight - ], - [ - x + width + textHeight, - y + height + textHeight - ], - [ - x + width + 1, - y + height - ], - [ - x + width + 1, - y - ] - ]; - textXEnd = x + width + textWidth / 2 + textHeight; - textYEnd = textYStart; - coverRectEnd = { - x: x + width, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - } else { - pointListStart = [ - [ - x, - y + height - ], - [ - x, - y - textHeight - ], - [ - x - textHeight, - y - textHeight - ], - [ - x - 1, - y - ], - [ - x - 1, - y + height - ] - ]; - textXStart = x - textWidth / 2 - textHeight; - textYStart = y - textHeight / 2 - 2; - coverRectStart = { - x: x - textWidth - textHeight, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x + width, - y + height - ], - [ - x + width, - y - textHeight - ], - [ - x + width + textHeight, - y - textHeight - ], - [ - x + width + 1, - y - ], - [ - x + width + 1, - y + height - ] - ]; - textXEnd = x + width + textWidth / 2 + textHeight; - textYEnd = textYStart; - coverRectEnd = { - x: x + width, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - } - } else { - textWidth += textHeight; - if (this.dataRangeOption.x != 'right') { - pointListStart = [ - [ - x, - y - ], - [ - x + width + textHeight, - y - ], - [ - x + width + textHeight, - y - textHeight - ], - [ - x + width, - y - 1 - ], - [ - x, - y - 1 - ] - ]; - textXStart = x + width + textWidth / 2 + textHeight / 2; - textYStart = y - textHeight / 2; - coverRectStart = { - x: x + width, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x, - y + height - ], - [ - x + width + textHeight, - y + height - ], - [ - x + width + textHeight, - y + textHeight + height - ], - [ - x + width, - y + 1 + height - ], - [ - x, - y + height + 1 - ] - ]; - textXEnd = textXStart; - textYEnd = y + height + textHeight / 2; - coverRectEnd = { - x: x + width, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - } else { - pointListStart = [ - [ - x + width, - y - ], - [ - x - textHeight, - y - ], - [ - x - textHeight, - y - textHeight - ], - [ - x, - y - 1 - ], - [ - x + width, - y - 1 - ] - ]; - textXStart = x - textWidth / 2 - textHeight / 2; - textYStart = y - textHeight / 2; - coverRectStart = { - x: x - textWidth - textHeight, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x + width, - y + height - ], - [ - x - textHeight, - y + height - ], - [ - x - textHeight, - y + textHeight + height - ], - [ - x, - y + 1 + height - ], - [ - x + width, - y + height + 1 - ] - ]; - textXEnd = textXStart; - textYEnd = y + height + textHeight / 2; - coverRectEnd = { - x: x - textWidth - textHeight, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - } - } - this._startShape = { - style: { - pointList: pointListStart, - text: this._textFormat(this.dataRangeOption.max), - textX: textXStart, - textY: textYStart, - textFont: font, - color: this.getColor(this.dataRangeOption.max), - rect: coverRectStart, - x: pointListStart[0][0], - y: pointListStart[0][1], - _x: pointListStart[0][0], - _y: pointListStart[0][1] - } - }; - this._startShape.highlightStyle = { - strokeColor: this._startShape.style.color, - lineWidth: 1 - }; - this._endShape = { - style: { - pointList: pointListEnd, - text: this._textFormat(this.dataRangeOption.min), - textX: textXEnd, - textY: textYEnd, - textFont: font, - color: this.getColor(this.dataRangeOption.min), - rect: coverRectEnd, - x: pointListEnd[0][0], - y: pointListEnd[0][1], - _x: pointListEnd[0][0], - _y: pointListEnd[0][1] - } - }; - this._endShape.highlightStyle = { - strokeColor: this._endShape.style.color, - lineWidth: 1 - }; - this._startShape.zlevel = this._endShape.zlevel = this.getZlevelBase(); - this._startShape.z = this._endShape.z = this.getZBase() + 1; - this._startShape.draggable = this._endShape.draggable = true; - this._startShape.ondrift = this._endShape.ondrift = this._ondrift; - this._startShape.ondragend = this._endShape.ondragend = this._ondragend; - this._startShape.style.textColor = this._endShape.style.textColor = this.dataRangeOption.textStyle.color; - this._startShape.style.textAlign = this._endShape.style.textAlign = 'center'; - this._startShape.style.textPosition = this._endShape.style.textPosition = 'specific'; - this._startShape.style.textBaseline = this._endShape.style.textBaseline = 'middle'; - this._startShape.style.width = this._endShape.style.width = 0; - this._startShape.style.height = this._endShape.style.height = 0; - this._startShape.style.textPosition = this._endShape.style.textPosition = 'specific'; - this._startShape = new HandlePolygonShape(this._startShape); - this._endShape = new HandlePolygonShape(this._endShape); - this.shapeList.push(this._startShape); - this.shapeList.push(this._endShape); - }, - _bulidMask: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - this._startMask = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - x: x, - y: y, - width: this.dataRangeOption.orient == 'horizontal' ? 0 : width, - height: this.dataRangeOption.orient == 'horizontal' ? height : 0, - color: '#ccc' - }, - hoverable: false - }; - this._endMask = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - x: this.dataRangeOption.orient == 'horizontal' ? x + width : x, - y: this.dataRangeOption.orient == 'horizontal' ? y : y + height, - width: this.dataRangeOption.orient == 'horizontal' ? 0 : width, - height: this.dataRangeOption.orient == 'horizontal' ? height : 0, - color: '#ccc' - }, - hoverable: false - }; - this._startMask = new RectangleShape(this._startMask); - this._endMask = new RectangleShape(this._endMask); - this.shapeList.push(this._startMask); - this.shapeList.push(this._endMask); - }, - _buildBackground: function () { - var padding = this.reformCssArray(this.dataRangeOption.padding); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._itemGroupLocation.x - padding[3], - y: this._itemGroupLocation.y - padding[0], - width: this._itemGroupLocation.width + padding[3] + padding[1], - height: this._itemGroupLocation.height + padding[0] + padding[2], - brushType: this.dataRangeOption.borderWidth === 0 ? 'fill' : 'both', - color: this.dataRangeOption.backgroundColor, - strokeColor: this.dataRangeOption.borderColor, - lineWidth: this.dataRangeOption.borderWidth - } - })); - }, - _getItemGroupLocation: function () { - var data = this._valueTextList; - var dataLength = data.length; - var itemGap = this.dataRangeOption.itemGap; - var itemWidth = this.dataRangeOption.itemWidth; - var itemHeight = this.dataRangeOption.itemHeight; - var totalWidth = 0; - var totalHeight = 0; - var font = this.getFont(this.dataRangeOption.textStyle); - var textHeight = zrArea.getTextHeight('国', font); - var mSize = 10; - if (this.dataRangeOption.orient == 'horizontal') { - if (this.dataRangeOption.text || this._isContinuity()) { - totalWidth = (this._isContinuity() ? itemWidth * mSize + itemGap : dataLength * (itemWidth + itemGap)) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[0] != 'undefined' ? zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap : 0) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[1] != 'undefined' ? zrArea.getTextWidth(this.dataRangeOption.text[1], font) + this._textGap : 0); - } else { - itemWidth += 5; - for (var i = 0; i < dataLength; i++) { - totalWidth += itemWidth + zrArea.getTextWidth(data[i], font) + itemGap; - } - } - totalWidth -= itemGap; - totalHeight = Math.max(textHeight, itemHeight); - } else { - var maxWidth; - if (this.dataRangeOption.text || this._isContinuity()) { - totalHeight = (this._isContinuity() ? itemHeight * mSize + itemGap : dataLength * (itemHeight + itemGap)) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[0] != 'undefined' ? this._textGap + textHeight : 0) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[1] != 'undefined' ? this._textGap + textHeight : 0); - maxWidth = Math.max(zrArea.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[0] || '', font), zrArea.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[1] || '', font)); - totalWidth = Math.max(itemWidth, maxWidth); - } else { - totalHeight = (itemHeight + itemGap) * dataLength; - itemWidth += 5; - maxWidth = 0; - for (var i = 0; i < dataLength; i++) { - maxWidth = Math.max(maxWidth, zrArea.getTextWidth(data[i], font)); - } - totalWidth = itemWidth + maxWidth; - } - totalHeight -= itemGap; - } - var padding = this.reformCssArray(this.dataRangeOption.padding); - var x; - var zrWidth = this.zr.getWidth(); - switch (this.dataRangeOption.x) { - case 'center': - x = Math.floor((zrWidth - totalWidth) / 2); - break; - case 'left': - x = padding[3] + this.dataRangeOption.borderWidth; - break; - case 'right': - x = zrWidth - totalWidth - padding[1] - this.dataRangeOption.borderWidth; - break; - default: - x = this.parsePercent(this.dataRangeOption.x, zrWidth); - x = isNaN(x) ? 0 : x; - break; - } - var y; - var zrHeight = this.zr.getHeight(); - switch (this.dataRangeOption.y) { - case 'top': - y = padding[0] + this.dataRangeOption.borderWidth; - break; - case 'bottom': - y = zrHeight - totalHeight - padding[2] - this.dataRangeOption.borderWidth; - break; - case 'center': - y = Math.floor((zrHeight - totalHeight) / 2); - break; - default: - y = this.parsePercent(this.dataRangeOption.y, zrHeight); - y = isNaN(y) ? 0 : y; - break; - } - if (this.dataRangeOption.calculable) { - var handlerWidth = Math.max(zrArea.getTextWidth(this.dataRangeOption.max, font), zrArea.getTextWidth(this.dataRangeOption.min, font)) + textHeight; - if (this.dataRangeOption.orient == 'horizontal') { - if (x < handlerWidth) { - x = handlerWidth; - } - if (x + totalWidth + handlerWidth > zrWidth) { - x -= handlerWidth; - } - } else { - if (y < textHeight) { - y = textHeight; - } - if (y + totalHeight + textHeight > zrHeight) { - y -= textHeight; - } - } - } - return { - x: x, - y: y, - width: totalWidth, - height: totalHeight - }; - }, - _getTextShape: function (x, y, text) { - return { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: this.dataRangeOption.orient == 'horizontal' ? x : this._itemGroupLocation.x + this._itemGroupLocation.width / 2, - y: this.dataRangeOption.orient == 'horizontal' ? this._itemGroupLocation.y + this._itemGroupLocation.height / 2 : y, - color: this.dataRangeOption.textStyle.color, - text: text, - textFont: this.getFont(this.dataRangeOption.textStyle), - textBaseline: this.dataRangeOption.orient == 'horizontal' ? 'middle' : 'top', - textAlign: this.dataRangeOption.orient == 'horizontal' ? 'left' : 'center' - }, - hoverable: false - }; - }, - _getItemShape: function (x, y, width, height, color) { - return { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: x, - y: y + 1, - width: width, - height: height - 2, - color: color - }, - highlightStyle: { - strokeColor: color, - lineWidth: 1 - } - }; - }, - __ondrift: function (shape, dx, dy) { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - if (this.dataRangeOption.orient == 'horizontal') { - if (shape.style.x + dx <= x) { - shape.style.x = x; - } else if (shape.style.x + dx + shape.style.width >= x + width) { - shape.style.x = x + width - shape.style.width; - } else { - shape.style.x += dx; - } - } else { - if (shape.style.y + dy <= y) { - shape.style.y = y; - } else if (shape.style.y + dy + shape.style.height >= y + height) { - shape.style.y = y + height - shape.style.height; - } else { - shape.style.y += dy; - } - } - if (shape._type == 'filler') { - this._syncHandleShape(); - } else { - this._syncFillerShape(shape); - } - if (this.dataRangeOption.realtime) { - this._dispatchDataRange(); - } - return true; - }, - __ondragend: function () { - this.isDragend = true; - }, - ondragend: function (param, status) { - if (!this.isDragend || !param.target) { - return; - } - status.dragOut = true; - status.dragIn = true; - if (!this.dataRangeOption.realtime) { - this._dispatchDataRange(); - } - status.needRefresh = false; - this.isDragend = false; - return; - }, - _syncShapeFromRange: function () { - var range = this.dataRangeOption.range || {}; - var optRangeStart = range.start; - var optRangeEnd = range.end; - if (optRangeEnd < optRangeStart) { - optRangeStart = [ - optRangeEnd, - optRangeEnd = optRangeStart - ][0]; - } - this._range.end = optRangeStart != null ? optRangeStart : this._range.end != null ? this._range.end : 0; - this._range.start = optRangeEnd != null ? optRangeEnd : this._range.start != null ? this._range.start : 100; - if (this._range.start != 100 || this._range.end !== 0) { - if (this.dataRangeOption.orient == 'horizontal') { - var width = this._fillerShape.style.width; - this._fillerShape.style.x += width * (100 - this._range.start) / 100; - this._fillerShape.style.width = width * (this._range.start - this._range.end) / 100; - } else { - var height = this._fillerShape.style.height; - this._fillerShape.style.y += height * (100 - this._range.start) / 100; - this._fillerShape.style.height = height * (this._range.start - this._range.end) / 100; - } - this.zr.modShape(this._fillerShape.id); - this._syncHandleShape(); - } - }, - _syncHandleShape: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - if (this.dataRangeOption.orient == 'horizontal') { - this._startShape.style.x = this._fillerShape.style.x; - this._startMask.style.width = this._startShape.style.x - x; - this._endShape.style.x = this._fillerShape.style.x + this._fillerShape.style.width; - this._endMask.style.x = this._endShape.style.x; - this._endMask.style.width = x + width - this._endShape.style.x; - this._range.start = Math.ceil(100 - (this._startShape.style.x - x) / width * 100); - this._range.end = Math.floor(100 - (this._endShape.style.x - x) / width * 100); - } else { - this._startShape.style.y = this._fillerShape.style.y; - this._startMask.style.height = this._startShape.style.y - y; - this._endShape.style.y = this._fillerShape.style.y + this._fillerShape.style.height; - this._endMask.style.y = this._endShape.style.y; - this._endMask.style.height = y + height - this._endShape.style.y; - this._range.start = Math.ceil(100 - (this._startShape.style.y - y) / height * 100); - this._range.end = Math.floor(100 - (this._endShape.style.y - y) / height * 100); - } - this._syncShape(); - }, - _syncFillerShape: function (e) { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - var a; - var b; - if (this.dataRangeOption.orient == 'horizontal') { - a = this._startShape.style.x; - b = this._endShape.style.x; - if (e.id == this._startShape.id && a >= b) { - b = a; - this._endShape.style.x = a; - } else if (e.id == this._endShape.id && a >= b) { - a = b; - this._startShape.style.x = a; - } - this._fillerShape.style.x = a; - this._fillerShape.style.width = b - a; - this._startMask.style.width = a - x; - this._endMask.style.x = b; - this._endMask.style.width = x + width - b; - this._range.start = Math.ceil(100 - (a - x) / width * 100); - this._range.end = Math.floor(100 - (b - x) / width * 100); - } else { - a = this._startShape.style.y; - b = this._endShape.style.y; - if (e.id == this._startShape.id && a >= b) { - b = a; - this._endShape.style.y = a; - } else if (e.id == this._endShape.id && a >= b) { - a = b; - this._startShape.style.y = a; - } - this._fillerShape.style.y = a; - this._fillerShape.style.height = b - a; - this._startMask.style.height = a - y; - this._endMask.style.y = b; - this._endMask.style.height = y + height - b; - this._range.start = Math.ceil(100 - (a - y) / height * 100); - this._range.end = Math.floor(100 - (b - y) / height * 100); - } - this._syncShape(); - }, - _syncShape: function () { - this._startShape.position = [ - this._startShape.style.x - this._startShape.style._x, - this._startShape.style.y - this._startShape.style._y - ]; - this._startShape.style.text = this._textFormat(this._gap * this._range.start + this.dataRangeOption.min); - this._startShape.style.color = this._startShape.highlightStyle.strokeColor = this.getColor(this._gap * this._range.start + this.dataRangeOption.min); - this._endShape.position = [ - this._endShape.style.x - this._endShape.style._x, - this._endShape.style.y - this._endShape.style._y - ]; - this._endShape.style.text = this._textFormat(this._gap * this._range.end + this.dataRangeOption.min); - this._endShape.style.color = this._endShape.highlightStyle.strokeColor = this.getColor(this._gap * this._range.end + this.dataRangeOption.min); - this.zr.modShape(this._startShape.id); - this.zr.modShape(this._endShape.id); - this.zr.modShape(this._startMask.id); - this.zr.modShape(this._endMask.id); - this.zr.modShape(this._fillerShape.id); - this.zr.refreshNextFrame(); - }, - _dispatchDataRange: function () { - this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE, null, { - range: { - start: this._range.end, - end: this._range.start - } - }, this.myChart); - }, - __dataRangeSelected: function (param) { - if (this.dataRangeOption.selectedMode === 'single') { - for (var k in this._selectedMap) { - this._selectedMap[k] = false; - } - } - var idx = param.target._idx; - this._selectedMap[idx] = !this._selectedMap[idx]; - var valueMax; - var valueMin; - if (this._useCustomizedSplit()) { - valueMax = this._splitList[idx].max; - valueMin = this._splitList[idx].min; - } else { - valueMax = (this._colorList.length - idx) * this._gap + this.dataRangeOption.min; - valueMin = valueMax - this._gap; - } - this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE_SELECTED, param.event, { - selected: this._selectedMap, - target: idx, - valueMax: valueMax, - valueMin: valueMin - }, this.myChart); - this.messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this.myChart); - }, - __dispatchHoverLink: function (param) { - var valueMin; - var valueMax; - if (this.dataRangeOption.calculable) { - var totalValue = this.dataRangeOption.max - this.dataRangeOption.min; - var curValue; - if (this.dataRangeOption.orient == 'horizontal') { - curValue = (1 - (zrEvent.getX(param.event) - this._calculableLocation.x) / this._calculableLocation.width) * totalValue; - } else { - curValue = (1 - (zrEvent.getY(param.event) - this._calculableLocation.y) / this._calculableLocation.height) * totalValue; - } - valueMin = curValue - totalValue * 0.05; - valueMax = curValue + totalValue * 0.05; - } else if (this._useCustomizedSplit()) { - var idx = param.target._idx; - valueMax = this._splitList[idx].max; - valueMin = this._splitList[idx].min; - } else { - var idx = param.target._idx; - valueMax = (this._colorList.length - idx) * this._gap + this.dataRangeOption.min; - valueMin = valueMax - this._gap; - } - this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE_HOVERLINK, param.event, { - valueMin: valueMin, - valueMax: valueMax - }, this.myChart); - }, - __onhoverlink: function (param) { - if (this.dataRangeOption.show && this.dataRangeOption.hoverLink && this._indicatorShape && param && param.seriesIndex != null && param.dataIndex != null) { - var curValue = param.value; - if (curValue === '' || isNaN(curValue)) { - return; - } - if (curValue < this.dataRangeOption.min) { - curValue = this.dataRangeOption.min; - } else if (curValue > this.dataRangeOption.max) { - curValue = this.dataRangeOption.max; - } - if (this.dataRangeOption.orient == 'horizontal') { - this._indicatorShape.position = [ - (this.dataRangeOption.max - curValue) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.width, - 0 - ]; - } else { - this._indicatorShape.position = [ - 0, - (this.dataRangeOption.max - curValue) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.height - ]; - } - this._indicatorShape.style.text = this._textFormat(param.value); - this._indicatorShape.style.color = this.getColor(curValue); - this.zr.addHoverShape(this._indicatorShape); - } - }, - _textFormat: function (valueStart, valueEnd) { - var dataRangeOption = this.dataRangeOption; - if (valueStart !== -Number.MAX_VALUE) { - valueStart = (+valueStart).toFixed(dataRangeOption.precision); - } - if (valueEnd != null && valueEnd !== Number.MAX_VALUE) { - valueEnd = (+valueEnd).toFixed(dataRangeOption.precision); - } - if (dataRangeOption.formatter) { - if (typeof dataRangeOption.formatter == 'string') { - return dataRangeOption.formatter.replace('{value}', valueStart === -Number.MAX_VALUE ? 'min' : valueStart).replace('{value2}', valueEnd === Number.MAX_VALUE ? 'max' : valueEnd); - } else if (typeof dataRangeOption.formatter == 'function') { - return dataRangeOption.formatter.call(this.myChart, valueStart, valueEnd); - } - } - if (valueEnd == null) { - return valueStart; - } else { - if (valueStart === -Number.MAX_VALUE) { - return '< ' + valueEnd; - } else if (valueEnd === Number.MAX_VALUE) { - return '> ' + valueStart; - } else { - return valueStart + ' - ' + valueEnd; - } - } - }, - _isContinuity: function () { - var dataRangeOption = this.dataRangeOption; - return !(dataRangeOption.splitList ? dataRangeOption.splitList.length > 0 : dataRangeOption.splitNumber > 0) || dataRangeOption.calculable; - }, - _useCustomizedSplit: function () { - var dataRangeOption = this.dataRangeOption; - return dataRangeOption.splitList && dataRangeOption.splitList.length > 0; - }, - _buildColorList: function (splitNumber) { - this._colorList = zrColor.getGradientColors(this.dataRangeOption.color, Math.max((splitNumber - this.dataRangeOption.color.length) / (this.dataRangeOption.color.length - 1), 0) + 1); - if (this._colorList.length > splitNumber) { - var len = this._colorList.length; - var newColorList = [this._colorList[0]]; - var step = len / (splitNumber - 1); - for (var i = 1; i < splitNumber - 1; i++) { - newColorList.push(this._colorList[Math.floor(i * step)]); - } - newColorList.push(this._colorList[len - 1]); - this._colorList = newColorList; - } - if (this._useCustomizedSplit()) { - var splitList = this._splitList; - for (var i = 0, len = splitList.length; i < len; i++) { - if (splitList[i].color) { - this._colorList[i] = splitList[i].color; - } - } - } - }, - _buildGap: function (splitNumber) { - if (!this._useCustomizedSplit()) { - var precision = this.dataRangeOption.precision; - this._gap = (this.dataRangeOption.max - this.dataRangeOption.min) / splitNumber; - while (this._gap.toFixed(precision) - 0 != this._gap && precision < 5) { - precision++; - } - this.dataRangeOption.precision = precision; - this._gap = ((this.dataRangeOption.max - this.dataRangeOption.min) / splitNumber).toFixed(precision) - 0; - } - }, - _buildDataList: function (splitNumber) { - var valueTextList = this._valueTextList = []; - var dataRangeOption = this.dataRangeOption; - var useCustomizedSplit = this._useCustomizedSplit(); - for (var i = 0; i < splitNumber; i++) { - this._selectedMap[i] = true; - var text = ''; - if (useCustomizedSplit) { - var splitListItem = this._splitList[splitNumber - 1 - i]; - if (splitListItem.label != null) { - text = splitListItem.label; - } else if (splitListItem.single != null) { - text = this._textFormat(splitListItem.single); - } else { - text = this._textFormat(splitListItem.min, splitListItem.max); - } - } else { - text = this._textFormat(i * this._gap + dataRangeOption.min, (i + 1) * this._gap + dataRangeOption.min); - } - valueTextList.unshift(text); - } - }, - _buildSplitList: function () { - if (!this._useCustomizedSplit()) { - return; - } - var splitList = this.dataRangeOption.splitList; - var splitRangeList = this._splitList = []; - for (var i = 0, len = splitList.length; i < len; i++) { - var splitListItem = splitList[i]; - if (!splitListItem || splitListItem.start == null && splitListItem.end == null) { - throw new Error('Empty item exists in splitList!'); - } - var reformedItem = { - label: splitListItem.label, - color: splitListItem.color - }; - reformedItem.min = splitListItem.start; - reformedItem.max = splitListItem.end; - if (reformedItem.min > reformedItem.max) { - reformedItem.min = [ - reformedItem.max, - reformedItem.max = reformedItem.min - ][0]; - } - if (reformedItem.min === reformedItem.max) { - reformedItem.single = reformedItem.max; - } - if (reformedItem.min == null) { - reformedItem.min = -Number.MAX_VALUE; - } - if (reformedItem.max == null) { - reformedItem.max = Number.MAX_VALUE; - } - splitRangeList.push(reformedItem); - } - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.option.dataRange = this.reformOption(this.option.dataRange); - var dataRangeOption = this.dataRangeOption = this.option.dataRange; - if (!this._useCustomizedSplit() && (dataRangeOption.min == null || dataRangeOption.max == null)) { - throw new Error('option.dataRange.min or option.dataRange.max has not been defined.'); - } - if (!this.myChart.canvasSupported) { - dataRangeOption.realtime = false; - } - var splitNumber = this._isContinuity() ? 100 : this._useCustomizedSplit() ? dataRangeOption.splitList.length : dataRangeOption.splitNumber; - this._buildSplitList(); - this._buildColorList(splitNumber); - this._buildGap(splitNumber); - this._buildDataList(splitNumber); - } - this.clear(); - this._buildShape(); - }, - getColor: function (value) { - if (isNaN(value)) { - return null; - } - var idx; - if (!this._useCustomizedSplit()) { - if (this.dataRangeOption.min == this.dataRangeOption.max) { - return this._colorList[0]; - } - if (value < this.dataRangeOption.min) { - value = this.dataRangeOption.min; - } else if (value > this.dataRangeOption.max) { - value = this.dataRangeOption.max; - } - if (this.dataRangeOption.calculable) { - if (value - (this._gap * this._range.start + this.dataRangeOption.min) > 0.00005 || value - (this._gap * this._range.end + this.dataRangeOption.min) < -0.00005) { - return null; - } - } - idx = this._colorList.length - Math.ceil((value - this.dataRangeOption.min) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._colorList.length); - if (idx == this._colorList.length) { - idx--; - } - } else { - var splitRangeList = this._splitList; - for (var i = 0, len = splitRangeList.length; i < len; i++) { - if (splitRangeList[i].min <= value && splitRangeList[i].max >= value) { - idx = i; - break; - } - } - } - if (this._selectedMap[idx]) { - return this._colorList[idx]; - } else { - return null; - } - }, - getColorByIndex: function (idx) { - if (idx >= this._colorList.length) { - idx = this._colorList.length - 1; - } else if (idx < 0) { - idx = 0; - } - return this._colorList[idx]; - }, - onbeforDispose: function () { - this.messageCenter.unbind(ecConfig.EVENT.HOVER, this._onhoverlink); - } - }; - zrUtil.inherits(DataRange, Base); - require('../component').define('dataRange', DataRange); - return DataRange; -});define('echarts/component/roamController', [ - 'require', - './base', - 'zrender/shape/Rectangle', - 'zrender/shape/Sector', - 'zrender/shape/Circle', - '../config', - 'zrender/tool/util', - 'zrender/tool/color', - 'zrender/tool/event', - '../component' -], function (require) { - var Base = require('./base'); - var RectangleShape = require('zrender/shape/Rectangle'); - var SectorShape = require('zrender/shape/Sector'); - var CircleShape = require('zrender/shape/Circle'); - var ecConfig = require('../config'); - ecConfig.roamController = { - zlevel: 0, - z: 4, - show: true, - x: 'left', - y: 'top', - width: 80, - height: 120, - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - handleColor: '#6495ed', - fillerColor: '#fff', - step: 15, - mapTypeControl: null - }; - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - var zrEvent = require('zrender/tool/event'); - function RoamController(ecTheme, messageCenter, zr, option, myChart) { - this.rcOption = {}; - if (!option.roamController || !option.roamController.show) { - return; - } - if (!option.roamController.mapTypeControl) { - console.error('option.roamController.mapTypeControl has not been defined.'); - return; - } - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.rcOption = option.roamController; - var self = this; - this._drictionMouseDown = function (params) { - return self.__drictionMouseDown(params); - }; - this._drictionMouseUp = function (params) { - return self.__drictionMouseUp(params); - }; - this._drictionMouseMove = function (params) { - return self.__drictionMouseMove(params); - }; - this._drictionMouseOut = function (params) { - return self.__drictionMouseOut(params); - }; - this._scaleHandler = function (params) { - return self.__scaleHandler(params); - }; - this.refresh(option); - } - RoamController.prototype = { - type: ecConfig.COMPONENT_TYPE_ROAMCONTROLLER, - _buildShape: function () { - if (!this.rcOption.show) { - return; - } - this._itemGroupLocation = this._getItemGroupLocation(); - this._buildBackground(); - this._buildItem(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _buildItem: function () { - this.shapeList.push(this._getDirectionShape('up')); - this.shapeList.push(this._getDirectionShape('down')); - this.shapeList.push(this._getDirectionShape('left')); - this.shapeList.push(this._getDirectionShape('right')); - this.shapeList.push(this._getScaleShape('scaleUp')); - this.shapeList.push(this._getScaleShape('scaleDown')); - }, - _getDirectionShape: function (direction) { - var r = this._itemGroupLocation.r; - var x = this._itemGroupLocation.x + r; - var y = this._itemGroupLocation.y + r; - var sectorShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: x, - y: y, - r: r, - startAngle: -45, - endAngle: 45, - color: this.rcOption.handleColor, - text: '>', - textX: x + r / 2 + 4, - textY: y - 0.5, - textAlign: 'center', - textBaseline: 'middle', - textPosition: 'specific', - textColor: this.rcOption.fillerColor, - textFont: Math.floor(r / 2) + 'px arial' - }, - highlightStyle: { - color: zrColor.lift(this.rcOption.handleColor, -0.2), - brushType: 'fill' - }, - clickable: true - }; - switch (direction) { - case 'up': - sectorShape.rotation = [ - Math.PI / 2, - x, - y - ]; - break; - case 'left': - sectorShape.rotation = [ - Math.PI, - x, - y - ]; - break; - case 'down': - sectorShape.rotation = [ - -Math.PI / 2, - x, - y - ]; - break; - } - sectorShape = new SectorShape(sectorShape); - sectorShape._roamType = direction; - sectorShape.onmousedown = this._drictionMouseDown; - sectorShape.onmouseup = this._drictionMouseUp; - sectorShape.onmousemove = this._drictionMouseMove; - sectorShape.onmouseout = this._drictionMouseOut; - return sectorShape; - }, - _getScaleShape: function (text) { - var width = this._itemGroupLocation.width; - var height = this._itemGroupLocation.height - width; - height = height < 0 ? 20 : height; - var r = Math.min(width / 2 - 5, height) / 2; - var x = this._itemGroupLocation.x + (text === 'scaleDown' ? width - r : r); - var y = this._itemGroupLocation.y + this._itemGroupLocation.height - r; - var scaleShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: x, - y: y, - r: r, - color: this.rcOption.handleColor, - text: text === 'scaleDown' ? '-' : '+', - textX: x, - textY: y - 2, - textAlign: 'center', - textBaseline: 'middle', - textPosition: 'specific', - textColor: this.rcOption.fillerColor, - textFont: Math.floor(r) + 'px verdana' - }, - highlightStyle: { - color: zrColor.lift(this.rcOption.handleColor, -0.2), - brushType: 'fill' - }, - clickable: true - }; - scaleShape = new CircleShape(scaleShape); - scaleShape._roamType = text; - scaleShape.onmousedown = this._scaleHandler; - return scaleShape; - }, - _buildBackground: function () { - var padding = this.reformCssArray(this.rcOption.padding); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._itemGroupLocation.x - padding[3], - y: this._itemGroupLocation.y - padding[0], - width: this._itemGroupLocation.width + padding[3] + padding[1], - height: this._itemGroupLocation.height + padding[0] + padding[2], - brushType: this.rcOption.borderWidth === 0 ? 'fill' : 'both', - color: this.rcOption.backgroundColor, - strokeColor: this.rcOption.borderColor, - lineWidth: this.rcOption.borderWidth - } - })); - }, - _getItemGroupLocation: function () { - var padding = this.reformCssArray(this.rcOption.padding); - var width = this.rcOption.width; - var height = this.rcOption.height; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - var x; - switch (this.rcOption.x) { - case 'center': - x = Math.floor((zrWidth - width) / 2); - break; - case 'left': - x = padding[3] + this.rcOption.borderWidth; - break; - case 'right': - x = zrWidth - width - padding[1] - padding[3] - this.rcOption.borderWidth * 2; - break; - default: - x = this.parsePercent(this.rcOption.x, zrWidth); - break; - } - var y; - switch (this.rcOption.y) { - case 'top': - y = padding[0] + this.rcOption.borderWidth; - break; - case 'bottom': - y = zrHeight - height - padding[0] - padding[2] - this.rcOption.borderWidth * 2; - break; - case 'center': - y = Math.floor((zrHeight - height) / 2); - break; - default: - y = this.parsePercent(this.rcOption.y, zrHeight); - break; - } - return { - x: x, - y: y, - r: width / 2, - width: width, - height: height - }; - }, - __drictionMouseDown: function (params) { - this.mousedown = true; - this._drictionHandlerOn(params); - }, - __drictionMouseUp: function (params) { - this.mousedown = false; - this._drictionHandlerOff(params); - }, - __drictionMouseMove: function (params) { - if (this.mousedown) { - this._drictionHandlerOn(params); - } - }, - __drictionMouseOut: function (params) { - this._drictionHandlerOff(params); - }, - _drictionHandlerOn: function (params) { - this._dispatchEvent(params.event, params.target._roamType); - clearInterval(this.dircetionTimer); - var self = this; - this.dircetionTimer = setInterval(function () { - self._dispatchEvent(params.event, params.target._roamType); - }, 100); - zrEvent.stop(params.event); - }, - _drictionHandlerOff: function (params) { - clearInterval(this.dircetionTimer); - }, - __scaleHandler: function (params) { - this._dispatchEvent(params.event, params.target._roamType); - zrEvent.stop(params.event); - }, - _dispatchEvent: function (event, roamType) { - this.messageCenter.dispatch(ecConfig.EVENT.ROAMCONTROLLER, event, { - roamType: roamType, - mapTypeControl: this.rcOption.mapTypeControl, - step: this.rcOption.step - }, this.myChart); - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption || this.option; - this.option.roamController = this.reformOption(this.option.roamController); - this.rcOption = this.option.roamController; - } - this.clear(); - this._buildShape(); - } - }; - zrUtil.inherits(RoamController, Base); - require('../component').define('roamController', RoamController); - return RoamController; -});define('echarts/layer/heatmap', ['require'], function (require) { - var defaultOptions = { - blurSize: 30, - gradientColors: [ - 'blue', - 'cyan', - 'lime', - 'yellow', - 'red' - ], - minAlpha: 0.05, - valueScale: 1, - opacity: 1 - }; - var BRUSH_SIZE = 20; - var GRADIENT_LEVELS = 256; - function Heatmap(opt) { - this.option = opt; - if (opt) { - for (var i in defaultOptions) { - if (opt[i] !== undefined) { - this.option[i] = opt[i]; - } else { - this.option[i] = defaultOptions[i]; - } - } - } else { - this.option = defaultOptions; - } - } - Heatmap.prototype = { - getCanvas: function (data, width, height) { - var brush = this._getBrush(); - var gradient = this._getGradient(); - var r = BRUSH_SIZE + this.option.blurSize; - var canvas = document.createElement('canvas'); - canvas.width = width; - canvas.height = height; - var ctx = canvas.getContext('2d'); - var len = data.length; - for (var i = 0; i < len; ++i) { - var p = data[i]; - var x = p[0]; - var y = p[1]; - var value = p[2]; - var alpha = Math.min(1, Math.max(value * this.option.valueScale || this.option.minAlpha, this.option.minAlpha)); - ctx.globalAlpha = alpha; - ctx.drawImage(brush, x - r, y - r); - } - var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); - var pixels = imageData.data; - var len = pixels.length / 4; - while (len--) { - var id = len * 4 + 3; - var alpha = pixels[id] / 256; - var colorOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)); - pixels[id - 3] = gradient[colorOffset * 4]; - pixels[id - 2] = gradient[colorOffset * 4 + 1]; - pixels[id - 1] = gradient[colorOffset * 4 + 2]; - pixels[id] *= this.option.opacity; - } - ctx.putImageData(imageData, 0, 0); - return canvas; - }, - _getBrush: function () { - if (!this._brushCanvas) { - this._brushCanvas = document.createElement('canvas'); - var r = BRUSH_SIZE + this.option.blurSize; - var d = r * 2; - this._brushCanvas.width = d; - this._brushCanvas.height = d; - var ctx = this._brushCanvas.getContext('2d'); - ctx.shadowOffsetX = d; - ctx.shadowBlur = this.option.blurSize; - ctx.shadowColor = 'black'; - ctx.beginPath(); - ctx.arc(-r, r, BRUSH_SIZE, 0, Math.PI * 2, true); - ctx.closePath(); - ctx.fill(); - } - return this._brushCanvas; - }, - _getGradient: function () { - if (!this._gradientPixels) { - var levels = GRADIENT_LEVELS; - var canvas = document.createElement('canvas'); - canvas.width = 1; - canvas.height = levels; - var ctx = canvas.getContext('2d'); - var gradient = ctx.createLinearGradient(0, 0, 0, levels); - var len = this.option.gradientColors.length; - for (var i = 0; i < len; ++i) { - if (typeof this.option.gradientColors[i] === 'string') { - gradient.addColorStop((i + 1) / len, this.option.gradientColors[i]); - } else { - gradient.addColorStop(this.option.gradientColors[i].offset, this.option.gradientColors[i].color); - } - } - ctx.fillStyle = gradient; - ctx.fillRect(0, 0, 1, levels); - this._gradientPixels = ctx.getImageData(0, 0, 1, levels).data; - } - return this._gradientPixels; - } - }; - return Heatmap; -});define('echarts/util/mapData/params', ['require'], function (require) { - function decode(json) { - if (!json.UTF8Encoding) { - return json; - } - var features = json.features; - for (var f = 0; f < features.length; f++) { - var feature = features[f]; - var coordinates = feature.geometry.coordinates; - var encodeOffsets = feature.geometry.encodeOffsets; - for (var c = 0; c < coordinates.length; c++) { - var coordinate = coordinates[c]; - if (feature.geometry.type === 'Polygon') { - coordinates[c] = decodePolygon(coordinate, encodeOffsets[c]); - } else if (feature.geometry.type === 'MultiPolygon') { - for (var c2 = 0; c2 < coordinate.length; c2++) { - var polygon = coordinate[c2]; - coordinate[c2] = decodePolygon(polygon, encodeOffsets[c][c2]); - } - } - } - } - json.UTF8Encoding = false; - return json; - } - function decodePolygon(coordinate, encodeOffsets) { - var result = []; - var prevX = encodeOffsets[0]; - var prevY = encodeOffsets[1]; - for (var i = 0; i < coordinate.length; i += 2) { - var x = coordinate.charCodeAt(i) - 64; - var y = coordinate.charCodeAt(i + 1) - 64; - x = x >> 1 ^ -(x & 1); - y = y >> 1 ^ -(y & 1); - x += prevX; - y += prevY; - prevX = x; - prevY = y; - result.push([ - x / 1024, - y / 1024 - ]); - } - return result; - } - var mapParams = { - 'none': { - getGeoJson: function (callback) { - callback({ - type: 'FeatureCollection', - features: [{ - type: 'Feature', - geometry: { - coordinates: [], - encodeOffsets: [], - type: 'Polygon' - }, - properties: {} - }] - }); - } - }, - 'world': { - getGeoJson: function (callback) { - require(['./geoJson/world_geo'], function (md) { - callback(decode(md)); - }); - } - }, - 'china': { - getGeoJson: function (callback) { - require(['./geoJson/china_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '南海诸岛': { - textCoord: [ - 126, - 25 - ], - getPath: function (leftTop, scale) { - var pList = [ - [ - [ - 0, - 3.5 - ], - [ - 7, - 11.2 - ], - [ - 15, - 11.9 - ], - [ - 30, - 7 - ], - [ - 42, - 0.7 - ], - [ - 52, - 0.7 - ], - [ - 56, - 7.7 - ], - [ - 59, - 0.7 - ], - [ - 64, - 0.7 - ], - [ - 64, - 0 - ], - [ - 5, - 0 - ], - [ - 0, - 3.5 - ] - ], - [ - [ - 13, - 16.1 - ], - [ - 19, - 14.7 - ], - [ - 16, - 21.7 - ], - [ - 11, - 23.1 - ], - [ - 13, - 16.1 - ] - ], - [ - [ - 12, - 32.2 - ], - [ - 14, - 38.5 - ], - [ - 15, - 38.5 - ], - [ - 13, - 32.2 - ], - [ - 12, - 32.2 - ] - ], - [ - [ - 16, - 47.6 - ], - [ - 12, - 53.2 - ], - [ - 13, - 53.2 - ], - [ - 18, - 47.6 - ], - [ - 16, - 47.6 - ] - ], - [ - [ - 6, - 64.4 - ], - [ - 8, - 70 - ], - [ - 9, - 70 - ], - [ - 8, - 64.4 - ], - [ - 6, - 64.4 - ] - ], - [ - [ - 23, - 82.6 - ], - [ - 29, - 79.8 - ], - [ - 30, - 79.8 - ], - [ - 25, - 82.6 - ], - [ - 23, - 82.6 - ] - ], - [ - [ - 37, - 70.7 - ], - [ - 43, - 62.3 - ], - [ - 44, - 62.3 - ], - [ - 39, - 70.7 - ], - [ - 37, - 70.7 - ] - ], - [ - [ - 48, - 51.1 - ], - [ - 51, - 45.5 - ], - [ - 53, - 45.5 - ], - [ - 50, - 51.1 - ], - [ - 48, - 51.1 - ] - ], - [ - [ - 51, - 35 - ], - [ - 51, - 28.7 - ], - [ - 53, - 28.7 - ], - [ - 53, - 35 - ], - [ - 51, - 35 - ] - ], - [ - [ - 52, - 22.4 - ], - [ - 55, - 17.5 - ], - [ - 56, - 17.5 - ], - [ - 53, - 22.4 - ], - [ - 52, - 22.4 - ] - ], - [ - [ - 58, - 12.6 - ], - [ - 62, - 7 - ], - [ - 63, - 7 - ], - [ - 60, - 12.6 - ], - [ - 58, - 12.6 - ] - ], - [ - [ - 0, - 3.5 - ], - [ - 0, - 93.1 - ], - [ - 64, - 93.1 - ], - [ - 64, - 0 - ], - [ - 63, - 0 - ], - [ - 63, - 92.4 - ], - [ - 1, - 92.4 - ], - [ - 1, - 3.5 - ], - [ - 0, - 3.5 - ] - ] - ]; - var str = ''; - var left = leftTop[0]; - var top = leftTop[1]; - for (var i = 0, l = pList.length; i < l; i++) { - str += 'M ' + ((pList[i][0][0] * scale + left).toFixed(2) - 0) + ' ' + ((pList[i][0][1] * scale + top).toFixed(2) - 0) + ' '; - for (var j = 1, k = pList[i].length; j < k; j++) { - str += 'L ' + ((pList[i][j][0] * scale + left).toFixed(2) - 0) + ' ' + ((pList[i][j][1] * scale + top).toFixed(2) - 0) + ' '; - } - } - return str + ' Z'; - } - }, - '新疆': { - getGeoJson: function (callback) { - require(['./geoJson/xin_jiang_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '西藏': { - getGeoJson: function (callback) { - require(['./geoJson/xi_zang_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '内蒙古': { - getGeoJson: function (callback) { - require(['./geoJson/nei_meng_gu_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '青海': { - getGeoJson: function (callback) { - require(['./geoJson/qing_hai_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '四川': { - getGeoJson: function (callback) { - require(['./geoJson/si_chuan_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '黑龙江': { - getGeoJson: function (callback) { - require(['./geoJson/hei_long_jiang_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '甘肃': { - getGeoJson: function (callback) { - require(['./geoJson/gan_su_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '云南': { - getGeoJson: function (callback) { - require(['./geoJson/yun_nan_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '广西': { - getGeoJson: function (callback) { - require(['./geoJson/guang_xi_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '湖南': { - getGeoJson: function (callback) { - require(['./geoJson/hu_nan_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '陕西': { - getGeoJson: function (callback) { - require(['./geoJson/shan_xi_1_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '广东': { - getGeoJson: function (callback) { - require(['./geoJson/guang_dong_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '吉林': { - getGeoJson: function (callback) { - require(['./geoJson/ji_lin_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '河北': { - getGeoJson: function (callback) { - require(['./geoJson/he_bei_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '湖北': { - getGeoJson: function (callback) { - require(['./geoJson/hu_bei_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '贵州': { - getGeoJson: function (callback) { - require(['./geoJson/gui_zhou_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '山东': { - getGeoJson: function (callback) { - require(['./geoJson/shan_dong_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '江西': { - getGeoJson: function (callback) { - require(['./geoJson/jiang_xi_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '河南': { - getGeoJson: function (callback) { - require(['./geoJson/he_nan_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '辽宁': { - getGeoJson: function (callback) { - require(['./geoJson/liao_ning_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '山西': { - getGeoJson: function (callback) { - require(['./geoJson/shan_xi_2_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '安徽': { - getGeoJson: function (callback) { - require(['./geoJson/an_hui_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '福建': { - getGeoJson: function (callback) { - require(['./geoJson/fu_jian_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '浙江': { - getGeoJson: function (callback) { - require(['./geoJson/zhe_jiang_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '江苏': { - getGeoJson: function (callback) { - require(['./geoJson/jiang_su_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '重庆': { - getGeoJson: function (callback) { - require(['./geoJson/chong_qing_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '宁夏': { - getGeoJson: function (callback) { - require(['./geoJson/ning_xia_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '海南': { - getGeoJson: function (callback) { - require(['./geoJson/hai_nan_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '台湾': { - getGeoJson: function (callback) { - require(['./geoJson/tai_wan_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '北京': { - getGeoJson: function (callback) { - require(['./geoJson/bei_jing_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '天津': { - getGeoJson: function (callback) { - require(['./geoJson/tian_jin_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '上海': { - getGeoJson: function (callback) { - require(['./geoJson/shang_hai_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '香港': { - getGeoJson: function (callback) { - require(['./geoJson/xiang_gang_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '澳门': { - getGeoJson: function (callback) { - require(['./geoJson/ao_men_geo'], function (md) { - callback(decode(md)); - }); - } - } - }; - return { - decode: decode, - params: mapParams - }; -});define('echarts/util/mapData/textFixed', [], function () { - return { - '广东': [ - 0, - -10 - ], - '香港': [ - 10, - 10 - ], - '澳门': [ - -10, - 18 - ], - '黑龙江': [ - 0, - 20 - ], - '天津': [ - 5, - 5 - ], - '深圳市': [ - -35, - 0 - ], - '红河哈尼族彝族自治州': [ - 0, - 20 - ], - '楚雄彝族自治州': [ - -5, - 15 - ], - '石河子市': [ - -5, - 5 - ], - '五家渠市': [ - 0, - -10 - ], - '昌吉回族自治州': [ - 10, - 10 - ], - '昌江黎族自治县': [ - 0, - 20 - ], - '陵水黎族自治县': [ - 0, - 20 - ], - '东方市': [ - 0, - 20 - ], - '渭南市': [ - 0, - 20 - ] - }; -});define('echarts/util/mapData/geoCoord', [], function () { - return { - 'Russia': [ - 100, - 60 - ], - 'United States of America': [ - -99, - 38 - ] - }; -});define('echarts/util/projection/svg', [ - 'require', - 'zrender/shape/Path' -], function (require) { - var PathShape = require('zrender/shape/Path'); - function toFloat(str) { - return parseFloat(str || 0); - } - function getBbox(root) { - var svgNode = root.firstChild; - while (!(svgNode.nodeName.toLowerCase() == 'svg' && svgNode.nodeType == 1)) { - svgNode = svgNode.nextSibling; - } - var x = toFloat(svgNode.getAttribute('x')); - var y = toFloat(svgNode.getAttribute('y')); - var width = toFloat(svgNode.getAttribute('width')); - var height = toFloat(svgNode.getAttribute('height')); - return { - left: x, - top: y, - width: width, - height: height - }; - } - function geoJson2Path(root, transform) { - var scale = [ - transform.scale.x, - transform.scale.y - ]; - var elList = []; - function _getShape(root) { - var tagName = root.tagName; - if (shapeBuilders[tagName]) { - var obj = shapeBuilders[tagName](root, scale); - if (obj) { - obj.scale = scale; - obj.properties = { name: root.getAttribute('name') || '' }; - obj.id = root.id; - extendCommonAttributes(obj, root); - elList.push(obj); - } - } - var shapes = root.childNodes; - for (var i = 0, len = shapes.length; i < len; i++) { - _getShape(shapes[i]); - } - } - _getShape(root); - return elList; - } - function pos2geo(obj, p) { - var point = p instanceof Array ? [ - p[0] * 1, - p[1] * 1 - ] : [ - p.x * 1, - p.y * 1 - ]; - return [ - point[0] / obj.scale.x, - point[1] / obj.scale.y - ]; - } - function geo2pos(obj, p) { - var point = p instanceof Array ? [ - p[0] * 1, - p[1] * 1 - ] : [ - p.x * 1, - p.y * 1 - ]; - return [ - point[0] * obj.scale.x, - point[1] * obj.scale.y - ]; - } - function trim(str) { - return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); - } - function extendCommonAttributes(obj, xmlNode) { - var color = xmlNode.getAttribute('fill'); - var strokeColor = xmlNode.getAttribute('stroke'); - var lineWidth = xmlNode.getAttribute('stroke-width'); - var opacity = xmlNode.getAttribute('opacity'); - if (color && color != 'none') { - obj.color = color; - if (strokeColor) { - obj.brushType = 'both'; - obj.strokeColor = strokeColor; - } else { - obj.brushType = 'fill'; - } - } else if (strokeColor && strokeColor != 'none') { - obj.strokeColor = strokeColor; - obj.brushType = 'stroke'; - } - if (lineWidth && lineWidth != 'none') { - obj.lineWidth = parseFloat(lineWidth); - } - if (opacity && opacity != 'none') { - obj.opacity = parseFloat(opacity); - } - } - function parsePoints(str) { - var list = trim(str).replace(/,/g, ' ').split(/\s+/); - var points = []; - for (var i = 0; i < list.length;) { - var x = parseFloat(list[i++]); - var y = parseFloat(list[i++]); - points.push([ - x, - y - ]); - } - return points; - } - var shapeBuilders = { - path: function (xmlNode, scale) { - var path = xmlNode.getAttribute('d'); - var rect = PathShape.prototype.getRect({ path: path }); - return { - shapeType: 'path', - path: path, - cp: [ - (rect.x + rect.width / 2) * scale[0], - (rect.y + rect.height / 2) * scale[1] - ] - }; - }, - rect: function (xmlNode, scale) { - var x = toFloat(xmlNode.getAttribute('x')); - var y = toFloat(xmlNode.getAttribute('y')); - var width = toFloat(xmlNode.getAttribute('width')); - var height = toFloat(xmlNode.getAttribute('height')); - return { - shapeType: 'rectangle', - x: x, - y: y, - width: width, - height: height, - cp: [ - (x + width / 2) * scale[0], - (y + height / 2) * scale[1] - ] - }; - }, - line: function (xmlNode, scale) { - var x1 = toFloat(xmlNode.getAttribute('x1')); - var y1 = toFloat(xmlNode.getAttribute('y1')); - var x2 = toFloat(xmlNode.getAttribute('x2')); - var y2 = toFloat(xmlNode.getAttribute('y2')); - return { - shapeType: 'line', - xStart: x1, - yStart: y1, - xEnd: x2, - yEnd: y2, - cp: [ - (x1 + x2) * 0.5 * scale[0], - (y1 + y2) * 0.5 * scale[1] - ] - }; - }, - circle: function (xmlNode, scale) { - var cx = toFloat(xmlNode.getAttribute('cx')); - var cy = toFloat(xmlNode.getAttribute('cy')); - var r = toFloat(xmlNode.getAttribute('r')); - return { - shapeType: 'circle', - x: cx, - y: cy, - r: r, - cp: [ - cx * scale[0], - cy * scale[1] - ] - }; - }, - ellipse: function (xmlNode, scale) { - var cx = parseFloat(xmlNode.getAttribute('cx') || 0); - var cy = parseFloat(xmlNode.getAttribute('cy') || 0); - var rx = parseFloat(xmlNode.getAttribute('rx') || 0); - var ry = parseFloat(xmlNode.getAttribute('ry') || 0); - return { - shapeType: 'ellipse', - x: cx, - y: cy, - a: rx, - b: ry, - cp: [ - cx * scale[0], - cy * scale[1] - ] - }; - }, - polygon: function (xmlNode, scale) { - var points = xmlNode.getAttribute('points'); - var min = [ - Infinity, - Infinity - ]; - var max = [ - -Infinity, - -Infinity - ]; - if (points) { - points = parsePoints(points); - for (var i = 0; i < points.length; i++) { - var p = points[i]; - min[0] = Math.min(p[0], min[0]); - min[1] = Math.min(p[1], min[1]); - max[0] = Math.max(p[0], max[0]); - max[1] = Math.max(p[1], max[1]); - } - return { - shapeType: 'polygon', - pointList: points, - cp: [ - (min[0] + max[0]) / 2 * scale[0], - (min[1] + max[1]) / 2 * scale[0] - ] - }; - } - }, - polyline: function (xmlNode, scale) { - var obj = shapeBuilders.polygon(xmlNode, scale); - return obj; - } - }; - return { - getBbox: getBbox, - geoJson2Path: geoJson2Path, - pos2geo: pos2geo, - geo2pos: geo2pos - }; -});define('echarts/util/projection/normal', [], function () { - function getBbox(json, specialArea) { - specialArea = specialArea || {}; - if (!json.srcSize) { - parseSrcSize(json, specialArea); - } - return json.srcSize; - } - function parseSrcSize(json, specialArea) { - specialArea = specialArea || {}; - convertorParse.xmin = 360; - convertorParse.xmax = -360; - convertorParse.ymin = 180; - convertorParse.ymax = -180; - var shapes = json.features; - var geometries; - var shape; - for (var i = 0, len = shapes.length; i < len; i++) { - shape = shapes[i]; - if (shape.properties.name && specialArea[shape.properties.name]) { - continue; - } - switch (shape.type) { - case 'Feature': - convertorParse[shape.geometry.type](shape.geometry.coordinates); - break; - case 'GeometryCollection': - geometries = shape.geometries; - for (var j = 0, len2 = geometries.length; j < len2; j++) { - convertorParse[geometries[j].type](geometries[j].coordinates); - } - break; - } - } - json.srcSize = { - left: convertorParse.xmin.toFixed(4) * 1, - top: convertorParse.ymin.toFixed(4) * 1, - width: (convertorParse.xmax - convertorParse.xmin).toFixed(4) * 1, - height: (convertorParse.ymax - convertorParse.ymin).toFixed(4) * 1 - }; - return json; - } - var convertor = { - formatPoint: function (p) { - return [ - (p[0] < -168.5 && p[1] > 63.8 ? p[0] + 360 : p[0]) + 168.5, - 90 - p[1] - ]; - }, - makePoint: function (p) { - var self = this; - var point = self.formatPoint(p); - if (self._bbox.xmin > p[0]) { - self._bbox.xmin = p[0]; - } - if (self._bbox.xmax < p[0]) { - self._bbox.xmax = p[0]; - } - if (self._bbox.ymin > p[1]) { - self._bbox.ymin = p[1]; - } - if (self._bbox.ymax < p[1]) { - self._bbox.ymax = p[1]; - } - var x = (point[0] - convertor.offset.x) * convertor.scale.x + convertor.offset.left; - var y = (point[1] - convertor.offset.y) * convertor.scale.y + convertor.offset.top; - return [ - x, - y - ]; - }, - Point: function (coordinates) { - coordinates = this.makePoint(coordinates); - return coordinates.join(','); - }, - LineString: function (coordinates) { - var str = ''; - var point; - for (var i = 0, len = coordinates.length; i < len; i++) { - point = convertor.makePoint(coordinates[i]); - if (i === 0) { - str = 'M' + point.join(','); - } else { - str = str + 'L' + point.join(','); - } - } - return str; - }, - Polygon: function (coordinates) { - var str = ''; - for (var i = 0, len = coordinates.length; i < len; i++) { - str = str + convertor.LineString(coordinates[i]) + 'z'; - } - return str; - }, - MultiPoint: function (coordinates) { - var arr = []; - for (var i = 0, len = coordinates.length; i < len; i++) { - arr.push(convertor.Point(coordinates[i])); - } - return arr; - }, - MultiLineString: function (coordinates) { - var str = ''; - for (var i = 0, len = coordinates.length; i < len; i++) { - str += convertor.LineString(coordinates[i]); - } - return str; - }, - MultiPolygon: function (coordinates) { - var str = ''; - for (var i = 0, len = coordinates.length; i < len; i++) { - str += convertor.Polygon(coordinates[i]); - } - return str; - } - }; - var convertorParse = { - formatPoint: convertor.formatPoint, - makePoint: function (p) { - var self = this; - var point = self.formatPoint(p); - var x = point[0]; - var y = point[1]; - if (self.xmin > x) { - self.xmin = x; - } - if (self.xmax < x) { - self.xmax = x; - } - if (self.ymin > y) { - self.ymin = y; - } - if (self.ymax < y) { - self.ymax = y; - } - }, - Point: function (coordinates) { - this.makePoint(coordinates); - }, - LineString: function (coordinates) { - for (var i = 0, len = coordinates.length; i < len; i++) { - this.makePoint(coordinates[i]); - } - }, - Polygon: function (coordinates) { - for (var i = 0, len = coordinates.length; i < len; i++) { - this.LineString(coordinates[i]); - } - }, - MultiPoint: function (coordinates) { - for (var i = 0, len = coordinates.length; i < len; i++) { - this.Point(coordinates[i]); - } - }, - MultiLineString: function (coordinates) { - for (var i = 0, len = coordinates.length; i < len; i++) { - this.LineString(coordinates[i]); - } - }, - MultiPolygon: function (coordinates) { - for (var i = 0, len = coordinates.length; i < len; i++) { - this.Polygon(coordinates[i]); - } - } - }; - function geoJson2Path(json, transform, specialArea) { - specialArea = specialArea || {}; - convertor.scale = null; - convertor.offset = null; - if (!json.srcSize) { - parseSrcSize(json, specialArea); - } - transform.offset = { - x: json.srcSize.left, - y: json.srcSize.top, - left: transform.OffsetLeft || 0, - top: transform.OffsetTop || 0 - }; - convertor.scale = transform.scale; - convertor.offset = transform.offset; - var shapes = json.features; - var geometries; - var pathArray = []; - var val; - var shape; - for (var i = 0, len = shapes.length; i < len; i++) { - shape = shapes[i]; - if (shape.properties.name && specialArea[shape.properties.name]) { - continue; - } - if (shape.type == 'Feature') { - pushApath(shape.geometry, shape); - } else if (shape.type == 'GeometryCollection') { - geometries = shape.geometries; - for (var j = 0, len2 = geometries.length; j < len2; j++) { - val = geometries[j]; - pushApath(val, val); - } - } - } - var shapeType; - var shapeCoordinates; - var str; - function pushApath(gm, shape) { - shapeType = gm.type; - shapeCoordinates = gm.coordinates; - convertor._bbox = { - xmin: 360, - xmax: -360, - ymin: 180, - ymax: -180 - }; - str = convertor[shapeType](shapeCoordinates); - pathArray.push({ - path: str, - cp: shape.properties.cp ? convertor.makePoint(shape.properties.cp) : convertor.makePoint([ - (convertor._bbox.xmin + convertor._bbox.xmax) / 2, - (convertor._bbox.ymin + convertor._bbox.ymax) / 2 - ]), - properties: shape.properties, - id: shape.id - }); - } - return pathArray; - } - function pos2geo(obj, p) { - var x; - var y; - if (p instanceof Array) { - x = p[0] * 1; - y = p[1] * 1; - } else { - x = p.x * 1; - y = p.y * 1; - } - x = x / obj.scale.x + obj.offset.x - 168.5; - x = x > 180 ? x - 360 : x; - y = 90 - (y / obj.scale.y + obj.offset.y); - return [ - x, - y - ]; - } - function geo2pos(obj, p) { - convertor.offset = obj.offset; - convertor.scale = obj.scale; - return p instanceof Array ? convertor.makePoint([ - p[0] * 1, - p[1] * 1 - ]) : convertor.makePoint([ - p.x * 1, - p.y * 1 - ]); - } - return { - getBbox: getBbox, - geoJson2Path: geoJson2Path, - pos2geo: pos2geo, - geo2pos: geo2pos - }; -});define('echarts/util/shape/HandlePolygon', [ - 'require', - 'zrender/shape/Base', - 'zrender/shape/Polygon', - 'zrender/tool/util' -], function (require) { - var Base = require('zrender/shape/Base'); - var PolygonShape = require('zrender/shape/Polygon'); - var zrUtil = require('zrender/tool/util'); - function HandlePolygon(options) { - Base.call(this, options); - } - HandlePolygon.prototype = { - type: 'handle-polygon', - buildPath: function (ctx, style) { - PolygonShape.prototype.buildPath(ctx, style); - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - var rect = this.style.rect; - if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) { - return true; - } else { - return false; - } - } - }; - zrUtil.inherits(HandlePolygon, Base); - return HandlePolygon; -});define('echarts/util/mapData/geoJson/an_hui_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '3415', - 'properties': { - 'name': '六安市', - 'cp': [ - 116.3123, - 31.8329 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„„nJ‚UXUVƒ°U„ÑnU@mlLVaVln@@bn@VU@xlb@lšLnKlšƒVI„JšUVxnI@lVL@b„ްVX@˜b„x„nVVUnVVnU‚›@kX@VwV@„al¥UUnUWa@ƒ@wĸU„LU¥lKUa@aUI@alLVaUƒ¯anƒWkUKm@XV@VaXlW@aU_UWVUƒI¯@ma¯W¯™™I@UU@WWU@U@@UU@VkV@@WUUm@UaU@„lK@IUK„L@KWmXUWaXI@ƒ@a@a@U@U@KV¥lw„k°b²JVIVKlV@UX„la„Ul`œUVLVVVUšJ„U@Lnm@_VK@KUIW@™J@Xk@WW@U—ƒmm™XmWk@kK@aUUƒVmmkUwUmWL™@WmU@™UJmUULkKWakLWVkIƒlƒwULƒW@X°lUJ@°ULƒWV—wmJ@bmb¯Vkm@@WkWm¯wƒL@lkXƒWmXym¯UImJUbkV™@Vn¯„@V@lUbƒ@mk@maUxmlUbULWn@J—LmKUkWKkwUKƒbm„X„WxkVUKmLkVV@JUUWL@xkJUUƒV@X@VVlUbVX@xk¤šx‚¼œxWxn„‚nn@Þ¼„JVb°aVn„@šmlnXU„JlbVlkz@‚lUŽlXJmxVxXnWxXÈWlUŽ@šUxU@VX@xUL@šUÆmLnV@lWXk@@JlbXblnlJ'], - 'encodeOffsets': [[ - 118710, - 33351 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3408', - 'properties': { - 'name': '安庆市', - 'cp': [ - 116.7517, - 30.5255 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n°‚znW„XlW@k„K°xXn‚l@Xn@l‚°Una@anI˜xXU„ŽVK@¯VIkW¯X@‚„VK„x„klJXUlKXblLVKnVVIšŽV@Xn‚@šŽXKVnVxlŽnn„UlmV@²óUkV™lW„b„lƒšƒn@VVVIn@lw@WVIXblV„@Èx‚aUaVIVVnKVLšK„ƒln@b²K@»U£ƒÑķƒġÝÅb™K™a@Im@ۍ„@kWÓkkmKÅnóJƒUÅ£›W@w„ĕ@wĉţ¯¯ƒUkK±l¯Uƒ¥UÑkÝUķ»Ý¥¯™JƒIUŽVbUl¯ÈV¼VJU¼Vb@bkLUl@„VJ@bUXǚ@lkVmXmKkLVxš‚Ž„VƒL@VkVVVlzW˜kbmLUUUbVbUV™šlÒnJlUnLllUL@bU„Vx„l‚LXVƦÈVU¦WJ'], - 'encodeOffsets': [[ - 118834, - 31759 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3411', - 'properties': { - 'name': '滁州市', - 'cp': [ - 118.1909, - 32.536 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@š„@`nnl@„xšK@X°KXV˜IXVlbXVWnX‚lL@šÈ»‚LVan@VJ„êVVn@‚X@laÞbVaƒyn@„_‚xnWVXnWl@VnUVkI@l‚nXKVLVV@V@kW@LlVô„@J@bVnnKnkVa@»lç@ƒnwšKma™UUUVњ@n™mWXalI@alVn@VwUaVU„@„nlaôJnU„VVXlJšaXXVK@UšV@VWx@nXVWšXVšUlLUbV‚ULVVnUVbUbVbš@@a„KÆnnKVK@U@UU@@a„@Vƒ°¯ÈJVIlķ@aa˜UaVKU_@mkxUI@aƒUlyU@@™wkKWmUbUnUVWbkJW_J@bƒn@Vm@@KULk@V@@bVbÅm@LW@UVVbkK@UkKWL@VULUKWIUJUbkK@_WVXU›Jka@XƒVa@kšy@aVIUUW@@m„UlLœKWÑUKVan@UkVmmIXKƒaVaUwVU@UmykU¯@±UUL@WUIVUU@KkIWaƒaU@kUUaǃUó»mKƒk¯@y@kWK@bkI¯`mn™l¯XWlkVUzUJlbUbVJl@nnm„@VULV`XnWƗbmUUn™JmUknƒJ¯km@ƒyk@kU›xL@VUbmnn¤lX@`™z@JmaULUVl@Xn@xllkXWa—aW@UVmUbƒ@mVXšWxXbWbUŽƒÒnVVnVVUL'], - 'encodeOffsets': [[ - 120004, - 33520 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3418', - 'properties': { - 'name': '宣城市', - 'cp': [ - 118.8062, - 30.6244 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Vb@„XL˜JXxlIXxlVlV@I²¤šnlUnVšU@VULWVUJ@Lnb@lV@UnV@@VVVlLnbnJ‚UVkUUVWn@@anUVnVJVIV‚@@nUJVbUb‚„@VUbVK@bn@VbnIlxkllXVlXKWUXUlL°¤UVVb@bš„UlkXW‚ƒxXz@‚„Ila„UlƒnUlJVInVÆJ„U„LVUnV„K°@VnlVnxV@XLlK@wVL@KnUlJXU˜bnKVLX„lUw@VWlLXKm@@a„@VLnmlIVVnKn@škVašVlwk@@a@k@ƒVIUa™@maUa@wna@kmWƒ™UUmVUIVǗ@aƒKm™aƒ™kU™J@InmUUaVa„k‚lX@Vk@m@VU@wnK@alKVUkUkKƒbmUkmƒ@U£WVk@@UÝbbƒaÇx@b@WVUa¯ƒ@wVwUUV@VwnK@KWaŁ@KšIUyUI@WmXó™UbWaKm™@km@IUyƒIUaWKƒx@zUKUL@llVUnkLVVkJWX@VUKUVƒIkVWakb@VWb@n@JkXUlmL@xkL@`VxšLUÈUJ@Vm@@bmIUlUL@VUVVbknm@mKUw™KVÈ@J@LV±kkJUIƒl'], - 'encodeOffsets': [[ - 120803, - 31247 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3412', - 'properties': { - 'name': '阜阳市', - 'cp': [ - 115.7629, - 32.9919 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@V™nƒš@ša„k°aš±@‚¥@UUI@aUmlwUUx›b@¥XU@mmI@a@Kn@@_W@@W„I@mšUVVXUl@XaV@‚K@I@a„LX@aVI°K@KVL„UUw‚yXkšK@kšKÆbXnlK@k@a„JlU@w@U@»@aXKWƒn_‚JXkVKnƒ@°LlKXƒW@¯Uƒ@aUK@kmJUw™VƒIUJ™„kŽmL™K@kka@wUVm@@am@UkUbkK@nmVƒÒ¯VU„WVVmIƒƒULk@ƒƒma@kkKƒƒ@nUbUamU™`UUVUkKVkkƒW@@bkmƒnƒmUXVKXVƒL@VƒbU„m‚™bVXJ@nmKÅI@KWKUXVJUL@VUKUX@KUKWL@LUJmaXXm@kVVV@L@VUL@VlK@L@V@LUK@VUb@UUU@°@nVxU`‚Lkn@`@XVJ@X™Vm„k@UKmV¯LVVn±Wm@Ub@JlLUl„@VLk„@lmVVn@bnV@V°IV™šaVJXI°K°V@XXVlVVU„nšKVlUš„bWXnV@bV`U„„@@m@@‚ƒ@nxmn@bXVlL@¤nb„Ul¦šVVUnJVU„Vl@@bÞL'], - 'encodeOffsets': [[ - 118418, - 34392 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3413', - 'properties': { - 'name': '宿州市', - 'cp': [ - 117.5208, - 33.6841 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@UWU@bkW@aWU@aUIkWV™lLXb„lVIUVV@‚mn@V_n@VaUK@I‚@UašanJVU„@lV„UVnnKVVlaUa„I@wnK‚Lnll@nVlk@wVKXkl@@b„bUJ@V‚U@U„UUyVk@aVUXwlWXX‚WU¹@aU™@WUI@mlUšn„J@Il@šaXbV@VKl@XxVL@W„IšJlb„@„al@„IUUm@@aVK@¥¯—@mUķ¯bWƒk£Vm@akm@VaÅ@UVWaƒ@UJWkƒJ—UƒbWbU@UlƒXk@ƒamV@K¯nk@ƒlU@Uxmz@bU`ÇbUbÅVm£U@Ww™x@akLUK@UlakwUJWVkLmaUal@n_ƒmVUnKVUUmÅXWa™@kJmx@XUJ@bVLXxl@VVUVV„UbkLWbU@@lUVV„VVX„›K@XkJ@nU@@bV@VxUVlb„U@xXLWŽn@UxVbVĊ„V@b@XV`mnkJ@kUKmbƒaU@VbnbÆx@XU@@`k@@bl„™@@bkL@WƒakXWaU@Vmkx@XWW@@wUUUbƒJ™U¯V™@¯ÞU@WxXŽlL@bkb@ŽlVlnb™JW@kkU@mbkaWJ—IVlmz¯`UnU@mb™@@„ƒ`@bkVlœnV@b@šV@„aVxn@Vx‚KXnl@nbVK„bVK@a„_V@Vƒ„w@W„LlwnK@UmIU@VWš@šUÈ@lKnal„wš@@V°@šaUmlUUw@„ƒV@@UXK'], - 'encodeOffsets': [[ - 119836, - 35061 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3410', - 'properties': { - 'name': '黄山市', - 'cp': [ - 118.0481, - 29.9542 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lXnlWX@VUJVnUJVzXJVx„kVJlI²l‚U@K@IUǚLVxnLn@lmUaVU@UVKVknJ@an@@UVIVǙKUw@_lK@wnKVklW@I@mXa@UlaXblU„JVUVL@UXWlIUUlKVmkU@kVKVL@y„wXLVb„JVz@Jlnš@nŽ‚LXbVaôšnW@la@UVWUa@@a@mk@WIk@VwUa¯¥m@UUVK@ImK@aX£ƒkK›ÅV™a™™ƒ_@±ƒakXWW—LƒƒƒnU@@a@¯mK@L™JUWwUV™VmbXX@lWLn`mzUJUb™Lƒ„k@makVWmkX™ambkKknƒaƒ@ƒaƒb@‚U@Unm@—ƒWVƒ@VbUbUJWIk@@lmL@°UVUVm„nš™@@kmWkb@xƒ_m@@aU@b@JlŽUz™lWxXn„@‚b²@l`„IVl„UlL@VšK„nVbUl@VlIn@@b„bVWUk‚@@bX@Valb@bnb°Vn@„xVKlbVnV@V‚x„L@ln@UXVV‚L˜'], - 'encodeOffsets': [[ - 120747, - 31095 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3414', - 'properties': { - 'name': '巢湖市', - 'cp': [ - 117.7734, - 31.4978 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VV@blL@ŽXlWnnšnŽ˜„@VXXl@@WšIX@VJ@LšxŎxlnšŽ@bXJVblX@VVbUVn@VbUVlb@LnJVbVLV‚XLšÒVL„ÒšV„bVIVylUXk°Wšknm°_lJ@aXL@l‚z°@„lnLô¼V‚È„VUUaVKU@WW@@UUa@knmVLlaV@„a@kšak±@UmwkKmk™lj™ÝUUkL@mlIVmnÝWkkUÝ@KƑĉ™a@»ƒmma@mX™¤¯Uƒw@ƒ@UU@bU±±L@akmƒ„™LUKmLUUUJVbbÇwƒ@kUWaUJ@Xkxm@UJUUm@™„k„ƒ‚ƒakXUšVl±ôU@kn'], - 'encodeOffsets': [[ - 119847, - 32007 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3416', - 'properties': { - 'name': '亳州市', - 'cp': [ - 116.1914, - 33.4698 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lU@Un@@anUlw@KVmUwlaX_lKna@KU@@kWKUU@ankW™XK˜@@V²VVIÈU@al@VaÈamK@wU™@klaUƒV@XƒVUU»WUUbkmUkVmk@aÈw@mWU@VkIkVWKUÑķXȭºU¯lƒ@kkLWmÅa™L@l™LWlzVxƒVUK@L¯LUJ@bWƒK@b@JLU@Wbk@WVUU™V@nƒJ@XX@@`m@@L@bnJ@nWV@¦œa‚wVVkxVn@bVJ@V¦@Ž™²¯bƒl™b™@m„UšUŽƒŽ@¼ƒ¦Xb‚UV`@nnxUxWLkUkVWKkV@XV@@VVL@VX„@lVV@L@blL@`šL@xXKVL‚@„VnUš@lwnU@ml@XnV@@UVW°LnalƒUI@aUK@a‚a@U„kXW@I@mWL@UXK@UVW@U‚@@k„Wn‚@@V„@XblaVxšL@bVKXb„IlJ'], - 'encodeOffsets': [[ - 119183, - 34594 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3417', - 'properties': { - 'name': '池州市', - 'cp': [ - 117.3889, - 30.2014 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@„V°°ĊŤ@xƒĖ@xœXƤ„VôIÆmnLllXÔ@lƒÜŽn@@JšbšLÆaĢÞĸ„°VVUUKVanK@UV@VL„VVn„ln@‚xnklxXamk@WV@Xa˜@naVk„Klk™@mkUWwkJWw—IWK@ƒUaUwWIUyVIUmVI@UXWmkkW‚—KUUVWm@@kƒKw@U‚UUmkaULƒwm@¯Uma@akaUbW@@a@VlUXƒa@am@kJ@UVkUaƒm™L@UkKƒVUkƒJk_±@aƒ@WmXwÇkkaVaUa±ƒœwV@VkƒwnyUaW@UU¯amLk@m™@kmmU™™¯K@L@lUX¯ƒWlkXƒŽVb„bƒVUL@J@LVKnlJXnlb@`nXlalV@bnL@Vnb˜¼@lXbWlkL™K@zUJmIUxUVUVmX', - '@@llUL@VlxšL@a@UƒwXa¯@' - ], - 'encodeOffsets': [ - [ - 119543, - 30781 - ], - [ - 120061, - 31152 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '3401', - 'properties': { - 'name': '合肥市', - 'cp': [ - 117.29, - 32.0581 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„L„xV‚ĊLÞkšVlVVXaWaXwW™nU„@‚anVVUX@˜bXblWkk@wWmk@VUVKnb@Išy@_kWm£nmVa@U‚KœwlVl@„zn@°l„IlmnVšIVmnV˜aXÅWmU_VK@Unƒmmk@UIVakaƒa™UƒÑUK™ÑWKUUKUamI@KkaVUUam@VUUa@UkWUaWI@a™kmōw™wUL@`mn@KƒV™IUVUUUK›Vk_ƒVkbWƒ@VkUULUJ±I¯aƒlkxU¦@L@V@V@b@b@„WJXbWVXn@LƒKVL@JkLƒŽV@Vbn@VV@XU@UlV@@VV@V@XXV@@VšJ°š°Xnb°@„JUVVXV`@bkXWŽUbU@WŽn@VLXlm„°bV„UbkK@bVJ@bVbkLV¦ƒKķV@x@„XbmVVVk¦'], - 'encodeOffsets': [[ - 119678, - 33323 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3403', - 'properties': { - 'name': '蚌埠市', - 'cp': [ - 117.4109, - 33.1073 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VÒXLlUlJ@UXV@nÇx@bnlUVllnVaXVV¼UVW„U@V„²wVV@Vl@„VnwlIš@XbÆWVnUVmLUV„nm`k@VbnblKXUVIlxkb@VVLlK@bšwXxV@n¤ÆUVaÈaV_@anyVwV@„kl@°m@LnU„bl@„WVkV@Xa„a˜V„IXl‚IV‚„@XbVUÆ@XKWwUkmW@_UmnIlJXkWKXmV@‚w@_XV@Kl@kU@KlX@@UUUUKWLm@klJVUUmk@mXUWmXwƒ`m@„zUbÝakbW@m@UUƒéUIm@UbKǼ@™kKWXmWUkaWU—JWU¯L@W™Lƒwk@mm@_™ƒÅl™UVkmWUnV@VWLUb™bƑĬ¯l'], - 'encodeOffsets': [[ - 119543, - 33722 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3402', - 'properties': { - 'name': '芜湖市', - 'cp': [ - 118.3557, - 31.0858 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„bVaV@XllLXU°ŽlL@V@VUnVl¯Ikš›VUVU@@b@lUXUWmb„n@¼šbƒĊ‚LÞ@lVXlmÞUnkJ@nlKVVšÞXklWVaVI@aUKn»lL@Kn@‚XXwlm@mn°@„V@Wy„wXlWVk™ƒ@aUaVU¯£kKWVXVWLUkkWlkkwmJUam@@aULVa@UƒVaUaVI@m‚@UUJUIUmmV@bm@UXVVUlVmImakKUU@UU@VmU@@kma@KVIXUVK@U™VmUkV™m±£@JkU@nlšk‚ƒLUlmb—@WbU@@XnlWb'], - 'encodeOffsets': [[ - 120814, - 31585 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3406', - 'properties': { - 'name': '淮北市', - 'cp': [ - 116.6968, - 33.6896 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@lnnK@¦n@@V‚V„@@VV@nIV„V@VW²a@b@bVnUVVV@V™z@lš@°UšV„IVaVV@x@ŽXX@WlwUnV@XblW„b@XlK@aš@kƒ@al@@_V@@WÅwmaUaV@„bnaVL@llInmU_@W@aƒUUĉUaVwm@XWK@wƒVkaVUUwU@@aV@@mlI@WœLWƒUUUƒVU@kV@XalKVaUƒVUUUk@WwUK@aVI@WƒUk@@UUU±xkb@lVš@xnLÇbUbk@@bÇVUJ±U@U—@WLXšml@bVVXL@lV@@LmbkLW`kbVxUn@LkxmV@bm@@VkV'], - ['@@VVVkV@¥@UV@U@VUUJƒkWakKUšlXVJ@bXV@blX@aXV@V'] - ], - 'encodeOffsets': [ - [[ - 119183, - 34594 - ]], - [[ - 119836, - 35061 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '3404', - 'properties': { - 'name': '淮南市', - 'cp': [ - 116.7847, - 32.7722 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°kƒīšaVaXK@U‚UVmnXUlšVÆkVKUUUmmU„ÑkU™UÝlĉKUƒwƒKƒbU@UxW@@lœmVUUVmUUƒmƒw—aW„kL¯K@Žm„ULWlIm`X„WL@b@¼@V@xkVƒI@b@l@lk„V°Ȯ¹ĸW'], - 'encodeOffsets': [[ - 119543, - 33722 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3405', - 'properties': { - 'name': '马鞍山市', - 'cp': [ - 118.6304, - 31.5363 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šNJnllLnxV@laXLVKma„aXbVI„bVKVVVIVyn@n_ƒƒW@@ƒ„UnJlUVVXlLnaUWlV@VV„IXW@_W@XK@K@UVUUwVamÑXmmwƒw™KUnUK™çU@ƒJƒU¯@mŽ@nknWxWm@@LkKm¼VL@bUJUbkXWl'], - 'encodeOffsets': [[ - 121219, - 32288 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3407', - 'properties': { - 'name': '铜陵市', - 'cp': [ - 117.9382, - 30.9375 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@„ÒV¤@¼V²@aVV@Ž@„„x°Vš£nW‚@nbnaVXVW@k@aV@VUœUl™°JUkVm@U@UkK¯WVkKWkU@Ubƒakwmlwm@ƒkUmƒUUKU@@VmLUbVLUV¯U'], - ['@@LllUL@VlxšL@a@UƒwXamK'] - ], - 'encodeOffsets': [ - [[ - 120522, - 31529 - ]], - [[ - 120094, - 31146 - ]] - ] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/ao_men_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [{ - 'type': 'Feature', - 'id': '8200', - 'properties': { - 'name': '澳门', - 'cp': [ - 113.5715, - 22.1583 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@HQFMDIDGBI@E@EEKEGCEIGGEKEMGSEU@CBEDAJAP@F@LBT@JCHMPOdADCFADAB@LFLDFFP@DAB@@AF@D@B@@FBD@FADHBBHAD@FAJ@JEDCJI`gFIJW'], - 'encodeOffsets': [[ - 116325, - 22699 - ]] - } - }], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/bei_jing_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '110228', - 'properties': { - 'name': '密云县', - 'cp': [ - 117.0923, - 40.5121 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@vIHZDZQtDLNMXIbHRCXXITbJ@H`LGPRDDJNCLHTOCWFGvGBUJMKGFO^IHWXITQCI’Y^AXGfRˆDXF`DJOLB~G\\DZIHHpErUVMhHb]\\M†BVF@FTP`@zTbD\\@~M\\K`H^EVODWICAakAQXoIcCOCIgGYNWFWNGGKKGaJEGMEIKYJUT_J_Go@_SyQaSFMEGTcYOQLIIi@EKAUPCV[EEXQCW|aMUMAaYCYNIDGGACIMGGSKDQGaF_C[GaB@GOIiOKAYL“mI@CN]F[SWWAcKKI@HMUimEKbeYQYISNUOcBKPIFBNgvDPGZYFSf]CMSIWGEUFgDIQ[MeDMJS@RR@LphFPCHaBAJKF@J]IBJO@HlO@@RKAMPJHCNDJTHFP@ZGNANBRFH@J_fM^ONJNF\\VTDJHDON@XRND\\XRCPVETCLBVKDFJINHRGPRV@\\CLJN@VbXbLVT'], - 'encodeOffsets': [[ - 119561, - 41684 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110116', - 'properties': { - 'name': '怀柔区', - 'cp': [ - 116.6377, - 40.6219 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@JHTVHXCHPfnDJGHNDJSB[JSBGVSAOH@PMPuDEHHXZN@PHF@ZLJ@LHVYJA\\OFWP]BMtMBSRGV[JeVAPQVIFENMD¡–@^NV\\JH@NNL@NM\\kTQ\\I^FNIpBHGTBFFAZQfKDIXQTLXFXNNVMVHRGpCFLlRLEVBBH`IVO\\G`RDPAXLXBXORHZEHTDLLN@VGTMrQNFPeASKG@GMOAKBYMK@GTUHUXSHMVDNMOUEOZMJML@^KRACMZEZMRQLUHE@OFENPR@DI\\ChMHIDG\\GJMDWHCKGMDCIQCHO_K@GaIJSWWQDaGWJMNCKRsCYGYuJUSaKaW@UIMDK@[QUHOGQJMEILCAUDKFSOUQD[WMC‚Q@WPMGCCIUSE[IMPMN]`e@IEGAQBMHM@YEOSGCIDMIGNOLB@QP@GkP@AI^J@ILEBIbADGEOog@KQQWSekWQQUOFKZLF@PUNmIaHIUeBCTSHENcJa@_IWSaGu`GLSBKJQFOXGDXVQVOBIHcDSJWBEFGTMH[^mLaXcHiKElTRKtFXZ`MHMPCNRDxZˆB\\ICIHK@KŽHbIVFZ@BPnGTGbDXRDJaZKRiGEFSFEJhjFNZFjn'], - 'encodeOffsets': [[ - 119314, - 41552 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110111', - 'properties': { - 'name': '房山区', - 'cp': [ - 115.8453, - 39.7163 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@h@bl@HRJDZ``TA\\VVD^H`\\pF\\JŒ`JGv@ZO\\GPSTEjPTR`FnEbDTDHEhLFMTK@ETSPULKEI@OVISKSJACEQNQbV˜IXGDIN@dMB[IIBcN]ZHNLP@XOWCFWŠCNRHTpATD@^NVNLED@Rh@jCEF}E[OOHUEW]W@QGGDIQSH_MmFmCUT_K]i@MHCMW—FCF‹E{BMHMPOHKS]CFNGBELDH_@BcAKOACESAOBELaXAROB@FODMEDWJAG[aE@UM@DImEWJMC@OeCA{aE[@{L@MINUCQXKfUJORCHqJBF@TCXWNQX]M[EAJO@@KMBQJIC]EWMCCUBEBFHKDOTMBGNGF]MWDBRDdMDQVyE@LPVHDCP@JVVMTG~HNSH[CmRUvHPHBbA\\PTNRC\\YNJ€PRARPJDDR'], - 'encodeOffsets': [[ - 118343, - 40770 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110229', - 'properties': { - 'name': '延庆县', - 'cp': [ - 116.1543, - 40.5286 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@^AXOPEB[ZIGU@KKI@YGE@OYMGWFGvCNO@OPGTBHUTA\\ITACIGMIHmCOeDGGWSUIGimYEEMgiFITEFEjHLQbYCIWQaCSHmHAOY@UEaJG@LGLDJ[J‡AwYQCDMNONGY_EWLsSQFkMO[NWAIGaIYL@HMBOKiOQDWEUDMQSF_QIUBWdg@[NaAKQ@M]OQ@WhgLUMMFYQDIRCEUZOOCIOJ[KIUMKL@HIDKVEBM`HJAJSJUdBLGNEdMBMO[BYEWJSNKNaD]PE\\SjOT_RQVEZPpƒNQXfŠNA~lNG`@PNLp¼RFLfbdKbATUh@FSNWjGFZVLFHVA~X¨PPROfFJbNJPLFbENJPrEFNPFRHDDJdENJLVEPBJTVTHGHFRFH@PXP\\ORQHW\\BjWFDERLPPBbB\\E`B\\D\\L`@F]FCnJ^AZL'], - 'encodeOffsets': [[ - 119262, - 41751 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110109', - 'properties': { - 'name': '门头沟区', - 'cp': [ - 115.8, - 39.9957 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@V@XMnGPY²‰JQNEhH\\AZMPDVTTDZCPiJkHSHCjIdFtEHITCNITQEKUAMCEIKCECABYESKFWAKBEIIHABGDCKCAIHMHALKEI\\CFIBILIJQZS]BBEECS@E@@C]COKI@CABAAEEDMGƒCH]A[M@CJWH—JaUMRFRBDTITLUJ@PFJKLOVST@FSLENgKGFSCaCmF_ESQiOSFOT[HYPu@IH‹_[IoE_[]GUC[USB__CYQI@Gakg@qZeHQNMNV\\FVLPgJAFJPRLCH[XcPELUT[JiV_EELFTADBXRTRLJC@fHXHHbPd`fR@NfT`@TLplHMpCEJHJBVLFŽ@JT‚VnG^KXDXHNVGRLRXFJVdDHSNWLGfEzA'], - 'encodeOffsets': [[ - 118635, - 41113 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110114', - 'properties': { - 'name': '昌平区', - 'cp': [ - 116.1777, - 40.2134 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VNLJI\\JPPDYPFVQDCJZRNEVNhKXgR@^P@NLRbB\\Mh@XcVARJE`RTCNFV€XRCjPPLNA@GZKbJJHXB\\MNPjLdGbWnK\\]NGHSFEXATIdCJGPARUWUHCPWRELITAHKv_E@iYCaW_BQ\\Y@QIO@QDCIGZCEMWGFMFAFgHEDOCSqKCCFGAMKEAC@ODGCGs@WH@KQA@EE@CE@GEA@EH@GGUEEJEAYD@JM@@DAA@FHD@FTJEHUC@JUBKCKG@G[CIIQReAYhO@OXGDO@@FF@IHJFCPEBACBIAAKDOABXARHPNEHGbQAAKQFGIAM[C@WHKaGiCEGOA‹HUKCIokSCUSOCYN[BgGMFIR±ŠOZmHWNU@ShbbXDHVXXGJ^lZ@PZ\\Nb@\\FHJAD'], - 'encodeOffsets': [[ - 118750, - 41232 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110115', - 'properties': { - 'name': '大兴区', - 'cp': [ - 116.4716, - 39.6352 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@F\\E~DFN@BDFEpHFCHBBEGCDCJBHUDSBB@ELCPbF@B\\J@BJVAFJ\\ADKTCBGECFMT@BMN@@FH@DaNBEnvB@FPBATK@FHEFIAKFBFL@@PKBFJHC@FXBRAFCDMPDTOL@JIVFDHH@DDH@BGRFCDLD@N^@@CNA@KNOAEBCECFEGCFGMGFIPMOEJOLBADBBHGG@GCHIECY@INC@DMGS\\AIOZAAEYA@GT@KKMBEETCGMVINFxA@MJADB@FlA@HJA@NND@DFA@DVAZBBOFKH_JA@K^GBC@EFE„G@gAENMXKJigC@IbSJMqGOP£RGSMGE@kbQFDPEFiBSGGSBK]I{CDWCIDOic[C_G@SuSO@EWKCO@MNY@\\uZOPENQD[LKESSKGBKEG@EJGAGHoH¥CqhifeJkX_XFFGHFNEDFPENKHM^IFIVL^S`DVEnNnG`RTCJHH@R^XFXGVPP'], - 'encodeOffsets': [[ - 119042, - 40704 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110113', - 'properties': { - 'name': '顺义区', - 'cp': [ - 116.7242, - 40.1619 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@EhEBENXHFNYDJHCD@RJP@R[ZARX`DbjZF@bHXT`Jb@dIFMTGDSfAJVbGnJVM@OKELYPERVXRflXTT@NIfC\\NJRhCVEHFJXNT^DTeZEHYCOhuAMJELOdAVPTMOWBWNMNEJgl]@WGUFIC[T{EEDEHGCIGMI@SECUQI[D{A{GQESPUH]CsiMCmHUeoHENcAaDGCMDGMQCACCBaCGLMAHB@DIEQLOAAEEJ@CW@CDINGAAGKQOCgV@LG@BEGDKNeREFBNCFIDOPKD[@YRW@GFWDAFE@EHDDrLDTCPGF', - '@@KrJEH[\\B@FF@CHFBHUN‹AJKADGECBCMAG^E@EbI@BEGP' - ], - 'encodeOffsets': [ - [ - 119283, - 41084 - ], - [ - 119377, - 41046 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '110117', - 'properties': { - 'name': '平谷区', - 'cp': [ - 117.1706, - 40.2052 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ZJZRafFLjn€VGNJ@LLBdXX\\T^EDMJ@”nZKLBjPPJ@HbA\\H`DbERHLCFK^BZaFWXQLAGMHa\\OLO@SBIpBdCLƒVQfElO@GSAKEDQTC@GEBKG@ORIJBDAPDFA@CaOq@GGQAAEJK@KMUGAAGEAa@MGMBGCGSIIW@WSUCMDOJeWOM@IUF{WMWaDIMgIoRoCOKeEOEAG_I[cg@wLIFENQFDVTFJ@HNDJGHCFFFS|D\\EJHV@Xk^IhMFMNAXPX'], - 'encodeOffsets': [[ - 119748, - 41190 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110112', - 'properties': { - 'name': '通州区', - 'cp': [ - 116.7297, - 39.8131 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@FDAJTGDNDCTDDEDBBE@DT@@EHCDGJ@EIZ@@FDBR@ATFBBVFFE@@HNA\\VE@CLIFNJFNJBCP]A@LJFA@HJEDD\\C@DBCHLAEPF@@DH@APHAERDF\\GIxDTM@CFLBBFJ@CNUPMHECGDBF]BMFPDLRBHHBJMDCX@@DFIBFPBRKJF@CGANBHKbDDABDRDHNNCHDbCdBFMpGHiOYMefKJMC}HWAUNW\\NNBNA„kNU|]HMTMN@MZBLFFF@RIRUT‘BMFIEGaAGGAOIIUGTSFcYKS@MSLYPKRUBU]EWDOI]CKGASgW@MTWKIMCS@uMAKKADMECGAKVUTSDy@IjWLMNBF@hƒHEF@FAD]H@LIBG`ELAPYAUB@CEB@CMC@MIB@GkB@ECAIB@NwBMEUJHNSDFFNALLS@@HZBBFYBJP[BHTCND@JMZ@FDGJHDH@GHAABCKAIPPFONEJNHEHHDEFFDADBFMP@L'], - 'encodeOffsets': [[ - 119329, - 40782 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110105', - 'properties': { - 'name': '朝阳区', - 'cp': [ - 116.4977, - 39.949 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@bFGHBHFBFIVFHHG@@FFB@HDFF@@FRB@LXGt@DHCH@PBDLFBNF@BEXCHEX@ZQ\\@LCPOJCDEAMFEfQLMHCAFH@@KhUNE^AAEHCFDNGVODMI@AEKADEN@CSJw[HCEFQGBBOG@@CE@FOKBDGCAD@C[FCGIB@IE@K^BDOIAEMMIJEDKF@[UMB@GF@EEAUEABSQ@CA@EY@FJI@CHGD@FS@@CAFCACFSCCDCMSHBIECMB@D]@@MKCDCQEAHG@CCG@CGUEIJK@SPOCCNEDQBDNDB@DJCDLFCBBALJB@BVGPBKVO@KHCCCD@FE@BNA@FNCTDDJA@FGB@NBDW@CL@hT@@ZHHQDDDAFSAANBC@HG@EFS@@DE@@PCB@Ue@CADNJB@FCBWA@LI^ix@FIHrH'], - ['@@HUN‹AJKADGECBCMAG^E@EbI@BEGPKrJEH[\\B@FF@CHFB'] - ], - 'encodeOffsets': [ - [[ - 119169, - 40992 - ]], - [[ - 119398, - 41063 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '110108', - 'properties': { - 'name': '海淀区', - 'cp': [ - 116.2202, - 40.0239 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@plDJVLŒGPBFHjDbHGL@X\\DBNHJREBLRBHaFGŽMGOBQAWPBLCBBAJBDFADOIEJGE@@EP@HCPWP@ZgfBRQJJ\\D@HLHLDVA@IVDFGSI@EGC@EBB@CN@@IZCAGHGaEqGJG@EjwJ]@K@GSA@e_I@NE@CA@Kg@KC@ENCFƒAKQAW@WIMK@V‹@I@@F@^EDFB@HcIaDYCBRRDCHD@EFLN@FE@CJUPEJOJMTBPEDIFCMIAKNOGMRFJNDVBFLSRMJSDGJsFcEiJGDGTIlOjYD'], - 'encodeOffsets': [[ - 118834, - 41050 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110106', - 'properties': { - 'name': '丰台区', - 'cp': [ - 116.2683, - 39.8309 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@hMN@NFTQCFRCBJFA@HJ@@HJ@HJ\\FTACDŒ@@UNLXJX@@MA@@IECAQlDFEHBDI~D@GXCFMVDFCH@@NF@ANJC@FnAB@AMF@@EDCDDLGP@LUOAUH@AIABKAAEDCKID@CCACMWA@EGDEILA@OK@AELEJBFEEGL@BSOA@EuAFmMACbG@@EM@ANS@ENFDAHSDCL[BEIUBAII@A[E@OaKD@FAACTGVIACDHDAFGAEDoGEFACM@i€g@@QFCMKMU@]SCoBGSMQ‰DEXXDWPO@MKYGM^AdJJA\\cNB\\G^„DNHFCBFABDBJ@PL^D@DF@T@FDAF^A'], - 'encodeOffsets': [[ - 118958, - 40846 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110107', - 'properties': { - 'name': '石景山区', - 'cp': [ - 116.1887, - 39.9346 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@NQPHLMJBDNJEFCAONSPIFIVODIF@@EKMFEC@DGQCAQZDbCdJ@GEAFC@]@EJ@DCSB[EGII@@GI@@GEBAIQDDESRMEM@gNYTIRKJAJEJ[DFJKLGBGNBJLDCDAHGBJJAFBLEXTLZFBAFDLD'], - 'encodeOffsets': [[ - 118940, - 40953 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110102', - 'properties': { - 'name': '西城区', - 'cp': [ - 116.3631, - 39.9353 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XBDA@EIACM@IJAD]BC@SFABISAD]H@@OAEDQEW@BLE„MD@FLDh@@LDBF@@M`J@fTB@H'], - 'encodeOffsets': [[ - 119175, - 40932 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110101', - 'properties': { - 'name': '东城区', - 'cp': [ - 116.418, - 39.9367 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@DBf@@VDA@OF@@CT@FEH@@GADBMTBBECCRCGG@YS@@gDK@A‘C@PG@C^TBAJEB@TADC^IB@J'], - 'encodeOffsets': [[ - 119182, - 40921 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110104', - 'properties': { - 'name': '宣武区', - 'cp': [ - 116.3603, - 39.8852 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@RBX@RFFCŽBFU@aK@WA}CCJGAEFkCBRFD@JB@@N'], - 'encodeOffsets': [[ - 119118, - 40855 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110103', - 'properties': { - 'name': '崇文区', - 'cp': [ - 116.4166, - 39.8811 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XBL@@bEV’D@BX@AC@MHA@EIBCCDSEMmB@EIDBME@@MG@EDUCENWD@H'], - 'encodeOffsets': [[ - 119175, - 40829 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/china_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': 'xin_jiang', - 'properties': { - 'name': '新疆', - 'cp': [ - 84.9023, - 41.748 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@›ρȁôƧƦóəʵסʵóƪԫʵѵͩƧͩړ›υࡓɛʵ@ȃ@óᇑѵƨɝɚôóНѺͩɜ̏ԭʵôƧɞñ@υƩ—݇ȂóƩƧ@ѵȂυœƥŌਗ—॥ɛóʵѵƧѹ˜݇̍ࢯ˜əɞυ˜ρͩ̏óਙƨƧŋôōóš̍ͩóʵן›óŋړͪƧѶ@ɜԭ—ԫƦɛȄ̍›ɝȄöςƩȂ̏œñȀ̏œƩóóŎə˜@Ő̎@ɞȀɝŎôƨóנѵȄƧ@óŏɝœóɜôŎ̍ͨςŎ@ƨóôƨɞ݈ʶóƨφó̎Ȁƨ̍ԮòѸԮמ@ѺȀ@ƪၬֆòȂñ̐òȂɜ˜óƨ̒Ŏ̑߼@φρȀ@Ő๐ς̎Ƨφ@ɝφڔ೦Ԯǿࢰ@ƦŏԮƨƨȄƧ۬ɜʶڔŐɚɚóŐôƨ߼˜ôƧƧó̐ƥóŏѺǿƦȁφƧς˜ƨƧ̒@ɜƥƦυ̐ɛƪͩƩəƪʷ̑ə@ȃƨʵנŋྸōਚԭԪ—@ɝƨŋ̒օςʵôƧ'], - 'encodeOffsets': [[ - 98730, - 43786 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'xi_zang', - 'properties': { - 'name': '西藏', - 'cp': [ - 88.7695, - 31.6846 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôŌנœôʶ̎ͪô™óŎƨŌਚƧ̐ôςͪφ—ɚɝࢰ—݈̎Ѻ—Ѷƨôʶ०ɜਘ˜Ʀŋφ›Ѷȁ̍—ôŏɚŋ@̑ə—@ŏò̍ɜ›óƥôʷƧ̍φѹԪ̍ע@Ѹʷɜ@ôñנ@Ѷɛɞô̐ŏѶƨѸƧƥōƦœôŏô—@ƧôƩ̒ŋƨŌƦǿô̎ɜȁ̒—óʶѶôôО̒›ςƥɜНφσɛȁ̎υƨఱƧŏ@ʵƥœ@ŌóóóͩƨƧóŋ̑õóɞóɝԩͪɝρôƧ̍ƧѹͨڑŎ̑ōóƧࢭͩ̏ѵɝóఱóóԪυô@̒ƥŌ̏Ƨ̑Ȅ݇ŎƧ›ѵӏ@ɛõŏɛȄôӒƧŌѵǿɝ˜Ƨŋԫ@̏ʴƥ@óǿ̑Ȁóǿ̍ςóóυô@ʶɛñρƦƩŐó̎óœѵó̑ͪࢯОóɜן˜Ƨ̏ƥȄ߻̎̏̐ןŎɝɜöɞƩȀôöɛȀóͪ̐ƨƪ̍̎ȂƥԪυО@φɞ˜ôƪ'], - 'encodeOffsets': [[ - 80911, - 35146 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'nei_meng_gu', - 'properties': { - 'name': '内蒙古', - 'cp': [ - 117.5977, - 44.3408 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ኊȁ૊ö߼ƩɜɛנñԮɛѶóԮô@ȁѸóמ̎ගѺၬ@߼ʶԮӒ߼̎@ŐѹӒ̒Ԫƨöග̑ѶȄ̒ς।œѶɚöɞɜʴڔôôȂ̎—ѺȀς—ƨ˜ƪóԪ—ɜôɛОਕڔԭ˜ѵ̍ѹȂԫ›ɛƥ̍Ȃóɜ̎ô@ʶ݊ੲࢮʵږͪנƨôȂƧ˜̐ͪ@ŐƦƨφԬѶɜôƦ@ŐƧôôƦəŐ̏›@ŐڒѶԬô̐ʳԩНςōôŏɞ@ƨȂѶəóƧ̒ػ̎ó̐Őנóƨô̒@ƨɚɚ@עԫɛɛ@ȁυͩƥʳòևρ—̑ࡗƧͪ༃ॣԮփ̎Ʀ@ôô@ôō@š@ȁѵóƨ̍υȃóʵɛƨƥóυȂóəƪ›̐ρƧͩɜԭڔȄ̎عƧȁ̐ŏó̍ɛ›ƥƧ̑óρŐ@Ƨ̏˜ɝəɛ˜߻ͩ̍ͩɝО̍ƪƧóóӓƨóƧʳ݇@ɝςƪœ@ʴƩ—ƧƦôƨɛȄə›Ƨŋυ›óͩѵ@ɝǿóŌן̍ɛ˜óО̍œ̑̏ôȁ̍ŏòȁñóƦͩ@ǿə@ɛƧ̑˜ρȁυô̍օѹœóȃə™@ȂσʵѷƪòƩ̍—ôó߻ۯôʳƧ™óšõʵѵóѹɜ̍ȂѹôɛŌφֈƩͨρóυӑóޟఱ̑݇ͪóƪƨŌóȄڔԬƩςםñ̑ȃѵŐԭŏƨȁɛǿρôõɚɛóƧОə@ѹ̐ѵöԪͨôͪɛ̒ןŏƧƥóôƥƧɛŌôóɝó@̒݇Ӓ̒Ō@Ŏԭࢰ'], - 'encodeOffsets': [[ - 99540, - 43830 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'qing_hai', - 'properties': { - 'name': '青海', - 'cp': [ - 96.2402, - 35.4199 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƨ@ôƪ݈ȁƪ˜@φɝòóƨԮʶɛ̐ѹͪôОəóƧɞᇒѶ@ôږô@ǿѶ›ƪȁςœɜͩφ˜ςŋɞôѶɛƨŌɞ—@ɚςŐñԪॢͩƨȂɞóƨŐ̎ŏעӏ̎óƧƦôœ̒ȁɜ›ςͩ̒œɚɛƨôƨɝφɛóȁƨŋóóɚͩƨóóƩ@ƧəŋƦƩ̍@ƧƧôǿυ̑@ȁɞǿõŏρƥסɚƧóτԫɞœôƧƦ@ñȃòñƥóυôôѹѵ—@ŏ̏Ȅɝó@ȂəŌóəѹƦ@Ő̍Ōυ݈ԩŐƧóôƧ̑›ôʵɞƧ̑ѵôƩɞƧ̑œóНѵóôʵ̑˜ɛȂó̍ƥȀƧŋ̑Ōóƪ@ƨó˜óŐƥ›ƦŎѷƨѵƧ̏Őɝóѵɜן@óòɛ@ѷʸס@ԩ̎υѺƨ̎óʸôƦɛœñ̎@Őɚ˜@̒əŌóŐ̎˜'], - 'encodeOffsets': [[ - 91890, - 36945 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'si_chuan', - 'properties': { - 'name': '四川', - 'cp': [ - 102.9199, - 30.1904 - ], - 'childNum': 21 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ô˜ôŋó̑Ԯ̒ɛОמͪƨōöͫ߼ƥôȃƨóóñôƧóƧôōڔŏƨŐ@Ŏô˜òƥѺŎ@ōɜóנ˜ôǿô›ƦôԮ̍ɜôɚ›Ƨ—ñɛɚȁ̍Ƨɛևυ@óóôŋρԭɝ@Ƨʸ̍ŏυɜƧƧóƧƨȁρ̍ƨȃɚ—ôʵφóô̑̏Ȃ̑ʵɜʵɞ@ƨʳסƩóŎə—óɜƧôƩƧρ˜óôôô@ŎƧƨƨƪѹ˜ó̍̍Ʃ@̏ѹНôޟ̍Ʃóƪυɝɛ—əƨôŎɛȀ@Ȃ@ñɝʶ@Ōρנ̏—õóɛͨƨȂѵОɛʵ@̏ƩŐó߼Ƨల̍φɜȂυτɛОρƦɝƨóƪ̒Ѷɝƨóʶ̒œóƨƨôԪŏφ݇̎ŋ@ŏѺƥôɚɚŋ@ȁɞô̐ȃ@ŐѶ˜óѺφóƦôñòòȄ'], - 'encodeOffsets': [[ - 104220, - 34336 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'hei_long_jiang', - 'properties': { - 'name': '黑龙江', - 'cp': [ - 128.1445, - 48.5156 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ᇔȂਚНƨŐѶŏöƥςŏñƧƦóƨȁ@óƨ—óȁφӑóóƨ˜óǿ̎̑ôНɞ—ó̑ɜə߼›̎ǿ̒ôڒӑφ@Ƨȁ̎̏ƥƩ̎ρశ˜ôȂςƨφ@נɞ݈˜̑ƥƧɛƨʵƧȃƥ@Ƨƥ@ŏ̑ԩôɝρρóɛƧ›ƩͩƧó߻ʸ̍ʷѹƥɞڕõ̍öɝυ—̍ȂƧ̐̑ŏóƨñŋѹóóȁ̍›̏Ԭõʸ̏ŏ@ǿ̍@ƧОυ@ñƨòȀƥŎ̑ŐѵóɛŌóȂԫōƧŎѹñ̍ʶóОן@Ƨ̎Ѷô@Ȃ@™óŎó@@ó̍ƥԭք༄।ƨͩ̒ࡘς˜ñֈƦʴφͪ@ȂɜɜסԬə@Ƨə̑@Ƨóןô̏ŏ̍ô̑ؼôƨѵɚƧȁɝ@óŐρŎԪО̏ʴ'], - 'encodeOffsets': [[ - 124380, - 54630 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'gan_su', - 'properties': { - 'name': '甘肃', - 'cp': [ - 95.7129, - 40.166 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ڔôԮࢯ@ō̑ŋ݈ӑ@̑ɞôóôɜŋƦƨôóƨƦנŐɜ̑óͩԩͧѶõѺ̏ɚ@ƨНɜôöəςóɜȀƧȂԮŐѶŏ̒ȄמòƪρړԫôȃƧŋôƩ݈ͩɚ@@ǿɜ@φͩóŏɜӑƧōôǿ̎›ôƥƪóõ›ö@ô—ƨ˜ôƧƦôó̒ɜ@ɞŌõʶ̏Ő@ȀóôƨȂ@ʶע@@ƥ୾ӑó̑óŋôʵóɛړ@@ƩöóƩóρ—ɛƨ̑@óʷƥƥ̎ɛƧ›ôōƧǿôͩѵôɝȃɞȁõƧρóó—@ōƧŏړŐóŎôƨóƨôòƧôóȄ߻ƦõͬƧŎםͩɜНԭ̑ô̒óŌó—ƥ@óƨɝ›σԬƨôעəςƦöŐɝȀ@Ȃφ̒óȀƨƨ̎@ƥƪɚŌ@ƨôƪƧôəͪôôƧŌôȂυɜƧɞƧóəɜ̑›ρͪɛœ̑Ȃó›ƨƥ̍ôסӐ̍ŐƧŏɝôƧȁॡͪòԩρŏ@əɝ˜ƧŋѵɜɝóρŌυ—ɛͪρ›ƩȂѵœ@Ȁڕó@ȄɜʶφࡔڔœƨͪѶͪԬʶôƩעʶɚʶƥôóƨςȂ'], - 'encodeOffsets': [[ - 98730, - 43740 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'yun_nan', - 'properties': { - 'name': '云南', - 'cp': [ - 101.8652, - 25.1807 - ], - 'childNum': 16 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôɞôɝ̒öôŌƧƨôͪôô@ŋƦ›@ʶƨŐô߻ƪŏ@̐ɜʶѶНƧȁɜͧöô̐˜ςן@ŋɞʵ@ò@ȁɜǿóōɚƧɜ˜φɞôƩ̎ƪóޠѺО@̐̎ƪô̎Ѻ—ƧƩƨƧ@ōóóôóς—ƪƨƨóôɛó̑ԭ—ƥŌɛǿɝƨɛͩô›@ǿƨȁѺŌɚɛ̍ןѶНɛƧôóƥȁƦͩôŎɞ—ƨ̑ɜ—òôφ@ƨʵ@ɛѹōóȃəƨυǿóʵρƧƧŌƩɛ̏ȄñƧƧȀɝ̍ԩʶƧ̑υ—óŌƥʳɚӑóНƥô̑›óӒѵʵѹœƧӐןôƪφõŌƪ̒ԫŌƧؼƨƨס›ρȁƧœƨȂóʶó@@ʴƨôôφ̎Ŏ@Ȁƨ—ƪɚƨœóƨôôôςóޤƧŌƩŋƧԪ'], - 'encodeOffsets': [[ - 100530, - 28800 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'guang_xi', - 'properties': { - 'name': '广西', - 'cp': [ - 108.2813, - 23.6426 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƦŋѺ̎ڔʵƨŐ@ƦמȄƪôóȂɜŌɚͩɜ@öóɜôôȂƦôɜȁ@ɞφ›óȄ̎›ƨʶɞŋƨʴɚǿ̐̎Ԭ@ôñ@̏ƨ›ρ۫ô›ɚƨƨНƪŐ̎›ƥóƦʵƥŋ@ȃóƥƧ@@ŏɝǿôυƧȁѵɛ@əóŏ̑@@ə̍›óƧó—@ȁƩ˜ρóòНƥô@Ӓ̑@óŎ̍ƥσŎυ@̍ƨ@Ō̑ôóͪƨ̒óŌړœ̏Ŏ@ŌôȄѺŎ@ɜƧʶυ@ñóɛ˜Ƨ̒ɝ˜óōƥͪ'], - 'encodeOffsets': [[ - 107011, - 25335 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'hu_nan', - 'properties': { - 'name': '湖南', - 'cp': [ - 111.5332, - 27.3779 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@քɜОƨ@öŐמóƪôƩɚ̒Ő߼ȁςͩɜòƪ—ɜȀò—ñɝò—Ѻͪ@ŏƨŋóɝôǿƨ™ɚȃóəƨȃѵͩó̍@ȃƨóóƥƨƧ@ʵƦ›óͩɜ—ɛóñԭɛōυȂ̍ƧƦō@ɛƥ—ɛȀ̑œóʷóō̍œƩŏƧОəƧóœς۬Ƨœ@̐óòԫ@̏̍əȀƧʳɝŌóɞƧ˜ƨɜóŐƨò@ȄƧŌρŋóôԪОóʶ@̎óȄ'], - 'encodeOffsets': [[ - 111870, - 29161 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'shan_xi_1', - 'properties': { - 'name': '陕西', - 'cp': [ - 109.5996, - 35.6396 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ςôöƨɝȂɞȄѶóóͪƨȀóŎƨœ̍ɜƦƦôʸ̒@ɜƧς˜ƪôõô@ƪڔ@ôɜóʶôŌô̒୽Ӓ@Ʀ@Ѻ̎ɜѺɛѶôöʶô™ƨšóʴ߼۰óô̎˜ñƪѸƩτʶ@ȁòŋəѹóǿ̑ʵ@ȁ̒ʷυփô݉ôН̏ط@ȁƨóô̏ƪõ@ʳ̐ʵ@ɝɛŋƩŌɛóןôƧŋ̒ó@ŏ̐ƥ@ŏυ@ƧƧôן̏@ƥȂѹɜəœɛóԭ̎ƥóóœóȀן—ɛô@ŎѹōñƦ'], - 'encodeOffsets': [[ - 108001, - 33705 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'guang_dong', - 'properties': { - 'name': '广东', - 'cp': [ - 113.4668, - 22.8076 - ], - 'childNum': 21 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@@Ȃô˜ôƨ̎œ@ɚ̒@ôŐ@ɚѶɜƨȂóφɞȀ@Őƨ@ôƦ@ȄƦŌƥʶƦôôŎôʸ̒›ɜǿƦ˜@ɜƥŎ̎ƨφȁɜŎòƥԮŎƨōóŏɛƧɝəɞƧ߼ɜςȃñȄƦŎ̒ōôòƨəƨ˜ɚН@əƨ̏ƪʵυŌəɛóəԭŏəœóŏѹœρʵɝƦ̏™ƥʳѶ›öō̑óóŋρȀυƧƥɛѹōƧôן—ɛŏѵ@óŋôʵɝ›ƪԩõ@Ƨō̍@Ƨ@@ƦɝԮƪО@@', - '@@X¯aWĀ„@l' - ], - 'encodeOffsets': [ - [ - 112411, - 21916 - ], - [ - 116325, - 22697 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': 'ji_lin', - 'properties': { - 'name': '吉林', - 'cp': [ - 126.4746, - 43.5938 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@נ@ôН̎ʵѺòƨōԬŎôȁɜŋѶô̒ŏƦōñǿòƧφ@ƨН̎@@Ȁ̐Őöʷ̐ԫ̎œôȂѺôòŌôƧ̒Őƨ̏̎ȁφ˜@ŋƩͩםȃƨ—@ȁ̑ʶ@Ōóôɛœƥѹ̑—συ݇@ɜρƧȃࢯƨôœəȂɛōƩɛ̏υρóõœƪʴυφ@ʶôŌóœρք@ɜƧ@ɝǿƧͪρȀƩó̏ŐƨȂ̍غړȃɛԮƨͪ̏ςƩœôɚφȁƦôɜƧôʶφȄ'], - 'encodeOffsets': [[ - 126181, - 47341 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'he_bei', - 'properties': { - 'name': '河北', - 'cp': [ - 115.4004, - 37.9688 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Ʃ̒̏ŌѺ̒Ʃ˜óȄƧŌƥͪòôñȂ̎ŐóȂ̒̐̎›ôНɜ—נ̎ôŋɞȀѶ@ôͪφœƨŌɚœɜȃóƧƨƥƪ˜@ʳƩ›ɞρ݈@υНφʵɜ˜ƦρƨƧ̍ɝóɛѹ̍ρŏ̑ôóƨ@œƧƦôƨɛ@ƥƨ@ȂƦ@@ôəŐƧʶƨŌυœ̍̎ɛŋôōɝ@óƧ̍›ƦʵѵʳôʵɜŏςôƪŋƨŌɚ@ôНƥƧ@ōѸɛ̐ô̎ʵѵНԭ@̍̍Ƨò@ȁɝ@əρυͩƪ̏ƩõƧŎƧōóšॡȄɛʶɜȀ@ɞςѶƧœƥςɛŐ@ɚɜɜ@Ŏôôςœƪς'], - ['@@õə@Ƨɛ˜@ŐóƦφô'] - ], - 'encodeOffsets': [ - [[ - 117271, - 40455 - ]], - [[ - 120061, - 41040 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'hu_bei', - 'properties': { - 'name': '湖北', - 'cp': [ - 112.2363, - 31.1572 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ñȄυƦöŐƩ˜óנƨƨφ@@Ő̏Ʀ@Ő̑ôƨŌנóɜôƪŋɜŌѶօڔə݈òɞōɜŎôӏƦóƨô̒óôȃƨó̎ŐôƧƪ@ƨȁςƧə̑̎Н@̍Ƨŏρôԭͩԫ—̍ʵƧšóȀôɞƧŌ@Őѹͩñ˜òɞñ˜ɛǿƩ˜ɛñρͪ߻Ȃ̑ŏƪəƩóםôõŏƧ@ɛНƥȄó›̑ѺƧ›ôφóƨƨƦƪóɜŐôóòôƨóφ̐ƨóƦ̎'], - 'encodeOffsets': [[ - 112860, - 31905 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'gui_zhou', - 'properties': { - 'name': '贵州', - 'cp': [ - 106.6113, - 26.9385 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɜȀƦŋԮ˜ô̒ɚ˜ôōעƪƧʴɝ@ɛʶ̒ʶ̐ȁƦœóȂô@ôŏ@ōô—ƨʶѸô@ʶƨ˜ɞó@ōτöòυƨ@@əƨô@ɛ̒@Ʀɜôȃ@̍ôʵԩНôóςŌƨŋ@ȃƧñôŏƧɛƨ—ôɝƧʵ̍œôȃυœ@ɝɛȂƥóóȁɛóõôɛ@əͪɛŋôȁƩóםȃ@ƥƧŏړʶѹ̍ƥŌƦȂóôɜƨѵО̎נəɜѹŋƧȂ@ȀóœɜͪɞƧ'], - 'encodeOffsets': [[ - 106651, - 27901 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'shan_dong', - 'properties': { - 'name': '山东', - 'cp': [ - 118.7402, - 36.4307 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ʃ̐φͪɚςɞ@@Ȃƨñ̎̎Ԯ@ѶОƨƧڔ@φН̑ŋ@Ʃ̒ǿ̎@ƨɜԬςôʶ̐ʶöԫƨƧנƥɜŎôō̎@ôŏóρƧŏԫôóƧԩó@ƥɜƧԭóƨʵɛƨ߻ӑɜНԩ˜óô̑óƧʳə™óɛƧ@õȀƧœ̍ȃɛŐóŏυО̍—óɝƩ—ԩ@ƧɚԫȄɚʶƨ˜ɞʶԪ̐ړɛƪ̒'], - 'encodeOffsets': [[ - 118261, - 37036 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'jiang_xi', - 'properties': { - 'name': '江西', - 'cp': [ - 116.0156, - 27.29 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƧȄôɚəȄ̎ʶԬ˜ԮͪςóƨŐƪ›τɞƦōƥƧ@ŏςôóŐôô̒ʷѶ—ƪƩƩǿ@ō̒ɛôυ@—Ƨȁѹɛəƨѹ̑ƨ̏óƥѵʷô̍ɛȁôŏɝǿƧԫƧ›ôʳƥōòȃρȄ߻ɛɝƨɞɚɜƨôŐƧŎԭōñƦòԮɜôɛ˜ôͪƥœ@ʶƧƨôƦƧô@Ȅô̎Ѷͪ'], - 'encodeOffsets': [[ - 117000, - 29025 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'he_nan', - 'properties': { - 'name': '河南', - 'cp': [ - 113.4668, - 33.8818 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@φ˜̎ƪ̐˜ɞȄɚ@@Ȃעó̎ŌѺ̒ôֆॢȃô™ƨŎƨōƪöƩ̑ڔɜԩ̏ɝʵƧ—əʵԬȃƨəԪ@@Ƨ̒ŏô̍υȁƧɚ̍ôóŋ@ɝƧŋõ̑σ—@ŏɜŋôɝ̒ƧɚôôطρóóɛƩ@óƨ̍ŏƧôóȄ̑ôƧóƥôóӐɛōɝŎ݇ñړɚѵֆ@ɞ̏ʶ@ʴƩöó̐'], - 'encodeOffsets': [[ - 113040, - 35416 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'liao_ning', - 'properties': { - 'name': '辽宁', - 'cp': [ - 122.3438, - 41.0889 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƨʴƧôôӔƨô̎ƩɞН̎ͪ߼ͪɜ—ɞɚ̐—@ƨςŏ̒ôƦƨɜœô̎ƪôςǿƨͩɞȀƨ@@ɛςփô›óŋ@ʵφυƩʳö›॥փρѹס@əɛ@ͩࢯ@ѹʵρ—ƩʶφȀƧ݈̒۬óʸɝŎѵ@ԭԫןɛƧƨƥςɛ—υʶφО'], - 'encodeOffsets': [[ - 122131, - 42301 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'shan_xi_2', - 'properties': { - 'name': '山西', - 'cp': [ - 112.4121, - 37.6611 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɚѺñŌɚšôȄѺ›̎ֆφóςȂ̒—ɜƨɚ@@Ȁƨŋôȃƪ—ѹ̑̐ŋƪ̑Ʃρρ›óó@ōɛɛ@əɜŏƦρƨ›ρѵ@ɝɛǿɜʵóօѹ̑̍ŋסô@ȁə@ɝȃ̏—̍Ʃυ—Ƨô@Ȃ̐ظóОó݊φք̑ʸ@Ȃ̒ʶôȀ'], - 'encodeOffsets': [[ - 113581, - 39645 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'an_hui', - 'properties': { - 'name': '安徽', - 'cp': [ - 117.2461, - 32.0361 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ó̎̑Ő@ƨƪ˜Ѷǿɜ̑φ—Ʀʵ̐˜Ƨѵôóƪôôυς—ƨȂɞŏ@̍ԫôò̑ƥ—óȃѶͩƧƥôŏѺœôŏƦ—@›ƥͩƧ—ôȁυó@̑ƧɛѵʵƩƪѵ˜̑ʸóóôŏρó@ŐƦƨƥŎσɝƩœ@̎̍Оɚ̒ρƨƧȂôɜςôóظəó̑ƨóɞɛŌ@Őτ˜ö̒ƨŌ@ɞôŌ̎óƨəφȂ'], - 'encodeOffsets': [[ - 119431, - 34741 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'fu_jian', - 'properties': { - 'name': '福建', - 'cp': [ - 118.3008, - 25.9277 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̎›óȁƨӑ̒—̎ɚƨͩφŐƨɝ̎ŋóŏρ—@ōƨ›òʳəóƨō̏˜õɛƧ@ƨѵƧōəŏóŋƧô̑ɝɛʳƥ@@óɛõ@Ƨ̑ƧóȁəƧ̑—Ƨ̐@ɚəОƧ—Ƨɚóñ̑ŎóʴƨœƨԬɞȀóŐɜȂó̎ѶʸôƦƧ̐Ѻ̒ɚƧѺɜƨȂ'], - 'encodeOffsets': [[ - 121321, - 28981 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'zhe_jiang', - 'properties': { - 'name': '浙江', - 'cp': [ - 120.498, - 29.0918 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ѷʶƨɜ@̒φôóȂƨ˜Ʀͪ@œ̐˜Ѹ̍τȂ̒̑נŐמôƪƧôӑ̑›@ƥρͩƨօ̏@@υɝó@ŋɛ@ôƩəóƧѵυó@ƩɜŋƧ@̍ŌƧɞυŏƧͪ̍ə̑˜ƧӒôȂ̍œ@˜óφ̑ɜ@ŎƪȀ'], - 'encodeOffsets': [[ - 121051, - 30105 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'jiang_su', - 'properties': { - 'name': '江苏', - 'cp': [ - 120.0586, - 32.915 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôɞ̎˜φНôŐɜŏ̎Ȅƨ›öǿƨ@ôɜɚšƨʴ̒ôôó@Ƨ̎əԮȃԪૉöͩ̐ƧòʵφƧôʵ@óړɜóŏɜǿƧ›ɝρσȁѷ̎̏—ƥ˜óŐѹ›óŐƨƦѵͪôȄƦ˜ñ̒Ԭó@̎ɝŐƧȁρ˜óφƩóóôƨѶ̏—ƥʶυ˜ɛ̒ѵȀ'], - 'encodeOffsets': [[ - 119161, - 35460 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'chong_qing', - 'properties': { - 'name': '重庆', - 'cp': [ - 107.7539, - 30.1904 - ], - 'childNum': 40 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@əȂòɜƨ˜ѺɛƦȁ̐@ƪ—õŏφƥòȃƥ̍Ƨôυ̏ƧôñóóôɛŏƩôƧƥôƧóυƨœ̒ѹôœƦȃ@փƥɛ̑@@ɜƧó@ɚƧ@ñφσõ@ŎɝôƧ—@ʵѷóƧʵó˜@ŎóŐó@ôȁƥ›ó̒υôóʶə˜ƧȄς̎ƧȂôƨƨƨφɛ̎Őƨʷɞ@ςԮóŌôôφ@ɜֈ̎ƨ'], - 'encodeOffsets': [[ - 111150, - 32446 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ning_xia', - 'properties': { - 'name': '宁夏', - 'cp': [ - 105.9961, - 37.3096 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ల̒ôޠφӒςôƪͧυևɜŋѺó̎ȁ̍ɛ@ѹס@@ʵƧȁôó@ǿ̐ŏöʵɝŋɛ@ô̑ƥóóƨƧ—ó˜ôœó@ƩôóƦ̍œóȀƨŎɛӒôŐυͪɛ@@Ȁə@'], - 'encodeOffsets': [[ - 106831, - 38340 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'hai_nan', - 'properties': { - 'name': '海南', - 'cp': [ - 109.9512, - 19.2041 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@φɜƦʶ̐ôφô̎@ƨŎö@τʵƦ˜ԩ۫õН̏óƥȃƧ@Ʃəםƨ̑Ʀ@ޤ'], - 'encodeOffsets': [[ - 111240, - 19846 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'tai_wan', - 'properties': { - 'name': '台湾', - 'cp': [ - 121.0254, - 23.5986 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ô—ƩɝöƧɝѵəޣ̏ρƩԭóōóͪρɞƧОôԪ݈ଦѶɜ̒ɛ'], - 'encodeOffsets': [[ - 124831, - 25650 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'bei_jing', - 'properties': { - 'name': '北京', - 'cp': [ - 116.4551, - 40.2539 - ], - 'childNum': 19 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@óóó›υóôƥ@ŏóóə@ƧŋƩŌρóɛŐóʶѶʴƥʶ̎œôƨɞ@óŎɜŌ̎̍φ›Ƨŋƨʵ'], - 'encodeOffsets': [[ - 120241, - 41176 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'tian_jin', - 'properties': { - 'name': '天津', - 'cp': [ - 117.4219, - 39.4189 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôôɜ—@ƨöɚôœôôɚŏ@óƥ@@ȁƦƧɜ@óƧƨƥ@›ƧóəН̏óѷɜ@ŎƦƨóО'], - 'encodeOffsets': [[ - 119610, - 40545 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'shang_hai', - 'properties': { - 'name': '上海', - 'cp': [ - 121.4648, - 31.2891 - ], - 'childNum': 19 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɞςƨœɛȀôŐڔɛóυô̍ןŏ̑̒'], - 'encodeOffsets': [[ - 123840, - 31771 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'xiang_gang', - 'properties': { - 'name': '香港', - 'cp': [ - 114.2578, - 22.3242 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@óɛƩ@ρ@óœôȀɚŎƨ@ö@@ōƨ@'], - 'encodeOffsets': [[ - 117361, - 22950 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ao_men', - 'properties': { - 'name': '澳门', - 'cp': [ - 113.5547, - 22.1484 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@X¯aWĀ„@l'], - 'encodeOffsets': [[ - 116325, - 22697 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/chong_qing_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '500242', - 'properties': { - 'name': '酉阳土家族苗族自治县', - 'cp': [ - 108.8196, - 28.8666 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XJ°œlJX@lbl@XbV@VLnJlxnbšƒUU@IVK@lVIVwnJlU@n@J@L@Jn@l_nWVLVln@@blLšmV@@xœÔ‚`nœ™xV‚ÈLlx„LVxVVšƒV_U»VWn_m¥XwVmnX°ƒlmUUVwÞaVƒk@a@mmIUa@™mwk@™ƒm@@U¯a@UV@@K™@ykkmwkV@kU@ƒÑƒVkKWLÅamaUm@kyU@WkU@Ua™IUašVaUUmUUa@aVLXKWa¯UUbmJXnWnX`l@@xkzWÆ@V„LU¦‚x@b@JkIkJ@LmbUamJwm@óxƒnk@V„@x„ŽVnUVmVUVŽUbVlUbkXWŽ'], - 'encodeOffsets': [[ - 110914, - 29695 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500236', - 'properties': { - 'name': '奉节县', - 'cp': [ - 109.3909, - 30.9265 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@WVXb‚UnK@x@b‚²kxmKkl¯_ƒVV°™VU@bnKVVV@@nkŽ@n›bn‚@š°@VLČUš@°WV@V™nU@InKVl@nU„b˜KnX„WlknLlKUwnalLša„VlUXmWk@UU@UWWIUyķ¹XaWW@X™ƒKUIVm„U@W@UVU@KV@n»VkUkÇmUmVIUmULUbm@ƒwUaƒKkkm¯ÑUL@bWVnx@VmxUI@„klmkkK@aƒK@IlJ@I¯ƒk@mak@mnkJVL@bV@Ub„„W`UUUV™I@VƒU@VVbUJVLUVVbUX„VVxk¦VJUnVxnVVUšJV@Ubl@@bXV@L'], - 'encodeOffsets': [[ - 111781, - 31658 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500238', - 'properties': { - 'name': '巫溪县', - 'cp': [ - 109.3359, - 31.4813 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nLWbX‚VLVU„V@KšIVl@b„@lbšU„VnU@JÆU@V@n°KĢUl@VbÞKšVš@„_„V‚KXU‚U@KXƒ@wlkkU@mWKUU@UôJ@XV@œaVmÞIVaVLƒƒ@»kmƒ@ƒUkL™U@aU@WWƒLUUU™™KkbƒwWa@KU@kaƒXmW—LƒamVk@UmL@JmVUšU@¯X™@ċVUK¯@ÅnWK™LkKULWK@UXK@wW@™LkV@bVLƒlXn›`¯xU„°LnŽlV@n°Lnl'], - 'encodeOffsets': [[ - 111488, - 32361 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500234', - 'properties': { - 'name': '开县', - 'cp': [ - 108.4131, - 31.2561 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n@na‚I„wš@@VVK„LVbVxnVÆUnanKWXamKmk¯K@mkUm¯KVƒ°w@Wm@UIUUlKUU@a¯KWanwmUXamKkUWUnU@KƒkUwWKXaWLUWkImaUUUƒƒKka±k@lƒ¯w™wmbUƒ™ƒkXm@UJkIW‚XXƒbƒmƒ„UJ™XUV@°šKlšlVXV@xmbnV@blV@VšœU`UL@V™a@bULlb°VXbܚ@V@bƒL@J„xnLVb@lVb@V@@z˜bXWšX„KVLV‚š@@bUVVL@b„„lVna@ll@„zl@@J'], - 'encodeOffsets': [[ - 111150, - 32434 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500243', - 'properties': { - 'name': '彭水苗族土家族自治县', - 'cp': [ - 108.2043, - 29.3994 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„Jlb@nVV@bXb@ÆlL„Ul`nVKU¼VxkbW„nlUxlXX‚@°°WnnJ@VUn@J„k°L@VlV@nUJ„x@bVVVz@VnLla„KnalVlIUŽ„¼@nV@@anKUwVal@UlJœƒlI@akU@UWXKVI‚¯Uak@@KmkXWÜkXWykIWwXw@laXamkVUUym_XmlkkmmakwmIUKU@Wak@kaW@kI¯›WIk¦VŽƒUUƒmaUV@XkVUV±aUb¯b¯¥m@@ImJ—@mƒmL@kUKUkkJƒbV¦'], - 'encodeOffsets': [[ - 110408, - 29729 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500235', - 'properties': { - 'name': '云阳县', - 'cp': [ - 108.8306, - 31.0089 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lb„LV„VVnblJVXXKWbXLVx„l@LmVXVVl‚nLWbnVmxXb°L@bVVkLVVVJn@@X‚‚œ_Wm„kUK@alUšKX@@xWL@VXLVKlLšKXLÆm@™mœa@ml@mU@UUmL@aVšUU¯„U°`lknLlw±@a@wmLVWaXU@KWU@ak@VaU@™IUVmUUwVmUIl¥UwƒUVWUaVUUKVIUa@UUUUJƒUUm™kƒ„nl@„@VWV@L¯aUb™Ulxƒ@@b@VULUx@VUxVV™U@bU@mxU„U@mUVŽklkkƒ@WxknlxK@amLƒKU„K'], - 'encodeOffsets': [[ - 111016, - 31742 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500101', - 'properties': { - 'name': '万州区', - 'cp': [ - 108.3911, - 30.6958 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĸĊVI„ƒ„n„aWWXlJVIn@lWš„V„našx°xk„l@²Ž‚LVƒ„LnK@b‚LkwlmXw„@lllkUnVV@VƒnwV@@ašVUUVw@UVwVK@U@a„@kwšVVa°b@KXU@U@ƒmk„ƒÇсaml™kUVmn@VULU˜m@kUVkUaƒwUWm@Uw¯„mKUUmVUUULUKU„W@XbWVkaWwkUU™ƒ™k@maUbmbVlk¦ƒxUVUIWVU„kJVVkL@UmJ™UUVU@lLUVU„lx„@@VbƒJ™U™L¯¤@Vƒ„'], - 'encodeOffsets': [[ - 110464, - 31551 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500229', - 'properties': { - 'name': '城口县', - 'cp': [ - 108.7756, - 31.9098 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VK@w¯L@m@UÅV@ImVƒU™Vkaƒ@@aUk™J@LƒUUVUKmLmbÅVmUUwUaƒKUL@U™@ƒxJmbm@nVJ@X@VkV‚n™lƒLXx™@ƒb@bUVƒLU`UnƒbU@@ŽmVVX@JX@VLVVšklV—„‚`@bUL@V„LVKn@‚U@„UJkn@lmLmK@X@Jn@mb„nÞWVXnJ‚k„KČÑÆ@VK@knaÜmXlUČW°kôÇÆ@a@yÞ_VmƒUnU@K'], - 'encodeOffsets': [[ - 111893, - 32513 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500116', - 'properties': { - 'name': '江津区', - 'cp': [ - 106.2158, - 28.9874 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„InWUUlU@LVašlX@°²lÒXxlK@Ul@@Un@UaVJ@I@W@UƒUUVUwVIUKUa‚UUVwn@Üx@XUlnn‚bœJ@¥VklKUUlk@ynU@kVƒUUVWnI@¥V£VWVIUKU@UVƒa@n@Vm@@nlUaVkUwƒJ@blLkLW@XWmXkmmLn™@m@U@UVm@™„UVUUlakUVa„ƒVkV@@wnaWUk@VwkƒlmVIkUUxmJ@U„™@KƒIkx±V@IUm@K@IUKkbWKUbn„m„@bmVnbmb@xkxUJ@ULW`@bX@WVXL@Vƒš¯„mk¯@UJ@VmLUaWnX@WJ@nkKkxW@UIV@@KkImmkK@UW@XaWIU@U‚ƒIkbWb„xXŽlLVbnV@bWlX@VxVLnl@nÆÞVÜ'], - 'encodeOffsets': [[ - 108585, - 30032 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500240', - 'properties': { - 'name': '石柱土家族自治县', - 'cp': [ - 108.2813, - 30.1025 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„š@kl@š¼UbmVXJ@bV@nxVIVJULVVk@@LWbnJVU@bVbUJ@blLXnWV—@mbnV‚@V„„bn@VJVLnaVanbl@„šVšlVXxlbXUWaX@VƒUUVwUUVm@I@WmI@a„mlLœ™lK@alwnUV@kóVaƒÝk@UlbVK@™VU»VUUVWUƒ@U`ULkwm@@KmU@knKƒ»VkJkUmbƒLkbmK@UUyUU@aƒwm@@XXJ@VVLVVUbVnUJVX@K„„k`WXXJWXUbmW@bkL™Um`Xnƒb@JVL@LU@™°VVXKVnUxVLUbmJ'], - 'encodeOffsets': [[ - 110588, - 30769 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500237', - 'properties': { - 'name': '巫山县', - 'cp': [ - 109.8853, - 31.1188 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@kVƒU™bkKmbVxkLmKkllbV@@LXb„xlašLVšVV„KXXV@@bšVlK„V„@ln@¼°KXa„U@Ulw°JXalIUa„ÝWXW@kVU@ƒVUVWUUUamUw@aVamwn@VUUƒlLXWm£@wÇĉkKklmLUÒ¯ƒWn™@ğ±kwmaWm¼U@@LUV@V@XƒVUnVJ„LWš@‚XXWbĸºVzXJVXV@@VXlWn'], - 'encodeOffsets': [[ - 112399, - 31917 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500102', - 'properties': { - 'name': '涪陵区', - 'cp': [ - 107.3364, - 29.6796 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nèVblĖVVnLšŽ„@šx‚V„n@nšJ@L„UVVX@lbUJV@@nn@VVVK@z„˜V@nzVJVUlmX@@_VVVbnaVal@@knW@wnaƒVK@aVI„J@£kUVW@‚wXUVJ„amƒ@Ikƒƒƒƒ_X¥ƒ@WwkKkwmŽ™šƒkUxƒnÅmm¥™WV@Um@UlVL@JU@@Xƒ@UVkKVk™KVk™Kkb@bmJVXU„VVUbU@@`W_UV¯b'], - 'encodeOffsets': [[ - 109508, - 30207 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500230', - 'properties': { - 'name': '丰都县', - 'cp': [ - 107.8418, - 29.9048 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Þè@XUK@LlV@blbUJ@„„V@bnV‚@VVVXU@ƒlbXal@VXnKV@maXUރ@amk@aVKXV‚anbš£°mnIVaUKVwUmWLUUš¯V@@KUK@I„aWmn_šVlK@anXVaXWWIXWl_ƒƒ@LUWVIUmVaUUUK@UWI@Wn@VI@mkU@U¯Kƒl@ImVÅLƒwU¤óbUU@wWXkmm@LU@@VUIWVUL@JUnƒaƒx@Jn„ƒbUIWVx@ŽUXlV@¤ƒIUJ@bUL„Žmb@xmX@lk@UbmbUaUU@`W@kn'], - 'encodeOffsets': [[ - 110048, - 30713 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500232', - 'properties': { - 'name': '武隆县', - 'cp': [ - 107.655, - 29.35 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l„„w„bVm@IVKXUVJ@UV@@KnnWlX@xVVôaV£„xÆKnUVm@UmIXm¯¯@WkWVwmkXƒlaUwV»ULmk_ƒVkK@ÅWa@aUU@mkaƒIƒb@‚n¼ƒnm‚_@mmK@UƒLUVVmI@aUJ@XWJ@U`UIkm±kk@@lULmUmKUnVšnlUVmI@VkVlx™bkIƒVmLUxkKUŽ‚Xš‚n¦Æn„mVw„lš™nlxlLXx„@W¦„`„„'], - 'encodeOffsets': [[ - 110262, - 30291 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500119', - 'properties': { - 'name': '南川区', - 'cp': [ - 107.1716, - 29.1302 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VšUbVJVUn@VLX@WVXVVI@VUVWxU@mš@ĊX@@¼V°aVUX`@_V@VaUUVƒUWnI@alašLUlšLUllLVU„@@WV@@IUKVkn@@VlLVwnK„UlJšakwlU@UnJVUmkU™VmXa@wVK@UUw™@VƒVI@akƒ@alInwlKXUmaUW@wWLk™™KVak_ÇaUƒƒV@šXbƒLVxUlWIk@UK@V™@ƒkU@VbUVUlVnƒLUV@lVXmxkV@L@V@Vk@WbUwmL@JUI@xVxkx'], - 'encodeOffsets': [[ - 109463, - 29830 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500241', - 'properties': { - 'name': '秀山土家族苗族自治县', - 'cp': [ - 109.0173, - 28.5205 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XlV@lzn@VŽnbÆbXKlL„U„ÒV@@llUnxll@zšŽ@LU@@V°b@Vn@š„l@VÑUƒnK@UšU@aUaƒkVm@K¯wƒklmnn„Ul`nI@almkIUwmWVkUaƒkkJmUUa@K@aU@@_m@@wUyVUUa@Umƒ@awl@Wka±„UkUykIWV™b@bUVk@›aU@UXU‚UIWakUWmUxUV@nUVWbšŽ@XXVVŽmXXŽ@VƒbVLkVWx'], - 'encodeOffsets': [[ - 111330, - 29183 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500114', - 'properties': { - 'name': '黔江区', - 'cp': [ - 108.7207, - 29.4708 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VX@V@LV@VJUL@lVnnxlb@VXV‚XV@@W„@UIVK@kUKna@£VWUaVUUalIVJVIUW„_lm@bXKV@mn@J„UUw@KnIVll@VanLVmUkVKXLVKUIVamw@UaU_lw„KlwUWV_Ua@aUa@KUšwm›_›Ó@wU@™nkK@am@UkUKmXk`m@@I@K@I@mkVmIUxUJ@kUL@JVV™„lnklWnn`VzUVnlWbkb@WxXxlJXzWŽÛlWXnl@Ll@Vb°UJWLX@VlV@bkJ'], - 'encodeOffsets': [[ - 111106, - 30420 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500117', - 'properties': { - 'name': '合川区', - 'cp': [ - 106.3257, - 30.108 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XKVXlK„ƒVL@UnV@aValXXK„U@WVwUaVU@IV@@aVW„L@U@anVV@@bVK@UVL@bnJWL@VnUnb˜@@JnIlVl‚@@bXIWbn@UKVLVKXLlaV@VVnK@bVL„m„IVƒ@KmknUUWVI@aVJ@_„WU_VmUwƒU@K™ƒVak@am¯mJU_UJUkU@WkIV`UI@JV@LmmU@@mƒbUzś™@„VK@nUKƒ„ƒb™akb@UWK@bkVVbV„Û@@`ƒXk@WŽ@n@lXL@bmb@VVJUn@JnUlnUlmX@`XLlbkJW@kzlb@`@b@b'], - 'encodeOffsets': [[ - 108529, - 31101 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500222', - 'properties': { - 'name': '綦江县', - 'cp': [ - 106.6553, - 28.8171 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@¦‚@X„lVX@@UVKl„VUX@lanVlUVbXWVXVƒ„VVUnKVUlwUwU@UJ@nmVkUV™lwXam@VaUUUw@W@kk»mV@UmKkwVKVUU@@LUKVI@mV@XVWxnXVKUUUK@wWU@UUWnUlLXa‚mUI„am@wI@K@amIm‚UUkI@m‚akUkKWUUanƒ@wƒamLVxk@UVmUUL@Vm@kV@I@ak@@bWVXJlLVbVL@š@bn@@`Un„@WbUKULWVXbƒ@UVmbX„WVƒb@bVmxUKUƒV@šUn@V@V@nmšnKlnnWWXX@lKkK@a„IVxUlVb‚k@mn@@U@m„bVUV@VLUJUXU¤'], - 'encodeOffsets': [[ - 109137, - 29779 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500233', - 'properties': { - 'name': '忠县', - 'cp': [ - 107.8967, - 30.3223 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VLÞĊ„U@Wš@¼V‚„@lk@w²mlšVUœ„llšVnI@VlKUUlIVƒXUVJVU„wl¥UkUKUIm@ƒaUƒ@mUna˜@XUWmkK@aVIUa@aUVmIXa@Kl@UUVKUIUJmwU@@aWInUVa™»k@@lƒ™¯n™¤mabWUUL@bnl@b݄WVnbU@mLUWk@Wbka@„WVUU@UmUmVkUULV„lVUx„l@L@VƒbÈÒlb'], - 'encodeOffsets': [[ - 110239, - 31146 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500228', - 'properties': { - 'name': '梁平县', - 'cp': [ - 107.7429, - 30.6519 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XLV@VV@b°°nšƒnkb@bƒšnJWVXblIUVšxWnUJnVVLVU„JlUnLVK@UnUVJš²nKVbVKla@aXlJ„k„Klb„ƒ@U°£šKšV„IUa@ƒ@kwVƒVUkKV@VUkk›ƒUVk™±n@xklƒ@U@»™‚@XƒVÝĉUJnxWb@UX›KkVUbUKWUkVmkkLU`›b'], - 'encodeOffsets': [[ - 109980, - 31247 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500113', - 'properties': { - 'name': '巴南区', - 'cp': [ - 106.7322, - 29.4214 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nxnVlJlUXLƒ¦@x@Vl@nKVVX@V_V@@KlVXU„@lKlxXIl@ÈĊ@Vl@n_VJlŽnVlnb„²VVVJVVmUUkĕUamçU@»W@@ĉn™V@XwVU@UUJWUXUW@UKm@UVUIVaU™UVmLUVƒUU„UWWXUakVmUkbW@UVkƒUL@VW@kUWƒ@mJUXVVU„@lmV@zklVVkLUl@¦›I'], - 'encodeOffsets': [[ - 108990, - 30061 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500223', - 'properties': { - 'name': '潼南县', - 'cp': [ - 105.7764, - 30.1135 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@a@a@_kalyX@lIkaWK@_nWVkkmmV@IVmUI@Una@aWK@k@mkbWaknmJUk@mk@@kUal@Uaš@Wa@aXLlwUKlkkƒ@KmI@VUJ@Lk@@VUUmL@amJU£kKUaWakLmU@bVVUbnbWV@xkL@bUb‚xUxVbXJVbUVWIUVU@kLWxkKWV@n¯VUbU@@VVX@VmaUL@VUK@VVbn@lVnI‚@@lnLULm@Ub@Žl@na„@lK@XVVkJ@b@zl@@VnV@bVb@J@bnXV`lXXmVI@W@InbV@@aVKUblKVLUanLlmnLlK'], - 'encodeOffsets': [[ - 108529, - 31101 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500118', - 'properties': { - 'name': '永川区', - 'cp': [ - 105.8643, - 29.2566 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@b܄nWVLX„lxV„VxXxlVn@@bVblK@a@UnLVJV@@UnLVU@VXaVKVXš@n`WUÿ@IUKlaUUUkWyUÛÅÝ@mmkUKUwW@Xk@amUUakKWƒwXaƒK@VVLklƒXVlkxV„UL@bm@Vxn`ƒIVxUVkLVšUšl@@lkXmmƒVUn@VV@Xb'], - 'encodeOffsets': [[ - 108192, - 30038 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500231', - 'properties': { - 'name': '垫江县', - 'cp': [ - 107.4573, - 30.2454 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šĊ°¤nҘ¼œaV_lKnllUXVVLValUœLVW‚@XamwVIUKkaÇфa@U@KƒkVwkUUƒVKlVnU@aƒU@ƒVIka@akU@KVL@WÝçUV@Vmbů@L™KƒnnJW„ƒVkxlL@VX@VxmnXVWxUb@bkn'], - 'encodeOffsets': [[ - 109812, - 30961 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500112', - 'properties': { - 'name': '渝北区', - 'cp': [ - 106.7212, - 29.8499 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@bVVXL‚a@lnbWn@L„@XVlK@VVLUVlbkLUKVVVL@VšnX‚VL@VV@UbVb@x@¦UxVb@bUJƒL@L„VVxlK@™nk@U@W„UVLlKXV„@VblU@UUKVU@wn@VJVanLlkX@VaVK™¯@a@U@U@ƒVaUK„kUUƒ±maUkm@UUkbm@@Vk@@JƒwU@Ub@I@JmwUL@aƒ@@KkVÇLkƒWkƒ@kUU@@xUVmKUnllUb'], - 'encodeOffsets': [[ - 109013, - 30381 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500115', - 'properties': { - 'name': '长寿区', - 'cp': [ - 107.1606, - 29.9762 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VVšU„bX‚lX„¥l@XnVmlxUx„@@blVnnôĀlm@aVaXwWUnmUwW@@UkKlw„UXƒmI„mšL@Kưna@UUImyU@ƒ—@yULUUm@@mU@VIkaW@UUƒV@K™I@mƒmU™wƒ@™mKUnU‚UIƒlVLUb@„@V@V@bš°ULUbW@klmKUbUIm@@xUVVL'], - 'encodeOffsets': [[ - 109429, - 30747 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500225', - 'properties': { - 'name': '大足县', - 'cp': [ - 105.7544, - 29.6136 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XUmaVaUU@anVlKXbValU@aV@@IXKš@@bV@VxVK@UXLlUšJXa@_‚@@aVK—ÅWVkwWaƒƒwUa@am@kUWLU@kWmX@ykI@W@UV@na@LlLV@UƒkwWƒUKmXX`mIVl@bXLWVkbkkƒx@`VXm@@J@U@UUKUxk@WbUIVl@VXLW„ƒJUkUlUImxXlmb@X@VUJUnVbšW@UV@@VVX@bnW@LVxUnlJUV@n„@VxVIn@l`„UVVVL'], - 'encodeOffsets': [[ - 108270, - 30578 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500224', - 'properties': { - 'name': '铜梁县', - 'cp': [ - 106.0291, - 29.8059 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VblLV¤nI@bnKVV@Ul@@KVI@UnJ@Ll„klVLkxWK@bXb™@Vbk@Vb@ll@@nVlnIlmXblaXl@„W@_Ü@UƒUalU@aXL@Vlašb„a„ƒVL@mUL@ƒUUƒƒÇXUW›X_WaƒƒUƒ»m_™@UWULWb@UUVmK@VU@UImK@V@bkL„x‚„XblxXU˜ÆUL@b@@`Wb™IkVWK@VULUwU@@a™@WL@JU@@bkVUb'], - 'encodeOffsets': [[ - 108316, - 30527 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500226', - 'properties': { - 'name': '荣昌县', - 'cp': [ - 105.5127, - 29.4708 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VI@U@WnaWknwVJVkVl„IXƒWK@UUkVJXal@VwVL@V@V@In@UW@_„wlllaXUWK@aUknJW_ۃ@aWaU@@UVm„UUaUImJVnÅUmVUm`kUUVWLnVU@VVmXƒK@„nxmŽULkx™ImJ@nU`@X@Vkn@`@nlV@nVJVaX„VLnK@bVV@nV@lbXWš@'], - 'encodeOffsets': [[ - 108012, - 30392 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500227', - 'properties': { - 'name': '璧山县', - 'cp': [ - 106.2048, - 29.5807 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XzVlVVkbVL@JVĀXŽ‚¼V„„„XbW`XœWVȎ„„VVšŽVkV@@UXa@alK@IƒƒU@UKWUyUI@wVUUWVak@VUkƒW¹@WXI@yVIUK@kWwkѯ±W@™kUb@KkVVVmXƒJ'], - 'encodeOffsets': [[ - 108585, - 30032 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500109', - 'properties': { - 'name': '北碚区', - 'cp': [ - 106.5674, - 29.8883 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@X‚VLV@„„@JkL@bWb@VU@UlƜVy„a@nV@nn@KU@IVJU_lJXV@VlVIV`nIn°@b‚lUbš„„KVI@aUaVw@¥@wUaVaU@@UUKW™m@UUKUUVLlKkaVUUK@UkLWUƒ@@KXmma@kbWKUU@aUamLnÞ@VWLk@@Wm@ULU@@U™KUVWI'], - 'encodeOffsets': [[ - 108855, - 30449 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500110', - 'properties': { - 'name': '万盛区', - 'cp': [ - 106.908, - 28.9325 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VIV@@wVJ@InKVxXal@@U@U@KlUnwUW@kVU„KUmVkUa@I@KW@@bk@@mƒU@m@k@a@aƒIUxmJk@ƒwULƒwkKmVVX@VXV@xVLVVULmWXwWUU@@nUJVL@KV@UVULlxnL@VnUl¼@l@XVxVVUbn@WbkxUšlVnU@m'], - 'encodeOffsets': [[ - 109452, - 29779 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500107', - 'properties': { - 'name': '九龙坡区', - 'cp': [ - 106.3586, - 29.4049 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XK‚L@Vš@XbV@lW@UV@@VXIV@U™VKlL@KnnJ@VV@VU@I„@@mVUVWUUmL@V¯LUK@UV@UU@a@U@yU@WLUK@X@KUVmL@ƒ@aXI@w@ammVk@WÛwm@UxVVVbVLUJVxVU„V@V@X@JUIVbm@@Vk@@VkL@lVLUJ@zWJ@X'], - 'encodeOffsets': [[ - 108799, - 30241 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500106', - 'properties': { - 'name': '沙坪坝区', - 'cp': [ - 106.3696, - 29.6191 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Xºl„UVl@UbVXUV@xVJVzXJVUšL@VV@VKn@@Xl@XK@UmÝnKVbVakkVm@k„ƒUK@UmIm@LkKULVšU@WJ@UU@@VkXU@Wa™@@UKWL'], - 'encodeOffsets': [[ - 108799, - 30241 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500108', - 'properties': { - 'name': '南岸区', - 'cp': [ - 106.6663, - 29.5367 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VV„JVL@bUVVnl`XIlwXJlw°nnl‚IXW@UÇĉk@WJkwkLƒ@WVkU@LU@U`W@UXUV@n'], - 'encodeOffsets': [[ - 109092, - 30241 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500105', - 'properties': { - 'name': '江北区', - 'cp': [ - 106.8311, - 29.6191 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nLVU@wV@lV„@Xll„ÈKlU@L„@@bVKnx@I@JVaV@„x@Il@@Un@laVVn@mkUIm`k@WXJmk¯mkxWIkxWJk_UmVUUKƒ@UU™@ƒ„@l'], - 'encodeOffsets': [[ - 109013, - 30319 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500104', - 'properties': { - 'name': '大渡口区', - 'cp': [ - 106.4905, - 29.4214 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@k@@U@w„¥WKkVkImUmwa@b@xWJ@b@„nKVU@L@WVLXKV@@z@V@bVVU@@VVL°K@U'], - 'encodeOffsets': [[ - 109080, - 30190 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500111', - 'properties': { - 'name': '双桥区', - 'cp': [ - 105.7874, - 29.4928 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@WwUwU@kK@KmbU@@V@XlJ@znWlXV@XK'], - 'encodeOffsets': [[ - 108372, - 30235 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500103', - 'properties': { - 'name': '渝中区', - 'cp': [ - 106.5344, - 29.5477 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VLš@VV„@VL@aUKƒIUUƒ@@JUVU@'], - 'encodeOffsets': [[ - 109036, - 30257 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/fu_jian_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '3507', - 'properties': { - 'name': '南平市', - 'cp': [ - 118.136, - 27.2845 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@knyƒk@ƒKU¥šwV@nkƒWƒzUmk@@lKUa@aVI@UƒKUamKUUVaUI‚@Xƒ@UV@K±IUVVlUbUbUL@KWUXmWk@KkXmmkŃKUƒ™a@amUƒbkUkKWUnwUƒÇwV™UUƒÝUKV£U™@ƒnKWwXLVKm¥@wUXkmWk@ƒ@wX@lU„@šyVImaXwVƒƒ@kŽƒnU@mbk@mlUXƒmU@mV@n@bnW@bUIWJ—ImVUKWbUK@nkKƒaU@W_VUUmWmL@UU@™bUWUL@V@bmVUz@`mUUVVbXL@V™L@lmLUxmVamXkW@xWbU„VbUxkU±@ÅUmmkLUbW@@`kLknVlV@lbXxlVUXVV™ŽU„U@UbWŽkIWVUUUJkI@llbUxVL@V™VƒUU°ULUmWXUV@VULWb@™xm@UaVLVKUa@ƒw@V›bkmVambUUm@@VkK@„@b„xlxX@‚„n¤@Xƒ@@lkLWV@Žn„V„kb@bWJXLWx@nkxmm™bXn@VWVUn@VnJ@bVXl@„™VJXnWbX`lL„UlJVI@Žœ@VXV@Vl@bn@@Æmn@VšxXU@mVIlxšVššnI„l@nVJ‚aXI@mlU@aXkVm°klmnVV_naš°@V@xܦXK„V‚nnUlVXbVK‚LXKV@naV@@VVl@@lXblXšWnLlbVK²nš@@‚VLUnlV@lƒXxô°‚V@UnaUUlKXLVUVVUbVVlUnJVX„@VW@an@lb„@nl@VU@anƒšUVW@kƒaUm@InVVKVU@kUW@Uam@km@kVa@a@™nwšU@WlI@mVI@WXaW_nƒ@™nƒlkkW@U‚¥@kV@Uw@wUƒ@@IXK‚¥VIn@nU@`@Xl@VV„LnašW‚bVaUwnU„@VIšKlV'], - 'encodeOffsets': [[ - 122119, - 28086 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3504', - 'properties': { - 'name': '三明市', - 'cp': [ - 117.5317, - 26.3013 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lL@Un@VVna‚bnUlœa@U‚x@„VbULUKVbn@šw‚@XaVK@UVUXWVnVKV¯„VšU@UUKVwka@klJVIVVXUlJXVaV@VƒšUUVWkUWwkaU@UklmlK@_X@ValKnnÆV²@lVVwUaVƒXa@wlXnW‚bnUVwnK@kšK@UWKUaVUnV@_VynU@a@UVKVXšaV@@VnKnXVV‚UX`V@„blL@mVLXaVLnU˜JXIVJ@amX@a@mnUV@„nVWnkl@naV@„ml„@@KmKUam@UU@ƒ@UlKU™Vk™U™K@aVaUwV™U¥UIkJ@wmI@‚mbkwkVW@UXƒKULU`™IVKUa@LƒkkVmUU@WlULUWÅU@I@ƒWW™nU@@w@a@ƒUam_XyVIVWkkƒ@mwVKXUV@nw˜VXkWƒÅ™U@ƒaƒU¯KUnƒK@ƒ¯šmUƒLXŽVLnWVbVbUVm@Ub¯¼W@amƒ`kb™amLUUUƒ™aUXV`@x@XmJ@n@L@xkJUU@kU@mWm@kUUwUUVWl@VUkIƒy@kkaVUUm™IWVXbWxU@k„mVkK@nWVX¦WxU@@bkx@VU@WŽk@™kUbmJUUmkUW@_kKWKƒ@knV¤kIUKWLUbV‚@Wbk@@VWL@VkI@lUXVxUVU@@mWIƒV@a¯nUaƒaUV@„ƒJ™b@bÞ°VbUš@X™aUVmL@‚VXblŽnV„°˜n@Vnx„@VUUUlK@InJVb@„Vlnn@V™L@VWJU„x@XlJUVVVl@LUUUJ@Lƒ„@lUL°¦k˜V„VnV@„xV„„l@blLnlšLVaXll@šnVUn@‚xn@nml°‚X@lb'], - 'encodeOffsets': [[ - 119858, - 27754 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3508', - 'properties': { - 'name': '龙岩市', - 'cp': [ - 116.8066, - 25.2026 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ša„I@ƒVU„bVb°m@b„UXJ@nV@VUUwVW@klJ@UXK@Ul@Xa‚@UVaXKVLlJU£lm„@XLlL@`VXnlVVnIVašll@XV@@Ulw@aV@XwW¥XU@mlLnUlƒV@XwWaXUšJVnUVlb@l„zlJUVk@UXVVVxlVn@nXV@@lVVlI@w@K@mnI@W@wU_VWšbV„VVnKšbla„_n‚bX@°»Van@VUUaUamXUKW„K@a@Ukƒ@wWkXƒWW@wUU™Kw@_lyƒwUkU@@Uƒ@kamVmƒXašUVUka@Wk@»UUUVƒKkbWU™VUbk@mkƒxkƒƒKnIVUmW@kUKmXUmVaU@kU@m@KUWVkIWJ@ŽU@UI@wUUUa@KW»nU@mVkUmm@XwWU@ƒUUmL@ƒw@mnƒVUU@aWak@@amxU@UxULWVXbVLU`mbUImVU„ƒbn‚V@@bVn@bnVWxLmyUbƒIUKƒ@aƒVm™akbV‚UXW„UlKWbkV@„WLUlk@@nšbƒb@lkKmU@ƒUIWJkw¯UUVVxm@@XkbWx—›XKƒlUzWJkUUL@bmKkVƒ@@VUIUlWV@X„K@VkbWx°xUb@LUbk@@VWb@LXJ@VWXU@@bUVV„VVn@VVlLn„@l„@‚xk¦Vx@bVJXbƒn@JlnXxV@@„nJ@X@V@lmx„bUn@xVL@VVKlL@l„„nLVaVL@xkl@LƒxVl°š„X„WVX„Vl„œJWnxlJ'], - 'encodeOffsets': [[ - 119194, - 26657 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3509', - 'properties': { - 'name': '宁德市', - 'cp': [ - 119.6521, - 26.9824 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@LVKVaVaUkVU²J@LVU„@@W‚VJUbVVnLVb„L@VUJ@bVbkL@Žl@Vn„y„XmlU@™xV¦„L@Ž„lmz@lnL@bVVšbVb@l„nšKVk„Vl¤@zXV@šl@XJVLVKnXVK‚VnU@wUm@šKUƒ@UlVlw@U@U@ƒUaUKlU@kXKlmXIWKXaVIVUVK@KU@@k„JVUnLVJUL@V‚IVa@VnLšKUnl`Vb„V„V@š‚Vbn@Vzn@lKnVlI„VVKUalkXJl@XXVWVLVUUmVU@Unm„£lK@Uk@WUXK@U@WVwVkšƒĠkĢǰaUÅUwmaţƒɱUÇa™w„±V¹XalKôx„@„UVaÜʓͿVóbÅLƒJm„¯Vk¦ƒŽk@mamXkKUƒUL›akbk@mV@LkJWb@Vk„mXk@UVmaUV@amLUKUamI@KUaU@WbU@UUUƒUIWJUkm@šƒw™Kk„VJm@kxǁVƒUK@mUVUkmlkkVm@amwƒLVWU@UbVLkšUbƒ@VƒmK@XaVWU_VJnwV@@kUmWakxƒ@kwWakIWxnbUJ™zƒ@kVW@@x@„XllnVW@xn¦ULWKXxmL@„VšU¤VL„ÞVVUšÈxV„mxXVlLlV„anV@bšbV„„LlÆnnlW@LXlWnXV'], - 'encodeOffsets': [[ - 121816, - 27816 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3501', - 'properties': { - 'name': '福州市', - 'cp': [ - 119.4543, - 25.9222 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lxna@nJ@xlIVJV¦UšVxUb@bšLšVUlVškL@V@„VVn@Vb‚Ln‚@LU„lJXblx„@lwXbVn@lU@mxUIV`UXWb@‚nLU„„@Val™UKVaV@UX„Knx‚bn@lUkllnUVnV‚@VLU„È‚lwn@UIlƒšL„x‚™n@VlXIVJV„VVV@XaV@Vb@LnJVbVLnK@bVUnbVUl@nWlƒ@UXalI@KnUl@laœbVKV„lLnWnbl@„l¥°Unƒ„IÆKôa΀U„a@UUwÇWǓIUWUÅVkƨm@ƒ@£@KmLU¤ULˣJ™kUƒVǟUUķ@ĉVƒKUk@Ѱwôǚç@īšé@Åţ¥mīÛkm¼Å@ƒVķVó°ō¦U°ƒn@bVJXVVL@bUŽƒakLmx@xmxXzW`XbWnXV@bWLÛ@™aƒ@ƒaXbWVkaÝwU@mlWKkLWWkLUKULW@kVmVUU݁UamV—¤›n@xUVUzkJV¦lJU„'], - 'encodeOffsets': [[ - 121253, - 26511 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3506', - 'properties': { - 'name': '漳州市', - 'cp': [ - 117.5757, - 24.3732 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@bl@Xb@bVVUŽm„@n„x‚@nKVV@„XVWxn@VnUl@nmVX¼@LVbVV@xVJV@@XIlJXU‚V@Ln‚@lVV@UbVnnWVL@lnXUVmJ„Ll„„wnll@VašUXVla„LVUVV@¼Xl@lbUV™VWbn„nUlb„@@VV@„aVUšmlUašUny@kU@Wkk@WaUVk@@ammk@@U@UlU@aUa@wl@šmXLllnL‚U@anVnU@L@VVV@KlXnWVnVanUšw@w@wm›nÅ@wƒaUam@Uk„mUl@@a„a@U@¥škôK‚wȯ°w@ŻkwǕaK›ÑÛk@ĕōřċ£ĵƒUKW»kÅŻLU@Ulġw@¤Vz™VUbkKUbmLmlULU¼UxmbXl@bWVƒb@bUnV‚UšVbULU@@VkbVL@`U@WX@ŽXV@b°„@b¯š@¤@Xm@@b@`U„VVUL'], - 'encodeOffsets': [[ - 119712, - 24953 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3505', - 'properties': { - 'name': '泉州市', - 'cp': [ - 118.3228, - 25.1147 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Vl„xkz@`‚xšLVV@xXXW„Xl@xl„@V@bnV°™@„„LVm°L„V„bV@ƚX„Wl—UmxU@WVULnx„@llUXUJWzn`Vb@„@b@xV@šmXX@„@JÆVVXVKXkV@nVlU„l@KVbULšJV_VK„LVWX@lUVƒkIU¥lIVyVU@wœm˜£nUVWU@aƒm@UmWw@UX@@am™VUn@@aUUlUVanaWUXWmUnkšK@VšUlVVUUwš@XLWWX™ma@knm‚bVb„VXbVL‚@XJlInlšL„w˜mXóšw@çV»ÇçŋaķƧóƅóKġ°nÅUķƑUÇW@—¯xǰöÆlV„n@llšaš@„Lšbƒ`™@™„VšXVƒVx@V@bULVJUk‚Ç@ƒ¼ƒXUKk@mmULkaWbk@ƒx@UkL@a@K@U@UmKmbU@kV@UmVUbUmmXkW@LUU@U@KmVmU@bVmKkkWK™nk@@xVb@bkV@V@Vl@nn@bl@VUXbl@XlV@@lmz™VVbkŽ™nUVƒb'], - 'encodeOffsets': [[ - 120398, - 25797 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3503', - 'properties': { - 'name': '莆田市', - 'cp': [ - 119.0918, - 25.3455 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VbނVVnUlUX@VKVLlKXXlKXL‚‚nkV@ÞxlbXUWa„b„@šbÜ@XK@aWUXmWaX_Wynw@wnwlK„bV@aUKWUUI@a„mV¯Ŏ¥ô¯ĸU„UÆ@n»¯aƿé@ţ¯nĉĬÝK™óó@™ÑU¼@è™xWô—nƒx™KmkkJWI@UKWaƒUUaamn@lnbWšXXWK™@VxUVkU™V@U™LmlnVWXXVmbUbkVVV@bm@UVnš@bW@@VXx‚n@V„n@bV‚UX'], - 'encodeOffsets': [[ - 121388, - 26264 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3502', - 'properties': { - 'name': '厦门市', - 'cp': [ - 118.1689, - 24.6478 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@VlUV@nanL@V@V@L@blK@V„wl@XalbVKnnl@VL„W„»È@lVUIVK@a@UUw„WUU™šƒš@„_™aƒK™@™bkkm@UƒkõŁxóL™l@¦@Vƒb@bk@VŽƒnVln@Vb„b@xmÆnœ@x@x™x'], - 'encodeOffsets': [[ - 120747, - 25465 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/gan_su_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '6209', - 'properties': { - 'name': '酒泉市', - 'cp': [ - 96.2622, - 40.4517 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÇnÅaĉ@ƒU¯¥›UŹ‚ƒ£™WUýUU±JkkUw‚yÞIČxĊĕĊ¯š¥ÆUkţ™UÅÓ±¼™IUx¯UƒÒƑ‚ݐŰƒKÝnğ°ÅU@Žƒ@Vn@þš¼¯šWnŎ°XLWlnVnbWnƒVXxmbƒa—bóUƒlǕUUa™IUmlU™ƒš¥™kƒ¥ĉwkkƒÝɛa@¯™™U¯°mVƒkVnKlƒōÑÇÑU@kl™UġŽkUŻnUW™@š¯ƒk»šmWV£UKnUƒmUw‚w@ƒUIVaX™šwm»Èmmwn¯ċ™¯LĉŽUƒJUalka±Va@U‚k@ƒÛф¯WmnUaɝ¤Ûmƒn¯m±x@wóxÛLġÒUx¯VƒÈ™JUbóz݃ÇKĉ¯ōlÝUŎWl¯nťbÝ@¯ǩLġmV@ƯĢkÆm™ĊkVťLɃmÝXó°@„ĢbVŽóVݦɱ@Ƨaġ„UV„ĠÇÈV¼UVţwmbJÇwˋa™XmǯKkkmŽƒbXšm¼V¼Ǭڲ¤ôŰÆƴô̐ŤǪnɆӨ¼ɆLÆłUĊšxŎƞȘǔˎǬǪnƨŮǬö°»šġ„„ÞÜÆĸÒĊ„ǀbƾèôÈ@¼¯þŤĸƧ°Vb@lÈĊ‚šʠń̐„ȘKǀŽֲॗţÿǕý@ʊǓƨóÆÑǖŃôw@΋ʈƆÅÈVVĊV„óĊÅ@ÞƒĬV@Þīš@°Ž„V@ĸ̃°XτƜĠ@ÈaÜ¥Őƅ‚™nğóĕVġUůƿŋ—ĕƒa±V—UťÇğÑ'], - 'encodeOffsets': [[ - 101892, - 40821 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6207', - 'properties': { - 'name': '张掖市', - 'cp': [ - 99.7998, - 38.7433 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÈÒŎÒk„mLUŽlŽU„¯nV°šš@°ɜb„ÞĠaÈ»ĸl‚š„LVUÈ@Ċ@ýUm„@@ÆVĠ¯Þm„LƯޏƒ„ѰVVwšJ²»ÆÔšVlŤÅV™¦ĉ°ĉĖċwÝJzVxll²IVVVþšX„¤źœV°¦„VĊ@ÆbÈmǔLĸĠ¯Ģaô¯ĸmÆÛUƒlÇĸk°XyĊUǔV„ǩnmV»ƒa@ýnK°n@l¥@»ż„Ċ¤m皃@£ČU@mƒmVkÞUƐ±²¹°‚ĠwÅƑŃU¯™›V¯aÈŁšƒÇ»™ġn_°xŎKlxœklx„@Þw‚„„@Æm²b‚DzLlkšWXať¯ĊaœÑšK±w@wƒUÅçV±Uk™@@„¯š¯xƒU™±±UU°ōxVxÅÔō°ó¯UÝ¦óbÝþƒ@ĉÈóUV‚Ux„„@VŽUVÝwÅÈǎóVkk¯JǐkmmL@„™KÇx@bkš™@U°ķ²ó`ƒš™šmn¯°ƒUwlÅkUƒ`™¦ɛô™Žķz@ŽÅnǰU¼¯KmVk²ƒJƒ¼ƏÞķôš¤ULƒ@mnğ`™šÇnUxÇ@Ûÿ™U@ƒƒkŻŽ@x@móJkŃ¥VŹĉóÒĉlċ°ķ„Uƽ܃@›x'], - 'encodeOffsets': [[ - 99720, - 40090 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6230', - 'properties': { - 'name': '甘南藏族自治州', - 'cp': [ - 102.9199, - 34.6893 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ލš™nKlnšwX¥WÝXk˜xÞUnƒ°aĊVnUUKlÞĶWXnĠ¥ô»„™@nmVL@¤°™Vz„JšanU@aÆwna@k›ƒU¯šyX_›aĉb™ƒ„wƒéXkWwÅaš¯V¥mƒ¯UƒƒI@ƒš@„mšb°aÈçšUš¥@»‚knwɜƇ°I°ÑÈmVU™¯Xa@w‚W@wšV¯Č¥l¯Uwnm@k˜aUaóKkk@™Ça™b@ށÒWa¯IÇxÛam¼™VUƒxÒl‚@zÝÒ¯bÝaĉVĉwDށW›zJ™mJn²mܯUƒ¯ĉ@ġ¤Åb@²nšmlƒ@@Ž„„U„ƒLVxšV™„U¼Ålma™b@ƒ°™l@WIUƒ¯@mƒ™@™™ó„™„@U›zţyƒXÇU™ÇVUUVLkbWakVWmUbkkƒKUÆ»nƒ°Knk@aƒUVmšnk»l¯Ģ›lw@_kKVU@ƒnaƒ@lUk@¯¥mV@kmbW™b¯Åõa@mkU@kƒÇŽkU@›`@™óó—bl¼Uxƒn„¼šlVȄx@blVkVVnƒ`XÈġÈ@ǃK£ÝJmUUnUĖmlU„mKUn™VÅaUw›Uĉ`¯n¯wW¼nxVŽ™š@bĉnƒ‚kIċŘkXUŽ±Ò™xšÈ@ŽX°`l„œV˜IȯĊV„ƒšVVan@VašUVażVmšblkÈW„ƒWIXa„alL@wVb„„V„¦lL@lĠ™n҄U‚nk‚šL@ÆÞkšÞšK‚bñþW¦Û„ċVƒ„ULUºkÈlŎUxÆxÞUUxšÒ‚x„@XbšL@lÆ@„ÒlXVln@„bm¼ƒJ@„Ån„šƒx@bnšĠm„xVXmbÈè@ŽĊ£ČW˜w'], - 'encodeOffsets': [[ - 105210, - 36349 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6206', - 'properties': { - 'name': '武威市', - 'cp': [ - 103.0188, - 38.1061 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@±¯¥@klwU»ƒƒÞÝmwKm¯™™ç@™kVÇUL¯lVUKġ„ġm@a@U„@X£°l°LŎÇ@aōVÝw™ÔƒKUŽÅš„WJ¯lm@ÛVWa™@klĉUmaƒLUanaƒ™ƒk¯J„™™±KkXóÜÅxƒ²Ç‚@„„nUÒĊb°@™ÆkL™Ž™XÇÆ@xÝn—xWxţ„¯¤ƒI@Æn„ƒVV„VlU²Æè„V@x²x™L›ÒĉbŦ°Wb™Xklބš@l¤šXĊ`„wl@ĢÈŎm@bšnV‚Ubƒ„@șÆÛLƒèǚUÒŦlĸ™`°ĮʟÆǓbĉôϚĊƚĢnŤé΀ÑĸĀĊ¦„@@l°lœ¦Ȯ¦ɆÞĊKŤ™ĵĸů„»mفyġ™ķŭ@Çɱȭ¯mƧUĊķnŁŻ»UaU™˜ƛɞÝƨů'], - 'encodeOffsets': [[ - 106336, - 38543 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6212', - 'properties': { - 'name': '陇南市', - 'cp': [ - 105.304, - 33.5632 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šÈÞ@l`UmVƒ¼œŽ‚@nnÆwVlnVVa„LVƒÈ_‚ÿރ@n„a„xÆ@„lš_š@VxnK@llLnxmÈŎJnbUxšI°Žl@n¦‚lÈIlmX¥„k°@šk‚J„k²é˜@klaUaVaU@@ÝnIWnmnx‚k„ºÞ„„aV™°„V@nw‚KšxôbÞ£šVšU„bšþšLn»mƒVw„IšJ°Ž@„nb@°°I„ġUkÇKVƒ™™@ů»lƒ„Lnmƒ£@anK@Ñ܍n@»mL@£™yk„UUmbUÞÝ@kyÇbó»™XUxƒWVzb±mÝbXaƒwUamL¯»@wUKVwm¯ĵJ°ÅUWVk„KVk°wÈVšVуlUšƒ¥škmVamknƒUw¯¯ƒbċ¥ÅKƒk™Kk„™VċVk£kKVw‚Ñ„a@kóyÛ¯ÇVk™ów›š—Xō¥Ç¼ów™Ž¯U±‚k„ƒ@x›IĉÒÅVmÈnšÜ@n°„bUbÝV‚ŽUnnJ¯Į@‚m¦nV܃@„„L°JXb‚Ñ@šaÈb@šllôLVb—b@lmnVxk°ċ¦U°™Ž@xX@xWbš°UVÇn¯Ò¯Jɛƈmxl@¼'], - 'encodeOffsets': [[ - 106527, - 34943 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6210', - 'properties': { - 'name': '庆阳市', - 'cp': [ - 107.5342, - 36.2 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@kw‚ĉ—»VamƒƒV¯wƒIóVkl¯™Km™Vō¯ÝWkL@bÝKō¦@Ž™„@š™Lx›@b@l™a@km@@l¯nm@UaÅ@ƒ„óWUXm¥™nƒw`@UUxķôǰğ¦@„VJš_n‚‚IVŽnalxkX„JWn¯šnVƒLšxl¤nnVbklVX@xnxmV@bUK@nm@@xƒV—°±aÅnƒŽkUWnUaƒx@m™n@ƒ¯LƒššmUĀlU@lV@blLUblxklkIÇx¯°‚UXbšaVŽUnšV@°‚LUlnbšX@`°nVmbnÆmV‚kLmK™¦UŽ@X„y@kl@U„°K@¼XbW„ƒš@b„WnLVa„VšƒVz@xlVČ¥lbUxލlV„U@nÆWôn²™VJlU„Ƨ„LnmÜLXa˜n@mœw@wlUlV²mšblwšVȃlLލ„±@lVnUlxnkma@mškšJ@kXV‚U@mn@š¼VXUƒVƒlLnmVbôaVnWV»ÈUl°È¯ÆIn›ÆU@kk»mKkÆġk¯@»mƒk—¯@óÇlÇ@—Vykkl™Uml¯Þ™@w'], - 'encodeOffsets': [[ - 111229, - 36383 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6204', - 'properties': { - 'name': '白银市', - 'cp': [ - 104.8645, - 36.5076 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VKUȚl@šè°šnŽ‚LnxÝބ„V¼kx@l‚¦²°ĊóĠ„™Ċ»š@ÈxšaĊxlwÈVŤa@¯²aÇ£ƒJk£lƒnUÞ@°šô™@y„wl»lIX¥Ǫnw@ÑÞWla„ÅlL@ƒUwĉakƒl@ƒš¯mwna°J„V¯nUVÓÞÑm£²óWaUƒÇ@óÝUçV»ÈkkW@¯‚xV@XlK@wX@Vmm_@wÈݙKU¯ÇwVwÅK¯VƒkƒJ™™™XkWVaƒImޝUk„ÇlVšœĀV°mxóšk„@¼ó„WxĉÜU@Ub‚zÛJÇk@‚ÆnVlԙ@kŽ„x™ô@ĬWL¯ƒƒK@aÛImm™@ƒIUaƒ@™™UŽÇêU¤VÒÇx¯ÒV„šš™lk@Wbĉ¦UbkWV_‚y¯Lƒaó„kŽ@b@nmbkx„°'], - 'encodeOffsets': [[ - 106077, - 37885 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6211', - 'properties': { - 'name': '定西市', - 'cp': [ - 104.5569, - 35.0848 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„a‚V²wVJV_@„LlanÅllŦçÜӚ_šlnƒWaôk„xUš„bmV@È°lèšnk°l¦„`@nnL‚@ÈlÜIyVaV@ĊÛXwôƒ@»lƒô™nwU¯›ÿU™Èklƒ°Vn„JUblXšWšš„I„l°U„ƒVƒš—@aVVVmnL@„lƒ„UUw‚mkƒš£„bV¥VUVwۂƒlaÇÝރmk£ƒLUy¯L@WlkKW_XaWƒ—mƒ„ġU@a™k™‚ƒakXkmVwmŹVƒU™b™WƒónmwnWW£„KÈnV¥ƒ¥„ƒÆ_k™lW„bU¯„V°aôbnaVwmaōInÇmwkK@kmLUw™@™`ƒkÅ@ƒwƒb@m݄ĀÇ`U„ƒKUbmUUkÅxmm@›„»nUVk_Ý@™Ç™¦™VÇè¯b™aƒn™@@„„JV„°Žn„U¦™°ÆbXxWl„êƒxš„ĊaœbW`™zV°œ„@lmbÅx@bmV™bƒI™`™¦@ÒUVUI@ƃL@bš¼@ššŽ@„šlmxnL„°ULƒŽƒÞğޛ°kLUŽƒL™°™xVŽ„n„KVƒl@šzX@'], - 'encodeOffsets': [[ - 106122, - 36794 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6205', - 'properties': { - 'name': '天水市', - 'cp': [ - 105.6445, - 34.6289 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@UyȍVƒVUnn@ƒVU„`UblzšJnk‚@Vb„KU„°l„wš„„W°„nkVŽ‚UÈlš£°V@n¥šV„kl™kU˜±U„ƒn™ƒlw¯UkwmKUlmkUmnkym@ō@U„mWÈU°l°anlJškUKlU„¯Èm@kmWV»kkÝLUWUx±b™@¯ma@ƒ¯™IƒJUxn„m¼™K™ýƒa™V™Uݤóa™wLmxU@¯ƒUšƒb݃ƒ¹lmwmnXŽmJ@ÞV@UbVbkblŽ—@±êƒlI™l¯@ƒlW¦knÇJkm¥k@¯™Jmbóa¯bƒUV°ƒakXlšÅ`ƒ„„¦U¦ÇmƒLX¤mXnxm‚„ôšXša„VźUnŽUxlnlW„bššl@bĢV„ƒ˜nX„WbX`lLXk@ްKVz„Kl¤„nÞ݂Èkb„‚܁'], - 'encodeOffsets': [[ - 108180, - 35984 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6201', - 'properties': { - 'name': '兰州市', - 'cp': [ - 103.5901, - 36.3043 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@lW²LššƒŽ°I„l„šmbVb„KnbĊVlkš@XbÜU@Žkn°‚XIƒÆ™V„LšÓÞxŎUlôƒ„b°KzU`lXVaĊ¥Xal@šk™™Uƒ°ÑÈwUтV£ÈéVšš„@Vb„Jš@nnÜJ@b„L°„XK@īšóƒwlš@kÓmUÅmK@mƒ_k¥l¯™mkçǯ@nUƒaV™ƒwólXbm„™k™`ÛÔťèkkmÆkbƒK@U`UI±xUƒbWlX„mbVbÅÒólkƒƒIWJkšƒ@ƒz—Kݼ™@™xUx󎃄¯LWb@ŽÅ҄„±¦U`nbťĀUšVb„LšŽ„U'], - ['@@ƒ¯lwna@mōȯK¯kW¤ƒ@@V@bĢñVLU‚°k'] - ], - 'encodeOffsets': [ - [[ - 105188, - 37649 - ]], - [[ - 106077, - 37885 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '6208', - 'properties': { - 'name': '平凉市', - 'cp': [ - 107.0728, - 35.321 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@ÆLUxÈxV°šLÇÞ@xn`Ü@X@nĊŽÆwnJmwUx‚aUkšw@V@w„aVmlLXÝl@X‚VĢmV°@nl@UUUWK@w„ÿVI²Òlmš@nÝĊýVV@nšJ°„„šUłm@kV¼nK›ĢȤôK„blnKllVk²aĠ¥È¯ĸóVw@V‚_„xšmn¦VWôX„ƒÆ@Vbn@°m@kn@@lšb@k‚aœ@‚wšK@™šƒ@UlKVaƒWX™W²¹lӄw@_°›n@@_lKōķW™@ŽmLUWƒn™»Û@›l_Ç`ƒÛmm°ÅbWb@š—VWbƒUUKDŽÅaġlmkUġlƒ»—Lƒl™Um¦@ޝU™¤ÇkVUml¯ƒƒX™ƒƒx¯kVƒƒLUa@ml™IkyVaƒ_UV@„mmUVU„ÇŽVzUxUVU¦ƒa™¤l„nVxƒVk„@ƒmKUnUU@b™˜U„ƒ„', - '@@@Žż@™mlkƒġk' - ], - 'encodeOffsets': [ - [ - 107877, - 36338 - ], - [ - 108439, - 36265 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '6229', - 'properties': { - 'name': '临夏回族自治州', - 'cp': [ - 103.2715, - 35.5737 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@š@ż»˜L„y„@l™XI„Jl„ôkÆÑUanaWƒXkW@™yk@U„ƒLƒmUšwš¯„KVlKœ¯Ġ݄݄VKƒ¯mKnw™k@ƒ™@™™»@a„K@ÅVJVU@њ¥š_Uy¯š@£UKmn@‚ƒšó¼ğ¦WmĵXݎkŽVLmVĉU¯bm„ÝV—wWlXÞW¦™xkmmL™šÝŽœ„±U@Vގ™š@„ÅÈW°X„ܼƨyUĮnŽWŽnXÝxUx°lVXJlôV'], - 'encodeOffsets': [[ - 105548, - 37075 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6203', - 'properties': { - 'name': '金昌市', - 'cp': [ - 102.074, - 38.5126 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šĢȼ™„Çł°bœU°šV‚ƒń‚ÆǖŰnšÆ„ōĬǔaʠůĭš_kķÆ¥VÑș„çÜKšÅ@DŽƒVaU™m@aōnġÇk@ƒxĉ_™Wk£™@݃±KÈ±aÅnƒ@ƒÝxƒ@kw›lkwōL¯wm`'], - 'encodeOffsets': [[ - 103849, - 38970 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6202', - 'properties': { - 'name': '嘉峪关市', - 'cp': [ - 98.1738, - 39.8035 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@llĊx„¦šl™¦š„kVVnšJVbǖV„kôV˜a„bnaWw„UXmmamUXkWKō¯Xm°™™»ĉÇ@UVƒK™ķkǼğb'], - 'encodeOffsets': [[ - 100182, - 40664 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/guang_dong_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '4418', - 'properties': { - 'name': '清远市', - 'cp': [ - 112.9175, - 24.3292 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lǯkÿƒaV¯™VaÈU„¥ÆÇ„Ilxšmnb‚Uœxl™„Uôl°kš„„Wl„š@ô™VwUanUl@„xVkšaX¥‚kU»„aš¯±@kka@ƒUwmUkwƒJk™˜„±k@ƒ™™L@ÝWUwV݃—xÇU¯ŽÇX@m™Åƒ@@yĉ£VmUwȗ»ÇšUn„lUnWU¯`Ukƒ@@„™x„Ž@bÇxX¼ƒVVš¯LšĀk‚ÝLƒ„¯@VŽƒĀ¯lnĊW¦kVÇôkUDŽUK@ţ™U@a™™ó܃UU»ƒ@™¦k@Vx„KVb„n‚š@„Æ™„l„@xšƒbWšnlU„lxÈlV„ȰƄ@¼™„@x„šWxœŎ‚V„šK°„š¥ššnƒÆkŎ@ÈÑm™„K@¥šk@™ô@„nôV'], - 'encodeOffsets': [[ - 115707, - 25527 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4402', - 'properties': { - 'name': '韶关市', - 'cp': [ - 113.7964, - 24.7028 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@W™Xk±Ñ@ƒUw™mUwĉwlmn@Æwn£mkIš¥ÇÅ@¥šaƒón£nWWwš£V`Þ@šnVml@xô¼„IV¥ƒkUmkamUkVWwÛ»móƒ£UVÅKmn@x™@kbmm¯a™Xka›VĉaUb݃ƒ²—‚lš„IlxnVVx@„lb@l²™°ƒbV¼lW¦™bUlƒwk@mVVbUxóš™@kƒƒX™ƒ¯lókƒVkš›wVma™nkwƒJÅȃ¦ÇVUbšŽU°„bl°ŽkÈ@x™¦ÆÜ™°@„°„¦óa™VUôlUlbXl@nÜV„„nKlŽnIVÞ°Wš„°U@bnm@¥šIVƒ²Ulƒ°VnalzXyl_Vyƒ¦lƒœLlxš„@ŽÞbšKm„knVWanwƒÑVwČº˜@n_ÞV„aVŽÜIœl@„˜KȚ„VJ@aš£È@˜™@km™„aV¯W@_ƒa¯KmbkÇkLmwƒ@Å¥'], - 'encodeOffsets': [[ - 117147, - 25549 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4408', - 'properties': { - 'name': '湛江市', - 'cp': [ - 110.3577, - 20.9894 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@ƒkXƒ™@a„UUċlk„Jƒk„™@wVJXUWk°W@nKnwlUlš²ƒ„blU@‚lI„l@„XbW„šxnm@lW@w„wU‚JX¯VU°`ŎóˋkÝÝkÅ@ÇmğÈřmw™aĵV›xUہ»°™ĠǷnýmóX¥ɅĵҏÇ@°²ĊU˱ĮU¤Ç°™Ā¯ɐnżUĊĊĬV@脎@ԃÒU¼l¤nƒĠb„êVĠ°Èy„zVaV‚nUÆL„ašbVl„wÆ@'], - 'encodeOffsets': [[ - 113040, - 22416 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4414', - 'properties': { - 'name': '梅州市', - 'cp': [ - 116.1255, - 24.1534 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„‚nԚlW¼x‚¦@lœVl™lLkè„a@zš¤ƒĖ„¼UxlnUKUbÝlU¼lb@„Vx„V„klJÈwV¯š@ĠlÛ˚nƒbkšÆźÞƒUÈôklmšL„¥‚LœW˜„„™nKUkVa°V„x@IVV@x°bUk„a™a@mV@„@y„w‚L„ÑUwVUšV„‚„U‚bÞVVann‚@XwÇÿš¯²aVamkXaÆ»@»nw@¥›UXaƒkbWa¯KUw@¥m@kwmLU»UU™J@kmU@UUWUƒ@ƒyƒanwmçÛl¯ƒŽ¯UƒmKUmƒwVkmÝXbW@XWÝbƒk¯@±‚w@»U@W¯Å@ƒÇ¥UƒU@ƒƒ™IU™ƒakJƒĀ„ꃰšþƒXkamŽ@Žƒ_J°m‚@X'], - 'encodeOffsets': [[ - 118125, - 24419 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4416', - 'properties': { - 'name': '河源市', - 'cp': [ - 114.917, - 23.9722 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°VlmX¹laĢÒlm„@„„šV𣂂@¦Ģklynn¼lW°z„W„„°VbÈV@lÆbnn‚JškX„šVÆašÅ„W@™ƒUUw@ƒkaV»ÞkVaVLkmVwƒ»„ĕ™£@yƒblçkKkš›U@k¥‚wX»™kmӃ@Wn¯‚I„`@nlb„W™ý„¯ƒé„ÿlI@™XUmWUwƒ@@UJU„Ç„mKUV@x™„ţk¯¯LWƒƒnUxK@ű»Vwa¯š@¤WX@ŽÛ¦@¤ÇIȼWxXŽƒ@Wx—w›ŽUnVbÅèmVa±²UWl@Žk„lȄ¤nôܼXxlUnVlbVn„lU¦ƒJó»@wnkmU™‚Ý@U_™¤XxmXm¤„ô™b@¦Èƙ¦lJn'], - 'encodeOffsets': [[ - 117057, - 25167 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4412', - 'properties': { - 'name': '肇庆市', - 'cp': [ - 112.1265, - 23.5822 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l@š¥„@V¼„Vôۚš@bšV@ŤVLȃlVÈólUX¥mĉ°k„ÿU°@„ƒÞKl™ÿ°KU™„UW»Èw@aƒšw@ƒ„@nm@w›£kÓVUVn„Kš™k¥™£Vamƒ@nkKkbÆǫma—kmLU¥™UmƒÛwmVU™mUƒJ—ÇaUxÇIn`mb@Þ¯b@„nJ@nl„U‚V„lVU„L›W¯—Û`Ç_¯`mš¯I™bĉWċzx±J™x𐝯Uƒƒ_k@™šƒJ@Umb„šXôlLš˜n¦@¼ĊxlUXŽ˜xUbL‚Ġ„UnVĊwlšUš„b@lW„X„‚m²˜@ÞWxXš‚Unb'], - 'encodeOffsets': [[ - 114627, - 24818 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4413', - 'properties': { - 'name': '惠州市', - 'cp': [ - 114.6204, - 23.1647 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lbšW°bnnlaš@@wnmÆLVUkÇlƒ@Xk‚V²±‚bnUÆçUaVmœ˜xXw„@WXwÇ»ÈJ@£Ü¥@XW@£°™‚bUx²¼@ƂLVw„mX„°K°Ťlšƒ@wVUnLȃVƒVIky±wkƒKU¯ƒÅkƒ™XġÑۃlwUwlm@m„nKWašÅm›¯óÇmğb¯alĉUwķbmb@lÞÒVn—šmĀŹ@VŽƒbVŽUnmakLm`@xĉkklVÔVJVn—lV„UnmJmaLUbl‚™zmŽkL™a™‚ō@@zš‚V¦UŽV²kJ„nÜU@˜VXUށL@„lJƒL@bݤUnVŽ—b@xVnlK²„Vx°V„xlI„lkVl²k¤@n'], - 'encodeOffsets': [[ - 116776, - 24492 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4409', - 'properties': { - 'name': '茂名市', - 'cp': [ - 111.0059, - 22.0221 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚LnÇlk„KnkÆL„ƒUm™ÈxlUœJló°n@ššanŽš„„a@ƒ˜@X_@mÝóóU@a™aU¯mL¯ƒƒkV¯™ÇVwkw@V±Ŏ£@™™@šalw±Vk@m„Åm¯™ÿŃƧIÇ`ōô¯_UVW°IV‚ƒx@xkX@Žmn™wXƒWa@ƒƒkkJ@kVƒa±„k™kVmxmL@‚¯XXlWVUI@xƒš„lƒIklVȃV@b„šlW@„@nUxVblVxkôlx™n„‚y„šnIƻư„aXwlK„bVnƒŽXb‚L„¤„k‚L—èƒVV¼ƒŽ²IlĠVX„ynz°KVx°@VlœLlblKœš'], - 'encodeOffsets': [[ - 113761, - 23237 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4407', - 'properties': { - 'name': '江门市', - 'cp': [ - 112.6318, - 22.1484 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lUXx°JWnnƚXVš„W„X@„šºVLV¯nU‚Vnb™ô„x‚aXmW™XIšŽUb°xlK„l¯œK˜xXÞ°ŽšXÈ¥Ü@„ĉޏU™‚çš»nóƒVma—x‚¯UÅU¥Ý¯@ƒƒç@ș@çĉÅUmU籃ĉKÝxÝ_ÅJƒk¯»ó¯nmèkǀšŽWxœ¼mnUÜġ°@¦@ƒxƒLkŽÇaVnUxV„™šVlnIlbnÆÆKX¦'], - 'encodeOffsets': [[ - 114852, - 22928 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4417', - 'properties': { - 'name': '阳江市', - 'cp': [ - 111.8298, - 22.0715 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°„nKV°šb@bôVÞô@n„VlÒôÆUnlnn@lmkmVkƒaÈkÆÆ„™k¥‚ÅÞ»ÆKXkW¥ÅLmÅkamJUkš™UƒVwUmÈbl„K„w‚@@¥Ģ¯VÛnm›»Xw™lƿ™@kbW™—aʵ@óL›l¯ƽ@™ƒƒLn°ƒÆ@nUl‚²kx™b@‚š@šō¤U²@ŽlxUxšÈU°lŽ„'], - 'encodeOffsets': [[ - 114053, - 22782 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4453', - 'properties': { - 'name': '云浮市', - 'cp': [ - 111.7859, - 22.8516 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@V„Iš™l@„`V„°Å™šw²I‚wČyĊXša°Jn™°_È`Ü_°˜œX‚KVƒkUUƒVkƒ@mmI@ƒ°a@Ýnam_ÈJVwlĉX@„šlUšómaUmVU°UK™¹@ƒƒWƒXU™™WmÅXm¯IWwkVWlÅLݼÆl¦ƒšÅÅÇl„bUllnknm@kmVmóÅkуUW`—@@„ƒb™ƒm™b@™¯mkô›IkVÇwnš„VƒÅKmlƒLklmȁKƒšVĊK°²„`n˜¤n„U„bWl„xVx™LUx@°nXm`VklVxmnnx'], - 'encodeOffsets': [[ - 114053, - 23873 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4401', - 'properties': { - 'name': '广州市', - 'cp': [ - 113.5107, - 23.2196 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ș¼VxUnĊ¤@z„@šÆ@nÈW°ÈV˜w„ŽUÞVxÞX@ŽšK„šl@ބVaĊbœU@ml£k±lUƒkkJƒw¯UUw±ƒkLUm@w˜aUVmÞ£@a„KkI@ƒ‚KVUW@—ÛVƒmlIU±VU¥™@yğzƧǃƒšƽĠřšÅnī±m@ƒ²¯lƒ°@nÝÆóUll@XnÝVU¦mVV°—„V¼™Jƒn„b@°mbn„ƒ‚@²¯‚¯wVwƒ@@nmxX¤¯L@ŽVLU„m@@l'], - 'encodeOffsets': [[ - 115673, - 24019 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4415', - 'properties': { - 'name': '汕尾市', - 'cp': [ - 115.5762, - 23.0438 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@‚„@VxnXWV@š„bVššJ„„V@ÞÅU¥Ċxš£UWU‚wÅUU¥WVUkĊÇnkV`°LV™„wƒƒnU@™„ƒlbĊ¯„Vnalšš@@çkUÝ¥ġaó¯ÅaÅLŻÆUýmy¯ó@ĉÆó„ȯw™ÆXbmLƒ‚@nknVxkx܄ĢҚW„Æl„V°„Ll‚²xlz'], - 'encodeOffsets': [[ - 118193, - 23806 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4452', - 'properties': { - 'name': '揭阳市', - 'cp': [ - 116.1255, - 23.313 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@V„Ȧ„Æ@X°V@@¼‚x²°@„lÞaWXX@‚aÞWlnUŽ„xVnnL„‚°V„@k‚mĢl@„ak™@mlk°aXƒ±„nwm±™²¯JV²@ƒwW˜—_mƒa„V»ƒU@m¯ĉUф™šJl™„ašbVn„lĸLlƅÛDZwÝ@ĉxó@è™@k™mbƒUĉ°kaƒ„@šmV„„ƒxUš¯KU_mlĉÈVlXUV¦ÆVxVŽVX™¤ĉwV¦ÝÆ'], - 'encodeOffsets': [[ - 118384, - 24036 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4404', - 'properties': { - 'name': '珠海市', - 'cp': [ - 113.7305, - 22.1155 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@„è@„Þ°V¦VƁ°˜wnb„UÆ»nçÆ@nxܤ²llU°VnÈJސ°UôéšķUklƒô£VVˌKÞV°£n¥ƒ£ȗ™Ýy¯¯mÅkw¯bÇĔğ@Ýn¯ĊƒVğōŁŻƒķJ@Ț', - '@@X¯kmèVbnJ‚™' - ], - 'encodeOffsets': [ - [ - 115774, - 22602 - ], - [ - 116325, - 22697 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '4406', - 'properties': { - 'name': '佛山市', - 'cp': [ - 112.8955, - 23.1097 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Èb˜Ž„InVVšnUÜxn„šVV¦nK˜lnbÅǬlalL@mn„Ubš¤l¦™šƒLUmUVlԜ¤@xmnVl°_XVVmƒkVmș@kn@VƒUK@°KW£nw@m„@Ux°x°@±„mƒna@¯ƒa„mšIU»˜ƒU¯nUV¥ÞUWmk@Vk¯™Ukn›ÑWݐƒĊÛ@Ǧ™W¯Wݗw›Lk°ƒkL¯wVa™WJXšWnbƒwkVƒ™W@kĊ'], - 'encodeOffsets': [[ - 115088, - 23316 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4451', - 'properties': { - 'name': '潮州市', - 'cp': [ - 116.7847, - 23.8293 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°ŽÜknèmx„b„z„@V‚VX@VnV@lšIVVV¼nKlxn@@¦Vx°LXbla„ŽWbœV°£¯™W@nW@™‚aUñVœwWš»@¥ŤÅUÝǓÝóV@ńǎkUVmƒIUwÅVWÇX¹›—@W„¯bkl@nlšƒb@‚kġށn@l'], - 'encodeOffsets': [[ - 119161, - 24306 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4405', - 'properties': { - 'name': '汕头市', - 'cp': [ - 117.1692, - 23.3405 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚@U±°Iš±n²mx²ƒ˜@œWºXÈÆUVx„JUnlVȍ@ŃôUǔÞVçn»VyĢÛVm@»kaÝUǼóšÛÈķKċ¥X„¥Wwğk™ƒ¯@ƒwķKƒkUm™aƒbkš™IƒšVÒ°Ċ@n„VU¼ƒ‚„bn˜`X—„x'], - 'encodeOffsets': [[ - 119251, - 24059 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4403', - 'properties': { - 'name': '深圳市', - 'cp': [ - 114.5435, - 22.5439 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÞLš„@xšbV„šVšK°™X°Kô¥Vw@anU„胐š‚lkĊl@wn_lKnbVmU„aUź@nÿ˜™UmÝѯUƒbk„@ÆkxŻ@™aÇX—wƒJƒƒ¯LķÝUĕ™ó™ĸóêWº@b²nmĬ™Æ'], - 'encodeOffsets': [[ - 116404, - 23265 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4419', - 'properties': { - 'name': '东莞市', - 'cp': [ - 113.8953, - 22.901 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ŏ@ššblKnšykVa‚KnbnIVmUƒ˜kUmUIUә„ƒçmV@bUxó¦¯LW‚¯š™L™UUƒ™a@w™ƒÝKğŚ™ƾ„„ƨÈĠy'], - 'encodeOffsets': [[ - 116573, - 23670 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4420', - 'properties': { - 'name': '中山市', - 'cp': [ - 113.4229, - 22.478 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚XœÒlmšV°ôÞÅ@m„¯°k„±‚@@aX¹¯VݏÇIUmV¯kk‚±Û£mw@‚Őmèżmô™¼èVš'], - 'encodeOffsets': [[ - 115887, - 23209 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/guang_xi_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '4510', - 'properties': { - 'name': '百色市', - 'cp': [ - 106.6003, - 23.9227 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lklWXL@VšI‚l@XnJn@VUUalk@mK@kny@UlU@a°™„ƒUU@VmaU@Ua@UWw@ƒn@KmLm@alkšmnI‚m@an@VIUamWÅImwU@@a@K„X@JVL„UVmUaVkUa@m„@@Ulmkk°ƒUaVUlKXbVwVIkaVmUk@KVk@a„aW¯m@w„¥laœX@KmaškVmnUl@nxVKšInU@yVaVIV@na°KlxX@@_lmXšUV`VIV™V@„n@lšbn@@WUkValK@²yl@„„VUV@@K°L@KU@@UVaXIVVV@naVkVa@K@UUK@UUa™LWa—w@m@K@UVVƒ@mVUUVKnL„mVL„K‚bVK@UUIk›mI@mUIVK@IUK@VkLƒ@WU@mU@WmUk@ƒI@VƒJk@WwX_@amK@UUWkIƒ„ƒK@LVb@mVmakL@J@bU@Ux@xƒbmI@`ƒIwm@UbmKUaUWa¯UkJWV@XƒJUU¯LUmV@ma@kkamKwƒLUUmWVkkm@aVUUkVKnVVUmXK@UW@km@Ukkm@@W@U™kUy@I@aUUmbƒ¤U@kUmL@bmJU@Ua@wkLWWkL@Uƒ@VaU@ƒLUakKWbkUWVkKkLVLUV@JVbƒz@Vƒ„@ƒVmUU@kVmK¯@VƒU_™VWakVmIUKUaU@@bml@XU@@V@LmKUV„mVUKƒƒKƒbkaUXƒKUL@x@V@l@„mxU¦„V@ŽlL@V@Ln@@VV@„nlKUaV@nLUbmJnL@VWLkbmV„@@L„W‚„XLlx„VVIVV@x@V²blUVm„LVUœK@kWWXUlV@Xl`„LX„l@@VšŽƒn@VnbVš@lVUVUÈVbš@@`UXU`l@@XUVm@kš@xmVknUJVXUbmKULmbx@VlJ@LVbkKUbVLÇUUVƒUVmU@VaUkUKƒVUwmLkUUVVlƒbka™XmwƒKUšVVU@@V±Uk@VWUUm»XamU™bƒKk™`ƒ„™U@UnWW_kKmbUVUVmnUV@„nJVUlšUbU@UV@n@JmI@VmbnVUXlx¯ŽkKmnVV@L@V™bkV™Umm™@Ub¯LmlUƒL@VWLkmkLmmn£WmnKU_mW™š™bnbmxƒ@U¦UJU„@Xmlk¦@‚mnUUm@@Jn@lV„ÔVJnIVW„I@a„ƒÆK@I@aVK„IlŽÞnnl@nl`nbÆX²l@xV„@llbVn²ŽVVl@nn„V@IlW@Un@@kVa°KšnÈmVaVXUlaVƒÈU„VlwôUlynIVašan@lVXb‚Iš@n¥la@Kš_n‚@bÆx@XnJV„nKVz@`VXVšU`@bƒ¦UV@VšIlx„UnV‚K„XÈbšVllšbVbnVn@'], - 'encodeOffsets': [[ - 109126, - 25684 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4512', - 'properties': { - 'name': '河池市', - 'cp': [ - 107.8638, - 24.5819 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lLVl„bVV@nXVlI@JVX„mšn„W°b„IVV@‚ln„@nalVUb„nW‚@kVkÒlbVKn²°bUŽlV²@˜X@`nb„aUI@ƒ°wlU@aXJVI@aVK@wUamIXm‚@XUV@@bV@Vm„ImnUUwVaVKXU‚nVK@akƒVwV@nL@UV`n@@X‚lnIUJl@X¦˜V@aUIVm@anƒV@UwnL@VlbVL@KVVXUWƒ„wUUVUka@UVJnUlbnalbVVn@°„„LV`Þ@šXVxV@@bVlUVVbXnWlXnmlš@XXWVXJmbUI@V„llUVkn@@VWV@Vnb„@VXUJVnn`lLVk„a„»lVšLnw@WV@lInw@WnU@U@m‚knUVó„K‚wUmUXUƒU@@wVJVIl@XKVVVbVI„J@Un@lŽVLnm„b@U@Ul@nUš°VUVJnnVJV@„@mVU@ƒ@wkUVwkKWk™yUUkU@alkÈ@lJ@x„Ilƒ@UUWVkUw@Kn@@kmaƒVUl™UUL™ÇƒUUKl@UUmL@aXU@mlUUwmKkUUVKVUƒaƒKUnK@U@Vl@XUWU„KlwX@šb@K‚@XkV@UwWJka@aUwmV@U™@@U@wUm@»kLWVkIWŽXnmV@VkbmKƒLUbk™Va@aƒa@@aVU@aVak£@ƒ±UkVU¯V™UUƒJVƒUIƒ@kxmUmWUbL›w@K@aU@@aVU@Kma@aka@_VWkk@UWVUKULWKULUš@KUnƒwVaUKƒxU@UmaƒL—m@kVmVa@UkƒmI@ƒ@KmIkxU@@K™U@mmakI@VƒLkmWkkJ™_U‚@V@L@n˜xXbšKVb@VVL@V@LUbUlmbU@UUWJUb@VV@@L¯K@LU@UVƒƒk@±z@‚kLUbVl@Xm@™akm@ƒU@UšUJU_™VWŽkn@`W@kw¯LmbU@UJUb@zmV™JULmwk@mVUn™lnb@L›Wkbƒ¦@x°nXŽƒb@bUl@LVlUnlbUJUxWakLUVVb¯„llkn@Vƒ@@nVbUlVbUnƒVUK@IƒW@L@bV@nxÆJnXVbUJm@@bnmJ™nkl@b‚nnK@L„m‚@Xx@VVbV@nb@UVVƒ„¯š@bkV@Vmz@lnLl@kŽVbUVm@mI@Wk™J@UWKkXkl'], - 'encodeOffsets': [[ - 109126, - 25684 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4503', - 'properties': { - 'name': '桂林市', - 'cp': [ - 110.5554, - 25.318 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nU@J‚X@`XLm¦Vb`lšVXXWš@VblČnVšŽlanLnmVLšK@_Vaƒ¥@kUa„@VmVb„aV@XVVzlVVK@knKVmX£VKšLlbnš@b@llL@xĊôXaV@°È@¤„bn„V@@Wl_„V„U@W„nVamw„wVbn@„K‚VšLX@VmVUxlV@šnVV_nK@m‚I@Wn@@IšUĊ@@wVWX@@I°VVm@wmU@m@IUƒV™kƒlkUmmkÅV@@aV@@Wn_UKla@kšaV„šlVanb@k„@@KlVn@@aV@nIWW™UUaVU@™kKmwU@UImKk@UU@w@W@‚™k@™UkWƒ@mk_W@Ua@a™ƒƒ@—¯ƒmV£@mƒUUam@—kWakƒVama@UUm@nw@alaUmnUlVlIœV‚™šLVyk£Vm@k@UUJkƒK@kmKUw™KkWK@UXImyVwnI@m‚ƒkUlkUKkUVmƒw@kkJWUÈm@_k@@aƒaW@U„UJUwU@@IWKkƒmUUV@nVl@bVb@bU‚UXƒakw@ƒWUkbkKƒbm@™xUlkLm@@wmKUX@‚™UaVW™XVmU@@UUUƒxkmWXkKkUWaUaUb™L@`UL@LV`UXmK@VmakLVbkL‚xUJUIVbUVVb¯KƒV@Xnl@lVXbmÒnV@L@VWKkVUIWJkIƒŽUamUUbm@U„kU@JUbW@X„WxUam@kbVVUnUJmUUV@bƒU@UUV™@ƒVk@ƒbƒmULV¦U@V„U`VLUL@xVbn@UJ@nWJXXVŽVV@bkxVbUx‚Lšš@x„¦@šU‚lXUVVlULV@@šnŽU„ƒb@xl„nJVnlVknUlVUbmŽU@ƒbVš„x'], - 'encodeOffsets': [[ - 112399, - 26500 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4501', - 'properties': { - 'name': '南宁市', - 'cp': [ - 108.479, - 23.1152 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lKnbnU‚@Ua@K„L„ƒlJVX@VnL@bW`Xxl@„I@U„Jl@nV@X‚V@nXV„@lK@UVL@JULVJ@nnJlœVJ@VULaƒLUKƒnmKULVVUŽ@nU„š`lIXlln„K@UlJnb@nšV@LV@lwnJ@L@„nJl„@VUbUn@l˜n„KnbVŽV@„wVLUb„xVm@LV™VKXLVKVLXU@VllUX@`lb@bnb‚L@ŽUV@bV@@b@Lœx‚KVanXVƒUUmVUUUaVUky‚UUa„ImK@mUUVUkKU_@W@UVVVIUW„UVaVU@UUKnƒ@k@al@ll@bnL@b„VUV˜X@Vœ@@b‚Knblmn@V_@aUalL@a@akK@kVKUKlwUUnV¥VmU_VWVIVaX@Va„alńK@LVJnalL@LnK„wlVUw‚mX@VXšƒlLUVnblaUmVUVwXU@Wm¯Va@ÞKnw@w™mšk„»‚UVW²a@_mW@U@I„y„LVUUKW@@™„LX@VUV@@yVU@UV@nwUUmJka@IU@ƒmƒVkaW@UwUX@`ƒ@kLWUk@mƒkUUm@k‚UUWkUƒkWxk@@VƒK@nV@UVaƒUUJmIkVƒ@UamLUbkVmamLka™@ƒ‚kmL¯WI@wJmwƒx@akU@aUKmbkaW_nW@_U@Wm@a@wkwUKmƒk@ƒbkb›w@mKUkkU@J@bW@kVWz@bVUa›VUx@„ULkJWbXVVXƒ`@œmJUVU@@Lk@WbU@UJlnXlm„Vx@Ln@‚b@K„LX„WJUUW@kƒaUVUbmV@nnV@n@lVLƒVmLX‚mXkV±@kxÅL›šUbJWIÅJ@I‚mXalkUamKkškL±aVwKƒUU@mÞnbWJX„m„@lbmKULWUUVkaƒbnn@Vl@VVV@VƒbVbnLWLXJWxXLV@@VV'], - 'encodeOffsets': [[ - 109958, - 23806 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4502', - 'properties': { - 'name': '柳州市', - 'cp': [ - 109.3799, - 24.9774 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƒwU™„aV@nVaUVklmkUUmmIkƒ@w„aVƒm@™U@VKUkVUkWV@™ƒ¥@w™™KVwUalw@aUUUWWXI@mVIm@Ua@wVKUKV_UƒV@U¥VK„n„al@„Uš@VU@V„V@aVUnVVIVmUUlan@VbXwWƒX@Va@IlVVƒn@VanVVb„lJXIVJlUXL@U@KmUnÑWakU@mkƒJUI@mk™@wUmmUV@JXaWIXWmaUIƒJƒkk@W„nJ@„ƒaUak@›kkJ@kUKU_ƒ@myUóWUkm¥kUmL@KUKm@k_UmVa@ƒk@@UmU@mm_—JWIUVUŽWLUlbVUJÇVUIVwƒKUVk@mU@n@lUL@Km@@l@L™VƒzJmUU¤m@UbV²U`U@@¼Vn@x@Vš@@VnUVx@blbXIVxU@Wl@@L™aW@kxƒLXVWVk@@U@VmLVŽ„L„bUVULVV‚lnLVxkV@nWV@bnKVVk@VL„VšÈVKšVVk„Unb@lm@@LVxUlVX@Vk„ƒJ@wkIÇ@kl@blVVVšzXllLUxlV@x@„UV@nƒ‚U@UImmUIUV™¯mVk@@V@VƒamnUKkm@@VƒIUJUaUUWLk@UJUI@xV@V„VWVnxƒLUômVV„@VkVVVUnV@UVkL@VVV@bVxla@bkXVJVn„`nU@bƒb@bVL@VnJ@„l@šV„aU@@_lW@UUU@Unƒlll@XLl@@UX@°bVWVanLlknVV@VVX@VVƒnUŽVLmbXJ@nllXX@`VXƒlmaXVWk@Wkƒw—J@„VL@J‚bnU@bn@@bVKUnVJVIVVVL²a@bV@@Vl@nUVakalmš„UL@VUL@V‚a@mXl@nK@UlK„L@Vl@@nkllb@š„Vnn@‚šnV„™V°l„šVInwlKXxlU°Žn@@ƒ‚I@UnVlakUJWkUK@anUWK@_ÞJ@U'], - 'encodeOffsets': [[ - 112399, - 26500 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4514', - 'properties': { - 'name': '崇左市', - 'cp': [ - 107.3364, - 22.4725 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@JVzšl@V@Xn@ll@VlnX@@VWLnŽUVmUULVlUV@blnUlnXVV„K‚xnLlb@lnbU@Vn°KVV„I@WXUlI°VXb‚VVbnLVan@‚x„J@_nJ„a@wVwV@@a@IU@UU@WKXwWIXKmKUa„a@U‚UUUk@@Umm„albVUXVVKnL‚a@knƒWƒXImanÝV@„V‚LUx²blKl™nLVbklWbn@JÆIXJ‚IVaœ™ÆKlw²@lUnWWnK„UUK@k@mmU@mnUVaVU„b@lVXVXIWƒƒK@Lam@@KUwnƒWkkmVIV@Xal@@KV@VUnI@›„_UWWUkam@kkm@ka@mƒk@wkJWIUU@WXkW™XkWWLUUƒ@UakLƒW™XV±VIVWUU@anUWaUK@IU@Vak@@UUKWaƒ@m@ak@@wUkla@mUaUklakwVƒ¯¯@WWUkLkKmaƒ™kLUnV`UxWX@Jkn@bmlƒakkk@ƒb@l¯bm„ƒbJ›b@VXn„bVV@„ƒbƒJUkkKWVU@mœÛVUUW@UVUJWXkVkKmUL@WW@U„Vl@XXKW„XJ@XVlmbUxnnm@UlVnV@XVm¦VJb@šmLkKÇbXblVkn@l@bWnX`V@@IVV@ŽV„V°n@@_naÆVVbUVVbUJnzlVUl‚XkV@Vlx@X„VnxƒbƒKUK@b¯VVUV™L'], - 'encodeOffsets': [[ - 109227, - 23440 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4513', - 'properties': { - 'name': '来宾市', - 'cp': [ - 109.7095, - 23.8403 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nVlw„@VJU„„IVVUšV°lU²V@„l¤Ub@bUV@b‚@„b@bUblšVa„KnLla@UnUWmXlJXUlKV@V_U±Van@V£nV‚I„yšU@K@kn@@LVK@k@mnVl@VU„LUxVJÈUVIU‚aVkXKVVUXJ˜In`@nnV@Vl@@„UbVnl`n@VL@LnKlVn¦VlôXV‚nz„@V`VL@llIœll@Vb„b@ƒmIXƒl@„l„IVJnbWXXJWb@IU‚nVVn@xlš@nVJ„I@W„U°LUaVUUaVJVIwlKUalKnb@UnLVWU_@KVK@_šKVa„@VKU¯VLVKn@la„aUkU@maVU„J@k™@Um@XmbkyVaUIUU@KV@laVn@KXKWUkUk@ƒaW™UUVw@aXKmƒVaUUkšmIƒlUU@wUa™xUmmU™¯™U@WƒLUmVIUym@UVmUa@wmw@çm@aWLU„™JUIUamKmL@™aƒx¯¥ƒkU¥U@±„k„UVmKU_mJUbkKm„ƒLÅǙ_@WWUXUmaVUkK™„UWW@nVxkUƒxmL@KkKmbUI@KƒLkƃbUbW@UbUJUXV`UnU¦mŽVVkxVLUL@llL@b@bkKVb@bU`m@knmaL@a›@@U—WVUƒU@amK@akkk@@b@lm„VL@VUVUbƒVVXUJUU@V@XV`lLUVVV@nnLƒJVbVlzUVVbVVnUVVU„'], - 'encodeOffsets': [[ - 111083, - 24599 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4509', - 'properties': { - 'name': '玉林市', - 'cp': [ - 110.2148, - 22.3792 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VJUXVVXlWX@V™xVnX@@`ššULWŽUXÅbWK@mULUUmJ@n¯b@l@VULVx„x‚XU`VXXJVI„V@nm`@nUŽVXn@lWVn@b@Jn@nU@Lm`@Xn@WJƒ¦U@@VnL„lV@@Xl`nIlJnkVL„w@KVK@UšaVL@bVKX™lUUKVK@I„VšL„a@U@WšLUlVL@bU@@blb@VlbUxVbXUVJ@xVL„U„lV@VU„bVLnKl„XJ@L‚b@an@VanL@`VLšKV_UWl@U_„a@WVInlVUUUVm@I@W@wVakIWm@U@ƒXwlaVbnI@ƒm»Va@aXaVLšU„»@aVa@k™KkL@KmU@WƒzUK@wU@VWUUVUUKUa@mKmbUK@_nWVaUkVaUaVUVLXKVƒVUVmVI@UkKkLm`UkW@UwWW_„UaU@WakXmK@xUXƒJkƒUUWUk@Wl—mJ@km@@aUKzmyVk„a@kkWVUU¯lmU@@w‚kkmV@Vk@mÅIƒ‚Ukƒaƒ@Ub@m@UUU`mUbWaWmb™X™XKWIXUWm@љ@y@UkIUJUUWLUWƒL@UkVUxW@kaWbKWnXxW¦n„m`XLVlUbVbUx™I@JmLUKUb@VW@@bkL@b@VlU@xkš@L@lƒxXxWXX°V@VVVbUVV@UVVbULVnVJUb²b‚aUb@VVVVInlV@VnXaVUšlI„VUb'], - 'encodeOffsets': [[ - 112478, - 22872 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4504', - 'properties': { - 'name': '梧州市', - 'cp': [ - 110.9949, - 23.5052 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VbXblVlLXWln„wVV@VV@UnšWUXVbš‚@VWXa@kVK„UaVaVkšUlyX@Vaƒ—VmUwUaVU@UÈymI@aU°@š™nWV@VaVaw@IV@VmnLVK@kmmna@™„™VbVI@aV@XbW`U„„LUVVx„@VbUV@bl@VLXblJn¦lL„°°@n™@K@UlLnK„a°LWbnJ„¦UÒV„UllLlVnKnbWnn„V`„w‚@@Xa±™n™l@XKV_„WVkVa@kVyUa@wU£UW@UIVW‚@@a—wWaX_WKkVmUULmak@UJUI@±m»™—k@m»VyUIm™nmmwnkUmVaVIUn_mW@»Vk„@VwkmmUXa@IƒaVm—mƒ@Wm_U@mIUWóLmUk@laXmmkUK@UmKULUUmWULƒ@VakU™@Ub@bƒ¼™VUKWb@bUbn¼@„mJUakbWx@„@VXnlJUb@x@X@JUnVVUVmkUJ@XƒbV`k@VXU`™LUK@_mKUbm@@b@„U`@nlV@b„UnbVbn@@`VbUbVV¯bm@@mJXb@bVnUllVXUlbUl@LU¦VVmŽkLVb@b™l@V@XlK@V@nUJUz„°mށwmLmlXbWVU@UUUlƒIU@VVmV@@¦‚bXbWxX„WlXVWL@LUmkbU@@LVVVJUblzna@WVnš@@lƒIUVnbV@Vlƒbkbm@ULUKV°ULƒ@'], - 'encodeOffsets': [[ - 112973, - 24863 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4511', - 'properties': { - 'name': '贺州市', - 'cp': [ - 111.3135, - 24.4006 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nL@xn@lKVkšwn@„alLlaXV@„lx„bVWV@aUa@aUk@mVUnVl„XL@JV@VxVIVƒX@„b@bl@@`ÇnXVlI@l„xUnlVVLkllV„@nmJUxnzWJ@VXLlŽšLVxnL@l„LlŽVI@V@lUnl¤Uz™Kš@„Vl@š„L‚l„Lnš‚b@VnVVU@k„a‚Knxn@VkVJ@ńUlakmWIUaVanm@_UK@UVWUa@klXam™U@Vmƒ™VIXW„@lUVknVlKVLXŽVXšW@b@VlšnnVL@KXL‚Kn@lb@UnW°@Va„X„WVb°aVa@I¯aUkUaVKVwƒaXk@a„a‚™@wkm@alanUVw@alK@Umkw@UƒaUmU@WXUaUK@UW@UaVWI@¥Xa@w@WWšVƒXwƒU@mKUXUWVU@a¯kl@akU@UULmK¯VUVW@U_m`U@@xVbUz@lUbUlƒXU`WLk@mš²šWb@ށ@ƒxU_mƒXmmamLkUkKVkUƒVу¥mIXa¯KƒbmLkK@V@Lmš¯@ƒ¯kKm¥kIWaUKk@@aVUUaƒ@UwVUƒKVƒX_WaU@@bUJUaƒš@šmbnn@lULmKUnU@@J‚xUbUbU@mX™š¯@VŽ@bnJÇz@VUVVbVxUn„˜UbW@kz™VUlUbVbƒŽUL@lWb'], - 'encodeOffsets': [[ - 113220, - 24947 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4507', - 'properties': { - 'name': '钦州市', - 'cp': [ - 109.0283, - 22.0935 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@IlVVlnL‚@œxla„al@n„VLlx@x@bXnV@@`mXX`lbnaVL@blV@b„wnx‚I@xXJ°nK‚l„š@lbnKnblUVanKVb„@lUnJVI„VUb@V‚U@m„L@Ul@Xw„llVVXV@lVnlVn„l@XVlK„@@_VWVxX@lb„U„nV@@JlbnIlmnVV@UwVK@U@k°a@mnIVVVK@nXLÆaVWXVK™™@_W@Umšw@UXWWkUUVWUIVaƒUkJ™UVWbUmU@mkUJUU@UVab±aVaUIUmVKUaVUU@VUUaUUU@W¯XWWw„w@k@Kl™@wkV@U@alK@aX@@UmIUWUIƒ@mmkXU`U_WJUnUJmUk@@amLU@UVW@UkU@@VƒbUWVUk@@wmKkUWLUWX@JmIƒlUkkKWKkLWU@UKWa@bU@@a@_UKWƒUUUmJmw@nV_@ġğKóLmbU¼VÆ@xUXƒ@Um@wklVnUn›lkaUV@„lV²WVklWXXbWlkVkIm`UUƒLƒUU@UWƒx@XU@@lWLU@kbUbV`UXllUV@bmb@LnKVbULm‚šnVVIV`X@'], - 'encodeOffsets': [[ - 110881, - 22742 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4508', - 'properties': { - 'name': '贵港市', - 'cp': [ - 109.9402, - 23.3459 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n@VzUJ‚nVŽ„K@XšVš°nVVnšwVb@xVV„knJl™VVUbn„WL@bUxVVXš„bl@lVXkWƒXwWaa@¥‚@nUUUV@„JVkVVV@XUWanknK‚xnƒ¯VyVI@m@UkL@W@Ušk@aUalKnUUV¥@KVkkaWVkUVkUm@aWanI@n@°aUUVaUa@_m@UamaƒV@akU@mV_@ƒa@KWIkƒmLUKƒaUVU@ƒkƒVUK@wUIWVUaVwka@Uka@aV@@aUKVk™K@X@Vƒb™KƒU@JULVLkVWšUL@aUK™b@VUL@LƒxUKmlkImJk_@WU@ƒkmK@UV@„¥XIm@@Wn_@KmVm@@I@aUmkXm@UWV@mn_@mƒUUJWIUWV_WƒwU@mUknVVmxU@@VUV@zU@UVW@ƒK@šX@VLUVƒKƒz@J@VnX@`±bUXVƒ¼™lšn@xmxÝL@‚Ubn°@XWVUxUVVnkbWVXV@Xš`ÆÈ„KnƒlLVanIV`nLVUlƒ²ƒV@V¦„l°¦„w‚b@šnKnLVbVJšIVƒXK@b‚n@ènx@xVbUnV‚'], - 'encodeOffsets': [[ - 112568, - 24255 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4506', - 'properties': { - 'name': '防城港市', - 'cp': [ - 108.0505, - 21.9287 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XV@X°°U„lxkbVlVb@nkbVl@xl@@b@n„‚XbVL@Vl@UbV@@JVLXbmV@bVVUXUJU²šW„XlKVb„@VVXKlXšWlXXWV@VXJlI@x„l@nlbn@lln@lbXalIVK@ƒVwœUVb‚U@aXylUX@@aW@U_UJmU™nVKUamL@Kna@aVUkkVWU_ValaV@XK@kV@@W„wVXV@„V„KVVn_lJlUXkWaXWlkXU‚±kU@ƒVUlbœkVmUmlk™¯Ý™™W@mb@¦VxULm™kJUU@ma¯wƒmkX@VóJ±bUVUXÝWk™lWXXlƒxUaƒbƒIğ™Ç@U@mVUKkkm@UJm@XnWV@x'], - 'encodeOffsets': [[ - 110070, - 22174 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4505', - 'properties': { - 'name': '北海市', - 'cp': [ - 109.314, - 21.6211 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VaVLnK@IšJVwUaVaUkWKn_mƒX¥WwXm‚LXalbU£UyV„Å@ݙwm@™°l›LÅUƒmk™mwÛaƑLÝUUm@ȣƃV_„Ó@£UƒƒUVƒ„™¼U°W̄™ÞVbXbôx@b@bmV@ǃ™UÝ@@ĢU`m@ŽnxnIVV‚VX„VL@`@bV@@aXbVL‚@XVlKXLlLVl„knJ@I‚WVXXKlVnL@xl@UVVX„a@UV@VlX@VUV@nK@bl@nVVIVmXIV`V_lWnn„@VJVXnJ'], - 'encodeOffsets': [[ - 112242, - 22444 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/gui_zhou_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '5203', - 'properties': { - 'name': '遵义市', - 'cp': [ - 106.908, - 28.1744 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@@UnUlJn„w‚JU°VL@bnVšU„wlJ@XƒŽXVlU@klVUJknl„UllL@bUJ@xULUlƒ„UblVkblbnw‚UXmla@„wV@VK@L@UXaVKVLXWƒUVa@U@Im@@W@£UKUakKWIXU@al@@llUnL@W@Un@@VlUV@VIUanKl@Xb@lmxVb@b°bb@nlJVVnnJ@b@L‚V@ln„@LmV@Vx@blnVK„nlJXIlw„J@҄b@nlK@Un@UL@VVVVUUUVK„l„@VUVL„J@UVUUw„@Wm@™„UV„ÈVlbUb@JšLlŽX@@x„„ƒLmŽk@@nlx@bUJUzVJ„@@LVxUV@bWxnLnVVK@_‚K²xVbV@n¥@aVI@b„@l@Va„Knb@n‚`n„mmý„W@ƒU_šwV@VlVV@Vn@n„˜@nI@Jn@°¦VaUU@™„mVVWVaUńU@aVKnƒVbVUmmU@a@kUw™m@aUUmUUJ¯lakU‚aXaWUUaVƒkk„amkmUnVlULƒVlJ@XU@UJWUUw„k@aU@WbkWƒL@U@WU@@XUKmV@aUVwUĕUJUamUUVUÑm™nIVJ@kl@XalJVn@KVLœ¥@UWIXWmU@mVUKnUWLUKUaWUUKVU@U@anUny@UlUkK@w@a@aVUƒ»UkVw@Wmk—JƒÅmUUVmwXalLXWWUnam@XkƒJ@UVU@U@W„@@U@I@Wl@Ènlw@KXLWb„lVUkalKUU„VVaV@@wnIlaUmkUƒKWU@KkUkLWaƒKUUWUn@VƒK@LnnWJUIƒVkUWVnV@V™@@XƒK@VUIUJ@IWJkX@VVJ™IƒVkK@I@UVaUWk@m„@wnUWKk@mxk@@„lV@b„xmb@x@VUmLkUƒJ@nVV@b@VkLVbU`¯I›l@™U_UW@UU@™™ƒK¯wm@™xƒL¯¥kIƒ™ƒ‚@bkbƒ@Ua@ƒm@kkW@XVbmV@ŽkV@bWbUbV@„¦ƒxXlmVk@ƒ¦™bkaWL@KUImK@wUK@VUI™b@bmK@LÅy@akXW@kbWlXblL@ŽULUbƒ`@U™kUymX¯@mšUJUUJƒL@Lm@@WX@lU„VlšXll„@l@Èk°V°Ž„X@VU@UVll@XUJVXUVm@@VXLWlnV@Xƒšk@mVULnxV@@bm‚kL@VWLUbU@UVm@ƒb@ķ¥UnmJ@UUVƒkkJUšlÔU`UIW@ƒ°kLUlUI@WVI™U@mWKkXk@ƒ‚WU@bXšW„@J@xX@l@LVl@xšLVxXX@x‚KnxVknb‚KVV@U„L„WlXU`@nUlšX@llVXšVU„KlkUKlI@anKVLXKVaUIVWV_VK@VnLlU„»VKVL„m'], - ['@@@KlKkUUVVX'] - ], - 'encodeOffsets': [ - [[ - 108799, - 29239 - ]], - [[ - 110532, - 27822 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '5226', - 'properties': { - 'name': '黔东南苗族侗族自治州', - 'cp': [ - 108.4241, - 26.4166 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - [ - '@@VV@XkV@bUbWJU¼Vb@Vnb@bš„@J@bƒL@LV@UVƒlUI@a™KULVb@bkJmx„šlLVxknVJk„‚xnKmnnL@bn`WIXlWLU@UxVbUVmKV„XI@JVIVJ@U„L@Wš@@UmUXUlV„UVJXImm@K„L@UVmVXV‚„LXblKlV@LXV„LlVVnkbmJ@xnXl@šbXa‚@Vana„ÒšL„m‚VnIl‚Þ¦°k@b„@@lV„nJlUnš‚VX_„@lVlK„šV„UUxVLVWVIXJšUlnnWlI@KUaUUVKn@VaVXV@na@ƒmw¯@mUkJUamI@lk@@am@@I„ƒUmVImUUw˜™@anUVaUU@LU@WaWUXWW„wV@VwnU@L@ynbl@@X@a„J@nW@@Vn@„lVLlxnI„lš@@UWKUƒnIlJXIVllIVVš¼XK@aVI„V‚@@bn@VKXLVKVVVInw„J@UWI@mX@WKnI@KmU„UVJUL@V„KW@@k„@aU@@W@InJWUXwWI@Wƒ@¯wkaVaUIl@nŽValIXWWI@UUm@anwWkXWWIUbk@UJmIUamKVUUUVVama¯VkIVVUlKnXVwX@@WVaUUVa@IlƒaVmƒkna›wk™UU@ƒU@mUVƒšUVwœl°LVbnJVU™¯la@mX@@UWKXU@aV_V@@JlkUƒ¯@V™nK@km¯k„U@ƒWUW@mmƒU@™kmlU@wkL@WƒUkL@VmLƒJ@b@V@bknUUVK@UVKUK@Uk@Wa@LUVVnUbmVk@@UU@@aƒV¯K@U@UU@WmUL@aU@WV—w@ƒ˜I„xXll@UX‚K@KXXVJna@wWaƒ£naUKV„m@UU@mUmalm@@XkVm@U@VƒLmWU@kkWxU@@bVV@VkXVlƒVƒ@UUk@@ƒmI@KUw„m@UmVƒUUwU@lwkV@IUa@mUaVIVKVa@w@U@™UJkb@n@bmJ@XmlVUxWXkJmUkUUVW™xUlU@ƒaULUšmbU@@‚WXkmƒL@xUV@nUxÇm@„XLWbnlƒnV‚nnUV˜U‚nVVz„@lbUVVlULVb@V@nUJkwm@Ux@bWbUK@UULka›JbƒU™U@U@lUK@XUJmn™J@bU@UwWa™x@zkJWnUJUUVšVV@bXn@xVb@J™L™m@X™w@`@bkb@VmXUV¯L@mW@@n@V@‚ƒL@K—IW@@aƒaUx¯@U„m@XbW@@L„V@bnVWVkKUzlV@bÆa@lnI@VV@@LnVVKUaV_VJVbnU@bn@‚‚nX@yVIVxXKVLlUVaXU°J', - '@@@KlKkUUVVX' - ], - ['@@UUVUkUmV@ln@VXVK@K'] - ], - 'encodeOffsets': [ - [ - [ - 110318, - 27214 - ], - [ - 110532, - 27822 - ] - ], - [[ - 112219, - 27394 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '5224', - 'properties': { - 'name': '毕节地区', - 'cp': [ - 105.1611, - 27.0648 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@UkVƒ@k‚W@Xn@@K„KVIVVIn™°@nWVzšl@V„_VaVK@kKWaXklaX@lW@bÆz@KnL@ašaVJ@UVL@xnLVJ@LXKlbša„¥l@nUWk„wƒ¥U@VaXa@amLkUƒKmƒ¯kƒmkIUaƒKUIWƒkKm@anw@mlwXIƒmƒUk¯@a@amUƒ`kkKWVkxmUUak_mJmw@w„mXUW¯X›_@WnI@aVwkWWýŃU@WLkU™aUbVV@lUVVnm@kUmV¯™kK™LƒwmVUUaWV™aaWw¯wƒÈ@VULUVUUƒK@nWJkI™l@Umxnbm@kbUJƒa¯bUbVxmLUV™aU@VUUWxkVVV@bUV@XWbnlUbƒbUJlbUV¯b@z„`WbXnmbƒaƒwUwVWUƒbUxmbU@Uam™@Vƒk™VaƒwVaUƒWI@mUKóz@lUlÅ@WIƒb@xXxml@XklULWKUmwUa¯KUXWJkaULmKkLWbkKUVƒImƒƒWa@kUaULƒW¯LƒK¯@kbƒL@b™x@J@bmnnlUšlzU`U@@Uƒb@„m‚n¦°bU„Vx@bkVm¼mx@mk™mVV@bkxVn„aVV@bU@mL@b²`lIVV@lXLlš„bVxn@@bl@XllIVšnbVšn°°wlbXw@mVa°lVnU@mš™VLVbn@@b„@@WVnUV@Xlxn`VznJVb@L@bV`V@šUnwšU„@WUXKV@UUlmUUlaXalLšm„bšIVbnJVIlVVaUUnWVXn‚VL‚k@ƒnWnblnlb²x„xVKVXlVXLVW„LlUVJna@wVL„¼@JVX@`@nnx@nWJU@Vx@XXKšŽUblxUš°„LVKVVlL@KnbVUnJ„IlUšƒnKl£VW„x„IlJ@nšVÞUVVnb‚VX@V_°lnK', - '@@@UmWUwkU@Um@@VkL@V@„„‚V„VkV@nbVa@ƒ' - ], - 'encodeOffsets': [ - [ - 108552, - 28412 - ], - [ - 107213, - 27445 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '5227', - 'properties': { - 'name': '黔南布依族苗族自治州', - 'cp': [ - 107.2485, - 25.8398 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚V@IöalK@UV@@KUaVIVVœLlaVbVWnX@‚@LnUlxl@naVLXVVaVU„J@lUUanWWI„@VlV@Xbƒb@V„n@VmVVbk@kU@V›V@X„J@zn`ULW@kK@_WVUK@LUb@Jlxn@nnWlU@@b„x@XVVU@UbVb‚@n`VI@VVLUlUIUV@KmL@VV@XIV@@lVLVmXV„@WLXLW@U`šnkb@Vl@UL@VVV„L„llX@`lIXb„J˜IXW„L‚aVL@ŽXXW‚Ģ™b@bmK@L@°@Vnxmxšn„K@xVn@VkL@V™Lƒakbl`VnnxVnUlššV@@VVXV`@šœk°JV_UalK@U@aUU@m„IlVnK‚V@U@wnaƒw@akU@ƒl@nwl@XLmV@xnƒl@VXUb@V@JlL„UšJUI@UlWUƒnLVUUaVwV@XKWkXJm_@amKnmmLwlƒUIlmUwkKƒ™nwlI@aUaVKšL@bVJ„kVUU@@K„K@a@I™ƒ@ama@UUaV»XIVa@alU@WUU¯IWVUbkVUKWLUwUJ@zmWm@@amVUaUIU`VbULmU@KU@@UmJ@kÅb@akUVylLXUmU@aƒU@KX@Wan@Vƒ°@Vw„b@bX@˜J@L„K@@U@mX@@n°KVUnW@Ula@a@_šx@WšnšK@IUa@wWm@aUUU™VVVIXmlI@yšwXbVxV@@ašInmVI@WVL@k@VšV„V‚aœIlbVK@VVLXa@aVwn@lxVI@m@UUaVKUkVUkaƒ@UymUV—VUmmU„mmkXaWK@ƒÈnVw@mVU@w„KlnXW@V@naV™VKUk@KVIUWƒ@mk@KXU@Um@@lVƒk@UVJna@UWaƒL@a@ƒXa@kmmVUUk@mkkƒamJ—ImJUUmIm±aUUkambkamVUU@VlbUbVVƒxX„WVUU@VUakU@UmUV‚U@mnUVVnUbVJ@b—UW¥kLVamVkUaWJU_UVWKk@@nl„UVVJUXm@Vm@UnVlmbnmJUbULU@@UUKWVIWxnJVb@xUL@bUJWIkxƒbkb@xVJƒbmU@kW±LkKUkVa@a¯am¥ULkalÑlKXUWƒXƒaVakImVƒ@ka@UUƒJ¯aƒX™mmb—KWU@wUUƒaUa™KmU@UXlWb—¼WLUKUb°„UlVbkbVL@VƒšƒJ@nVlUbUXmJ@VX@lbUbU@@bWb@VnLVJ@bVVUz„ŽVL@lnL@b™VVVULmKUk™Jkbm@ƒxVb@V—kƒKVnnV@b@ŽWXU‚„nV„l‚VVXVJUXlVXbWV@VU@Ubk@@KWbUUmL@JnXV°XJ@_‚`UbkXVVlÆkbƒ@VLXVV@‚V@k„KXX@`V@@n'], - 'encodeOffsets': [[ - 108912, - 26905 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5222', - 'properties': { - 'name': '铜仁地区', - 'cp': [ - 108.6218, - 28.0096 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°a@aÈbVUlU@aVKnVV„VUlyX¹lWVa@U™VƒnUVU@m™@mUl@„mÞw„@‚xnIVbna@KVI‚J@kwV¥ƒUXÇVkVW@kkKWU@aXUWmnIVa°VXbmL@VVbnVVVUb™VbšJVbVKXkVKVanU@aWnWUWa@U™nk@mVIVK@wXxlLXbVJVlKœbl@VI@mšaXalVV„VbX@@ašalnkx@b@V‚b@Vnx@bVVUXn¤WXn@Vl@Vlzn@š`@I@KUU@ƒV£namVkXa@aVK‚nnU@anVlKƒa@UUU@amk@»kƒU¯@aš„VWnkWmkImU@akaVm@»VUV@UKnkW¯XWlkUKnIWaš@nmlIXmWUnwUwWm@wULmaUJkIUaƒaWa—klwkwmJmU@bkJ@XUJ¯W@XbWbUKUkWJUUVKnn@UmmXUWa@mU@@UI@WmXVykwm@kaULWwU@¯ƒlKUUVU@mU@UkmaUbmV@b—š‚xVnVUJVnƒ„@Jn@@bl@@knJVblInV°@nx@„mbU@UWUbm@ULVVVb@LkJmXkm™VWIUJUXUKVwƒV™UƒŽkLkUƒ@W`Um™kVmIUƒ@kƒ@@a¯lÝ¥kmJUƒn™KƒÑmbUb@Wb™ak@mWU@UbƒUVVkLlbUVƒkXaWK@LkxÇmk@@X@J@Vƒ@@X@VUV@V„IWln@mbXVWXkKWbnxVUnV„ƘInl@XUxVl„¼UV@b@b@xlLkV@VmzmV@b@VUVVLXVVbVLXKmVVLU‚@nnVWXXJ@V›¦UK@LUmkIWbk@@lUImJnšVÒVUnVVbVIVĖUxV‚@bnUVL@WV@@X@V„KlXXaV@@bƒlVxXVVIV@@WkI„UVKUkVmlnnŽƒbllU„VbXVWbblVkb°ŽVInVVV@bšnVx@l@bnVVnUŽUam„UL@bƒVVÆUbUXU‚ƒn@šVVUb'], - 'encodeOffsets': [[ - 110667, - 29785 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5223', - 'properties': { - 'name': '黔西南布依族苗族自治州', - 'cp': [ - 105.5347, - 25.3949 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VL@Vl@@IXW@kVUVbnW@XlKVVnU„VlL@b„aVbƒb@xX‚°ÔUxV@kbm@VxkxWJœ„V¦ƒŽ@ÈnšVKšxWXJmV@n„Ò@xVbn@@blLk`VX@bššla²JVUlnn@U±lw@wnw@mlwVIX@@m@klKnk‚a„KnwmmXkƍVm„Uš¥l@nb°n@„aVwVmVIVnI@a„¯@mšU°ƒl@@VnI@JV@UV@b@IUbVJmXöºƒzllUbVa@aXUl@„U@llLnKVaUa@UmK@UšwV„bnKV@VwVK@UXƒV@Vbn@‚w@U„WnX‚@„a@m„I„™@UUKlaUaVk¯ƒVaVLXK˜»XaWk¯mƒkğwmW@mIƒVkwƒJUIšÇVwU™UkVKkƒm@UkmU@WÅwm£Vƒ„m¤¯IkJWa™_™lUbmJzÝJk„ƒUÇVU„ƒ‚@bU„Ýn™m¯LUb@`mL@VkL@VƒUmmk@UU±Umka@kUƒ@ķymUkk@mmkÝmUaUakImV@V@VÅLƒ¦ƒJUXmJXšWb@n°Æœx‚¼nV@LlbUŽUbmL¯@ÞbV¤nbVx@bUVlblIœ™@KVVUnVJUn@VlLUlmLUUUxmK@I@@VW@@bU@UJmUkLVVUl@b@V'], - 'encodeOffsets': [[ - 107157, - 25965 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5202', - 'properties': { - 'name': '六盘水市', - 'cp': [ - 104.7546, - 26.0925 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ôyVL@nXJV„Ub„x‚bUŽlšU„@ŽšnŽVbV@naVw„a‚VUXVx„x„bnaWmXaƒ_@y°aVUkaVI„aVamkXa@WVU@aUUlUXwVV@UVšbVUnKUwVa°a„bVIlan@manw@VšklJXI@m„LVVVUVK@U„ǃk@KUa@UkaVU@UVWV_XWVXVWlLXKlLXaÆKšwVL@akKm@Uwƒ@@XUVk@VUI@wWK@aUV™I@UkK@ƒmL™Wƒ@kImJƒUÅVmkXUW@UJkx@nmx@xkxV²m@kmUV±Ikb™™@aUWl_kK@am@Ua@wƒÑ@mnUWIX™wULm™@DŽU¥›ƒXIlwUwn@laU@Vw¯ÓW@w„aUaƒb@akKƒUmVUUkL@WmXUaUV@lWX@Jk@@UUKULmLUJmzkKmVX°VšUnWKUL™ƒƒL@mU@UnVJ@b@„UV@Xƒ`m_@l@@bmbXJmnnš@°˜wnn@ŽVLX@V‚@nVl@nk@@b‚l@nn°WlXzW`XXVKnUlxVbUb@‚V„Xb@Ž‚VxÈbVlnbmn@ŽkVUL@„ƒŽmLUVVL'], - ['@@@ƒ@UmWUwkU@Um@@VkL@V@„„‚@„V@VkV@nbVa'] - ], - 'encodeOffsets': [ - [[ - 107089, - 27181 - ]], - [[ - 107213, - 27479 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '5204', - 'properties': { - 'name': '安顺市', - 'cp': [ - 105.9082, - 25.9882 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lL@bUK™xÅLWbkKWLkKUXUWWXU`UX@VUVlb@VVb@L„l°xXx‚bšbXUVb‚VnU„xšKlL°šnUlVn@UmVU@kUUVašblVXKV@ƄXþlXUxnU@mVK@_@ml@UU„@šblU@KnLVyUw„@@UmkšWVw@UVK@VXzVK@n„VVUUW@kVJnlaš@nKW™kaWL@U—™õb@JU@mU@@_WWƒL@lUU@WUUK„@lakÅUUlWVa_@`WIU¯mW@InKVVXa@Ll@VaV@@UXUWakUVWUIUW‚UkUƒƒmVXW@@amUUm„L˜l@UUa„wn@lašIVlnLVKUUšU@amK@kUKƒVyUU@aUImK@UXa@aV@VakaW@@UnIVWVaUkƒb@mWƒX@Vxm@UaU@W„@VULUxU@mLƒaUŽ™x@VnL@VVbUbmLkK@kƒVk@WV@bUbVakk„yõ¹nWUIVa@J@aVUU@@ImJ@Uk@¯„™V@nƒ°@bmJUUJUnUxƒbm@¯Žmak@™¦ƒVUnŎWlnnmxƒLbmlkL@l@nWVnlÆU„VnIlJ„@šXnK@„lL@VšJVU@bXL@xVJUl@VU@W„@Vxn@'], - 'encodeOffsets': [[ - 108237, - 26792 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5201', - 'properties': { - 'name': '贵阳市', - 'cp': [ - 106.6992, - 26.7682 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nŽlLX„VJ„LVblJ„n°ln„„LlVnKlU@nUUa@WlX@l„n@‚Vb„@la@a„„šlJ°¦„Kšwn@°x„LVkUmmwUmk_la„bšK@UlK@UUm@wƒL™mnwmw@U@¯@KnL@aša‚ġXWW@UKbƒKWX—JƒIWakJ@_kWƒkƒKUU@UVKk@@Ula™mV_X@WKXKƒ@WUUnUK@kU@WJU@@UnK@LVUVJVkUK@UUJm_@UaVaV@UU@Wƒw@aV@Xkmmm@kw@IVa@KVLXU@`lLX@VKm_@yƒI@WœU@UlVl@UanU@Uƒm@U„aWaU@Ukƒ@XJmXVbkV@ŽƒIUVUbWUUKmbk@kwmV@K@mWUXUakb›KUUUJVb@LU@@VkL˜š@VXKlbXšmL™@kbm‚UI@lVXUVƒU@mULWy@UUL@VUx™Xnl@Vƒ@VxUzmK@LkV™aƒ@VVk@@n@`UL@nmV@bmJ@Xœ`WX°WVƒn@xnxnIl`VbnVlwXUlLl‚„_nV@b@bl°„V„nWJkx@nmx@b'], - 'encodeOffsets': [[ - 108945, - 27760 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/hai_nan_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '469003', - 'properties': { - 'name': '儋州市', - 'cp': [ - 109.3291, - 19.5653 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@஼jpnr’``ŽpRVHʘ̤žZt^JÖA˜[†CâlTébQhRPOhMBcRSQiROE[FYdGNOEIH]MgEAMLLIAG_WMCSL@ED]PCLYC[ZIHgjSxJTMbHNEFCMEE_HSDFHSLECRNSFDRICHNADGPI\\RZGIJTIAHLDQOHG`GTNCOIC@eIGDWHIS[kiE[FMbECZS@KKS[FDWsCeRuU_DUQNOE[LKGUBM¨EDQP@HWHGDImXƒCog_~‹I_fGDG|QDUWKBC\\ore|}[KLsISBHVXHCN`lNdQLOnFJSXcUEJMCKSHOUMDIm_‹DI`kNDIGEYFM\\YPEEIPMSGLIKOVAU_EBGQ@CIk`WGGDUM_XcIOLCJphHT_NCISG_R@V]\\OjSGAQSAKF]@q^mGFKSW^cQUC[]T}SGD@^_ˆaRUTO@OHATŸ”'], - 'encodeOffsets': [[ - 111506, - 20018 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469005', - 'properties': { - 'name': '文昌市', - 'cp': [ - 110.8905, - 19.7823 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@€hIJ¤Ī¯LQDaFßL[VQìw€G‚F~Z^Ab[€¹ZYöpFº lN®D´INQQk]U‘[GSU©S_­c‹}aoSiA£cŁ¡©EiQeU­qWoESKSSOmwŸćõWkàmJMAAMMCWHGoM]gA[FGZLZCTURFNBncVOXCdGB@TSbk\\gDOKMNKWQHIvXDJ\\VDTXPERHJMFNj@OwX@LOTGzL^GHN^@RPHPE^KTDhhtBjZL[Pg@MNGLEdHV[HbRb@JHEV_NKLBRTPZhERHJcH^HDRlZJOPGdDJPOpXTETaV[GOZXTARQTRLBLWDa^QAF`ENUPBP…\\Eji`yºEvåà'], - 'encodeOffsets': [[ - 113115, - 20665 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469033', - 'properties': { - 'name': '乐东黎族自治县', - 'cp': [ - 109.0283, - 18.6301 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ªVLP`@PEdNRAHOPEAKHEVL`GZBJfvdTAXNNTZJFPrHHNpKTD\\ILHbEVd^J‚OHLh@NNBnHP`\\xH@NBRLJTlŽNv_^CTLd@bNDVFbxdFV€UPBTKOGEOUO@OEBXQP[H_EI\\EbeYa@UO_J‹MEJ_IEDKJUGMDcNUd_FMTEJSGoZ]EIYGO[YW‘gEQ]a@WHEDQKUSDUGAbYBUpSCYNiWqOSQEoF[UcQISWWNMSDe_cLQ_UBiKQOOASQAWgS­ā]ZaŽSPÝZ]XMXSŒ[^oVËNgNKlE RôEø'], - 'encodeOffsets': [[ - 111263, - 19164 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4602', - 'properties': { - 'name': '三亚市', - 'cp': [ - 109.3716, - 18.3698 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@®ĂhTBXTRPBRPjLVAR`dKf`TC‚NXMTXRJVdE\\FpTRrPjXZMTDVoZABaVHTCLVCRGF@X^bFR’hZXP\\ZHHMA[^wBWXJlW¤EJ[bCTOF‹WWMm@ILMGWQ@DQ^QNWFSHEbF`OXNbO„VNKTEPDTLTCCVTREfvfEHNbRAENH^RJXCFHNFRpVGHWISDOTMVCZeGamaLoLÛD¹¹ėgsia{OųE—Tt‰lɂwr}jŸR±E{L}j]HąKÃT[P'], - 'encodeOffsets': [[ - 111547, - 18737 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469036', - 'properties': { - 'name': '琼中黎族苗族自治县', - 'cp': [ - 109.8413, - 19.0736 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@bRFnHNbHŒgN@NPEnbXP@bND`NT\\@\\QZb@`@J]V@XhžDpW„nCJGHGXO@CR§FANHVKLF\\MPVR`CvVfQtDPKpGHG@S`WJP~^dSTHWX\\RHTFACQTIAUPOU@MG__IaYSFQK‘NSbORHXCZeTFJg„B`YBMNMFi~IVDV[tGJWXGDQRGF]ˆJrALgESLSAYDGIaFeXQLS\\MKSLSQYJY}eKO[EHiGSaK[Yw[bmdURgEK^_kcSGEOHKIAS]aFSU@Y]IWFUTYlkP_CUOUEkmYbSQK@EMWUuAU\\M@EpK^_ZMDQ^OXwC_ZODBrERURGVVZ\\DTXcFWNIAWJWAYUUFYEWLQQaCIZeDM`cLKRGpanJZQd'], - 'encodeOffsets': [[ - 112153, - 19488 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469007', - 'properties': { - 'name': '东方市', - 'cp': [ - 108.8498, - 19.0414 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ºŸx‹JYZQ”IŠYXLl@dR\\WZEn]bA\\S~F`KXaDeTiNO^EEKWEDQXITBXaWaDQMUJOIaTWf@NJV@dSxGZ‰Fu_@WMKAUˆ}AQ@MwG_[GOAmMMg@GKP]IUcaFKG[JSCoLGMqGEOYIMSWMSBucIeYA_HUKGFBLOFGPQBcMOF_@KO©UAtERadwZQ\\@ÊJÒgòUĪRlR°KĮVŽLJ'], - 'encodeOffsets': [[ - 111208, - 19833 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4601', - 'properties': { - 'name': '海口市', - 'cp': [ - 110.3893, - 19.8516 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ńZƂt̬æßFuz¹j_Fi†[AOVOFME_RBb]XCAKQKRSBQWSPY\\HbUFSWSPoIOcCOHIPkYCQ]GdGGIFQYgSOAQLK`MFUIGa@aQ\\GGUFcHKNMh@\\OYKAigsCgLSF]GOQO]@GM]HyKSHKPW@Pxi@EMINYREXWRQ@MQcFGWIAwXGRH\\yDI`KJIdOCGRNPNtd\\UTMbQYi@]JeYOWaL[EcICMUJqWGDNZEXGJWFEXNbZRELFV]XQbAZFrYVUBCLNFCHmJaMIDDHXHEhQNXZ_TARFHVB@DTQIRR@YHAJVnAbKFUEMLd\\c^ÍÞ'], - 'encodeOffsets': [[ - 112711, - 20572 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469006', - 'properties': { - 'name': '万宁市', - 'cp': [ - 110.3137, - 18.8388 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@^J@ZTVbET^JBGLFPTHld]`FLQhcVanx\\\\ZbLHTGj\\FLP~fIZRZPVTQFSVAFJE^NDLEE[~LjsxVTG\\NZZNGlLRRGLJTV@hPZANN^@T\\NEPPbDZXO`d^HSvcJDIV\\XZAJUFCLNP@PQ¤@[ïKLÑIÏ]ÇE±I{uƒ­YśUćFcYUmsVeBSVgB[RO@aYYPO^]@UVaNeDShMLG\\EfFVE\\F`'], - 'encodeOffsets': [[ - 112657, - 19182 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469027', - 'properties': { - 'name': '澄迈县', - 'cp': [ - 109.9937, - 19.7314 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@T\\GJCXJH@fJDDPNCNJENN^NLHBNSx@DDYbBLLDRbjZTj@`XXTlG^Xr@PJLW\\WLTlWR@HDJTD@X_PO@STMDNTMVV@NLDM`M\\XM\\JNBH[PYZ‡úYzŸ`Ċ\\ÎÝd]c[NKVFLEBaUmBIZGQ@JQSR@CUAEGBQ`SWYRMFgWGCGJCbNnIDGMEDKVAZUEqBYRa^WEUFKYQMaFWXEHIFWMYHCrXVIIiaK@aMCUYNSIISTwXALKH@XWXIEIJQCG[IEQDE_XSBaa[AIPW@]RS[FWS[CD]PEBYNGFSaSyJG]@ugEUDQlGHiBKHUIoNSKqHFaPMICK]UUHIPDJMuCA[SCPIDIOILGAEmU[POPBVSJDREBGS[QXWSGcT}]IO_X@TGHoHOLCX\\ELT@LYTD‚aFENF\\lj'], - 'encodeOffsets': [[ - 112385, - 19987 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469030', - 'properties': { - 'name': '白沙黎族自治县', - 'cp': [ - 109.3703, - 19.211 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@D\\RV]dTXELnHr]^@LETBBRTHPi^[@U`QTHDJ`MGSogDIPKdJ`WVNHCXHl_DJR@AH`FBVPUJLHKNTJOFFZON[ZEHFCJlMJ_ŒCn`CJVNGPLTNDFIdVTWEIPmRKMc_kDMWGGUTAtJLK~\\f{pqD[LAVXRCH{HC`eŒJ`}@W^U@I@_Ya[R[@MSC_aMO@aWFmMOM@‹haGGMEmaQ[@MESHaIQJQ……MckBIw[AOSKKAMPSDSLOAV_@@`KJRbKRDfMdHZERgAWVsDMTUHqOUr@VQXTT@Tƒfg‚L^NH\\@heTCZaESNObHPƒHeZF\\X^ElM^F^'], - 'encodeOffsets': [[ - 111665, - 19890 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469002', - 'properties': { - 'name': '琼海市', - 'cp': [ - 110.4208, - 19.224 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@TP\\pATHTGlZDJGAQjE\\Rb@jVBDCN`JZ[NCNHNXbULPrP\\KNbMTLjJJRFP`“pNLZz^FLRHjVPZ@hxVKbHBHMNNJFRlLzGPnNHhIrHHADcPWdUAmEMVQDSKYHY\\EhBN^HpXGNDBNNBnIß‹Å_g{³So]ã@ORO@KMEDIVYB[WJUICudGTc]P_YWaCOOMFS[]@MMYBgOU@ISHKQQkKMHYY[MSHwUit}KF\\KFMCF]EIUBETSROUKTLT[NKTWREfJbCHBZKTFTKh'], - 'encodeOffsets': [[ - 112763, - 19595 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469031', - 'properties': { - 'name': '昌江黎族自治县', - 'cp': [ - 109.0407, - 19.2137 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@`ZĤd–`òüˆ˜ “BSPGP@VSbQ`‡@]HC~T^SE]N]FkW]E[fY„GGOPaTMbFDYfS@g[MGK]h„e@SSSRW@UVqrPVGNStCXUhBFQGYNcCeLQQaLI@_`@EUwcEaCUaMc@SK]Du`MSkKI‡~BVNL@X`‚EvYŠwHcTU@MIe@SXJbIPNVCRXbWbSAWJCRXFFL]FMPSjCfWb_L}E[TaBm^YF[XcQk@WK‰Z“JYRIZwŒ¹ '], - 'encodeOffsets': [[ - 111208, - 19833 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469028', - 'properties': { - 'name': '临高县', - 'cp': [ - 109.6957, - 19.8063 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@jD`hNd\\^dZädĒH´Op@ˆùZY\\OAGIMN[[W_NCNMKU@NUMSNCTSP@`O@WSCCI@GXQSkXKX[IK@OWqH]SkWW@_SiiYQaKCAKZaCCw@MTGAMKM]FMMIMDSM_HGHRPKCBGSJJIYH[QOJCHMBDGQJECMTDQKFGTCEGTF`NFEDMFaGSNwIiTGhYJD\\KZODC^@FTKND`XBHKJNKFBNhG^FJMPcHEZF\\QPRjQTAdgNOPgQaRSê'], - 'encodeOffsets': [[ - 112122, - 20431 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469034', - 'properties': { - 'name': '陵水黎族自治县', - 'cp': [ - 109.9924, - 18.5415 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@R]NC`YL]FoN@V[vBXVFNL@TRZalnVFVP`DlOZkVSXEE_F[EUFeH[NKTgfCbMVU^@P]ZObZP@\\QhATUfAtUasñiāEoI]eYǯ@aKmaeƒWuCºKÜKpnbHbYfUDSNCPJTRAHJTDJSfDNLHXC``VBNGTYCQDIXMDSP@xLNEFRNXBIpVNLXah@RgF@`qOML@LJNSPLbaHAh@Jdj'], - 'encodeOffsets': [[ - 112409, - 19261 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469026', - 'properties': { - 'name': '屯昌县', - 'cp': [ - 110.0377, - 19.362 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@\\OnVBFKHPJCJOJTDB\\vDINOCGJVVL^JDONEbrGTLpMVJLGjAHGRkVChF@vH^zIbTETMHAZOFC^\\DXT\\EffAP\\PdAV@UIYfS|S@YPICMeM@sC[_A]VQEwyHSMuNcAUlQJMVGMS@mVBZPFO\\CSFQK[LqDMACiUa@[QiFBRIHYCHkGSBS[oSOqB‡IE^QHCRWHIXsHU\\UC}JEjMNAN_ZƒAIhSEYfWDQGaPMTL’ERZTJb``NHV@'], - 'encodeOffsets': [[ - 112513, - 19852 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469025', - 'properties': { - 'name': '定安县', - 'cp': [ - 110.3384, - 19.4698 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@JjDNdJ\\FbKPXfZ^Ij@RZNaVSc[MsMOHQPDJcLIJ_zCG[HQxWJBHXdENRR@XQFWZQQGOFSWUCI[WCJuRGLXNMPLhCl[Ta@SqGgJMGOmyHkKEQMINMAGaGULgwY@UOGiKQ]EYyMK”oO_QEIIKiNSMa[LqOKOaVMWMGMDY\\_IKrL\\ERT[DEPYOUA@nNTUHINkRBVMdNvGTxzRF^U`BD\\@tfNDNOJ@Z{TeTJZ@VU€cB[OBOeeQT@^OXBJb\\AbWTF`RCJFH\\RDJIJFXW@WLGBKxWTSJJMTVZND@bbL'], - 'encodeOffsets': [[ - 112903, - 20139 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469035', - 'properties': { - 'name': '保亭黎族苗族自治县', - 'cp': [ - 109.6284, - 18.6108 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@FJp@fxpQ\\ApN\\GNPNBM`HLMrXLXj\\PEHnI@WUCEM\\GTc\\GZYHTPBHRCPTd€H\\K\\@HXi–BJILJJAVNTOZJNtFPC`YxDPWci@IBgbGKaTOIM@KNKrP@_hE@QbgKWUMJoWAQMFEKM@wTONCJWRCZDHSAM_UD_GWMKeCITSCGIQBGXUHQoMEEGWDQIG]FMQBMaFGueFeSQDUSDSKOCSFMLƒUaPWM_PaEGFETMX]RCRR@HXKN@JNnXXEŒSPaDI\\£FkXWIAX]xB\\GN'], - 'encodeOffsets': [[ - 112031, - 19071 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469001', - 'properties': { - 'name': '五指山市', - 'cp': [ - 109.5282, - 18.8299 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@TCNOLBTLBPx\\AJdl†NR†RIbJTGNF\\@RcIYbmHoLQdKN_fCJYbDRRXKZFVEZVXBXIJBXMdESW[CUYHUVQFQAqsEIMPYMSBUIIJKAIj•GW[@[LGScDOGQOAGSYZ[HSd[HFNVD@XmJFG[OWiWKNqGKN_MAMO[HoM[BoRewo@Y^HpITSFENc`MVCdHNIVCLJFI`NFIŒP`@VZbaf[FFJG`O\\WRFA@PVPFPPH'], - 'encodeOffsets': [[ - 111973, - 19401 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/hei_long_jiang_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '2311', - 'properties': { - 'name': '黑河市', - 'cp': [ - 127.1448, - 49.2957 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VÈÞ@Žkx˜nXްVÈa°V@kôw„b‚š„JVškXlVUx„„@ŽlL@xkVV°ƒ„VbxlVUnVxk@ƒ„ƒKkŽVb„Il„@°kVl„@„™lÆnkll@@V„VXƒŽš@V„²bUlƒVlV„U„VÇn@nkJšŽlkVbœ@›x²V@n°VUnlKU„n`@n°bWLnVUblVUVVbknV`°kkŽl@@V°@nz„J@XšxlWXb°n@bƒĠlbXb™bVbƒJ@Všb„a@„„@lbUbšVmnœ@lšVmnIW‚œ@WbÞ@„n@x°@š„ĢaƐéϚnœ„‚lȝĠŻÈwm@ôçU™mm£Xy°UV™›@wÈ£Ǫ¯kõÝçUњ™Uķ‚ƒĢkVфÆšÞU°nŎ¥ČUĊx°m°¦żVƐœx°ƒÇ£@y„UônރÆ@Èĉ°Kô¦šW„kWU—bÇ»@™ÈĕWÇÈ£ŤU@›n£ÆUUKVamanwŃmÝJ¯k@JƒIkaVaUUÇbkaÆÑkWmÝUۙ™Ý@™ƒwnU±ƒ@kkV¯KUkƒJƒ¼U¦ƒšÅ@ówķaķůV¥Uaó@Åwmƒƒ_kVƒwĉ‚ĉmmn_V»™a@U™ƒVwķóƒ‚U¦LǫéóXÇmōLǓÇķxÝkƒƒĉ™kmakbUͰ@W¼„@bƒšÈÆ@Ė™L„l@„°J¯„mkl¯L݃±L—amJ@¼ƒ„™VƧUó„™UX˜ċb¯ńVbkÆÝI@llx„k°V²šV@Uxގ˜L@b„@b™`ƒšÇzkókݤ@ğ¯Wƒ™LĉǙLmmnċVkbUaƒL@ޝ„‚bU°ğL݂Ý@'], - 'encodeOffsets': [[ - 127744, - 50102 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2327', - 'properties': { - 'name': '大兴安岭地区', - 'cp': [ - 124.1016, - 52.2345 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@k›ƒϙmƏêġb™ƒ¯@@wƒmÝ@XV@IlŽl@bUxl¯VlV™bV@ULVlUV™_kx™VVV™ÈÝJ@„¯šU„™lm¯x@xóÒĉ¼m„¯Wƒxţ@Uz¯ƒWwnUwťƒ@knƒWƒ£óVƒUUwğyó¦WI—Vmm™I@±kwÇ@@bƒ@ĉ¼ó@¯wó@¯aó¼›KՃaUwmWUwÅI@aƒKó@Ua™LƒaƒVÅwō¼UUÝl±I—¤VxÇx@zkJmnn‚mbnz™xlŽƒl¯ČkJl™°@„kb„Žmx@x™@kêmVnŽWxôXšxU°„bWLóJnÇWĵ„V¦™ŽƒUUb™b™ÆġK™šk¯™VU±aXmċÑUwĉKġ„k„™ŽVxk„ÇKkbƒIƒ‚ÛXWl¯bƒŽ™X¯K™bĊš„„ÞVƚnŽĸ²lxUްn°òÈb‚¦—xVbƒŽƒ@¯„Vx@¯VķÞČlĊ°KĸŽȘI°¤ČIôŽò»ƨnȰKǬ¦ôWŎÈƨwlƒnKVXmbX`lbšwkVW‚XXŽ„L°a„ƾaĊ£nƒ°@°¥ŎzÞ¥‚»œalwôkƒJ„a@ĶK„£„bU°ĊxźVÈUĠ¥ƨ™VI@XU°x°Ln¥šw°UmwXm݁V¥Ģް@nU@mÆ£š¯lKœšÜw@aÅU‚¥UaÝIkmV²‚nn@Ķ»@Uk¥VKÞ@ÞÛ@ƒkVmĢa@_ƒJómƒǖ¯Æw—óÇa@alƒUwšwĢřšk@wÆWXUWXƒWa™m@_ƒ»ÇéXaĸwVa@ÝKkUWkX‚kšKXxƒn@lĊV@¯m¯nřÆwš¥'], - 'encodeOffsets': [[ - 130084, - 52206 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2301', - 'properties': { - 'name': '哈尔滨市', - 'cp': [ - 127.9688, - 45.368 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°`„_šJlUšŽ@„„@V¦°JUšŽnLôlnŤ@@šÈaUÒVbkbl¤ƒzk°ÇVÛô°IlVUVôU„xÆU„Ž@bźĀ„º@¦šb@l²‚UVlœ@°ÒĠxšnXxÆVô¼Þ@Üx²KލlƒVѰUȰôlwô@²ƒĸ°„lanV@„šVŎUll@bÈnÜm„wĢ@la@ÝÞb°UXb˜lŎ²ÆškšV‚I@ŽnJnĠްknƒÜbĢwna@a˜kÞKƒĀ„a‚™œ‚‚IVbU¥wĠwkô˜xnLƒċVçkaUƒ±IUmnġW„°WôĉšalƒÞÅĵ¯@W¹XÝaƒb¯a±X¯ºLƒaVƒmkLóƒƒbkaƒVUKVkkKV_@aÝykk±L@ƒÅU@yV_™aU¥ówÇx™@UkVƒn@lƒkÅlwšWVwUkĉmkklW@šašbVwnWWƒ—wWL™™@Ušƒ™UƒÇLšÇmƒ„@wƒJĉƒL¥@ƒÝ_@a¯y„UWw¯ƒ¯Uġx¯aÝXVmaU£ó±›¯nwƒa¯óÅVƒXman™„Uƒ›lUXkWa@mkI„›ğaƒm™IklÇU™„kĊƒƒzkKƒš„lU„ōĬlš™„@ŽnX°@llUxʲmKĉVWwk@UbUK@bmVmI—ƒVmwaWxXlWȁšmºšÞÆbUxV@ĵńWÆĉLkWUbƒaWzkbĉ`U„±LklōwUVÝ£™UW`Uwk@mk¯VkaõVX@WbL™K@XƧºWzxƒK@lmX@bkVVÆk¼Vbk@Vn'], - 'encodeOffsets': [[ - 128712, - 46604 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2302', - 'properties': { - 'name': '齐齐哈尔市', - 'cp': [ - 124.541, - 47.5818 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Þ@ށĠKV¯a°ƒ@„KVblaČU‚mnnšKĊȚKX„°ŽĠ@Þ£ôllÈy„™š_@a‚ƒ@a—KݍVwU@±™¯Uƒlkw@kÞJlÅUa°ŃČaW—šVôƒƨVšU„ƒ@»nI˜b²Kބ°Klkn°ƒ¯I@ƒƒkšK@ĕÇń™@aƒX»¯@VĵlaÿVamI@aÅÝउýƒĊȗJƒôȁÅkmƑۃ@kxġ@@l™aVk¯»ƒīŹaƒkƒ¥Å¯™JUaWU@@w™aƒ»„KUkÆkUm„UmwÛ±±UUbUŽUXƒwWwÆÝk™lkUanaWwnKl™kal¯ka™ƽa›kÅx™a¯@™amb¯V™lÇwÛĀ™V@x™šmêVƜVV‚aôV„wÈx@šˌx„¦VÞ¯VšlmX@‚ƒL@¯Ua¯LmV@„„°X„ċK™V™ƒ@UƒÈ@‚¥@w—ƒġIU™km¥Źwƒ¦¯lmn@°kxVV@¦óam„n¦l@nx™lĉVóšmx™n™ÒĉĀĊ¼„þ„šǔêÞ°ˌĠÞÒ°ĀɲĀƨźˤȤƨĊ°w@£nymwnkUUV¥ôÑVmkÆmUUVa™mVIkmô„lxkXÞþƒbl„ƒl@kV„ƆƒV„xV@š¼VÒ@šŽUŽšnnނJ'], - 'encodeOffsets': [[ - 127744, - 50102 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2310', - 'properties': { - 'name': '牡丹江市', - 'cp': [ - 129.7815, - 44.7089 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@U`lLUlVL„Ulb„aô„lKnŽU„„b‚K°¹²W°b„aÞb˜knyUlUkamř²L@m°@lšmš²n`ôÅlK„x„ÜKnxV@„l@œƒ›ÅXyW_k@™wm™ŹĕmƒX™»‚ƒÛ™l°ƒôšÈ„»š—ô˜ô_WW@Uœal»šwU@@wšUVƒš@VƒXI@w‚Ģ͑ÞȻ›aU_@mUkly@¯óV»XmWUXUWmnm¥nUUaWLk»Æ²IÇa™wÅaݰ¯nUa±a™ƒ™@¦õÆğ„@„™@Åb›xU܁nÇłlb¯¦„ôó»mƒ—@±ƒUk@Wwƒa¯xU„V°ƒxXbǎŁUV™™ƒK@¹ƒKUaȯ@ōݙXƒal™ƒlÛkalÇUǫÇńÇakbÝƆ¯nlš¯Ž@¼™VUx@x¯W¼™Æ¯šmĖ„Ĭ¯ČƒVk‚ķÅmxœ°ô²V¤‚bUnÞW°bĢw°V°„XxƒV°z@bÞ`@„‚¦„KĊŽ„I@xƒŽn„™ÈÈK‚„šV™„@VššXK˜xX„mXUx™a™b@‚kXllĊnVlUx™XkxlÆk„m@U„Vlš@ÈwôxV¦šbU`@zÆV@„²KllÞz@b'], - 'encodeOffsets': [[ - 132672, - 46936 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2312', - 'properties': { - 'name': '绥化市', - 'cp': [ - 126.7163, - 46.8018 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ऊþÆÞ@bnJUb‚ĀnblŽĊš„„ÞlĸwǔÈŎKÈnôWǬê‚KV¥„ĸôUxš„@VšbU¼m`nnĊŽĊ„xlUšmkaVÿšLšwš@°»UmbKmݙUšwUmVknKUUl¯ƒKU™ƒUȃ‚™nK@ĠkX±lX„°„L@¯¥@wV_m›ĵ¯Ww™L¯ƒUkōƒÇVU™l›w—V󁱃¯aƒVka°wVk°mÞ¯Ŧřƙl™²™Ŏk™U@ƒmUkb¯ƒķޱ„ó@kxȯó¯VUÒk„ÝŽ±LÛwÝ@ó»ÅUWw™mğw¯Ñ›@UkV±@k™a@¥ƒ¹Źÿ@aƒÅVƒwóVVUkU¯JÜóÈUl¯„yk£laUaVÑÇb@™ţ@kmómK™V¯IU¥ƒ@@ƒ™kV™Iƒ`@ô™¼„blU„lƒ™bÈb@xÇKkĢɳaÅɆō@ƒŽVƒK@z™@@¥ÆKnÜ@@aۏUw›wnU‚ķ@ƒ_ƒV°Ž@„klVššnULVVÞbVl@°™@nx™n°LŚÆlV„ȃmU²@VmĠLƒx„n¯xkWƒzšJ‚wnLmbXbW°šÆ‚™²™@™Žšx@JVx„L‚Ā²Æ°I¯º‚È@ÒnÈ'], - 'encodeOffsets': [[ - 128352, - 48421 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2307', - 'properties': { - 'name': '伊春市', - 'cp': [ - 129.1992, - 47.9608 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƒKƒ¯kWW²ğl@ŽmLšÇ„„VVš„Lk°VVmLUlVn™xšVnނLnaVޝ¼™@™x™KUĀlb™n„`n„Æxô@VbU¦ĸŰĸbôxÆ@„™V¥„»„IVl°LUŽll@²„mV„x@ššÞܚÞVnŽlXÅÒlbÈaVVUblb„J@I°lÞIn‚Æ„mxnbUbVLÅVm¤@œţVǤXÈÇĖ@šÈ¼˜aXVÜaXbWŽnzŎašř„KôbšUlw@¯naÆKnUU¯Üa@mkkVUĊm„™żÝ‚ǖŽ‚K„™°L²lÆI@ƒ¯¥ĉƛVaÞk@ÝVaĠlnUVwƒœómaƒ@™wĉ@™a™VƒxamX@aƒ@UaÅLƒaVWƒ_nWm£nWm_ÅV¯ƒm@m„󤁚ݦƒ¯ÅalmX£ƒ™VWUŚw™mÇ@@IV™„WUw@ašI@„k@wŎ»Wƒ„ƒ™ÅVaœK›Ika@¥lUkUlwÅwVyÈwWU@a¯U°m—Ç@UçƒaVa¯mV»ÅwÝUlƒUk™V@k„mUk‚X£šw°@@ǃaÝIƒƒam™Ûam„¯lğmmI@J™U™l±ÅōŽ—kWa¯VÝa@Þkbġ@ƒxÛnÇm@akkōVōl±škšÅšťŚÝ°¯nUl¯xlb„U°b²„ô‚˜Uœxšk‚VÈUŎ„Vl°„šKXxͰnœU`@x°¦@'], - 'encodeOffsets': [[ - 131637, - 48556 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2308', - 'properties': { - 'name': '佳木斯市', - 'cp': [ - 133.0005, - 47.5763 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nš„b‚„ÞJ„b@ȯ@™xW¤Vlƒn@lšUVlk„ÞVÆxU¼°nUb„bVèÈ@˜ŽnIn‚@šĢmlUw°™żƒ‚VUn@lnL@VôbšwĊ‚lœ„JķĸĢl„wôwƨxVVUƒŦšxšLź™Èš°`nnĠwŎJސĶwôJ„@¤Xn܄ĸlšn°¼È°lŽ„„Uš‚b„xš@„l@ÞÞÈm°„lôwšL°¼ĸ‚°Þ²nĠ@ôwÞ`ŤI„V„ÒĠU„„@„VJĸbƄ²@°ŽĊKšœ„JĶa̐Ȱ@ô¥°nš¤‚bČUš@Vx„mUw@a݁ţƒÇ™ķƒ@ĕķīU¯²@ÆmVÑô¯X¥ċç@™ĉ»U¥ÝţKWVÅkUVÝŎUmǍÝx¯aķxÛUóL¯a±óōb¯™ƒÑŃVÿƒ_Åķ„a@UƒK@wm@Van@UmmLVa—@VImmXUWƒÝUřƒKUwÝUUƒkVƒk@l¯X›‚Å_ƒJ¯k™Jm„ÅLƒa@¥U@¯Vƒz¯@ƒ`@¼šmxƥšŏKÛk@±laÛ@@Xm@™ƒ@xƽ@WŎnšˣĕÅ@@aÅ@@nÝbǏ¯@ƒ_U›kUWƒkb™wÝU@ç„Wlw@anIƒ¯lyœX°m°VšašÛšm@„mVwÞK°ƒšXlaXmm_ƒ@UƒkwÝK@ƒVI™ƒXmV»ƒI@aƒ¯ğW™bġaU_¯JU¯ġŽƒ„ĉ„k„ō`±nÝÆk„™bóĊ¯Xƒ‚ĢX‚mVn²JV„lbUè„ČmK—wlóğx‚xV¦UaJ›šƒbƑÿÝL—l@bmbġx'], - 'encodeOffsets': [[ - 132615, - 47740 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2303', - 'properties': { - 'name': '鸡西市', - 'cp': [ - 132.7917, - 45.7361 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚LšKVVnkšbVšÈb‚²U°VnklVlaÈL@anU°ÜmXV`œnôLƒèšxlŽšLX„˜L²ašVVmÈX@ķ˜lnU„Èl`ȹš@ŤŽ°U@x„KnnV„mlnnUl‚lVnnaŎwlVÞ҄@n¦šLVްlšwVk„Lšaގl„n҄š@xmLÞ¤Wnœ¼‚WÈLVVUxlÈô„„WVaU_VKšKXUÆbn™‚nôK„bÞw°bÆWXamVwœK˜™Uw¯WUk„UlJUwVUa™@@kmyzm›ĉw@kVwškƒW¯ÅKU_Vmƒƒ™xU@aW@@kK@w„a@Kƒ@@kVUƒaky°_Vm™kna¯K@™ƒL™wġk@@IÇóX™ƒwVakmV@mwXUWanƒlĉ@ǙUw™KƒƒóšܛNJۄm°@›w—Å@ƒ±b¯Wƒ¹„WVwŹĕ¯kVmōb¯w@aƒwmV™UUb™V™IkaVwķ™xk¼›b@VXXó`󗙘ƒ¼Çó™¯„kŽÜš„š¼WŽn„źĖnššxl@X`WzœÆ'], - 'encodeOffsets': [[ - 133921, - 46716 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2305', - 'properties': { - 'name': '双鸭山市', - 'cp': [ - 133.5938, - 46.7523 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@™UƒƒUwó™mÑÞÑUÝÝUkmmŃyV¯ī„¥ƒUÿĉ¯mÇkaWbÅX¯aÝxƒaóLmmšÅaWV™LULV`UbƒXóƒkÇVwUUÇKX›»XmÝ£nK@wƒ™mÑkƒÝ™bƒKUl™x¯kU™Km¥ƒ@ÝÑkUōxmbUmkVkmmnkUƒmmƒL@w¯Vţ™@Ǻk_ƒÇmV—k@ĸVx‚VȰlLkllšUbōwƒnVW¼nlUx¯XmWUnÝ@™xÝUó¼¯J@LVbkJWnkb™W¯„ÝLUxƒn@‚™n™Ü™b¯U¯n›Wkz„°mJ@bkxƒX@èÞVšxlaX„lVVœ„`°@ȐÞa@mÆ@@bÆ@ˤĖm™Xōƾ@@wš„n@@WÜ@kb@²ÜlŐLƦ™nw™@»„_°@„y°UV@@¦„bÆKnƒšI°l„IÆ`œ°W@k„llUV„ÞVVx„LƚÞVX„WVnnUJ˜@UbnKVnm@Ubn@@x„L@VƒbÆĸ„`UĀÆ„„Ò°šŎa²ô°bôKÜVĸw°bÞwȎVnÞōVUÆlXU'], - 'encodeOffsets': [[ - 137577, - 48578 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2306', - 'properties': { - 'name': '大庆市', - 'cp': [ - 124.7717, - 46.4282 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@mÇ@сǰ¹¯J±ÅÿƒKUw‚I@™wšš@š±Å‚™X¯WanamKx™I„ylX°wƒm„wğKUn±@nVDŽUƒÅkƙ¯Kšmmwš@@¯UkÝaUUVK™mU™lk@ƒ¯„U„`ĸ@V‚mœxVxܐ@bÛ@m‚ÅL@¦š@@y„L‚U„Ŏ@ÆɅɴblġÈL@wÇaša„ƒkkVƒaš»@ó¯_ÝJ™wÇaÅXny›U¯¥Å„@w™bÝa™Lmm@@ƒVUŽlbğVmš™¯Xƒm_ƒ`¯_Ux™m™L™a¯b@mƒaó¦Çk™¤V„@bóJknVx™VXx±aƒLUbVxkLVlLWlƒ@nX@VÅbWlÈnƒx„bWšÅbmŽ@xœbml°b™„XbW„XVmnn`ƒLmšnbmb@šk@mwU@@š¯Jlbk°lbkšmLXxmbVbkllšÅނxX„xVWVVa²VܲnxƒVVnÅlVlƒL„¼šb@xV@XŽVbšIư„¦„lźb„Ĭ°¼Ulšb@kĢ@lw„@ƒÜlnȂƄóȘI„ĉ'], - 'encodeOffsets': [[ - 128352, - 48421 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2304', - 'properties': { - 'name': '鹤岗市', - 'cp': [ - 130.4407, - 47.7081 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Þ¥‚™ô£nƒn@°„ÆUn`mXn¤mX„`UX„bÆKVb„@@bnW‚b„wšUšbĊ@šx„@nbšWVmƒ_mm@ó»Um„ŘWXkĠ»²¯‚¯nķšwŎ@ĊšŎK°bĸUnјKȦĠÈbÆknJššÆUĢV°IšŽšVƾƒwaV™ƒƒkÇ¯¯»™mķkۃWm@£ƒóIĵxݏōIğxmm¯_Ç™Źš™K™wťŽ„UVUŽƧwóxƒxġkĸķƒIk›ĉ™xóa@UmK@kVmUŻ„¯šVxkŽġn™‚@mmJ¯n°V@bXVÇxUzÆxkxlVkV@¦lbœJ›LUbšÆƒ„X„ō¼@xƒl@™J@bVxƒXUš@JÈ@šn™xVÆUXš‚„W¤knÆb„°'], - 'encodeOffsets': [[ - 132998, - 49478 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2309', - 'properties': { - 'name': '七台河市', - 'cp': [ - 131.2756, - 45.9558 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²mŎ_lƒĊƒ„ƒĢV°°IV`ĢbšaĠX„°@b„JU¼Wnš„UJ@„ÞLlxV„„@n`lIUa@K°Iô»ÞVšwÞ@VmnX°WVwmkX»‚U„mŎxVak™lkkKǯUUwÇWUn™U±b—KWƒ™Kk™w„çóK›mU_nW¯ÛmV@bÇKkbkUml¯U±VÇaU™™amlUU™LK›„k@ƒU@mwÛLƒŽƒwkLóÆm_™±™nkޝ@@n±KnŚlbkVV‚mz—lWXº@Ķ°'], - 'encodeOffsets': [[ - 133369, - 47228 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/he_bei_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '1308', - 'properties': { - 'name': '承德市', - 'cp': [ - 117.5757, - 41.4075 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lLnlmxn„„IVVlUnb@VVxXJWL@LގVnnV„J˜_@wkmšK„b‚x„wXk˜WXXšKlb²K@nVVVb„L@WlU²„lKVnUJVz@VVb@lżmVUVnbôaVX@°Ub@lWbXš@b@bVb°x„@VxÈLVlšaÆ@Þb²k°@lVUŽ@Xn@VW‚LXb@¤VXšKVVVLnm°_ƨ¤@aUIVa„alkX›°k„™V@„alwUVy„U@k󙰃na°UVUUmUÆw@mkLVUƒWVI„WšLnn@xlVnK„myU@ƒU°UXaV@U¥ƒU@Uƙ@aVUkWU¯ƒaU@WLUV@bkbmKULmKkUVUkmVIUwlWV²™Uml°U@W„LUwVm@UUK@_ƒKUUÜaXw@ƒVKUU@mVIUUlmnIVVVbÈVlKnbVKš@nI˜@nVnwVLVK„K„„˜Vnb@aUIVW@In™°@lVnIš@lWĢ@°UVL@b„@VyUUƒa@w@WUnU@Wǯ™K@UkkJWaÛbmk@mVaÞU@amkWƒ@mXUKkÿƒ£@a„kl@Um°UXwla„al@nmlXnW°znW@aƒwV™@ƒakbĉ¥VmU@ƒIƒVƒUƒJkUmWU™KbmkUaƒKkUVU@KV@@klw—™WaU@kmƒXVènbmlUUƒKƒX¯JkbƒI@JmIUWU@ƒLml@XkJ@U™kƒK@aVKwWa—IWwƒmUƒ@mU@J@UaċU™aUUƒVkI±ƒk@UUƒ@UbVVm@UVKƒLƒlkIWaULUWƒXUJU„ƒ@WbUb@lkXUxm@@JVn@J@b„nƒb@Vkx@bšLU‚Æn„JšaVXnKVVmzX‚°V@_lJXxWXƒK¯bÅamUƒ@lUI›bñJ@LÇKkIÇ`kxWL@„ƒ@@bUVUb¯xWKk„Å„VlULW@ƒŽn¦Ul@I™lmUUUVm@kWƒnkKma¯XUKWmnwVwÝL„mŽ™VUbUVWb@Lnxm„xVŽmbXx›¦@„nb@`™„ƒVƒ@kbƒLU„mVUlkbVXkºmnm@@xk¦šbĢÜlš'], - 'encodeOffsets': [[ - 118868, - 42784 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1307', - 'properties': { - 'name': '张家口市', - 'cp': [ - 115.1477, - 40.8527 - ], - 'childNum': 15 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@k™ġۙal¥@wn@nml¹UWlaVknUVƒ„Kla„@„Ušƒ@_ma@ƒœ¥WwnaU‚wnƒmw@KXaVUVašUnmWUk°™lƒnUVUXWVw™IWVóKUI@WXƒxUU@mma@kUKWLkw@yk@ƒaVkUUċaUU@Wk@Unm@UVmLm±IUƒkJ™kWƒ@a„I@m@U„ƒVƒ„Ula„@VXVƒXmVwnkWKƒKU_k@m¥ƒmX_™JmnU@km@U@KmU™VƒU@U™@Umk@@LƒmW@Û£Wƒka@wk™@aƒI@mmk@mUa@UmUƒIƒwW@aWUƒbU@kbÇ@kwƒ@makVUk™U@aƒm@aU@mxkUƒbƒKUXUƒ±KXVWLUK@wkU@V™@WXUa@WbUxƒJIƒŽ@¦VèVVX@±ê¯KUIƒ`¯UULVx@Vƒ@UKƒIƒVkLmVkKmš@nUJÝbkIUJVXšVVxVbU„VJ„Un™°bV„mlU°„XnK@Ul@lVÈVUXšx@W„@VXšV‚KÞb„n@VnbV„m`ƒUx™kW@UVkL™Km¼@lUnUJVnV„XV@Vm@@LV„klƒIkl@VƒWlŽULWKUL@mJ„@blbUVUlmzUJUxm@UUbċÜk@Ub@VšLVV„¦ôbVŽmšUKUkU@m„„@VlVn¼WbUJ¯@@„°šnIllÈl˜@nXšWlLœk‚J@bkxlxkxlXUlklJƒšXL@bW„n`@nƎXxlL@xl@Xb‚LœKlVlIXblVUbUJW@lX@VL@VVŽšXšJšw„n@WnL°K„bVbl@VI@K„@U@nmVmV@XUWI@aXm@™VUUkWmn@lmUUk@mUmK@UnwVĉ@ƒƒmU_V@XJôVVUšLVUn@šllUnJl_n@šml@XŽlLlw²LVJUL@VmbVblVXmVnlš@Ť¦„nn@܎@bšl„@@XV`„Unb@VlLVb²J‚Xn¥ÆÑ@¥Þ@'], - 'encodeOffsets': [[ - 118868, - 42784 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1306', - 'properties': { - 'name': '保定市', - 'cp': [ - 115.0488, - 39.0948 - ], - 'childNum': 23 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VbXWš@@UlV@xVLXKWU²LV„VW„L„alVnwV@@b„n@bšVVllUnb„@lxÈ@laV@„aXV@b‚X„x„J‚nV@VVb@nnl@n„J@blšl@„ašƒU_VWUwVUškUm™Ukb±mVwœU@VIUW@UWk„@VU@ynL„m@IV@‚bnK„LVaVmnIlaXwV@@WVL°@@xnX„@V`V@VbUVVLVKnwnL@ll@@_V@VVnaÆ@œKVXÆ@nƒ@wƒKmU—™Wm@km@kÜKXU@ÑW±nIUwVƒ„Kla@I°wU±kškmm¯mƒ_ƒJnƒaƒwW@IVaUama@wƒUƒmU@mVw@aXk@mWa@£km@aƒ_kVmUnWW@¯bƒkUmk@ƒVÇm@@kUU™KUU™@UVUamVUaWIkb@xU@@amUkKƒVkam@@kVUkUWmKmUkLUb@xmJƒ™U@UImVÛVmnUwƒJƒU@VƒX@UWm@Ub°¦UšmxklmX@`ULU@@UW@@xkn¯@makV™UmxUb™°ƒlUšƒbUbƒnUJƒUUVƒa™LkbUU›JUU@mUUUƒJkaƒ@™xUIWJƒUnƒJ@V™zƒ@kb@`@bln@l™bƒŽ@X@š@š„@Xl‚bnbVb„@„„VJlInlšbVw@U„K„l@lbnan@Vb‚JôLn‚UzlV@lÈLVbVK@LVx—VWXX`WxXz‚bV`UXV¤nx@„bVlVnVlUL'], - 'encodeOffsets': [[ - 117304, - 40512 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1302', - 'properties': { - 'name': '唐山市', - 'cp': [ - 118.4766, - 39.6826 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„@VVl@²„lJ„UVVšbČVVb‚@@InV„@‚V„nXx˜JXb‚xUL@b„Lšl@VlI@Wnk„KV@VXnJ@I„Jla°I„W„LVVnkmaUç„WVkôaܯ„@nV°wnJlaV@VUnUUaW¯wXWWwna@£UaWKU¯ƒ¯@aVUkKUamUUƒn»‚an™„IVwUWlkš@„LlWVakU@K„_lƒšbÞU°@šy°n„@„KÈkWW™ţ¥ĉōƒkġWUw¯£¯ƒÇwţwƒ@kK@kƒ¥ÝwÅbǤېťV™lW°@ĸ™x@VVVULVLkl@V@Xƒ`Ub@Xm@UWbƒk@ÆVbnLWV@lnXUbl‚@X¯lmU™VkKWLkK@_UK@U@UmmUxmVXLWVULkU@`W@ULUK@XlJXzV@@xml@VU@UX@Kk@WbUK@Xn`ƒXmJnšmškxUVbUVlVVxUbV@nKlL„kVKÞbVKXI°KVšmVUIUKULVxVJVLkV@Vƒ@UbU@WUU@UbUK@b@nƒV@VkLmb@b'], - 'encodeOffsets': [[ - 120398, - 41159 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1309', - 'properties': { - 'name': '沧州市', - 'cp': [ - 116.8286, - 38.2104 - ], - 'childNum': 15 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@ln@UȄŽl@Vn„l°aX@mXnVlU„`@bln@¤Xb@nWl@bUx@nnV‚„„V@xnbVbUb@J‚X„x„b‚mXa@k„UVwlW„k„KôVm@w™kkK@kl»Èƒm™VKXkla°@XVV@VI@ml@@Vn@VX@V@J„@VxUzVVšš²blVk¦@šĠ@@»š@VK@VÈLlK@XnJ@alIUl„a„VVbš@„n@a„U@WUIV@mUn@mKXml@lL@LnWšb@XV@@a„VVb„V„@VV„IVWÈb˜IÈ»ƒǟlWšaVUÅUƒƒ™Um@kVU™WVkaUwmaóUƒJUU¯ÑU¥mk™¯UaƒKÅnÇyóXmWÛX¯aċbÛa›J—W™ÝU¯»ƒaóóUm@IƒšVVl@bƒLUJWLX@@xšXUxl¤V@V„nVUV„XVbVš@Ž„@@VVn„°VŽ@ţU¯VƒUmƒUWV@mUXƒaƒbUKUwUaÇKn„ƒVk¦Wb@VnLmV@bkV@n„xW`Å_UVƒV@bƒUklVX@VmlUƒx@VVL@x—VWVL@VW@UUm@'], - 'encodeOffsets': [[ - 118485, - 39280 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1301', - 'properties': { - 'name': '石家庄市', - 'cp': [ - 114.4995, - 38.1006 - ], - 'childNum': 19 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@la„@šy@U„I‚m„VXIVJšw„@lb„IVVnV‚@VVœIVVlašK„bVU„VVI„mVa„aV™„kš¯VanwšVlUnb°@lm@wX@@VV@VK@_nWlknwV™¯¥Van@VX‚@„W@U„V„IVxnmÜUnUVJV@„šnI@wValKnV@k‚mU£na@mVk°K„LVa@UU@UƒmknWWkXU@aWW@@km@UaU@@klK@UkaWaUnamm@U„a¯wWU@UkƒL@ŽUn@x™V™lUXVJUb™LmU@aUWUkmKkLUUm@mW—XƒaƒmmkkWUm@@U¯JUUm™kU¯@mKĉxÝwÝ¥LƒUóŽmwkUUUWVkKm™kKmLX„lxVLVxXJ@nVJnz@VWL@`nX@šƒxƒ@kVUUmJmIXx„JV„ƒnUVƒ@UVV„@LUšƒ`UXVVƒ„ƒlXL@l@b@VmX@b™xn°™UƒbkKWLXlW@@bƒK„mKULmakLUlmb@šXb@xmXU`V„b@`lLx@nWVXL@‚°WlXnlb„KVK„XVb@˜X@l_lJ@V@XnŽ„I'], - 'encodeOffsets': [[ - 116562, - 39691 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1305', - 'properties': { - 'name': '邢台市', - 'cp': [ - 114.8071, - 37.2821 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nKlLnšlLXUVVlVnxô„V‚KÞ¦ÞxĊwnL°@lVnšVV°I@Vn@V‚lXnl„n„b˜WnXn@VVlKnLVlVX@bnVšKVaUIVWškšU@wVm@¯@U¥VmU_°lšK„k‚w@LX‚Va„U@wšUƒUUKlUóW@UVUœUlƒ°K„wlKU_na„KVnlKkkšWWa@IœJVa@IlJnU@„KVUUmVlaXUl@lm@kXWÝÑnkƒ™±™k@wğ›@@U@mKĉLmVJ@zmlnŽWLUÝJU_ƒ@@šmJkXUVlbklÝ@Ýa™b¯@¯±JÅwġaUU@ƒkU™@mVI±bUKƒL™WUXƒJkaƒLóKULWbUVkKmnk@@bmLUŽƒl@b@mnmJkUULƒaƒbnŽmn@lVV@¦n@„l@b‚znx@`Vz@b„xnV@xl„lbnKVx'], - 'encodeOffsets': [[ - 116764, - 38346 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1304', - 'properties': { - 'name': '邯郸市', - 'cp': [ - 114.4775, - 36.535 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„bVKlVnInm‚@@a„kVnK@al@nmlLVUXaVKôL„Klb„IVWšX„KVL²a‚JnUš@lV@„VVĢbÆx²I°Ž°@šaÞbÞ@lkkaVUlWnI@™„@V`ÞI‚VXKmnk@y‚InUĊKƒÇkUUamUUkƒƒ@aU@U™ƒk@WUwVkVJVkkw°a@„mK@UX@VV„LVW@wšwVa@¯Xm@@lUIWaU@UWkXWmU@UwmUkKmn@lkVƒ²™VƒaULUVmJUUUwƒLma@™UmkIUm›L—mVšmx@b™LUamKÅL@VmbkU¯KÝamzkJUb±Vkb™L@lU@WIkJƒzkKmKƒnUalWkkKW@@nkbk@WW¯XUVUJ@XlJ@Xƒ@XlWLkUƒ`VUnaWa„UV@UVIƒaUxUUmVƒK@I@W@DŽU@@U@bƒ‚@nmKXmx™@UxkVWUX„@`VLlL@`™zX‚Ýb@b‚„@VUVkIUJVz°KVlnLlKnL„xlLVVUVlXUJ@nn‚„I@mVUlbn@@Žm„@bV„nV'], - 'encodeOffsets': [[ - 116528, - 37885 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1303', - 'properties': { - 'name': '秦皇岛市', - 'cp': [ - 119.2126, - 40.0232 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lnV@Xb˜škx@lU@@LUVlV„LVbnl‚ašLXVVn‚l„I„V„U„JV@UnĊ¦la„bš@nJ°UmƒV@„wn@VU„JVI°bnWlXnWVLVK²b‚akk„lI@aUaVƒUwVUUalaVwnUVak¥šX@W‚kœLVÓm„mUK@_lWš@n_UK@alÅ@ğÅƑŃݍmƒ@їţÇlƒLƒ@¯m™z¯@ÝV™ak„ƒ`@LlVUbkXƒK™@klVXUxƒJmšbm¼V„nVVblLUV@b„°V°XLVb@¤mbXxWX°xXŽVbmVUVU@kbmI¯xmUƒ@Û°óbUl'], - 'encodeOffsets': [[ - 121411, - 41254 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1311', - 'properties': { - 'name': '衡水市', - 'cp': [ - 115.8838, - 37.7161 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„KVlV@X°xƒb@VnnmbVŽXblb@VkL@lV@Vbn@@l‚@XX@bWVXlmXnlV„V@@VUbƒK¯LUl@nmbV¤n@l‚LXnlVUV@ln@lb„UlLnV@bV@@wlaXJVbnUVbVUš@VVšLVVn@VVX@@U‚KXU˜U@wUK@U„wVnk@UUWlk„V@a„UVUÆ`X_ƒw@mlU@anUmK@UXal¥„UmƒÈLVbVxVL„a„bVW@nXU‚Vn„„V°UŤV@Uƒ¯Um@Uƒ@@U™UaƒWVUmUUƒU@k£Vw™W@wW@XKƒIUa@wU@@al@UK@_mKXKƒbUU@aVKmš@Xmƒƒ±@kbÇakLğVaUw@a@ƒmkUJƒk@ykw@£ƒWX@lknk@WVkbUŽVnUVƒL@‚mVkI@JUb›I@JXb™XllkLUmƒLmbV`kLƒx¯Lk„›VUV@VôXkVVL„V™V@xƒVUbW@Kxƒl™L¯kV`UnV¦°@'], - 'encodeOffsets': [[ - 118024, - 38549 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1310', - 'properties': { - 'name': '廊坊市', - 'cp': [ - 116.521, - 39.0509 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@la„Ušš@šUnL@VWbklWxnIVV„V@X„JlbUlšXVbn@@K„mV@@X°WVInJmn²@lmVbnL@amKV_kwlmX@@LVamaXaƒaVU@UnJVanLlUkaW@UaVakK@IlKUU@an@ln@alKUƒkIVa@a@klaUKUV@UkUV¯šKVƒV@kUmƒU@@a¯ImJUU@VV@UL@Uƒ@@WXUWa@Ukwm™@ƒX@@w@al@@aVIUmVUUUVWUknK@I@™l¥kU±a™™UUVyUwƒ@@I@UUWm@@Uk@@nUJU@WU¯@kbWlULnšÇ„k¼@llLšl@xUnóŽƒLƒlkXUxƒV@lWb„I„`°nnn™llŽV²¯x@JkbƒLU„VxmJX²@ÒWVÛL@lln@‚Xn˜šnV„L'], - ['@@@kX@Valaa@KWI@UXW@WanaUIW@UaUKķŽk_W@UVUKUš@bƒ@UamxVXnJUbWVXLVbn@W°kb@U@Wó¼mIU¼k`V„@bVbl@„lX@lUôVlUœIV`lX„Vn@lUlVn@„l@UVaƒIUWl£Um™VWU@@UUKlUUUnƒVL@KšUnLVWUa›@™U'] - ], - 'encodeOffsets': [ - [[ - 119037, - 40467 - ]], - [[ - 119970, - 40776 - ]] - ] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/he_nan_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '4113', - 'properties': { - 'name': '南阳市', - 'cp': [ - 112.4011, - 33.0359 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lKl@nVV@„bn„@VVnm‚nL‚LXx@š„‚VLlKVU„IXWÜ@șlbl@XUĊUlwnW„LÞw‚m@ÞUVmnVl@nX‚JXLm@VnnJla„I@VkxVb„@VŽln„J@knKVn„@°aVanal@XK°b„‚@š¯VJXIš„VK@al@nV„k‚@nK„a‚b„@XL@blVVKVLXK„@VaVI°mVaX@V_@a@yUkVw„VšIVašJ°™@anIlaV@nKnXÆm@wUUV±UUWUKnaWwXUWmٝVƒam@kakImƒUKƒ»lan@VXXa˜W@@UlUUa@a@UlwUƒV@Xal@@anIVaUK@V™XmwVmUmV„LXl‚@nalLnal@„šnKlkV@@UnJ‚UXnl@nVl¦V@@VnJ@nUVVVVIn@Va„JƗn@@K@m„kƒa@kmWVaUI@a@™k@@aUL@mmaVIUKUVƒ@@IU@mƒUmmL@K@UUUU@mW@@nU@ğ»mVmbk@klW@UXnV@LƒJm„™lUnUJ™UUUWƒƒ@UnkKƒxmLa@ƒ@@lUU™bmUVWk@@nkUmam@UakJU_ƒVm@ÅlÇLUVmVUwULƒKU@ƒk@UƒVUlU@@Uƒ@UaUUWaŎƒzJƒaWLkl™b@bmL@„kKƒabWŽUVƒ_@mV@b¯JmXUbUK™¤ÇLUU@b@JkLWmkUWIkJ@VmX@JUbVXU`¯VV¯blK@LXKl„UV@Um@@Uk@kxWŽkbƒL@KkbmL@‚UXmaU@@l@x@blX@xUJ@bULUlULÇ@@VšnU`W@@nÛ¼U@@VmKUkm@VVX@@xǚ@bUbVb@VX@@x‚LUb@lƒ¼XLlbUlVVU„Ub@n'], - 'encodeOffsets': [[ - 113671, - 34364 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4115', - 'properties': { - 'name': '信阳市', - 'cp': [ - 114.8291, - 32.0197 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VllInJlknJVkVU@mXlUÞ`VnV™VU@U@y„@nXlKV„nJVkXKWaXI‚b@yVk„VUkVwn@‚K@nW@k„KlUXVVUlbnUV`n@V_V@llX@@V„b@bV@@nlVUb¯‚WLnbmb@ŽnLnK˜b„U„bVWnLlaX@VVUX@Vln@`kL@ll@VXVJÈIVl@XÞJ°Una„LlylU@UXKlnn@lanLWWnbVI@KXKVL@LVWVL@UVKUIVWX@@XÆJ@In`@lJVI@a„WšÛnK@UlK@UU@VK„nlm„nXal„UllLUbVVšknJ@nV@Vm@a„l@@xnV„„lJVUU@™w@aƒk„@XW@_mWnUlŁUmVKV@VXwW»XƒWaUwnkWUkVUƒU@@@WlaUkkaƒIWVkm¯xmIUmƒLUVƒaUIó»m@mmwXk@a›mk¯¯l™@wƒmkLmmU@UbkUWJ@XUbƒJ@b@l@znÆmK@Xk@Ub@lm@ƒI@akmVKUUVUkU@U±JUbkƒ@IWmkxƒa@UUV™UWVkIUaW@UlLWn@VkJƒI@VkK@L@bmKƒkJmUUaUKWXk¼VxnJ@„V@@VULV¼ƒ@@UkaUlWL@U@W@IkKmL@KULUWULWKUXUJmIƒb—KƒŽƒ²UW™nWKUUkLUƒmUUam@UU™@ƒmUL@xkV@„VV@bmV@Vk@mwkUƒVUx@mbX‚ÇnVb„‚UL¯šWŽnUVLVb@xnlWnU@UVUVVUbVVlVkn@llVUXUWUXVbUJ@bmLUJnb@nVK@bl@@š@bVJUbnX@l„b'], - 'encodeOffsets': [[ - 116551, - 33385 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4103', - 'properties': { - 'name': '洛阳市', - 'cp': [ - 112.0605, - 34.3158 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VVUllLXl@LWn@J„@bƒKUVmnL@`VblLnbV@„b@JmL@LnV@VV@¯„VJVnXL˜@nm@aÞ@‚a„k@m„IšmVbXL‚ynLšk°@°aVJnUV@UVVXk@WJ@VXLlUnJVnnƒ°U@»°U„wl@šb„WmUXƒÆ@VLXU@m@U„a@I›mkb™a@naWW@_@WXUV@@U‚ƒ²@„K@I±U@¥kKWLóLlƒa@£Um@kWKXU@mlLXUVKUU±J¯_@`UL¯Wmk@Wa„kkƒlUnƒVUVaU@KUU@mmK@_ƒa@KX@VaUIm±™k„aVKVUkw™@kaƒƒW@kbkL±UUaƒK@UUKVak£ƒ@UmmL@lƒIkmUƒ@Ualw@UƒJkbmIUmn@WKImWk@mUUnÝV@ށnÝxƒKmXkxĉVWVk@kaċšÛ@WXƒJUV@zŽm„VWnbUbVbšLlUnŽ‚lUÒnWV—VWnk@@Vm@kxm@Un™l@Ll@@V@šXnƒškJV„šV@nlVXx˜U@l„n@aš@VLnWĊ¦nxš@lbVKXLl@ރVLƒ„XJl@XXl`lIXVl@Xl‚XUVšK„wV@lanx„zUbVJ@VVX@b'], - 'encodeOffsets': [[ - 114683, - 35551 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4117', - 'properties': { - 'name': '驻马店市', - 'cp': [ - 114.1589, - 32.9041 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n@„b°UƂXnVlnLÜ@VLœm@n˜@na@J„„m@k„@lVšVxXX@„V`lLV„XVV@VVÞLVV°„²@lašbnxV@@b„Lšmlm„_VWnIWUna@lšLšbnV°ƒVL@KšV„LVUVaVLXK@mÆXna@wVm„a‚@Xw@KlL@a„@Va@wUkaWnIVƒla@Kn@Vn@VUl@nKVn„J@LnK@aVkVUUWƒ@VakUVanI‚²X‚W@UUU°KnUVLl@XaVK@ašU@KUI@W@_lm@KkLUKV_Uƒ@»@UVJ@XV@@mVL@K@U@Kk@VwUUm@kmWL@VkVkzƒKmb¯VÝI@WUkÇJUIUWk@@klK@_km@UVWUUW@kbmKUXƒaƒV—amLmK@namaXK°VakU@mU@@aƒa@UW@kkU@U`m@U_mVkaUVWUkVƒL@lmX@ށLm@UxVlƒUUl@zaWJXbWLUlmIUƒkLmWƒ@@z@VUVUšUmÝ_kVWŽ@nUVUlmIklmIkJUkƒl@n@Lm@؃IUbm@UJUUVU@mmI@UU@k¥mUk@WmVmI@VU@klmLƒ™k@mbkKmb@WkƒKUŽVnUnnxšW@UVLUbmJ@bk@WbU@V„kx@V@bVbkV@V‚@‚—XWbUWm@kb„¼VLn„lJlb'], - 'encodeOffsets': [[ - 115920, - 33863 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4116', - 'properties': { - 'name': '周口市', - 'cp': [ - 114.873, - 33.6951 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lšnb@xlJ@UnLlKXUlJl_„KnV@xVL@bkbVVUè@šWb@„Ubmš„ŽkšVšmbX„VJnUl@„a°@@b„LVbƒlXx˜InmnLVw‚anJÆw²IlmnXVl°VVbÈaVb„@lkn@VWnLlUVmÞUUklƒkƒVkUaVaVaUw™K@kkaVWmw„_„‚l@nU„VVb@b„aV@VV@zXJl@@kl@šlœk°WVnÆbnbUšVJ„Iš@VKVm@k™K@_kK@a@aU@@wW@@k@aUW@IUWVUnLlUlVXKVwmk@W@—VWa„¥@k@lnƒUIÇKUaU@ƒUUVmIUV™Uk¥ƒVma@¯k@Wanwmƒ„@@n@@m@UIVƒkUVamUXWƒaV™U_™@ƒmUVUImW@aUIĉK@VmI™b@lU@@n™JƒkU™@KƒIUmmLk@UVm@UŽm@@LkbU„mJXlbV‚@xUbƒ@@bkK@LWx@ƒbUn@xmbÅW@nWLUKUbUVƒK™U@LUK¯„mU@šVV@xULUŽVL@bU`WšUz¯aUamKUaƒ@@xkX@x'], - 'encodeOffsets': [[ - 116832, - 34527 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4114', - 'properties': { - 'name': '商丘市', - 'cp': [ - 115.741, - 34.2828 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XVl@lLȃ„@VkV@V»UanƒWX@VaÆÇô@ÈaVX@xVJXUÞU‚aVLĸbXKl„V@šm°Vn_ny˜XX»mUk¥lK@a„_@yšInaVKVa°_@WXI@ƒ@K‚VnIlbnaV@„l„@‚a@_w@ƒlwUKm™Xa@UV@š»Vƒšw@kUKVUUm@w±VUXUKUwmJUUƒ@km@@±mXkmUI™@mm™KUwkbWakLWaUIkJmŽƒX@l@@VUX@JWbX@VbULWbƒlUVULknlV@bVJk„mb¯KknWmk@@nmVkx™@ƒVmU¯KUnUL™@ƒJUIV™maÅaUm¯X›l™kk@@lk@WI@yUUU@ƒb@aUaƒUmVk@ƒƒ`nxUXlb@lšLVxUbUbVbUll„k„VlÝVUnkVmKUXm@klƒ@ƒnUx@xnxƒn@`VX@V²x@V@b@„Wl@zU`VUVVb„L@Vƒb™W@bkXllkLWV@V„@VVÈwlVœ@@X˜K²Llb„WnnÆL@VnJWn'], - 'encodeOffsets': [[ - 118024, - 35680 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4112', - 'properties': { - 'name': '三门峡市', - 'cp': [ - 110.8301, - 34.3158 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@WKUmUI°ƒU@@UmU@KnK@IƒaU@makKUa@_‚KnmVU„L@a‚ƒ@IXm@KWkkKVkUU@aUW@UUIVaƒymwkbU@ƒx™LVUWWkk@WUkJk_WWk@WI„ƒUK݄k@WKULka™@mwĉ¥mXUK™@@bƒm@k—VWwkU@m™UUƒlI„™Wm@™@Uk@@KškVmn@lwn@@Ul@Xm˜UXUmVсkmkV™KUaVamaUXnƒ‚@ykLUKƒ@™WwKmKnUm@UmƒƒaU@mUk@kL@lƒxċxUnkVmnXxWb@`kzWJ@V—LmVUn™lmUL@lW@Ub@VšXUbš`VLUbUJ@nmnUlUUm@@bUJlnU„š‚U@lxkbƒ@@XƒJUnƒ@kb¯VVVmlXXlJlzn@VlkVW@bkK™bmškŽUbVb„lƒXVxšKÈnšwÞlĊKlšVnKlwX@lL@xlUnVn„@šl@lmX@ƄÈb°¼ÈwVJlx„_°xšašlšUÈxlUnbVxnL@lllšbm„n@nb‚@@V„L@V„@@„VLšJnIVVlKnV„_'], - 'encodeOffsets': [[ - 114661, - 35911 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4107', - 'properties': { - 'name': '新乡市', - 'cp': [ - 114.2029, - 35.3595 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XVlL„K°bUblbUbšl@nX@W„XVVKVkš@@Žmb@„Ubn„W`kL„LƒV@VVLnKlVXIlVš@@a„@l£nWlƒkVa„@°bnUlLVlna‚bnUVUXKlU@ƒ@lk@a„I°y„@ôkUU@wšmôšnkWakml™UkVmkUlmUUm@nkUKWanamU„LXW@U‚VnUln„`l„œblL°KXV@ĠJ@L°„šJšUVw„anK@UUImmƒkK@¯±Um@IVmUmmÅnWaUK¯aUk„w@W±kVƒx™U™VƒwƒnÅJUIWaÝJóI—bm`ÝbÅImJUI¯¥¯@mU¯UƒJmnUVóUkl±V@zXl„bWVXL@bm„mº@@XmJUXU°llk„@nWJk@U„@¦U`m¯ŽWx'], - 'encodeOffsets': [[ - 116100, - 36349 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4104', - 'properties': { - 'name': '平顶山市', - 'cp': [ - 112.9724, - 33.739 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l¤UbVL@V„LVb²VlKlaX@„„lbš@lxUVULƒbšln²VJUbW@@L„b@`nL@nVV@LVŽUbUVm„kVl„ƒlXbl@Xn°ŽVK@_°`²IVVV@VUVJnInaWK@Uš@„K„LÆ@nmlXXWVUUw@klKVa@knyVkVanI‚JXUl@XbVUl@@aša@mXk‚bnK@UlK@UUUVaXaWmkUm¥n—WmXaWaœkl@VmÞb„KVL@aVI@mUwVm„@KōméUL™KVaUk@kUK@U˜WXI@VlKXU‚@VVnInVV@VLlK@UUƒkKU_@ƒWWUwU™@klƒn@ƒƒ@Imb—@@m›nUKÛ@mKUkWVXxmbVLXŽVVU²VV@xÅnmWmLU@kbmJ@b¯š™IUb™JƒUUxVl@z@bU`W@Ub¯nUJUbƒ@WLUKULkU@aWKƒ@aƒbmL@ƒlmUk@@bUL™ƒWJUI™°@ƒŽ¯aWLk@mbUb¯b'], - 'encodeOffsets': [[ - 114942, - 34527 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4101', - 'properties': { - 'name': '郑州市', - 'cp': [ - 113.4668, - 34.6234 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@nWVUKÅ@W„nVnI‚ŽV@œkƂšwV@šnn@lxÞlnôJ˜zXJl@nalUČVlƒl@²UlkôVVUnm„I°VnV°@°¦VJnIÆJÞan_VmU@ama™@kU˜¥kaUklw@UIV¥kVUI@ƒmmUÅmUlƒwVU@amU—JWbUakVƒ—Vé¯Im`ƒk—@ƒwVWmLkU¯ŽƒXkWmLmx@UUƒbm@@x™J@LbW@UUVWUkVKƒ@ka™IUamKUkkmmLƒUkJUVWXkWmnÅ@ƒKƒL™@@VXLmbmJUIUVU@ULWVkK@nWVXL@lVn@¤„b‚kôKXKlL@¦²V@JƒL±@„@VU@WV@X@`XXmb@Žšblaœn@Jƒb@V'], - 'encodeOffsets': [[ - 115617, - 35584 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4105', - 'properties': { - 'name': '安阳市', - 'cp': [ - 114.5325, - 36.0022 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°kVaV¥kVmUkWkWVkVKUwkkmKUU@a„wWWXWakKWkXmlašIVmX¥ƒU@a„@WnK@kƒƒ™V™I¯ƒ@KğI@WU¯LkK›akƒƒ_kmmVU@VWXƒKnVmbXbVLmln@VVknlVUnVlkšlnXbmlmlXblnÈlWbn@@nšK@V„L„bVV°VVzšlnš@V™xƒI™b™ŽU@WLUa¯V™UkWõ@¯kkmxk¼l‚„XUlVbVLnlULmU@lƒLkVUlƒX@xW@¯mUƒ@UmIUW™L@aXa˜kU™¯anƒWk°@k™kKmmUIWaambUkkKmV¯aƒ@UblŽk„mXk¤ƒ@@b™@UbULWVnb@lUVVnmšnVVU„J@bWXX@WJkL@blVU°UV@XlWnXUbW@UVkVšVWbnLUJWLUK@Lnn@blVU‚„nUblxVUVJXU„a˜@Ub„LnUVV@mVIVVn@UbV@‚XbmbUV„_lVXUWanJVI@WkI@WVIVU°WXXl@la@mX@lLXl‚kVbœm‚X„ylIXJV@@kšKla²UVa„IVyÞb°LlVna@UÆKnLVbšK@anwU™'], - 'encodeOffsets': [[ - 117676, - 36917 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4102', - 'properties': { - 'name': '开封市', - 'cp': [ - 114.5764, - 34.6124 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lUVbXa˜InV@bUV„x‚knVVÆnn@„VJlUU¦VJ@kxVllb—¦lVš@nb@bVŽUn˜aôJÞIXbVJÆI„m„xšUšV„w‚U²l@XƒxVl°bVLXb‚`XklUnmVblLœ@lmšx°LVK@UXIVašWlL@Ukƒ°KkVaVUXmmI@UÅKmmƒXka±K—L@W›@kUÇxUUƒ@@UXUlKkklW@ašX„a@UƒKUaVUUV_@yXk@ƒ@a@U±w@UUW@_„mmw@wVw„mUaÇbUa¯UUkmWkn±JÅxmIbUxmKmn—JWw„kUaƒK@a¯@ƒbk@mVUIWƒ—Lmwm@Ua@WJUb@LUl™@UUmLUbWJ@VL@VmXWWzUJUꄘ'], - 'encodeOffsets': [[ - 116641, - 35280 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4108', - 'properties': { - 'name': '焦作市', - 'cp': [ - 112.8406, - 35.1508 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@V@VL@x@bXŽWV@XkššlUŽWX@J„@nI@KlL„KšUVaV@œJlL@KUk@KÞL‚l²_‚@nWlL„UVVš@nLWVUJVn@anV@a„wÞUVLVx„b„@lW„@lbXn‚Vn@@¼šL°mšKVn@bnl@nVK@blb„L„W„U@VWLXV@nlKn@lVVbXw°nV_@¥Vƒl@XI@mlƒkkV¯VWnI@W‚@n¹nƒ@aWKXUƒaWk@yk@k„ċUkVmbk@WI—yóImÝkkwm@™mU@™xŁ›lU@mJƒX™ak@ƒx¯V@¼¯Vm„UmmIkVWK@UXIl@UWVUU@mVUI¯b¯@™lmKzWKUa™nƒJ@nƒlbÝ@@b'], - 'encodeOffsets': [[ - 114728, - 35888 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4110', - 'properties': { - 'name': '许昌市', - 'cp': [ - 113.6975, - 34.0466 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lI„VnKlnVlnLVbšJlb„@ULVlUXVVX@‚a@KšI@wn@„aVV‚@nwnKlX„W°lVnKUX„x˜@„ln_°JVIXy‚XnW@U‚K@UXIVanKVVš@Vk@KVaXI‚@Vbn@nx˜KnaU™l™ƒn™Va@ƒXa@™VçUUla@aUK@wmUƒLk`kIWVkLmK@V@XUlƒn@JXV@nm„™bU‚óIƒmUa±@@ÑóVUUk@UlKVU@akWVUUlUUaUK@UUKWbUkÅJ@XWaƒ@XbmJ@nUJ@bUKƒLÝaUnk@›lXbWbXnm˜n¦lVXnWbUbVV@VkL@VmLaWl@n™b@bk@UVWak@WVImJUbUlmz@lUbkL@lVx'], - 'encodeOffsets': [[ - 115797, - 35089 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4109', - 'properties': { - 'name': '濮阳市', - 'cp': [ - 115.1917, - 35.799 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lLXbW‚XXƒx@bVVnLllVxULUl‚XXlVlUnlŽU¦Ub¯l˜nœK@V‚bVb@šXbVL„KVxVVnIlašb„a„¥lU@wnalLnVVlVLXnlWVXn@@lVI@WnU@mƒÅW¥—aW_k@WwXy@kmƒ@wU„mš„š¦šlUxVLV@UwšJ°xš@VX„@Vb„@š`VX@VX@llšIVbnJlI„bšV„l„˜J@ƒmѯLóa@ƒƒKUa„k™ƒ™Xƒ@UK@wU@ƒlWUUݯImW¯aƒLUKU@ƒkƒ»k@mƒwƒa@UnKWI@ƒUU@akVWK—k@a±ƒbóUWKXUmk™KUmLƒbUx„„@lmLXŽƒ@@b„VW¦Un™JkbWnXl'], - 'encodeOffsets': [[ - 117642, - 36501 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4111', - 'properties': { - 'name': '漯河市', - 'cp': [ - 113.8733, - 33.6951 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@Lƒ‚UnVxnIWa„@Xb@WÆIVlXaVL@VVLVbkVVŽUVlX@bUVkLV‚l@VVôU@Ò²@Vb„nôJVšanƒ@mWU@I„mVk@WkI@wmak™@wlW@w„@VbnLVb°bVyX™V_@aUKVVK@wUU@™™a™K@kmbXVmJUXƒ`kn™nƒK@aU@mw™akb±@¯ƒUUÝKUUU@WU@VkLUKU@mUmJUU@WVkL@UWJ—X@VVL@lVlUbšLVKnêÆŽ'], - 'encodeOffsets': [[ - 116348, - 34431 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4106', - 'properties': { - 'name': '鹤壁市', - 'cp': [ - 114.3787, - 35.744 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ó™™n@xVVólƒ@¯zƒJ@bkl@@„kVWLUVmVXbVJnnlLlš¯@Xlm„°bVš—lWb@bšKVXnJ@VV„°nX@@w„WVklU„K@knVVKmkUKUaVkƒWkl»nwlްlö@lXšV°UVbXKV@šša„Jšw@Um™™kUy¯UUUƒaƒK@U™L@mm@XaÇkkmWank'], - 'encodeOffsets': [[ - 117158, - 36338 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/hu_bei_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '4228', - 'properties': { - 'name': '恩施土家族苗族自治州', - 'cp': [ - 109.5007, - 30.2563 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VK‚bX@lbUVnL°„@VlVnUl@VUX@„aVƒmaXƒlašUUU@wmaVUn@Vƒnmmk@m™U@kna™aU¥Vam™X_@WƒU™mW@_kƒVaVKnL‚lœ@VVal@k¥@kUW@kUKVUlUVсW@kÇaU»ValmkUVUVak™@aƒV¯_@W‚UkmVUlU@aœƒƒalI@akkVWUaWXUWwœWVbÆ@„„l„alIVK@U™m@UU„W@al²a‚¯UağÇm@ƒbkk@wƒ@@W™aULmxƒIU‚™ƒb¯@U`UX™JmL¯aƒKX›WUL@aknmK™@aWUXaWm@I@UÅmVU@™™aUV@b™VƒI@WkU›bXkm@VakwUKULWKXmJ@XUK@ƒmL@KUwVaUI@KU@mmn™mXka@»V@@UUaƒw¯yVk@ƒUUVmmkÛÈU@mWUnmx„šmlUbV¦UlbWVUL@UUƒ™IUmÇKV„VbUVVxkn™LUxV`VX@š„„kJVVUXWaUVVlUnmKUbkI@WULmK@L@LVlƒLnmUIWV@aknƒ`VXUJIVlUVVbUX@¤mbnLm‚m@UXk@mm@Ukaƒ¥@kV@@KkU@aUKWbkLWVkIVŽk@UbVlmX@bU@@mmL@bn`@Ln@llVLVk„@XVVU@`VXUš‚¼k`VULka@VllVIn¤VU@@bl܃bkx@bkL›škKƒn@bn@@b@JUnV`UnVbVKlVXUlbn@°ƒVx„@@b„nVbUllVn@V—VK@UnW@UVUšlnk‚VÈޚxVb„VVI„xVaÆ@@aka@UVaU@@a„k@Wl@nbVIƎ@Jk@„L@VlXnlla@VJnw@UmwXU@aVK°ÒnllnLlb„xnKVaV@l¦²nVl@llL„x@XVVœ‚͐š@našx@U@al™XUVa‚LÈþV°XxWXkK@šmLnlUb@b‚xnLVlVVkb@UJ@xWXXš'], - 'encodeOffsets': [[ - 112816, - 32052 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4203', - 'properties': { - 'name': '十堰市', - 'cp': [ - 110.5115, - 32.3877 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@@a@w@kV@nbVK@ƒnUla„@la„Ål@nlVakwWX@WkLšaVmšwV@anK@UlIXmWkk@@mmLkWlwk@U_mKXwWK@U¯K@UU@ƒVUa™kmƒkI™yUUVUmanU@mlwkƒ@_mWXaƒUWU@ǃ@U@aUaVwUKUIƒVkK@UWIXƒmaV@k@Vm@UnwlƒUamk@V@„ULUamxUJkU@Iƒ`WkkK¯XWak@@W@IUV™LWJkXkaÇVUKƒ@kUmbmUUƒUKƒbkKWUkI@ƒkKÝ@@aƒUm»nI@mƒU@UnWV_@aUmWbkLUl¯b@a›kkk@WkkJm_k@UV±@J@b›nU@@WÝIUJVbXL@nlJkx@„Wn@VkJmb—LmUƒ`VbUL@xVn„@XVƒŽ@„mVVnnJVbU„ƒx@„V„nVUbVVƒx@šn„™bUK@bƒ„@bƒJ„šm²„VU‚lbXzVJV„„JVbn@@Xmb@V@bVJÈ@‚Vnkn@°aVVV@šX„KnalLVmšUnnVKVlnLWlXX„Klk°š™šXŽWškLUVVV@nU@ml¯nmbk@W`Å@mb—LWm¯UƒxnêVèk@mbƒVƒnUK™@kKmXk@@JUI›lÛLllnbVnlJ@LULnlÆaVLnŽV@nkVJ„@lkô@²bÆm°w„L„WV@VXšKšVXI@W°ÆVšK„b°U„JVIVV„¦XKVL@l‚InaVÝnUl@@bX@‚™nmVL@lVL„lVLVUnbVW@xXn˜bœU°¤V@š™„a@kWKUUn@VlnL@UV@Ü»@mX@V_ƒakaÞ@VK‚¯@kkW'], - ['@@mUkUUm@nllVKXXVK'] - ], - 'encodeOffsets': [ - [[ - 113918, - 33739 - ]], - [[ - 113817, - 32811 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '4205', - 'properties': { - 'name': '宜昌市', - 'cp': [ - 111.1707, - 30.7617 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°`„U@blšUbUVlVkn‚ŽUbV¼Èb@l‚XUÒkVUVVL@lVX@ll¦k@UbU‚›@kmKULUbl„@`nXšŽ„V@XW`nšUbV¦šbmb@lšV@nnlmnU„m@UVnb@xVV™VkbW„nb‚VnVa@an@UaVU‚JXnWlXX@l„¦@ŽlKÆX„bX‚V@VV„@°¯°xXx‚XV@nV°UVWU_VWXkmaVnWVkn@lln@lb@UVLXWlnX@˜aXUmaVK@UXU„U@WVI‚W„XXV‚U@¥VKœ@‚Uގ„„‚a²LlV@kV@UanKma@UVUnK@UVLXyVL‚knJ@UV@@UXKWUXaV@Vb@mVLnKW„m@aUUm@@UkK@Ula„LXKWaXI@alKlmUk@wVKXL@m@WWn@UVa@K@wna@aW_XWWkXbVW@k@U¯WWwka@UUaVIVƒkU@m±@U@@wVKkaš_@VV@XUVwU¥‚šyUkm@V±ÈUKk»ÇL„m˜mLk@ó£kmWwƒm@U„IkWKXwWU@ƒkLƒwkbmaƒbkK@VƒLkmWIUKkUUƒÇIǫJ™XÅJULVŽÇLUVƒ@UK™@kI@WVI@UaƒWmXVVUL`±kÅLmKkƒƒkƒÅ@Ua›XXxWVXŽVbUXll@bkJ„b›„@bkVUVlnV@X'], - 'encodeOffsets': [[ - 112906, - 30961 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4206', - 'properties': { - 'name': '襄樊市', - 'cp': [ - 111.9397, - 31.9263 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@@Xl@Xb°WlLXl„_@JlVVInwVbVK@ƒ@UnlVbk„mx@VUnl@U@nbW„XJ@VlL„UVJVLUxVb@b@VȄ‚@XV„VWbnX@`l„kx@nmVnbUVVVšzlJn„šlVb„UV@@V°L@VXLWxnLV`l@kxlXnK@nl@XlWn„`Xnl@@UVa@VÈKš£VLVanW°U@UVU„@„`VIn‚mV@„nV@Xa@aVW@UšalkXKšblI„yƍXnlJXbl@@VV@nklU@`„nVK„LVKVb@V„U@UÈK„UVKšIlUX@V`lIVbn@nblVVmV@@XXJšUVV@knKVn@`@X‚VnK„wlLVmUUU@ƒU@aXL@WlU@UUW@UmU@KkLWaXkWmXUWm@U@ƒnk@UmK@U@UaUVUUKV_@al@namWUI@KUƒK@aV@WUIƒbƒ¥ULUJkIm™ƒK@U@K™V@U@a@UkU@K@wVaUwlU@mUƒULmKUkV@@anIWmUK@I¯„mKkl@LUb±lUakLmk@WwUKÝVUIm`¯n@Uk@makJU_@ƒƒJma¯ImwUVkKƒb™aUÅ@wWaU@VU@mXIVmmUkJkwm@mIlUKWzUK@VmLUV@VnbmLVbU@@lkU±KbƒƒÝV›@UL@¦VWUƒWXUJ@XƒVWV@VULnbWV—bW@kmWXUK@Vkam@kkm@UlmXUŽnbWlUXV`UX¯VmUU@Ul@Lll@nnJ@LƒnWmbmš@b™`ƒš', - '@@kUUm@nllVKXXVKmU' - ], - 'encodeOffsets': [ - [ - 113423, - 32597 - ], - [ - 113794, - 32800 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '4211', - 'properties': { - 'name': '黄冈市', - 'cp': [ - 115.2686, - 30.6628 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VVUnWVXnVJ@„‚U@V@VXŽV@@IVJUnŽ@V@L@KlIVlVanLVbnVlI„ƒn@@a@Kl@@I„JlI@aXU@KlK„kVblJXU„VlU@V„bVkVKXn@VlxVa²I@VlVUxln@bšJXklaVWnLmÅ@y@k@ašI@W@aXIlVVaV@nnlKnLVW@IUa@a@K„UVVlI@wXKVV@IUƒla„@lUXwWƒnƒnalLlxXLll°@XwVKVaXIl™nb˜@nln@Va@U@k°ƒUmÆUVaXI„JV¯ÇUmmkU@WaKmakVm@U@aVKkkmKkVmIkǰ£@aUUVaVVnKlkX‚mkƒ@ƒlUVaX@@Um@‚™UmlUXV„UVU@w‚K²¥Ua@I@UV™l@U™V±UIUǰ»VkUmVI@a@U™m™ĉ™¯V±bŹĖğaÇL¯lmŽkX@‚óĀ@ŽmšÝêb±WkLƒn@xXx@Ž@b@V@LW@UbƒlţXƒ`kxWnXô¯¦ÆV@L@JVLƒxkK@V@bkz°l‚lXz@J„UlVla@XUV„bVKXnW`XXV@laVV@V„X@V¯xƒx@xULVbUJ@n@LU@VmmakbUK@b™IWWUUVkUmkLm@VJkb@nUJƒ@`V@kX™aUaVmmLkUmJ@Uk@U„±lkzmJUb@b„VUxVXU¤ƒL@JƒX@VlL@JkLUVU@mnUl„¦@V'], - 'encodeOffsets': [[ - 117181, - 32063 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4210', - 'properties': { - 'name': '荆州市', - 'cp': [ - 113.291, - 30.0092 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÈJV„lVVLXJln„K@UlL„anbla„xlK@„XVWxXLlƒJ@V„nXxlnô¤l@nKn—‚ƒÈKl¼VL²Ç‚Un@Vl™zŽV¦UxWVU@@U™`lbUL@xV@²@@nlVU„UJVb@VlbXx°XVWX_VKUwVKVa@UVKUUVk@KnblaUU@wnWl@UX@lÆ@@a„IVmUk„™šxVJ„U„bܙ@Uk@WWnk@Vƒ„™Vm@I@m@Un@m™XUlVlUnJ@knJVU°@@aÆLX@ƒllL@¦nJV@XblLVa²U@UlWš@VX@`@LV@@bXJlIXml_lJœU°b„KÆLnVVl‚@ö—Vƒ‚mXaVIĢllUlVnLVlX@@b‚ašnnxšV„L‚bn@°ÆXmmkĉƒ¯w±™™™Uċ@KÝÅƧŃÝ癙Uw¯ƒm™¯k@W‚kV@¯UIUJW¼kb™Uƒwk@W`@¦Uônb@VƚlÈ@VU@ƒƒ£UWWnUÆUnmJkUÇ£VWUI@aUU@WkI@Uƒa@JW@k£kaWVUKmnkKƒb™kkVWb—VmUUmwU@kk›@UakUUa@V@nlx@lUb±lUbnnWLUyk@UamœUK™@mlk@Wb@VXL@x@xWI@a¯Ž¯V@bVn@LkKmL@`XmKmVU@@bkL@V±bk@Uaƒa™L™KUVƒIƒ„™W™XamVVbUK@b@Lm@UWkxULWVUnm@UlUX'], - 'encodeOffsets': [[ - 113918, - 30764 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4208', - 'properties': { - 'name': '荆门市', - 'cp': [ - 112.6758, - 30.9979 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n@lxlInVUnWJ@nUVV@Xb@xVƚb„alLVUnx°Jnb„I@„V`lInbl@@V°mn_VJÞUVLXx‚@nllKVb²kVa@KlknL°ƒ@JVLXnmJ@bU@VlnLVKV„@nX@lUšKVaXal@VKn@¥°L@Unw˜bnašV@KV@VUX@lVXI@KW@@IXWV@laVL„„KlaXUVVnkVWV@lwXblIXWVkVmšaU£VaUmVIkU@y@WakKUamU@UUK@kmK@w@@mK@LƒV¯™U@WwkmULƒamVVUU@ƒƒIƒbUKUa™kmƒm@UakLmxU@UÒWlULţÿmwkIUm@a‚kÈblW@UVƒUUk@JW@XkWWUkUKUIlw@aUWknWUUmnIWƒ™aUwVaۚƒaƒVUI™wƒšVlUnƒJ@bÅ@@kVWk@mX@xVVkbma@LUlVVUL@VUbULVxULW`UX@V@lUXWaXlWXX`@bmb@x@LUb@VmŽXX@‚@nWKUL@xVlknkL@bWJXbWLƒKkb@VlL@Vn@VV@bƒnX‚mLUK@nUaU@WbXVWL@VU@@V'], - 'encodeOffsets': [[ - 114548, - 31984 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4212', - 'properties': { - 'name': '咸宁市', - 'cp': [ - 114.2578, - 29.6631 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÞÆ‚LČ@šV‚š²š°xĊ„nlWnŎ¯m@aƒK@„„°‚n„Jšwn™VIUaÆJšÅ@wšwV™XW@aV_l@²V°lĊwlaXLšwlUkalVVaX@lVXI@a˜UXJ@U°UU¥VIVKVklanLVa@VÈIVV@nk@aVa@mV_@a„K@klKUa@UnKWk@@lU@@UW@@nUWUwmaVIXƒ„lV@mLXblJ@kV@kk@KU@WƒkUWVÅwkLmW@UmL@lUL™KULƒak@maUUÝwUJƒIb›KUUƒ@š™aWK@kUWVkUwVw@™mÝ@™I@wkW@a›ww@LU¥™kƒJ@nVJƒIkVVnkV›UkyUIUl@xWUkaW@@°kz„ŽWxkLUWmzk@@bVVVš„b@‚@XlVœ@Vl@bVbUn™`Wn—@Wb„VVI@`„LVbXLV`mnU@@lƒL@LUŽƒak@ƒLk@WbUJn¦@lVb@xVb@n'], - 'encodeOffsets': [[ - 116303, - 30567 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4213', - 'properties': { - 'name': '随州市', - 'cp': [ - 113.4338, - 31.8768 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„@nš`lw„k„ƒ„UmUVWX@lk„@VanUĠ¼V@@mX@@nVV‚VXLmJVLnK@b„V@@J„@VUn@VaVUUUVWVLV@@Kk_@almaVkUU@WVƒVUVLXmmk@wUaUKUV@°™@kmaUaÈmW„mUƒVklaX@lVnxl@@UnaUk@ƒVUVwVK„nš@VVn@VbVJUknUmmVmk_Vw„KUUm™Vak¥@UVKVIkW@UmIVWkIVƒkmmLkwmVUƒ@LƒUU@VVXL@JmLUbmK@UUKmkKUUmVUaUnÇlk¯™mJUnmLUaUJUaWL@UkJ™ƒUƒ@ƒaklkU@¯@KWLUmUUWVkbƒLƒŽUKkbU@WX@JX@@LWJkUW@UVU@@L™Umb—amx@V¯K@¦mŽULk@WbUb™LkVW@kVVxUb@x@LlV@V@b@VšU@L@V„LnšlJVIVK„¦„aVJ@XUŽ@b„LV‚@LVJnXmbk@@bU`VLUVV‚b@V@VnL@Vml@„@VXnWVXnWlXblK@LnV@VVX@VkV@XWK@b„VV@VV'], - 'encodeOffsets': [[ - 115830, - 33154 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4209', - 'properties': { - 'name': '孝感市', - 'cp': [ - 113.9502, - 31.1188 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VnXK@L@°lVlk„b„@„VšlI@VXKVbVIVbnKVmnI°šlŽÈkVmVbnUVVlLnVL@VnLVanK@IWKUUV@„V@KV„nUlxnKlnU„lJUXnJ@VlXUJUL@Vl¦UbnšVVƒLUxl`UnnnmVVlnVK„bšmVX@a°Ý°LšaXJV@VUnKVXVK@LnKlLUbVVX@VwVJVn„@@UU¥V@@UUK@ƒmaUVUkkJ@L@K@UmVUI@JU@W@U@UV@ƒUIWmXUVmUUÇ@UVmIlmnmakK@akaW@UwVUkKVnUlKVwk™ƒVU_WKUkVW@UXaWkUa@w@VU@XaW±@IkbƒKƒb¯L@WƒXkWƒ@UakL@UV@UmVUmL@UXWVL@ašUƒVUUUVU@yUUƒIUa@wUKWVU@kƒ™™Wk¯UkwVKƒLUx™K@nVxUlUUWVUmw@wƒUUyXWlX¦WbUV@„U‚@blbUVVbXXƒl@lVL@bk@lxkVVnVx™¦ƒ`UnkL@V@L@Ž‚@@xnL@lVL@VnVVblLXb@‚@zlVUJVnUbV¤™bUnUlWXkJWakxU@UXml'], - 'encodeOffsets': [[ - 116033, - 32091 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4201', - 'properties': { - 'name': '武汉市', - 'cp': [ - 114.3896, - 30.6628 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nbnm‚knJVUÈ@@Uƒ¥VknmV@VUlK@IkK@U„W@I„KV£UWVwƒU@aVanIly²kVƒl@@VnIlVnKUnVbšblWU@@_„‚VI@mlaUIn@lKVnUlVVXXšJ@aVLlanbUnV@@K@mVIUaVK@w„w°w@UƒW@UUUkbU@WWX_WmULƒaVU@WkbkUƒV@IWyk¯kly@a@UlL„wUK@I@KÅUW@ѱUm@wl¥kaƒ@@_Vw@ķƒa@akw@ƒkKW£XVUVwVwUaU@VUU™™xWKkbĉx¯k±Uk@U`@bWXUš™x@x™ÆÅIVbUJmš™xƒImƒ¯@ƒ™Umx™nUVVbnJV„@Lƒ@@ŽkV@bVnƒ@UVULlx°VXlššl„V@XUVL@xVb„JVV@zUVVVUV„™V@bUKWX@VnKUVVnU@@VlKVb„@lX„W@X°K„a„Lla@JX²Wb@ŽUV@@xVbXlWb@VUXVlXLV`Uš„lŽUxkLmVUŽlLUVVxX@lb@blL'], - 'encodeOffsets': [[ - 117000, - 32097 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4202', - 'properties': { - 'name': '黄石市', - 'cp': [ - 115.0159, - 29.9213 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VšUVV@VbUx„aWUœblUVmnKlX@bXJVIlVUxVVVIU‚zlx¯š@‚VbnL@x‚x@UVaXK„b˜@Xk‚WU_Vm²klW„XVK„Žl@nXV@@w„mlK²X‚aÞén™@ôÿ@lWn°kUKmmUљUmm@ƒwkImWU@UakL@bVLUVċ@™bUK@alIXKWK@™nXnKmkUVwƒ@¯b@L„lUL±W™n@KULUaW@kL@lƒL@bU`@nUb@bmlU@UÇJ@UUbmKkblŽUULUJV¦¯V@VWI—V@bWJkUW@UbkUlbkV'], - 'encodeOffsets': [[ - 117282, - 30685 - ]] - } - }, - { - 'type': 'Feature', - 'id': '429021', - 'properties': { - 'name': '神农架林区', - 'cp': [ - 110.4565, - 31.5802 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n`lIXll@lœl@b°aVklKXaVn@bU`mX@V„V@nmJn¼„V@bÞ@lL@„lJXVlL„aVLV„nVnalV„@VLÈUlblWXIšKVU@J„™š_‚@an™na‚X„m@KmI@mkk@KVkWWw¯w¯°ƒ@UUU@WƒaÅWkL@ƒ¥@kWWXkWmIUVVbm@@bUbmUU„ƒbW@UVk@mVkU@U¯ƒmKVUkaW@aULƒÆVbƒb@VÅ@Un@VƒLWl¯Lš„'], - 'encodeOffsets': [[ - 112624, - 32266 - ]] - } - }, - { - 'type': 'Feature', - 'id': '429006', - 'properties': { - 'name': '天门市', - 'cp': [ - 113.0273, - 30.6409 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@K@UlKVm„_š¥UwUmlUkwl@@aUK@k„kWWUaVUka@aV@ƒVUXaW¥Xk@WWIklm@ÅxmI™VÝUkxkaƒ„@bWJaUL@„W@™l¯UULU‚ƒbƒkV™Ua¯bm¤UnÇUkmUšUx˜b@VkXÇal@bVnlJnxŤĀVKXkVÑV@nwlKVbn@n„šlVbVL„a„J@„VV‚UnU„bVKlnXxV@°š„U@KnL'], - 'encodeOffsets': [[ - 116056, - 31636 - ]] - } - }, - { - 'type': 'Feature', - 'id': '429004', - 'properties': { - 'name': '仙桃市', - 'cp': [ - 113.3789, - 30.3003 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VK°VškX@@ƒVK‚bXI@a„ƒlblwÞVšUnJÆwn@lkXJ@X‚WVz„V@xnx‚VXUVVVkUw@mšLVw„KVU„@Um@alU@„@@KUƒmIUaVUšmnwmw™mb@aW@UkmKkUkVġkUJWbnU„õ˜@UkmUÅKƒL¯a›VkIk`WnkJƒ@xVLUVVbUbk@WlXbm„VxnxUblbUV™@@VUV@nVL'], - 'encodeOffsets': [[ - 115662, - 31259 - ]] - } - }, - { - 'type': 'Feature', - 'id': '429005', - 'properties': { - 'name': '潜江市', - 'cp': [ - 112.7637, - 30.3607 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@UbVxšbX„mJVnXVlmVX@bkxVJVLVlXXWlX@@IVl„V‚U—aVwV™lnÈVVmn£°aVbUš„l„aVUK@mVU@Uš@VUkaVamwUwnƒWaXkl@VaUaVUUK@w„WI@aU@@K@_UW™@kX@V±VUbkKWaU@mI@¥kK„kW@ÅK@b¯@UVmI@lmIkVkUWVnšm@@V@n@JUnƒšU„@ŽmlXXl@@V'], - 'encodeOffsets': [[ - 115234, - 31118 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4207', - 'properties': { - 'name': '鄂州市', - 'cp': [ - 114.7302, - 30.4102 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°¥WóXmlw„_ŤW„kVaX@@K@U@a@WwU@mWk@ƒULƒWkX±lUnV`XWl—@ƒaWLUb@Vw@wmKUa@°™kw‚yVUJUUVwkUUJWI@akWmLUnkV›aXVƒbUxUVWX¤lL@„lx@b„b@ĸUx@`„@lbk¦@x‚n²VƄX@'], - 'encodeOffsets': [[ - 117541, - 31349 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/hu_nan_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '4312', - 'properties': { - 'name': '怀化市', - 'cp': [ - 109.9512, - 27.4438 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@@n„‚@b@XnJ@k°x@aVUnl‚UXnV@@VnJWUJV„nIVV°ŽUbVVVL@޲LUVa°V@aV@nm‚UXblLXWVXVmVLVK@an_„`@X@l°„VlXXW`nX@Jmn@b„@nV@Lm`„bUb‚n@VUVl@nIVbUlƒV@LkJUnVV@xVblVUbU@ƒzUKU@mx@xUnn@@WV@lbUb@šnVWXX‚V@VIV@VUnJ@VUz@JWbXllI@VXVVL@ŽVn@„„Wlb@„Žl„XVlL„aV@VJ@XX`„kVwVl@bk„‚bUŽlVXIlƒnLVa„mVwV@@nV@XaVJVbX@lwV@n„@nV@VWnIVVUŽÆ@Xx‚a@I„UUKmk@mVƒ„IXmWUš™VJnUVU@anaVwk™›U@UXa@W™@m_@a¯@@K@UVƒ„bnK@blIlbXa@WW_n@VƒU@¯bmyƒUkUJÇÅ@WU@kWKÅwƒnm°KVkmankVWnXVWV@UƒƒwXkV@mƒ„UlLnaƒVaX@VUn@VnVK@xlnXWšU@a™@@klak™Vw™mUaV@™wmIÛ`m—@mVUXmlIXƒV‚I@K@aU@UaV_UK@wkUmmUKWXŽmVkUƒL@mƒƒU_nK‚™@aVU@Ukak»@U™™@ymUƒ„¯™ƒUUƒVKkam@™nka@ƒmwkLWb¯mkaƒ_VaVKUƒ™IUw@kKmU@WK@UnƒmaULkU@wUalWV¹U@@WUI@WU@‚_@W@U@mƒU@WbbUK@Um@@UmbUwWWkk@WU„a@anUUwlWUwUU@wlJVUnnV@@mnI@m‚K@U@w„a@wUm@_mƒVUUaVUkƒƒƒ_kċUk™VWLƒ@mlU@kn¥W@UwUWV@VÝU@lXLWVUbVLXlVIl‚knmU@VUJk@@„ƒ@™kVmwmVkxU@@XmVUb@xnKVLl@VxUxkIU`@bWVXX@JWL@bkb„¤@bmUUU¯Kƒkmb@V™VU„VVn@@„Vb@`lnœxmb„lUn‚bk„@xU„mV@bmWbUV@VJ„Il@nVUb‚K@nn@VbnJVIlJVkXJ@X@lmx@bnnWVXJWXU@UlU@mk@@llb°x„IUbnJ@VWbXVmI@JVX@bk‚@bWL@JUXUK@U@Uƒ`n@@Xm@XVW@@nX@@`ƒImxU@@JUI@KƒLmK@UÅUUV@VW@™¯kUU@UamVUUmJ@n„xmLKƒkmJkwkKm_mKXU@aƒU@b@Wk@ma@zUJVUmbUlU@™xnXlWlXXblK„¤V@@nUVVLkVš„l@Xb@VVK‚nXKVx@znW@X‚@@lVK@X@JXbWbnn@JUamLVVXIVxnK@aWUX@˜x@VnI@WlI@anV„IVxk‚l@lbXXšxVVVJVInbV@@ln¦ml@XXVWbkJWb', - '@@XLVKVXVKUa@UUUmV@l' - ], - 'encodeOffsets': [ - [ - 112050, - 28384 - ], - [ - 112174, - 27394 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '4311', - 'properties': { - 'name': '永州市', - 'cp': [ - 111.709, - 25.752 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lxUXV‚lXUVnlVĢ„JVbUXVJV@XUW¯„VIUK@klW@Un@„nl@V`XUVL@l@šVx@„XXW`UnUbšxUlVnUšV„lb@VnJšUVVVInJlUšVnwVklKnw„LVJVšV@nIV@nbVa@KVVVUUa„KV_nVVJ@_VW„nV@n¥lI@anƒl¥X_VKlwVlULUVVVš@šU@VXL˜ƒ@IUmn@VU@wmKXUWU@m²šl@VIXWWkWUkWlkIVamUXamUnmWUU@@Un™lK@XJl@kVUk@mWKXkl@@aVU@UVWUUVa„In`VUVLnw@U@K@Uƒƒ@w@UVmUUƒ™°K@UnV@bV@Xk@KVm@amk„aU£VWUUmUUwm`UbULka›KXU@kVmU™@aV_UWVIn@˜y„XXK@klmV„V_kWVUn@WUU@UƒmaU@™wnwWanUmmXkƒam@UakLmK@b™xUUUU@Km¥Vaƒ¯@ƒkUaVUlm„UU@mUUÇmUk™Uyƒb™bUa™XUWWbÅLmL@V™aL@WWXUKmmk@a@UUK™XW¥kU@VƒUkxmVkUWbUJnVJ@nVJXzWxkŽ@lVbUX@VVL@`mbUnšŽUn™VV¼k@Ulm@mwLƒb@lmLUK@UamƒWkƒK@£Ua@ƒ›UkJkUmbVlkX@bWbUŽVŽnnUVl„@bšbVK@VX@lb„V@nU¤šx‚²„Knblb@x„V„ô@šlŽ@b@l@XWxnVl@„VV@XLVl‚LUŽUXV`šbXXmJU@@bm@UUkLW@UlUKWUUb™wUm™L@nklVVmVXXm@@bUKlÆn„‚XkllVUVVL@nUbV‚@V@nnV@xUn¯U@JW@UX@xĉ@™`m@@LV@b'], - 'encodeOffsets': [[ - 113671, - 26989 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4305', - 'properties': { - 'name': '邵阳市', - 'cp': [ - 110.9619, - 26.8121 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XIlJšI„VVK@n@VVVKnLVwVmnLVK@U„@šw„J@wVIƚ°X@ÜȄUÈxll@kn@VwVaXJWXn@@WVL@UUKVKV_U@@aVK„x@U„aV@lk„@XylbUaV_šVnal@W„U@a„I@aV@@aVUl@Xm‚UXWaXml@@kk@ma@V_UnUV™UUWJUa@kkaWLUmk@@LUVWUkJWkK@¼UnWJƒIkV@b@JUIm@Ul™V™m@Uw@a@kWƒXWKUknW@ƒWUU@k™mx™UkVmIUJUU™VmI@UkaUƒV™UmVk™wVaVmX_WW@ƒUw@™@kUKWVU_k@ƒmm@@VkX@lVLUJƒX°WVU@UIVWUaƒIUġmkVUkWUVWkwWXk`mI@¥kUVƒUƒUn±@m›XkWknV„UVmmU@@XƒVƒUk`@Xƒƒƒk@¥¯»mbĉó@mkU@kU™ƒƒ™KmX@˜UnmL@lULkKUƒWUU@ƒbUaUnƒ@Vb@l„¦Ub@l™@UKmnƒKUnl„UVVbUVn„@`Vn@xƒb@x@VL@nmJ@nU@mmUVkI@xVVVxkXVxmV@bƒbXVl@Xl‚XVxna@Vn@@VVL‚aXaV@n„‚@@V@X`V@@XVJ@XV@UºkXVb@xlVVKnbm„@VXLV@n‚lL@VxšJV„ULUb„`lb°nXalKnx@„lbšmn@lbULV„„V°š„ƒnV@zšš@Vl¼lb@VUV@bšmLV`„„@n„KlVnU‚XWVLnnlV@xVLU`VbV@'], - 'encodeOffsets': [[ - 113535, - 28322 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4310', - 'properties': { - 'name': '郴州市', - 'cp': [ - 113.2361, - 25.8673 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²zVaVlnVl@nšVk„Jl_XJlIVmnL@mV@VXn@lV@‚XzV@lyV¯²U@UlJ@XVKnVVIXl@UVLV`@n@J„I@mlI„KVLnUlVUVVLXašKVLl@nb@ŽW„XV°KUnVV„L@xVJ„L@b@LUVVVU„˜VXbmbVbn@@lUbm@x@XVVVŽ@@˜@bkImx@Vm@Xbƒb@l°XU¤„a‚L„mnL@bl@@™VUX@VxnV˜anLnƒWƒ¥XKVwnUWXmVIUWÆLVx„L„w@wVmlU@¥XƒWUkwlÇn_Uw„WV@VU°wnU—ƒy@aVškVlnL@lVn„w@VlJ@b„X„x@bVKnb@U@WVUl@@Vnbl@XLlK@aVLVKnxÞn@a„LlmUaVU™ƒm@ÅknUmaUKmVk@m™kk@UlWUkVm@w@kUU@W™U¯™¥@w„Ç@aVIlUV@kUWU@UUm»@k@mKVkUKUwƒaUaUa›@k„kUWJkImaU@UK™@maUzk`@zƒy@XmJkL@UUJmUkV@z›@kŽkVmK@¦UbWL@a@UbmKmwUK™Xk›VUUkmVkw@UUKmL@WUIWa—JW_k@@WmI@mk@WkWULUUVKUUVm@šU„bš@‚nUǃ@U@w„™V@Ua@aƒL@ak„›l@k™UƒJƒwó@@L@V@„™`@œƒJ@xnn™šmV@bkJmUó@ƒn—JW„UUmƒU@UV@Lk„WlnnmVXbmxšxV@nbV„V@XVm@UVlXU`ƒUŽkn@lWLƒW—zm@UJVXU`@bVšUn@lWVœLlbVKVan_VxnVVVUXV¤ƒbnl@bUn@LWlU@@amU@V¯L„šVVUn@V@x„„@V@L@VmxUKUVm_ƒJUbVV'], - 'encodeOffsets': [[ - 114930, - 26747 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4307', - 'properties': { - 'name': '常德市', - 'cp': [ - 111.4014, - 29.2676 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l™U™mkUwUyV™@VW@¯Va—VmUU@KVUVUVLnaWƒnkUÓV_@mVU@݄w@ƒka@kVmƒUmK@IkaUamKkXWaUW@WUk„™@@KVU@aU@™L@J@XÇVUKVak_mWkLWakVUbmLUUmlUVKUU@kUWW@UImJ@xkLkKm@@Xƒ@ó݃@UUk@UKƒV™ƒULƒKƒXkWWbkaƒIUƒWU@mUk@WLaUJġ™ƒ@@XÈÆVIl‚„Vnz°aV@U„m@X`@XWbkakJ@amLƒaU„@V@L°@@bn`š@@XWb@VœVlšUxmb@bUVmVUI™šXVWnƒJU„@nnlVLƒV@JbWzk`m@UVK²V‚x„k„LVl„@Vn@V„„°xVKVkœVVlUblx@bU„‚Æœ@@nVnUll„kx@VW@@VkLWxUL@bÝ@kKkVõV@bkXVVUVƒ@ƒVkUkV›LkV™a™@@™ƒ¯xUxmX@JVb°WXkK@Vm@k„Vb™bn¤‚xUXkJƒblxnXÆK²l‚_@Wnašn@ŽUL@b‚JnIlV„@lUœ@@¯ô@lWȂIVKVm„U@aXaV@lwVXn@@K@UVKUUnU‚bn@lWšX„ƒlJnUšLšKV@„„l@²a@UlK@aV@naVX„WV_nKlL@KUm@a°U°@VXL@a@wWmXal@„k„@VLn›V@@bl@VnX@mwVa²aVU@mk@'], - 'encodeOffsets': [[ - 114976, - 30201 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4331', - 'properties': { - 'name': '湘西土家族苗族自治州', - 'cp': [ - 109.7864, - 28.6743 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@KšL@wnK±nƒnm‚—@WUk„ƒÜÈn@n»@mVamk„mšU„„l@V™nmmU@wUan¯VKšLn„VWlInyWUœI@WWk@KXU˜n@mnUmU@WœƒmkV@ƒkXašaVaUm‚Ikƒƒ@kaƒX@ƒUm@UKWU@UkJWkXa@IVy@UmIUVU@UJU@WXWmU@™VakaU@@Xm@Vm@wnwV@VL„yV@VakUUa@wUUVmlI@K„UVkUamJk@VU@UmVaƒan_@KmUƒ@@anm@ImWX_WWUk¯ƒ@k@Wƒ_m`@bULUKUnUWWXkKWaVmnU@@b¯UUbVޱK@UKUUVa¯UUmJUƒVIXmI@UU@WmVmkUV@b¯w@lmI@W@aƒ@m¯LXbmJVLklWL@V@XXŽmbVVU@@VU²Ul@VlX@bš`Xx›zUmkUVÒlŽ@bXLWxXVlš@V„bkLma@nmVmULVbmVUb@lnzmbUÒVl@°nLV„lJkn@bmJk_ƒVmmkblxÈx@LUb„xVb@V™n@JmLVŽUš@„nV@¦VbnJ@lVVbkx™bm@UxVLV@n`UnVVV„kl°z„xVb@VU@@ÆlXnWm¦nbVK@XVVUVVl@X„KUV@nVL@WnIWŽXLVKVLlxUbVKXVWbn@@UnKVLVb„JšU@aVU°b'], - 'encodeOffsets': [[ - 112354, - 30325 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4304', - 'properties': { - 'name': '衡阳市', - 'cp': [ - 112.4121, - 26.7902 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lšV@XV@„mXVlXL„W‚X@l@bVxn@šŽšUVkn@VJ@I@alU„JXIVm@»‚LXllIXVVU@Kl@VnXKlb@lVbXIVVUšmVVU`@nbl@@lXLVVVKVbnXWJ@VXbWxXb„Ul™VK„¦nLVVUVVbšb„K@U˜LnK@Un@VxlUV`UnnL@VVL@JV@VUnxnKVbV@@VšIVUnJUVUl@nW„XllIUa„KVbÞLV¼²`V@VIUwlaVmXa@IWanK@U@m„kVƒVUVaX@lšnaVLÈ@‚¥@kkJUWJUaƒXkaUm‚wVXJ@_lWUU@¥n_‚KkamUK„™@amKƒnKƒbV£¯W@k„aWan@@UnwlJ@a@—@UUU@W‚wn@Va@km@UanaWa—UVƒUUVU@K@aƒKUI@wƒKUUVm¯LWUXƒ@mak@UK™LWbUKVUkUmVUKƒLkJ@nƒJ@I@mU_UK@VWkUJmUUL@WkI@V±VU°kzU@Wy@kUm@UWU@@nmKUnkJWIk`ƒIUlm™k@mUUkUb±yUX@VUV@bk@WlXL@nVlUl‚k@WI@ŽkLmš@VV@XVmnnVWbnVUblJXkVl‚XXlWXUJk@±™@nXVWVnL@xUVm@Vn@J—„WK@U™V™@UUVUVKUkkxULW`k¦m„@bkJm¦U@ƒmUX@`UImUU`ƒLVbUVUU@LUbmaU@mJU@U™UIƒKmxkLUl'], - 'encodeOffsets': [[ - 114222, - 27484 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4306', - 'properties': { - 'name': '岳阳市', - 'cp': [ - 113.2361, - 29.1357 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@wUklmUUmU@@UVm@wUaV_mmUKmwkIkJmUUnm@™™@UUƒbUKUƒmÛamm¯xVLkbÇÆƒUƒVUzkVUlƒUUKWLX¦W@ƒVUUUaƒKUbmLKm„@akU@aƒmVaUUVIVWkk@wkƒƒ@@xmLlmÅwmbVlXlÝIWVkK@kkVƒL@VWKU@Ublnaƒƒm@b@bšnW`@XUJk@UUWKƒk@UKƒnn‚@xmLUVm@kbVbV„nV@V„b‚@KnV„LWšXŽÆV̦VblŽš„n„UJWz@ƙVóUVbkV™aÅx@¦lVUbVVknWKƒ„k@ƒwƒK™VU„Å„ƒl@zkb@`m_mJ@xX„mbVbœ@llV@n„@llbXL˜UXalUšl„alVnwnLVKlšVbX@@I„V@blJ@bVL@VVVUXȤ‚VnkVÑXmlbnš‚„VKkÑř@UmaVç@±XUlI„xlV„@VaX¯lUVVUšVJn—V@°°nް„Vxĸł°¦šb²¦lJ@U@aUK@kUm@_m±VIXal@„Kl@„bV@K„K@k„m@UmUUaƒK@_UJƒaXU˜@Xmš_VmUk@WUk›@kU@a@m@UƒaUUU@al@ny‚XXWWwkly@¯n@@bnV@k@mVI‚„œVlUUmlU„JUw„I‚bXƒVaUal@K„b@ƒVKVkXVl@VkUU@ylUœVVaVL'], - 'encodeOffsets': [[ - 116888, - 29526 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4309', - 'properties': { - 'name': '益阳市', - 'cp': [ - 111.731, - 28.3832 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„ŽÆxXL@l‚V„@̚VI‚bXKl@nVV@„XVŽ„JlbXalX„W„LVKš„„UVLl@VV„@ôބ@@Wn@lLlK@wnIVJX@VX@lVVUL‚VnkVVnKValUXblKnXl`UbVLÈU@W@IšKV@@bUV@Lš@lƒXV‚@VXXblWnLVblb@JnL„VUn@llb@„ƒx@ÞUV@nU`VÔmlX„mbUKUVUV@LVVUn˜ŽUb@°UXš@U‚VzVxnlVškšVnlVnaWƒ@wnIn`@_la@y„kƃVƒšU„L„xl@„ƒXLlmUUVakU@¥ÆwšblUUaôVšU@ÅXyVImƒ™ƒkUaġ¥ÅUWX™ƒKmU@Lƒa@UmUUƒUalan@VUnK@wm„m‚L@V„lXLVVl@VI@WX_™m@a™¯mKUkwW¥UK@_UWWLUVkUWL@WUIkVƒU@JƒwkLUUmJVI@WkXm@VmkKUIU@mmm_@VUV™@™„kJċwUU@KUWkkW@IWW@km@klwkWVkkU™V¯m@kWLU`mIkmkXm@@`@L@xUKWkU@VL@JUU@mbUKVa¯WVnL@`lXUVkU@xW@UbUWVU@UJ@„lnU@m‚nÈmVƒa@bUL™wUb™@@VkxmUUƒ™UV›K@IƒUƒmk@akm@wmIƒŽkK@b™VWXkm@wULUmm@UVW@Ub„mbkKƒVn„U@Wl„xV„U@UXmWUXmlnbUl¯Lmn'], - 'encodeOffsets': [[ - 113378, - 28981 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4301', - 'properties': { - 'name': '长沙市', - 'cp': [ - 113.0823, - 28.2568 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lVUllXkx@lln@‚XX@JlXXl‚V@LVVČxlIšƒš@VU@Un`nnV@VJlLUnn@lW@XUJnIVVlK„x@I„VlUVJ@XXKlVVUXKVX@`VLX¦lxVŽnLš°‚an@„„‚bkmVaV@XL@U„KlU@llLXUÞJWkUknaÆxnŽ‚knK@w„@l„@xllUXUJVVUb„n@blV@bnƒ‚LnKVa„LVbVV„UX@W¥XKVL„VVklUVy„U„VÈÅlaUK°wnnÜbn‚V„VL„aVVš@šn@VmnVlIlJna„@Valkn@na@amwm@„UXw˜K@aUUVUUaVa—wWK@kU@UaW@kKUUƒƒ@k™W¯XWan@k„™mmÅ@@I@U@KmLkaVUƒKkLWVUƒk@UVmU@am@kkk¥ƒUƒVUK™„maUb@ŽUb™I@aƒKkkWm@W¯K¯b@VmaULVxUXlVk@UxVJVbUb@xULƒ@ULWW—LƒĕmxVVL@šVb™KUwƒaŲWwX@@WƒUWLU@VbkV@aU@@VUnmJ@VUn@VƒLUK@U‚mUIk@UÇmU@@UW@J@LƒbUmVI@aUmW@@bkXUx@lmLUbm@UbkJ@V@XmlUbkKm@ma@kUaVU@aUK@mImJUIkVƒUƒVUakbWwka@UWKkLUamKUXm`Å_U˜ƒULmaU@@lUV@X'], - 'encodeOffsets': [[ - 114582, - 28694 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4302', - 'properties': { - 'name': '株洲市', - 'cp': [ - 113.5327, - 27.0319 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@X‚‚Unw„Ė˜KXXVK„@VK@wVaUaUIVwl@kUVWUwVKnb@U°a°LXŽ‚@Xnll„L@bšJVa@VanbšƒVL„U„V@al@@UV¯ÅÇ@Ummk™w@¯ƒyVwnUVVVUkmWV—nKVUƒa@WXkVKn@lUVU„VVVXIlV°VnI@VlKnV@mwVm@LXKWkU¥wWwƒƒ@k@m„X@KX¯V@VUVa@VnKWkœƒV@VUkm@aWa@wkUWwkmV£VÿXUVL@mVIXaò@nW@ašUš@@am™@aUU„UmXmWUk@ƒƒnUW@_maVm™wUkamaUL@aƒwƒW@akI@UƒxUm@kmKUk™lUŽ@b„zV˜m¯xUVU@ƒXVxm`kÈlxXVW„@¦kVUn@xƒxƒKUwÅKVXUJWnXŽmVUxWL„¦XŽm„mK—bmUUwW@UV@šk@ƒšVLnŽlbLm`@¦VVkX@`WIUށxVnlb„WVbXIV‚lI@l¦Ç@UKmbk™W@UbUVU„ƒl@n@VmLXb@JWbUnkbVxUJUxWXXlWL@V@V@XXJWx„zUVVVVKnXW`@bkIUl‚„nLVJUbUIWVXlWV@XklVbnn@xlš'], - 'encodeOffsets': [[ - 115774, - 28587 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4308', - 'properties': { - 'name': '张家界市', - 'cp': [ - 110.5115, - 29.328 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@InWVw°wš„@š@šblUœKlUlV„U„@VUUUlW@aöUlUlLÞ@@aVKXwlK@UX@@UlwkƒVkUm@m›@ÅVƒ@akwVaUk›UUlUL¯wƒƒ@UUmƒ@UkƒKƒlw±UULVn@l_XyWwÅ@VUUmJUXU@@mmƒU@kxW@UaUIWbU@@mU@UxƒnUbmKk„WJkUValƒ@aUkUxƒlW_@WUIU@ƒbkKWUJVnUb™bWb„lU@nl›„@XnVmV@n—mWV@LXl@X›JXVmzkJUXmƒ™KULm°Vb@xnVmnUšk@ƒƒ™VƒnnlUb@nm¼m@Ûǃ„Vl@X˜mnm„²ŽmL@x™K@LUl@nULÆx@V@VXVWbXX˜l„@nLlm@bVKœX‚W„L°bnUš@VaVUš@šmšVw„JnwVK°zn@V‚Vb„a„@Ċ¼'], - 'encodeOffsets': [[ - 113288, - 30471 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4313', - 'properties': { - 'name': '娄底市', - 'cp': [ - 111.6431, - 27.7185 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lL„nJ@xln@bnlV„‚„@JœLVUšŽV„nVlw@Uš@VašxVK@a„bnUmÇnV@km@ƒ‚I@VUVVXVaX@@wlVVUkW@_mKXU°‚UbVLnaV@‚V@IUKV@XlVL@w@K@_n@lWlnnJV_XK@l°nšU@WVU@kV@nbVK„V—lƒ@nLlƒ„LXU@ƒlmkw@nW@UKVa¯IVn@@aVUUKl@nXVKVn²a˜ŽXblKnLlmVI@KUU@akLUaVa‚UXm@aƒ@wVUVKnLnWlXl‚n@@U@anUVm@U‚Inm@IUK@UmKVmU_kVUwm@@VmL—K@VƒL™aUaVUUUmKƒ¥ULkšƒVWaXwWa@UXImWUaULUUWKk@WnXbWށVWnk@UV@bU@@bƒJ@bƒV@XkŽmb™UU`VbkaWzƒ@klU@ƒb@VƒwUL@bV@U`ULVL@VUK@Xm@XWWIUbUxm@@lkkÇwƒVÛÇW@¯Å™UJ@xƒI™xƒ@@VULmKUnUxmKULUUm@@‚ULƒU™JkIWJ@b@LJUW„kJWnUV@nn˜Ü_nJšxU@VbšnUxlškb@lš@'], - 'encodeOffsets': [[ - 113682, - 28699 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4303', - 'properties': { - 'name': '湘潭市', - 'cp': [ - 112.5439, - 27.7075 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Æ`n_VWnLVblKXL@VlbXxlaVb„U„VlUVJnInJ‚@VL@bUVVb@lnbn@lLVank@W@UlIVan@VanK@kVwlW@aX@Vn@bUJVn„a@K‚IX@@VV@nŽVÈl@VJn@VVL„K@UVm@UnIVm@UV@@blUUaV@XK„V@XW@XxƱ„bVxšLUa@™UKWk™@wmmUalk@WXUWkXUVJVaUImKƒVklJ@aX_mWULUUVUƒyXwWI@W@U@UXKWkXWVwU@±_U»ÝKUaƒLVbkJkƒWmXk@UVVŽmIUV™J@UU@UamLmwUVU@mnJ@VUnmV@b@Vm@kkWmXmKULUV@x„Ž@bWnVUbVblK@bVV@LUJknmKkLWa—±bUmULmWk@VLUV@bm@U°JUbVLX@@mlxkn@„WVƒKk„mK@k„'], - 'encodeOffsets': [[ - 114683, - 28576 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/jiang_su_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '3209', - 'properties': { - 'name': '盐城市', - 'cp': [ - 120.2234, - 33.5577 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„n@‚°ĀÞ°@¦ULWKkx@bkLWb@lUlVXXJVbƒnUKmxXV@bm@@Xš‚„LޚܦXlVnš‚mzVJ@n@‚²ÞôkƃÞaȰĉ‚wnljÜó„éVÛnĊīČlj‚ĉ@ō@KÞUlU@ƒkklÇÈњÑlġXɛ@UġƒƒaU@U_ƒW@n™@kaUL@VW@kKmkUV@bkbWW@bkzma@ƒJWI@KUKULƒ@U¦™`@XUJ™U@KmXƒw¯KXkmy@aUIWJXXmV@K¯UU@@bVL@¤VLXbV@@JVXVK@„„JVn@bkKmakVVXUVVVlI@`U@nzVVƒb@¤n@@UlKXLVVšI@V@nV@V‚@ÈUx@šóVōšƒkÅWó@mU@bk@Ýwk@WbXxm@@J@zV@kVƒbV‚nLWVUX™WUXUŽWLUށ@Wl°z@VkxU@UVWIxWJkbƒĬ„nW@@bUl'], - 'encodeOffsets': [[ - 122344, - 34504 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3203', - 'properties': { - 'name': '徐州市', - 'cp': [ - 117.5208, - 34.3268 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XKVX@WnIVx@K°Lnll@@I°K„nVašU°x²mlxš@VanU@aƒk@akmV@@w™@Ua@aUwVwUw@w›@UK@£kaĉlóIÇVkޱ@@kUKmVkIkxW@Ua¯UUm@UVI@WVI„JV@ƒ@Um@Uana„U@m‚I@J@XV@XaVlkXƒVaUUWLUyVIXmWak@ƒXkJókƒJUL@KWkk@ULU@Wa™lUIkJmI™mk„VbVš@lV°kXUKWKULU„mb@VUlVnƒb@VV@IVKUUmU@ak@@bmV@xklƒUƒU@UKmV@nƒJVbkXƒKUamLUJ¯UUVmI™bVV—Ll`@LƒLU`m@kXUVU@V„lxUK@xkIWbUKƒx@V‚kVVn™b¯@@U™@ƒxk‚mbkLÇK™b™@@XnJ@LmVklƒ@@XƒlUƒVkxƒakVVb@bVnUbU@@x˜VUšVb@š„ŽnIĊ`šXVVôJš_„K@xlU²Klk„U„@VaVVÈm@kVUVmnamUUaVƒXIVJ„@‚ç@¥nkVLn›„@@XVK@VUX@JVUV@UnVJVLUJVLUVlšnI„b‚KnU@m°™VanI@anV‚KVL„an„lK„blš„KÞk@¦@¤@„VKnLVK„L„KVzlWšLX@VmV@VbnU°@Ualk™˜WXLVU„KWkUUWšƒ@£Wa'], - 'encodeOffsets': [[ - 121005, - 35213 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3206', - 'properties': { - 'name': '南通市', - 'cp': [ - 121.1023, - 32.1625 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VJ@bnzWl°L„xnW@LšVVI@Wš_V¥„@VKVL@LXJ„I‚@nbly@aXXla@aVUnllLX@@UVKlbš@@m„XV`V@„bĢ„lkČÇÆƒȘ¯šwnĕVĉVÿšUƒUĠƒŦğlXÑVǵ@±ōLʵ˝lÇbÝÞ¯xk@Çkķé™n¯@ğŽġƴǫ@kVVlUbƒL@xULǂóLUl¤@nkVV°VLkxVb@l™aUXUKWĖklVX@¤UšƒUkb'], - 'encodeOffsets': [[ - 123087, - 33385 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3208', - 'properties': { - 'name': '淮安市', - 'cp': [ - 118.927, - 33.4039 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šnźUôÒɴ胚l¦nĖV‚kbmš„X@xVlVL@xUb@bUJVnUx‚šœ„lKVLÈx‚m„zXV@lW@XV‚b@bȚVxnb‚ƒVIXa°L„aÆVVaXUlK@aXIƄVlXKVUlIXalK@alwXLVK@¥Ý¯¯ÿ@ƒmVk@aX@ƒm„īlaXI‚wXJVUV@lw@U¯yb›UaƒUġUÅaUKVknaġm@kUm@wÆIV±nLÆw„ÇnUUkƒ@ƅÝU¯JÝI¯¦Ul@bƒ@@VVL@l@LƒLÅmƒL@b™@UaVaUWmLUKV¹KƒLWKX¥WI@mXk@UmaUVUU@VmL@W™bkIUWƒUmVóIkbmm™@UbVLUxmJkU@bkJWbnXU`Wz™KUÞÈlVb™Lmx@„kè@Æ'], - 'encodeOffsets': [[ - 121062, - 33975 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3205', - 'properties': { - 'name': '苏州市', - 'cp': [ - 120.6519, - 31.3989 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôèĊVnX°¤²„lxƒÈÜ@²x@J@b@X‚`nIUƙUUV@bl@VVnL@L@xƒJ@X@blJXnW@@`XbW„kVƒ@UbVxƒXUxkV@LóxVbUVWš²šVJĸklUǬ@ĢƳĠ°@šmƒī°»ÈÇ¥ULUU±a@bU@¯ƒU@KnImUVWUk™mXUVU@lIVaUUVWKUbUkWKU¥n£WakJUkUL›K¯L™KkƒVIn@VaUƒVUUƒ›UkVk@ƒU@amUkJƒ@UUlwX¥W@@UkVmk@JUakL›@kk¯ÝmJUn@nmVXlmbVVkn@„UJ@±WUxV¯a¯KōbżÇxUxƒšUUlWL'], - 'encodeOffsets': [[ - 122794, - 31917 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3213', - 'properties': { - 'name': '宿迁市', - 'cp': [ - 118.5535, - 33.7775 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XbWnUJVzXKVVUbW„klUWbU@@W@IJ@nƒVmbVbn@@V@„UŽƒIUJ@XUJ@VVn°VVbX@lwlJnUVL@l²@lÈUôJĊklb@¤VLœ@@xVxUxVx@bVbš@@xU@ln„mnX˜mXLVmV@X@lxVnVJôL„LXa‚x@b„@@KVL@bn@@m@™@alLUUVaU¥nIV±‚I@mXI@aWWXU@LlUXWW_XWmaUwǙ@aaWUX@@kWUƒynÇwUKkL›ƒ™VwUmVI@aVa@wUKUk@wƒWn™laUmĕk¥„™ɳçóÑŹV™mmzkVmm@a@Ióƒk@@LWU@`—„WbXLWlkImJVn@`nXVbXŽmL@Vn@‚l@nUVl°Xx°U@LVĠ@z°˜@¦UV@Xn@VJmV'], - 'encodeOffsets': [[ - 121005, - 34560 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3207', - 'properties': { - 'name': '连云港市', - 'cp': [ - 119.1248, - 34.552 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@‚lzXxmÆV„„@@¦„@l`XnlKšXXm‚KnLla„b„@„xmbm@kL@V@Vl@@VUXšJX„mbš@@„°Æ@èÈzlW°XĢJlÈ`lInbšWV_@mš™@UUķnƒôw°ÆmnaVƒVÛVmĸ»Ģw±Ý@@mUIny™UmWkۥݙƒK™@Wn@@aWUnwVL„mUaWIUWVk@kkJUVWLUkŃWJ@bkLWVUbÅUƒb¯KWbUJ„WXX`WXkV@KWVXX@bWJ@nJU²mJV¦UbVVkK@b@š@nm@@aUK@Lƒ@@awWbƒKóKUIUmkwW@U@UnWK—nmWƒn@b„l@bmVUb™@kw±n¯w™VUb'], - 'encodeOffsets': [[ - 121253, - 35264 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3210', - 'properties': { - 'name': '扬州市', - 'cp': [ - 119.4653, - 32.8162 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VUXblVVV„b@xV@kz„V@l‚wVLUbVV@VU@VbUbl‚b@nkͰIÞV@Ɔ„VlmVƒÈÅxmKU²ÅJ@xVn@lĢnmbUlVLÆbĢV„V‚bœV‚aXk‚@VXKVVWšXVWXUmKU„aWaU@™¥@£XW‚UUV@@ynam_VWkUVUna@ÆV@mnkWmXkWU„W@k„@@akklƒlWUI@UnKl¥™I@VVma@a@I@U@a@anK@UmK@ÅVUnJl™kI@aVwka@mVIUW@UWL@WÅbmIƒƒULka™UWƒUxkLUKWlXL@VƒImƒÅVƒU™mĉL™Uól¯I±l@ÒUbVbUVVXUJUnVV@lnbl@'], - 'encodeOffsets': [[ - 121928, - 33244 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3201', - 'properties': { - 'name': '南京市', - 'cp': [ - 118.8062, - 31.9208 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@k@ma@kUUVmVIUWVUUaVa@Ѳk°Jôk@Wmk¯KmX¯aUakKƒƒWU„@XU‚LXaV@@mUaVUUl@VmkaUXm@ƒWUUna°IlmV™m™IUW‚@Uk@@aV@VVX@„V‚I°»nm„U@VKVan@m»UaU@U_@WlIUa™aVaUala@¯n@‚ƒkaUkUUWKU@mwkUUmmL@K@ƒLmUUVƒKƒVÅImU—JƒƒVkVVLšèVLVU@W„L„V„š@nVÜULVŽUL@bW@XbWbkJƒUUVUxVXmVk@WUUkVmIƒV@„nbnVWbƒJU„kUULƒa@Jma@XkK@VVL@L@JƒLUVU@V¼ƒnXlƒbm@kbUKmn@lVb@VXXV‚UV@b@LVbÆxXbl@@lV@U„VV@XVK²VlIš`„UbVbUlVVn@WXn@@VUV@„@KmbVLXқLkKƒV@nX@VVUV@b™nVllbšmnb„IWVXU@`lLlknVnmlLlbUmVInK°nUƒU@l@VU@Vn@„ƒ@alI„`VIXaVaVa'], - 'encodeOffsets': [[ - 121928, - 33244 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3212', - 'properties': { - 'name': '泰州市', - 'cp': [ - 120.0586, - 32.5525 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lUU@@y@In@WwXal@Þxl@@anVô@ÆX„lŎ™ôU@™Vw@ÇUU@@m@U™JUUWKkL@Vm@@£„aUUmyV@@_kJUUVUUWlUnblL@aUmƒI@ƒULUW@IU@WaUK@£UK@aV@°V@LnUWWXIla„VV™@£UWlkXĕVLVWšb@kUalwUKU¯lU@mk£VôKȁVK@w„KVaUkķlUI±™ğ¥ÝUʚ™Ž¯ôm¦ƒĸ™‚@XXK@VVXUJ@nlbUx@blJkšmIUV@ÆnL@VmL@b@b@V@J@bnb‚U@UšJk¦mL@VVJkXk„ll@bƒ@@lƒXXVWlXnml@nÅU@ŽmbUVlVUXn`mb@zU@V‚VWX@¤š¦V@Xb'], - 'encodeOffsets': [[ - 122592, - 34015 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3202', - 'properties': { - 'name': '无锡市', - 'cp': [ - 120.3442, - 31.5527 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nLƒÒlxUVkL™am@™ƒkVWUULUxVVVbUV@bVLU‚nnź™ÞVĠ¦X™VUUaôw@KlUVw„WUwVa„@lUXƒWa@_X@WmkI@a@W„I@w@KmKUUk@@aVUšVVÅmJ_@W@a@I±wÛ@ƑÇkw±ƒ¯£mWĉUóçƒK¯VkUWK@XkV¯UWabƒmUa™UUb™lln@b@xƒbXŽWX`@„VxUblL@bn@Vb@`m@XbWnn@l¤„n@xnVlU„™VLÆWœkV@VbÞJ‚_nƒl@nKVU@aU™U@mVk°WVLUV¯bVXŽ˜bXlVn@VmL@x—V@bl„š‚@œnW@X@VVJ@²VJVU'], - 'encodeOffsets': [[ - 123064, - 32513 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3204', - 'properties': { - 'name': '常州市', - 'cp': [ - 119.4543, - 31.5582 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„L˜ŽnxUbVVƒL@xnnW‚nn@VVXn@‚yœImx„„°ƒšL„a‚¥n@VkšKVw„W@nX„VJ@b‚@UVn„ƒ@UnUV@L‚b@`VLklVÞn„Æ@VaXLl™ÈJšmmVUK@aVUUaUUVwVKXVlUš„n@šblKVUkw„ÑmKUVUI@±UI@U@WmX@›™kƒ@a˜U@wnK@UUmWk—aWU°aVUUK¯XUl@nVŽVš@bUVmLk@m„`ÝIUaU@›lÅXUKƒškVmU@wƒmk£m@XmWan@@_Uam@@akKVaUw@ƒW_XW„a@w@akmm@mL@UJmnUKƒ@@XnJWLkKUb@„Vxk„WƒL—aWVUImVULUK@L@lkLVVVllb„m@@°kbVbUbšbVbkJ@XV`V@Vbn¼'], - 'encodeOffsets': [[ - 122097, - 32389 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3211', - 'properties': { - 'name': '镇江市', - 'cp': [ - 119.4763, - 31.9702 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šVĊKšn„VÆUn„„J@UWKXkVLlKVwX„šVlbVK„„nJÆaš„ķn¥°óÇIkšWKUbÅ@mƒUÝlkUK@_a@KVUVm„@mƒVU@@aUIWƒ@mƒXUx™LUlm@¦ƒb™K¯„ƒƒnw›Jzm@UW@UmmXmm@w„KUUVamw—ƒKm@UbUL@ŽƒVmn¯¼JƒUW@UUU@@bl@@VŽVXšJšnnU‚‚k¯JmbVV„Xn@VWlbUnk@VVUŽVb@nU@WbKWVƒ@XV„„lLVb°bnW°Lnl@X'], - 'encodeOffsets': [[ - 122097, - 32997 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/jiang_xi_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '3607', - 'properties': { - 'name': '赣州市', - 'cp': [ - 115.2795, - 25.8124 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„`l@Èbln„@„KVLl@„V@bȎlnšKXkVlVL@„lJnb„¦VKVVnX„W@w°@VU„mln„UV`šU„bVUV@„xnKVI°KXKVkVL@al@Xa„LVlULWV™VVL@b„x@VXVmb@x@V™VV@nn¤„šlb°b°KXXWbX`lbXx‚z@x„`VIVUnK„L‚x„WXLVKVbVLVU@wnW°b„@nalX„‚mXVJn@U²mKkVl„U@@xlnœaVmlKnœ@JVLlŽnVššl@XXÆèVlUX@xVLXVšb°W@wnUWmXk@K‚LVwUmUkUKUw@wVaVK@kƒ@WnkUKWkwlmXL@KVUlLVKXmWU„L@ašL@malaVk@aa‚ašƒnXš@VVUblb„Jn˜ƒXa„V‚wn£„K@UWmUk@ƒUaWIV@b™JW@KmmU@aUUUkmKkVKlUU™nKVU„lVaV£Å¥WUUK@UkUUw@m@mIkƒƒUUWƒLƒK¯Uw°¯@wUKUbƒKmƒ@kkKUL@UUKV¥U@manw@k@U@Wm@@U@Wwkm„wWaUU@UUmV¯kwƒ@@kmƒkKkUW@UK@ÅV@XWWkXa@Ul@Va@KVaUUU@ƒaXwla@UkVWaXk@K@lmkUmV@Vmbk@ƒ»XIƒ¥VUkƒVUVU@anKVUƒKUalU@wX@˜™@a@K—@ÝwƒL@ŽUnÇlUIkJmn@ŽƒbVVb@VmnkLƒV¯U@ƒ±l—IWmƒ@kaUI@aÇU@K@KUIkbWbƒJUIUyƒX¯ƒUbU@méUUmUk„WK—xWIkJm@V¥U_UJUwmVkšƒUU@ƒƒƒ@knƒwm@UmkWJkL@n@VW@@‚U@knm@kUml@xÅxƒ@@XUJlb„@VX„JVxn@lbV„@lULnV@VlnV@bWV@bXL@lVLVb„V@blLn@Vl„K@xln@bX@lašLVbnKUVVb„KlXVVkxƒV@nnVUb‚lV@@z—°WWkbƒIk‚WL@LUJ@bUI@b™`@UmI@mkK¯XW™™mUV¯@UUVUUam@@VULWUJƒIm`IUJ›KUkW@Uxn‚WbnnmlXbmIUVmV@Vnb@V™LUKWLnÒVVV@V„UL@„kJUV@bƒÈ@ŽšV°šŽ@XVV@l@xUz'], - 'encodeOffsets': [[ - 116753, - 26596 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3608', - 'properties': { - 'name': '吉安市', - 'cp': [ - 114.884, - 26.9659 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lxnb@V@bV@ln@‚n„‚lInš@blVXK‚nk¼@VUKWL@b™L@`UXU`ƒ@V¦XLĠ@lJ„¦@„nV@l°nn@‚mVXnaš@nb‚K„n@l„IVƒš@VanJ@_lKVVnš„L@L‚K@Vn@VbšUVanKlLnbnJVbšnWVnVVanI@‚Vb@L„bVKVanXVbVJVU@aXLll„bôlƼXxVLVK@Xn@ƒxnVVVmb@LnVVKVXV@@mnaVXUVnV˜K@_UaUmšwnKV_‚anKVLš»„K@¯ÝU@›™U@kWlUn™lknK‚VnaUkma@ƒUIUwl»Åw@ƒVwV@n™‚n@ÈXlKVmna@kVw@anm‚@n_WWk@™™mUkUK@Im›kLUn›bkm@wV@kƒlUnLV±m@UInWƒkWmbƒ@¯amX@xUVUKUaULWKƒXwƒKmLUVUJƒ_@wyWwkaW_XaWW¯L¯akaƒ™m£@mUUš@U@wnaWU@Uƒw@aUKšUXUVKUkƒKWbk@@bUKUlWL¯LUJmLƒwU@UVƒa™VU_ƒVkmƒnUV¯@@xƒXmWUUULƒ¥makI@ƒUKUkWl™LkmǍ@aƒUk@UKƒLƒ@kmÇak@ƒ_VlkL@`lbnšlLVanLnbmVÆln@škJlbknmKUbÝmmwULUK@bkLWKULUUma@Kk@UV@L@llbVzšxUxnl@bVLmŽšŽ@IVJXœVlƒLV`@bn²@J™@™V@Xmbñ@WbUJ@bm@@LUĬU‚„¦lV@xXb@blnUV'], - 'encodeOffsets': [[ - 116652, - 27608 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3611', - 'properties': { - 'name': '上饶市', - 'cp': [ - 117.8613, - 28.7292 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„„@„V‚š„„I°`nm¤²@bVJUVVXUl@Vmb@xV@XbmVVœ@lkLmbn`VbnU‚@Va„UnbVllUXV„a@w°VW@_VWšLššnVlbšLVbnl„KšnVK@IUW@_@am@™‚ÑUólK@U@WU@VwU@UI@aUU‚aXƒƒ@kwmJV@yX@k‚anƒƒ@mkwVmmI@aUU@aUUW@kVkV@@anKš»„XVWnIVUl`@_„W@wlUœV@UWKnU‚bnްInJl„UV@VnI‚b„Wn@VklL@l@Vn²m@U`kI@bWJƒnV@°VXnJm„XVmx@VVL@bkLmWULUmU@ƒbWXb@llnX@‚xkxVV„nVV@¤nL‚nVxnJVXX@˜ššbn`VI„b„@„blmlLnaV@„blWXnlUnbl@„ƒšKVanUVmm_XK@kWWnašU@UnaWUXa›ƒXamUkKmXUWƒLX¯WakKm™nUWwXa@KW_„aXWW_@WnIVl@XU‚LnWVknK@ImyUUÆbXK„Û@W@IÆUnƒVÝlkVK@mUIVwkUVaUm@aVIVyXIƒaÈwmmk@UnanVUmÅaó»lwšW@kkUVmUK@WKLƒUmWULkamK™Lk@Wa@wk@UU@U@mbUIWVKUXWmkUmVm›U@LkakKƒw@w@U™¯ƒ‚ƒUUn¯l@bmn@xkJWxkL@VkI@mƒkmJUI@V@b@VVxnbWlkÈkVƒLƒbkKmVƒL@V@²nxW‚kLUL@xlKVx„bXmVnšWJ@ޙ°@n™xUKUw±`UImVmnU@kalm@akwƒU@UUJmxU@@Uƒ@kU@Um@@Kn™ƒVm@k™KmkU@@WUnkLWxkVUwmKmLkU™bmKUbVŽ@xUnkJ@n±ŽšUxVXUšWJ@LUb™lUnm@ƒW@nknUJUVm@kXllknVbÆK„VVbš¼V„@šUl'], - 'encodeOffsets': [[ - 119194, - 29751 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3604', - 'properties': { - 'name': '九江市', - 'cp': [ - 115.4224, - 29.3774 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@WUkVUkmaƒVUb@mVUam_nalK@kU›nUWaU@@wna@UVkUWVUUI@a‚±n£m¯_ƒJ™ƒU@ƒƒƒĉ¦Ul@UV™Km™mLlm@ğ¹m`Uk¯@@UVK¯™@UUK@amkmKkVVUa@UkUƒKƒŽUa™L@VVXUJ™@ƒnƒ@™š™WUbƒnVb¯V@LÅlÝIƒJÅkݙm@Ua™WUU@UmUXmmwVUUKWUX±mUam@kWƒzUaVmÇw@aÅLmKXƒ‚UWKkL@W¯IƒwVw™lkUƒJ@Um@ÛÈWށKUxWkƒaUU@KkLVl@„UKUX±KUb@nVVUbUVmaUlUL@„ƒaUL@‚@nUlWzX`@„V@lx²„@Vlb@bšVÞ@°nl@UxVL@lUbVV@n²xVUVmnUÞb‚a„J@IšV°xnbl@nbÆ@VwnK@VnXlK°xnUlVX„V@Vl@L@lk@W_XK@KƒkWxUL@J„nVx@aX@VVUa˜IXlmL@bVVX@VbnK‚a²XVWƒk°a„@UnV¤nbmLmW@XbmJUbVL„aÞK„L@K@U@aVKlbV@nXlJœxV@VnšŽVȚ„ÞKôbźĕČmV@ĊšŽ²xÆIšV@Þ¦ĸ¼ÞVlŽVÞnxln°Jœk‚LXWVUVUVwnJVI@yn@lXlaXmWI@w—»ma@UmK@akKkXmW@_kaWakKWk@@K@IšWƒkUa„ƒ'], - 'encodeOffsets': [[ - 119487, - 30319 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3610', - 'properties': { - 'name': '抚州市', - 'cp': [ - 116.4441, - 27.4933 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°V°UnÜ@n@lnLlV@bšV°L„lnLllVzVVXlV„V@@L@xX@WlX„m@UVƒL@V@n„°škVmVUnKlaXxVbšnlU@lVVnaVI@aX@V„šJš@V„@b„b@šVbš‚@X@lUL@Ž@VlIVm@wUVanLšalVnKnLVxlUXwlKVm@k@Una@mWIXKWUÛVƒk@a@UVWn@@kl@@W„XlW@_Um@UVK@a„LnalInWV@@xnI@¥‚K„—šm@kKmƒnk@mlI„¤laXbVblknV@U‚KXVlUXa‚@@Unw@±mU@ak_±a@ƒUJUIƒVKW_Xa@aWU™šK@mmUVa@IXa@UWmšannlmX¯WKXwVUVwƒ@XUlK@klJXa@kƒkmm@Uwƒw@¯ƒW¯kw@WmbULƒaUUU@mVUU™WmkUb™KmkkK@aƒkUƒ¯¥Uƒl—ƒm@akU@mš@KVIVV@KUkUVUkaƒUWb—„mƒIkaVaUU™@mW™„b‚b@bUlkb‚b@n™K@bƒKXVWnULkKUV@LWKknlxXŽVLml@X„Ž@lULUb@xVxVLVlVnUxK@LWlXnmV@x¯X™aWUUK@wVWUkÅçm`@mn@bUx@lmbUnkLÇWm@mšU@Ux@„Æxk¼VxVJ@„nbVlmbUmLklmškVlX@‚VœšV@°Þ'], - 'encodeOffsets': [[ - 118508, - 28396 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3609', - 'properties': { - 'name': '宜春市', - 'cp': [ - 115.0159, - 28.3228 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@VlbnK@b@JšLlUnx±ĀXxÆW„X@lš@V„@@blJ@nX@˜xUbVVUbVV@b—VmnmJœ„@bmbm@klUbƒLmbœš@lVb@xUX@bVVVbV¤@LVV„bXlVw‚LXÜÇn@@V„IlVškUx„x°J@XlKXLV„‚WnLÆK@bÈxUnVb„ylXn@Vbn‚W²XV‚LVVUŽnxWnnV@VVVšXVbn@ޚÆl„IÞJÆk@K°UUa„mVa@UUUš»@wV@VƒkkUKUVW£U@UmW@@aXkVUnVlKVV„UUkVmU™@kWaUanU„VVamIX¥W@@aUaUVW@_mW@UnIVVn@VbVm@bVL@anKVUkƒWK„UXV‚Ikx‚@na„bVK„b@nVJ„_V›@Vw„‚VUVVXUlUUaV@X@VblašbnKlkVaXaƒ¯@m@U„KVUn@WƒXkW@@w@KU@UƒWkUUUykkmKƒk¯K™U@akUmK@k@mmÛ¯V¯U@‚ƒL™¼UKmLbU`mL™xVnVb@`—LmUVUUWmb@nU@UWULmU@KnaUUmU„wmJ¯IUJWIkVkaWVUIUlWaUIUVkKmbUIƒÒlVUnnŽ@VlLUJ@bUX¯@ƒaWVUKUXƒKUbm@UwKWa@a@VkUWn™@Uak@mbX„WJXbm@mL—aWVk@™wƒL@WmanU@knwWmkaWL—KWUXaƒU@¥l„UVVVbnwƒ¥nKV™»@aUk@a@UƒJ@kƒmLma™@mbUWnm@ULǺ@LXnmxUŽm@UbkbW@@akLmWk@UXmJmUkV@VUXVlULmKUxkL@lmXnJ@X‚l°Vnb@bU@WbKUX@VmKUX'], - 'encodeOffsets': [[ - 116652, - 28666 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3601', - 'properties': { - 'name': '南昌市', - 'cp': [ - 116.0046, - 28.6633 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šXš™„@„mš@VIUW@UšKVb„„LlV@VVbUŽlUnLnl@bVL@V°šUL@V°@Vln_Ġºn@‚knKnššLVU@VkĊ¥Vk@™Uƒ™»UaƒUÅLUalmkklWn@VUVIlm@m„Xn@VmškVa@KXIV™UWVw‚™²@m@U@VK@k@W™Ua@™ƒa@aUƒ™@™IUƒW@@bUJmbUU@kkV™mUaWwkbmLUVUn™lWbUbklmL™akbUaW@U@VbkVWVUUUVƒUx@‚Uœƒ`UI@mƒaULƒamb@lwJWUƒVXLl„UVmL@bUK@aUnUam@UUmJ@VnX@`UXVŽVb@bX@W¦nJUbƒUmVVbXb@lVšUnVlƒVUUkLmUUVWl@bX@VnV@X¤VUVLllU„U@@x™¼VV@V'], - 'encodeOffsets': [[ - 118249, - 29700 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3602', - 'properties': { - 'name': '景德镇市', - 'cp': [ - 117.334, - 29.3225 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VVX@Vbmz„xUlU@mbmL@V²xVbUVVblbX@šVškVykValKVI@bn@n`lVWnX@l„L@™WKnƒVIVa@¯nK@alIXJVIVWUw‚ƒn@nU˜„nK@alI@a@anKm_™a—™W@UWmIUwmmK@£UUƒmUUlwwW@km@kWaX„aV@VnVKnXlK@aUK@UnwWUnƒmIUW@¯mU„XI@alJV_n@m±@U@kkKUlm@ƒXamJ@UVUkƒmI¯JmamVXL@V›UkV@xƒX@`k_UVmJUXƒW™¼mL@bU@UllX@VV@bVV@bnJUnlx@n„Žm„b@lWŽ@zU‚nIlx„@W„bVV@bVJV@UxV@@X@VkLVôÒ‚šn@@b@`VX@J'], - 'encodeOffsets': [[ - 119903, - 30409 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3603', - 'properties': { - 'name': '萍乡市', - 'cp': [ - 113.9282, - 27.4823 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VWnL@UVW‚LXaV@@ama¯Uk@WmInW@klKVwnLVKUkVW@UlUnVnIVWl@nXlK@bX@laVan@VnwWm@KȹVK¯m@kmU@ƒƒ¥kIğ@WKU¥„@V_VW@_šK@aXKVL@Ul»mWLkU@am™kJƒm@kmU@@a@UmakwU@›„Xlƒ@VXk`UIW¼kWWX@‚œ@l‚xV¦XlW@Ubn„@ŽmUkL@UmJ¯UkUWVUaƒUlm@UXWl„nUJ@LmLU˜nXll@bUVUUmVUn„Ž@¦šxlŽnn@VÆÈU°kbV„VxllnL@VnVVUl@V„„anL'], - 'encodeOffsets': [[ - 116652, - 28666 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3606', - 'properties': { - 'name': '鹰潭市', - 'cp': [ - 117.0813, - 28.2349 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@XV@nlšL@lUnš„mŽ@Ln@@VlV„@@VV@nwVI@V„Vlx@bknlbV@nmnUVJ‚_²‚VxVLšw@mš¯@ÝXIm™nUWƒaUwkL@wVKlKXmw@±@U„KnUlL„a„KlUlÇXkmaUw@U@a@Uƒ™UkwUJ@zWJ™w@WbkVWUL@VmUklUaWakbƒ£kJ@nmln„lL@Ž™nƒ˜L@¦mJ@wU@mXkJmbƒK@bUL@VVn@`kXƒW@Xk@@lm@UX@V@b„lÜUXVWLXJ@nmb@V@l'], - 'encodeOffsets': [[ - 119599, - 29025 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3605', - 'properties': { - 'name': '新余市', - 'cp': [ - 114.95, - 27.8174 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@m@@WULUKWwÅ»ókƒakkWK@bUVUIUamWUbULƒa@KUa@mJUbmUXU™mUamImakKmLUb™VUam@@UL@KƒKm™UUkL@`mIUb™@U„@V@bVl@bš¼UŽmL„¦mxUaUUƒVkŽ@¦„VWbXV˜LXKlbXnmx@lmVnb@X„Kšxl@XU˜bnKn@WaXIWƒnal@Vbš@XmlV@U@bXb‚LVxn@Va„LVWVLXU„b°@VW@aVIkK@UmVmkU„ÑVJnalLVUVJXbVkVJXUlblUXJVI°JnI'], - 'encodeOffsets': [[ - 118182, - 28542 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/ji_lin_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '2224', - 'properties': { - 'name': '延边朝鲜族自治州', - 'cp': [ - 129.397, - 43.2587 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Wxĵ„mš@„ó¤VX@@xܼƨš²xWxƒV„V@„XVƒ„„„ƒbWšXllaÞU°Ċ„@ô¼„LôÝWanV¥ƒÑnĉ°¥šÅX¥°¯@w°w@»°k£°mÈŹ‚mÈbƃŎ¦„K°z@Žkxl¦UbU¤šššklV„KŤÞȰ@@bšV@nVVUlÞ¦lUllœVlU°ÑU¯Vƒ°w„bXxl@V޲„˜@n„ô¼ƒó°™kmVk²ĕ‚w@wV™ÞÞ@@Ġƒö»˜¯œ@‚„šbnb°mÞ¯°V°„ÈJmX¥mam™UřƒUƒlaU¯™ƒ@w™Kk—l±n@@wƒkÝVUUl±¯I¯b™a™lƒ@™kLmakbƒ@ġƒŹé°™Þb°šékƒƒLm™„wX™‚aÅb@bVlƒbVb—ÒVbUb›UUanwƒakbVŽUV›ak„¯„UŽƒLmxV°UxnôŻX@J„Xkl‚bkbĉaƒbƒWU„ƒ@ƒk„WUU¯@@klmƒ@@™Å@aƒwWXlKkI@WbUaVIUanUƒƒ@ĕƒ¯K™„mUnWUwm@£ċèkUmbUmm@@nkJUalwk@@nmWUan_óaWmnw±KœIƒwl@UmƒI@an@@mlUÅmV_™KUkƒ@U`@_ƒKUmU™@U¯™mmb¯@kb™ImV¯ƒƒLkbƒKƒƒÛ@ÇnɱJóaÝĢkb@„›x—ÒÇllœ@‚޲V‚„ÆUVV„UÇ°X„óxlV¯„lV@bƒV@n—x›@—¤@„șŎnxV¼knšJ‚nšKX°˜¦UlnVbUbÆVnÞWVX¦llšb@l°œVJôÒnLVbšbXŽ'], - 'encodeOffsets': [[ - 131086, - 44798 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2202', - 'properties': { - 'name': '吉林市', - 'cp': [ - 126.8372, - 43.6047 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôl‚zšaÈV°„šK@„mŽ—LWl™nšVxUV‚È@ŽÝĬUÈn‚ôLša‚„²VmĀkV@„ĠĊnU@b„V@b˜@nl°UVnÞaôJ@bš™V„¦mlkššbmVXx¯@Vxm„nbƒ„šbÈK‚V@bÈL„wĠyônšmnbÜ@nn„V˜x@n²K‚„„J@k„al@nxÞU„Lź±Vwkw¯LWWUš™kŎīVwƒw„°y„Vĕ°wÈVlkÛ»@wW@Uô£@ƒn™ĶƒXwW™aUamKóÑUI¯›@k™akkW¥XUmÝÅUVaUa‚mVk—¥W¯™Lm™IlmU»mwȚō@ƒ˜£kJUÇk@am¯y¯UVwƒa@wġx¦ƒKƒƒ¯X°Ċ¯¦U°ċWULÅa±b¯@UkÅWmVƒ™ƒkIUlóŽċ¹™`óIƒlX„WŽXxmbUƒLݏƒbƧ@ƒx¯bƒÈ—l@xƒš¯zƒaݤ@nšm„VWb²bmn¯J¯Ò@n„š'], - 'encodeOffsets': [[ - 128701, - 44303 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2208', - 'properties': { - 'name': '白城市', - 'cp': [ - 123.0029, - 45.2637 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ó™ǩŁ@WlwUaƑwÛÅÇéĉamKƒōÇ@Iƒ™ôġVƒȁÑŹçƒ™ÝUƧċĉwóóÝ@Ƒ»ğL¯ll²@ƆÅV@¦m‚Åb@nmlU²VxšlUn™@VbnW„bÇbk҃š„n@èlnlšU҄ްLšx@¼ĉb@҄šUŽċxՃènLVxƒÒƒbÅJ±a@_ÅJÅnƒŽVb„Kl„nUÜĊ@„Uš™xXVÆn„mšVššJÞ¯V™ĠwšƒXw°xWL„x„KV¦ôU„wVÝǬóÞޙ¼‚‚„ÞkŽVôȘxބU„lVn¦ÞšĊa°w„b°@šbÆw„lŤL²`„z°@V@@™nJVnl@@¥nUmmn„@mwnmmUnk@mlwUaƒLnƒ›wn¯°anƒWakI„ƒÇmXwÆamUXUlJXa‚UUklKUknmÞV@‚K@VWÞ@VkUwVƒ'], - 'encodeOffsets': [[ - 127350, - 46553 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2207', - 'properties': { - 'name': '松原市', - 'cp': [ - 124.0906, - 44.7198 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„šźèȂÒU„óĢ„š@JŎȄ‚‚LnŽĊbÈêÜÆƒxVbkx@XǪłôš„kÞ`„šW„b@n°ašbšKšnVw°`š_X`W„š¦„ĊIkmVšakw‚K„x°UÞb„U@lšƒl@°¦œVW„šaÞbšxÞI@mVI@ƒVkŚUWK„¥nL‚a@ƒ„@ȍ„@°ƒÆ@nU@KÞalkUwVékUWw„™kU›VkkƒJk¯@»ókƒV¯ÆÇI@bĉô¯@™ķw¯nmmÅL¯wƒVƒUÞy@UówÇLkmm@@UóxkkĉmL¯wVwkWWX™mLõm@kűV_ƒƒô»ÛƒÆ¯@™Va™VšaĠVlmğwķUóÝƽ£ÇJkbǫaƽLW@nxݤkzƒy¯XɅm@VšôÇX¯Ė¯ºÝnUŽnLVlUÔmV'], - 'encodeOffsets': [[ - 126068, - 45580 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2201', - 'properties': { - 'name': '长春市', - 'cp': [ - 125.8154, - 44.2584 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„U°xÆKnn°mĸxš°@Ċó@aÈJ°Å„Uôl@¼l°„IllœUlVƒšXxlVUêVxkllnÈUVll@Vx²IÞ¤VUlVnIôlރlwô_„›„bVaĶLXÅÞÇ@K˜¯@wÛaƒçn¥š¯WXyW¯XwƒUmmÛ@ma™nómğzƒxÇK@aUÇL™a„ƒmanƒUw°@WwnU™al™nkƒ¥šU™@aóIÝbUm¯Vmk—@@aƒU@amVğĉ@ƒlUnÿ±Uƒ™bóKmVÇÞī@ÇVUUw‚™šmXk˜Kn@ƒ™L¯ƒÇU™byókōè@b‚n@lÝX@x¯ô@ƙUV_maXm@aóƒJWxnX@ŽVVnĖVnUJ@nōÆÇ¼V¼kxƒLklÝw@xƒx@zV`ÅbmxU±xU„nnm‚kn‚ŽğU™bUŽ‚šUb@šÅ°Ü„󼄄U`Ʋ@lön‚KšnXWlXUx°xnKĊllôw@Vn@lnÈKôx@VÝz„V'], - 'encodeOffsets': [[ - 128262, - 45940 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2206', - 'properties': { - 'name': '白山市', - 'cp': [ - 127.2217, - 42.0941 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ušl¦kÒÆ°„IlÒU¤ôz„¼lJš„U„n‚ÆXVl°@²aÆbVKČXV¯°¥¯ĉ°W„„„L‚¥Ģw@x„bUx°V°zn‚‚b@ÈlVŽlIœ@˜w@m„U@akU°ƒkUôwWƒÈ¯VUƒVUƒÅ±U›@kÈk˜Ñœw@ƒlaÞġƒUÞ£@ƅ‚KnÑ̝@W‚aUaVUVkkw@a¯@¯™Ý™ƒVXnW@@WkXmK@xkKUb@bW@Uw¯„mmb@WKUbmUbUaWbƒJĉIVW@I—l±LkšmU™bUm™@ƒnkKWa¯n™@„`Ubma™„ĉL@bƚ—@W`ƒL@n¯‚Xb‚@kb@x™Lƒ„™@V‚kL±™™mlUIU¥mL@lÅx@_laƒƒ@U—aƒV@kmmƒK„£ƒƒLƒƒmKUnÅKVbmXVlèĉUUbml„ĢŤƒIlޝbǦœl‚@ô¼Ģ„@x°„l¤„n„a„l@x™b'], - 'encodeOffsets': [[ - 129567, - 43262 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2205', - 'properties': { - 'name': '通化市', - 'cp': [ - 125.9583, - 41.8579 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÆlXnĠx̰lȰš„K„°kXm‚@¦Vbk„ŤJšnݤk„VÞVVkȄb°y„™@w˜k„ǰa„wƨ@„aސ„K‚VnaWwXWƒ„kôJš_ČºôVkƒ»óyV£kуJůlÑk¥V™ša@wƒkƒbƒmk£¯ƒ@wġƒó»@›kÈ¥°ak„JÆ£ƒġnkVaĊVkçWUnUaÆLVmnL„„‚KU™±@—„m@a¯U„bmV¯m@_ƒK™™U™ƒaƒÅ™Wó¹ƒ@UanmWak@@wmI@y™@mk„JVa™@UaƒIkJ@n™@Um±kkxƒm™Ik„ƒbÇm@ްbXn„V@ްÈmlÞ¼¯XVº¯Lm„kWWXLmVVlknƒ@@lnWƙ„Vxbmšnšm„¯lÝaVȁè@¼V„„b™„ÆŽ°ÞUVšJ„„kx›I—xƒƒƒIV¤™ÒXxmn'], - 'encodeOffsets': [[ - 128273, - 43330 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2203', - 'properties': { - 'name': '四平市', - 'cp': [ - 124.541, - 43.4894 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ɇn°W„zlyÞ£mwX@ƾKǬblaÈIƾ¤ôÞĸVĠxnmmVƒ²w‚VnwÆaU_@y„w@wÞxlk„KlwU»È»ŎÅ@mVIUmmĕUU@mWXw„Iô‚@bWnnbU`‚šV@Űó@wÞW@km@aŎ烙@m°Ñ°Inm±aXaƒU™n@mƑšU¦@šÇޝaU£šaU™ġ¦ÅҙJōUŻókUÇ@™¥¯ak¯mUVak@@aċçÅaUƒm¦Ý`XbƄ@n`ƒI™xĊÞōÞml@šUb@Wl™_¯JkšÇUÝÆÅb@n™„llUb¯„±a@ƒ—ƒWĉJġ™Unóšm¤œxôaVnƒxôI@x„V@bmƙ„@lnLmޯޙxVb¯þ'], - 'encodeOffsets': [[ - 126293, - 45124 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2204', - 'properties': { - 'name': '辽源市', - 'cp': [ - 125.343, - 42.7643 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@żôŎVšIÆÑĢ¥Vš™bV¤°bȍ@™V¥ƒ™Þ£lÇUUUÝlƒÞ£™mţIlƒUa@¥nlWƒ¯ƒL¯™kÇġ¯ğwWmÅk¯UƒVU„„bWlXlmnƒbUx¯xVVknlŽUbV„ÇKUb@„™VnbmlnzUº±bmJUbWÈnèm҄š@X`WL'], - 'encodeOffsets': [[ - 127879, - 44168 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/liao_ning_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '2102', - 'properties': { - 'name': '大连市', - 'cp': [ - 122.2229, - 39.4409 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚IÞmVk@wXWÜbnwlLnU„@‚nLlbXW@a‚wnbl@XL‚aš@Ċ¥@LULnJ@xVnmV@VXXV@VJkn@VÜKXXôJlb„xl@„IVbnJVLUbn‚lnVw„JVU@ƒXU‚aUUlwn@°ƒn„VKnV°_VJšwl@nwlV„IXWlIVVnK@IWmkIVaVU@WÈUlmU@U„WUalkXġŻ@kIƒ»mm™akUm›ĉUŁV»²ġVĕ@aUU؍IɃ`ȃ@kƒw@ƒUƒmwĉ™@ƒWķсIĉÇbÝLkymbIƒwÇmÛbmbU„¯ÜõÈkÆVbŎxnXVÆnšǪ¦„bš¤Uš™xÝnĉÒmĊVȄ¤Èš„bƼ„Ā„„ÆÆÞ„źb„VVbX„‚°²¤'], - 'encodeOffsets': [[ - 124786, - 41102 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2113', - 'properties': { - 'name': '朝阳市', - 'cp': [ - 120.0696, - 41.4899 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@na@UVI@m„ÑW™kaV¥UI@wl@„aÈbšm@wVašk„@@K@kƒ™@a@UUmƒUUalmU@KÇUű¯@±kUKVkUaƒaU@¥m@@¯k@WLUmkn@mmIkm@amU@wVmkU@Klk@U—m˜aXIWWUL™aULVbƒmk@UUmUk±™_Uym@mbkImaX¯WW™xWKzU@WƒkJWwkV™@Um@UbVVVVXb@VWX—@WŽ@Vkb@V™nUK±aUUlwX™ÇWKknU@mmUkƒLUVƒVUUVƒUaƒw™bkKmwnIƒ™kJ@nmbƒ`kmVkLWwUm@UUU™K@UmaUa@UUaWK@mUƒ¯Wkk¯VmUUŽ„xVXUVmL¯ymXkWUbmXUKƒVknWx¯JVnkLƒl@VVxnxlĀVL²WlX„l@bÝVUn@bnlÜaXblIVl@šš@Ȧ@VmbXV‚@@x„VVnUn@`°@VnXU@K@„VV@VmbnVn@ln@b„xƒ°Ub@bšLV`Ånƒ„W@@lUšnnWVU@Vbkl@Xl`XxV„UblŽkX@ް¦V„UVVbUlkV›@UbVbkLUxmJkXšš@b‚bœxVKÆlXX˜bnŽnala@ƒUk@U„VVklKVUXKVU°KVan@VUnLšKVL„WVaU_@mmUXa@m˜wXwVkVWXk‚k@›„k@klm@wXKl@U@KVUUUVaUƒV@„alL„xUx@b°°VnnVšxlIXJmx„LUVlV@bnX@Všb„aVx‚@XJ@b‚n@VŽVXȄl@llX@lU„Vô°°@ބVbn@‚V„k„@VW'], - 'encodeOffsets': [[ - 123919, - 43262 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2106', - 'properties': { - 'name': '丹东市', - 'cp': [ - 124.541, - 40.4242 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lzXJ‚U@š²x‚@@Vš„@bUVmKUn„°n@lnVK„„nV@n@VlV„°WbXn@‚VzƒJ@¦@bkb‚bUl@bkbƒJ¯zƒWULWbklV„nb™¦VJ@„„K°U„kl@@W„bVn°@„Všm²U˜nX`„UÜLXmVXlKVbUVVnUbn˜ƒX@VUL@lUbWxš@²kl`n@Vlb„@nUVWVLVU@aV@²bl@ÈmšxWX„VÈU„JV„l@„„la„WnX‚KÈkÈ@Va°bÆm„@XV°IVV°UnalƒVUn@UwVU„@@VVJ„I@bl@XK@wWmXU‚UVbkJVXnJVI@mƒknwlKXL@`l@VI@UUaVKÞn„aVm@aÇ£XW„U@aÇUU@mbkKm£™@WW™ƒL@@Kk@kl›U—bWKUkUU¯UõÛƒmUUaVU„U@WU_W@kVkJƒ_WKkV@bUL™¯¯ƒ±mk¯ġƒğÑ@UmwƒKUakƒ™ƒa@a„m¥ÝƒIUWmk@w™mţ—L›KʝbȗKWĢklVbƒX@VV‚knÇV@XUVUblJXn@J'], - 'encodeOffsets': [[ - 126372, - 40967 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2112', - 'properties': { - 'name': '铁岭市', - 'cp': [ - 124.2773, - 42.7423 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XJm@¯šmXUlnVbUJƒU@bV@UJWL@VXLmJVbkXlJXxVL@b@V@n@b@`Vbk@lxknV@VV™V@bUL@bV@@bVK@VXLWLXJ@LV@nbWJ@IUV„x@LVJUXVxVx@VV@@LXJWL@VU@@L@VnL@bVVmVX@@VVInJmbnLWVnVULVVU@VVmX@@JVz‚l@„nVVKVXރ@mk_lm„UUWV_nJlUÞÑÞVVUVƒVL„UVJ@I„Vna‚@@KV@XwWknwnKlalU„w„aĉݚwšJl_@aUaƒKUUU@WU@WXUÆ@@UVK@n@UnVVšblK@bœllb@b„bW@Xbl@UlnLl°°bš¦nKlVnI„V@UWU@WXkƒw@am@nm@aVw@I@KUaVIm±XÑlknJVnVJšaX_VaUaVKmwnkmmn@lU@U@mnašXlKUmUIVmklaUK@UlUVUW@U™kVm™a@UUU@JmUU@@bmb—KWV¯XUKm@ka@UVKVk@aUKmLkKUUÝUmbXbÇJ@k@WU_@m™™@klm@UXKVaUI@KWUXaƒÇWk™aWUkWUL±U@lUU@ƒUJƒI@V¯JmIm@@aU@Uwƒa™@UV@VkI›V¯aUkƒWkb@bVL„@@VVVUXW@Uaƒ@@b—‚ÝbUV݄@ŽƒLmUkVUbVllLUV@LššXŽWbUXm@U`@„kxlnnJlbnIllšLX„lVlUXmVK„n‚V@L'], - 'encodeOffsets': [[ - 126720, - 43572 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2101', - 'properties': { - 'name': '沈阳市', - 'cp': [ - 123.1238, - 42.1216 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ȚĊܰ„b„L‚lÞxUbUn±‚@ÈnVÆL@xnLšlUVƒbƒxkImJkn@V±LUxkV@bšbšKVKnzVl@L°@Va„xÞUlbôxVVœ@@V±bnŽ@llXL˜ŽöXĶŽnal@nkVJVI@aU@@aVK@ašUUUU@lmkwl@Ua@_@a@m@U@aUKWwkIlWUanIWK@UXKVIU@@a„VVIUa‚mVknW°™n@WI@KUƒmULWnkVkUWƒ™KkkmJkamIkmlw@ƒV_n@VWXaW™™@KVUkKUkValUnV„K@ÞƒVUÞa˜@a„@VbX@VWUU@Uƒ@UK@ala@IkKmUUa@U@ƒVƒkk™WVwU_@KÜUXbl@V¥XUVmƒƒƒXa‚kŃlUUkIm`UIUJW@UIKmkm@UUJƒImmU@ƒVUXU`mIUbUK@LƒJUU™l@Xƒ@UbƒJ™kU@ƒŽn„m@Uam@@ƒ™aUmLKƒwƒ™mWXUK@kUaÇa@JUIUa@aƒKVUƒUXmƒUy™_@lmbkLUKWLX`‚n@bVL@JXL„‚WX@Vnb@Vm@UbnVmL@V@x@LUbVV@V@LƒUVl@mb¯U@xU@UVVV@X@VVblJ@bn„VKUn„x@llnL±¤™b@k`VXÆK@„kV@¼kl@bWIUl@VmLnbm@@JXXmb'], - 'encodeOffsets': [[ - 125359, - 43139 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2104', - 'properties': { - 'name': '抚顺市', - 'cp': [ - 124.585, - 41.8579 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„XVl°bœUlJ@UVUš@„bVxV@@bn@nJ°I@U„J‚I„VV@V@k²VVKlXXVšb‚lÈX„ŽWbXV@LVJUbWL@Vkn@lšš@nV`@X@lÈIWanaÞVVVlLnKVL@bUlUL@Vlbn@VL°WXU˜Lna@aV@nV@IVV@VšbUnšl@V‚XnKVa@U„UnyWkXaƒaVk@ašašbnm@_WKXmWanU@alaU—l@XJVLVxX@˜wnKnVlwƒƒ™@V_@a¯¥@UkKWUaUU‚anK@IƒaU@WUaVw@klUVyUUVUUÇ@Iôbša@mnUma@kXa@UWak@Wa—l@a›@WUƒLmU@U`mIUU™`mUk@@UUK±nkJƒbUam@kwm@@a@UU@Ua@@K@ƒVK@kmKU_UKƒUUaĉWmkkL@`™LƒnmlkLkbmK@k™@Ulmb@b™„@Ž„xUVƒIUlmVXXƒxm@™JUUk@WUk@ƒakx±@¯x¯Umb™KUUVmUU¯UmVVn™WkÆ„lWb„„„ŽUnWVU¦k@WaÛV@LV`UxšXllU„@„@VVbnVlL@J'], - 'encodeOffsets': [[ - 126754, - 42992 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2114', - 'properties': { - 'name': '葫芦岛市', - 'cp': [ - 120.1575, - 40.578 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ll°X„ŽnV‚@XLVb@VVbnb@VšLVV@VVnXxlKnU‚l„_na@mlI„šmJnxlLša„xVbU„VV„UVU„KVlnnV@lmXLšÈWŽkxVV²bVLšm@Ula@UX˜@XW@UWaUUUUVan@V‚š@lUXxlIX„V@‚yXLšw‚ŽXXW°nblJnan@Vzš`l²nVVVl@„nUaVKšbVKnXVaUaVUšyšnXK@kVK‚@X@m@m‚LXa„LWƒU¯„w@™ƒa@UVw„¥°™ó¯¯y¯ƒUǯ»›w¯Iƒm—¯Ç™UUl™¯»ţKċÑţķm¯w@mU_ómk¼VnU`±IkbVlƒnnŽU¼±Lk`@X™Wl¦UbmVUxkXVlkbllU„Vb@bkVmx@XVV@Jb±aULkKWXkWmX¯aUJmIkVm@ƒxU@n„'], - 'encodeOffsets': [[ - 122097, - 41575 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2109', - 'properties': { - 'name': '阜新市', - 'cp': [ - 122.0032, - 42.2699 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šXnb°lš„VlnXVJ„LlVnl@zÆxnK@b„blKVLn@@V„aVLVK@L@Vl@XVVInVVKVwlUXwlKšL„ššVVb@aV@X„lUXbVW@n„lWnXKV@@V@XUVVLUVV@@bVVV@@ln@VbVUXV‚I„xVanJ@UšIVWšL@UV@@¤V@nInw˜W„k„lnIVx‚lnzUVÇJ¦VVÜLĸUnW@aV_šWĊXXa‚Knkl@nm™L™a@alUVw²K@UlmnIlJ„w„aVU™kmK@wÅKmU@DzVmVaÝwkƒKƒaÛ¯șĉķ¥ğ¥ƒ@kUWkƏī݃ƒ@@akU„K@KWIUm¯nƒU¯JmwUVmIkJÇLm@™UImJUU@aW@U@@nUb™JƒaƒbXVWn@UVmX@V@b„š@l@Lƒ@™lUb@x™nÇaƒbk@@xVJU¦lbXšƒÒ@nUJ@Vmb'], - 'encodeOffsets': [[ - 123919, - 43262 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2107', - 'properties': { - 'name': '锦州市', - 'cp': [ - 121.6626, - 41.4294 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nJ@nlmVnXKl@@°n@@¦‚V„bVbUlVL²l°@ƲÈV@LV‚knVb„VVnnWVU‚@XmWU„a„bšIVa@mV@X@@bVVnIVJ@š‚nÈKlInJVUnx°I„V°mVnXJ@LƒLlV@b„@ބƐĬXllV„@Ġ¦ĸ¦naWW@In@manK@UVkXJ@alk@»lU@ƒÅLUWl_@ša²£‚Kkm@kƒwVmULmƒ@akIUa@U@WUUVU™aÝ@ğ›wkƒƒmĉ£UWƒ@@bÇL@m—a@_mKƒlƒXUwKƒLţÓ@UWw@K@U„I@m™U@UV¥„@°UnJ°@@_™KUwƒW@UnaWUmmI@m™ķwUaÇLóVĵwݙUUW™¯šƒ¦Ux@V„b@šƒxV°X„ƒKWbK@n@nW‚@UL@lWL™m™zUVVbUbmWXXWJ—b˜n@Vkl@LlVUn@xnV@bln'], - 'encodeOffsets': [[ - 123694, - 42391 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2103', - 'properties': { - 'name': '鞍山市', - 'cp': [ - 123.0798, - 40.6055 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l„œxĠŽÞ@šbV@@w°Vna‚@Uk„V@K@UUUVa@K@w@UnKmUVan@@Uma@UXWƒWK@IUK@amW_XKVLlKna@kmKVak@VU„@VmšU@anIÆan@‚a„šUVnb@blLV`ÞLlU„bna‚Kn@naVU@¥°IVK@anUUKVaƒUVak™@mJƒkXƒ™UVwkƒVUUa°U@Wƒ@WlkXWlIXUlJlaœx‚IVVXLšll@nLV@lLXl„KĊzš¥maUƒlkXaVK„X°y„Ila@aVkala@a@¥„IUy@WmXaƒ¯kU@U@mmUƒƒULkmm@ƒ¯VmnLVU@a™ƒ@U@±w@™VWIkymLUUkJWXƒJkUmxk@™xUI¯`mUULmƒ¯„m@kxVVbWV@„UVƒIUx@bkšVšVVšxUbVV@V@zšJVXU‚lnk@@lkLƒlƒLUU±Jkšm@UIUVƒLUVU@™K@UƒnnV@l@Ll„ƒaUJ@zn`@nWlƒIUVUUUV±Ln‚@nmL@VUVkLVlUxVLVlÅXma™@@akLmWUX@JUnVJVkXJ@X@`WX„VUVUIlb„W@bVUVL@`Un@¦U`@bUV@z@Jm@@XV`„LUL¯J@IVKmKÅI@J™nWVnLnšVxV¤™z@bmV@VUV@bUL'], - 'encodeOffsets': [[ - 125123, - 42447 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2105', - 'properties': { - 'name': '本溪市', - 'cp': [ - 124.1455, - 41.1987 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lb@Vn„lnVVUb@šVJ@nnJ@bmXUx@xVbkbkŽWLUxnl@Ul@„xWx@nUV@¼Ull„knkK@bmbnl‚LVJX@VIVJn_lJVVšXUmnU°VVVUnVVšLna°V°w²@lw„bl@XVl@VVšIn@„wWWnUVk„JVUƒw@šƒ@anaVkš@@lnLlalKnk„mšK@_lKnlĊXVb„VVLV`nL@lUL@„@L@‚VbV@@V@bn@lxn@Vb„alI²mVL@Vl@nVš_VVnJV_‚@nV„K‚V@Xœ‚@b˜kXbl@XblylUUkš™@Xa@UVIlK@UUWVU„Llm@UUUnKWU@K@UXm„XVa@U°KVUUWUk@ašUVKkaWkƒKUknaWa@U—@m@mk@ƒaUJk@@_WKkLmx„l@nUJmIUWlIUaVWVXn@xWLk@@aƒJUI@Uƒ@UVVxm@UVk„mb¯VUU¯JWUƒ@Ån¯aUbÇ@ÇlLmWƒXkbƒƒk@UƒƒIÇVƒUXW™wÇnk@±aU@@bUVUKUXmVƒ@kaUm@k_±l™@XwVa@kVK@U„Wm—VaUmVUUakLUWWnÛKƒVW_—m±V™nƒU¯@Umƒa@Xk@ƒl¯V'], - 'encodeOffsets': [[ - 126552, - 41839 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2108', - 'properties': { - 'name': '营口市', - 'cp': [ - 122.4316, - 40.4297 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĊĖÆn¤„„°Ċ¯ŎWšô„@xXb‚wnKl@nX@VUVƒKmL@VU@Ux݄@Vlb„x„U@VUb@b‚kœ`‚IUlVUn„V@@UV@@JnXlK@bš@nbÆWUkUKVwUklKVU@UnK@mm²KVUVVVU„JXk@mm_@yVI„bkƒ@K@kmU„m@VšLV@VU„KVUVJn@l™²IVV„K„klK@kl@kmVUW™I@y@UUUVa™wUUU™l™@akmmVaUKmIUaƒJk@ƒwkaóIWWÛL@UlmUIU@WW@UnUUm@wmIVK@Kĉ¦™@bWKk@max@bWXkamKƒ@mVkKmxÛaWX@xUlÝnJ'], - 'encodeOffsets': [[ - 124786, - 41102 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2110', - 'properties': { - 'name': '辽阳市', - 'cp': [ - 123.4094, - 41.1383 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@š`Vz„‚Wn„VUV„L@bVbVJ@IÈbVb@lVLXW‚n„š„x‚LnKVŽšb@„n@Vbn@mƒ„V@šl„IVa„@@WškVV„I@KVLVanJV_VW„UV@nn„JVI‚Vn@na@alLlmkƒVk@»VU@mXwƒwk@@VmkVwXKllaUa@wVwnW@amI@mUI@™VaUUkmmƒ@UkaƒL@ƒUIĉyƒLWkkKU@mKk@™kWKUUJ›wkbkIWVkJWXkl@X„‚@X¯VVbUVl„UxšVW„„lnIš@l‚Ub„VUbVLmV@bUL¯J@¦UVmbm@LmbƒakVÝKU_kK@amaVUƒ™bm@ÅbmJ@b™VUnƒ@UVl@UbnL'], - 'encodeOffsets': [[ - 125562, - 42194 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2111', - 'properties': { - 'name': '盘锦市', - 'cp': [ - 121.9482, - 41.0449 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Vbĸx‚š@nnJVnXŽmb@V„XVxšL@`¯@mI¯Vƒ@U¦@VšV@nƒJ@V@LXx@VŤÔ„K‚LVx„W„knL@`˜b@nÈK@a„@VXĊ¤„nVK@aVU@UnU@ašyU£Uwm™mKXUšm@IÆJnLUL@J°IVKƒKU_@Wn@@I@yVU@aV_@¥Vm@_UKUV@aƒXkaVJVUƒUXW@_@WWIUlUIVm@IVW@IU@@VU@mƒUVVkJ›_l@aVa@UƒVƒwka@UރVwV@@UnK„LVU@UmWk@mLxWa@wóƒUVUIÇÆĉ¦¯¦¯xʟJ'], - 'encodeOffsets': [[ - 124392, - 41822 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/nei_meng_gu_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '1507', - 'properties': { - 'name': '呼伦贝尔市', - 'cp': [ - 120.8057, - 50.2185 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„m@Łkƒ™Žƒklƒôƒ@£kJ°ý™ɅķÑó¤ğLĉÅlÇğŁW¯¯›™ƥóÿlwkţÈéÝƛó™°ÞÅxV¤ĉĖWƒ¯lȭţυ̃ɱÿķƅˋğɱřÝţϙȍƧĊţ@¯kWKUKm¹Å@ķJU@ƧÑƧ„ō¥˹Ɔ@L@„Þ‚VLnš@VōČWJX¦@JŻbU@ţÞmVU@ȁýóbkWWLƒƒÅ™¯UWġkmóƒ±UŹôV¼ƽ¼ƒł̥ĖƽǬʉxĉŽŻȗKΕ̛ʵƨʟÞ˹»Ƨţ»Ǖō˷Ȍ±ȚʊĠUɾɜɨmÜ֞߼˸ƅȂ¯ǖKˢğÈÒǔnƾŎՂ@šĊbôô̐¼ƒ@ĊôĊŽÞĀ™xšĖƧL±ŽœŽ‚Uš°U„°ĬƒČ°ÜƒêɴȂVł°@ƒ„nxŎèƒbȄÞȌ΀Ǹl޲IlxĊl²ÒmšôĖ™Èl„ĵºm„ÈêVþ„xɛČʉÇĵVmš„ÒƒÈɆôƐŰǀĊ°ÆǬĮƾb„yĊ@ĠšƒXǀċm»ôw°Ûk¥Çm¯ç™kkÇǫţǕéX_ĶWǖīŎaÆĵĸĊ@ȚȘ‚™ĊLĢĉ„VÆĉʊÇĕóaU¥šĉ°mkŰġUĠřk°mƒÑČÿ˜ÛƒWĸ£ʠšÆxÈÞŎÞ»ʈ²ĊÇČalÒ°Ť±ĸz„ŽĊKȲm¤Ŏ@Ò°¼nyȂUźīǖƳÈē°@šÝ̓@ƒÈkl¥Ççkxk™›JXÇƒUÅ@˜£k»„óƿīÛ@lÅJl¥óý@¯ƽġƍÅan™ċ™°é¯¹'], - 'encodeOffsets': [[ - 128194, - 51014 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1529', - 'properties': { - 'name': '阿拉善盟', - 'cp': [ - 102.019, - 40.1001 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@™ƏnǟƨʫšŹɆÿ°¯ÆV²ˢ™żÿ@ÝÆŁȰ¯ȀƳĉó™™@ğkyš¹@īš›ƒwl£Źƒƒ¯Ŧé@™ÇÇxŋĉƩUUŃōL™Ç™ĵóÝnƒóç@™™ó@ġƒƱ„¥ƒç™WUçÆōƒ@é—çťK™çȭVһƽ̻aW¥ȁ£ʵNJǓƲɳޗǔlżÞmĠóĬȂɲȮ@ÈĢŮźÔnĶŻǠšŎȭœгŃċóȭţΗÆƑÞƧÅΫóȘǫɱȁġlÛkǰȁÈnšõl¯ô„ÞɛÝkĢóWĊ„zÇɼʝ@ÇÈķlUČÅÜķnέƒǓKȮŎŎb°ĢǀŌ@ȼôĬmĠğŰōĖƧbЇƧōx@ķó£Ål±ĀƧīXÝġƃêĉK°Ýʇƅ@ΌʉżÅÒϱʈ@˺ƾ֛।࡬ţશóЈèʞUš¤Ґ_޸Ƒʠɽ̦ÝɜL׈ɛϜóȂJϚÈ@ǟͪaÞ»Ȯź'], - 'encodeOffsets': [[ - 107764, - 42750 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1525', - 'properties': { - 'name': '锡林郭勒盟', - 'cp': [ - 115.6421, - 44.176 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ʶĬĊIȘƨƨŽ@ĬÛĢșŤĉĬƒĀóšU‚ÈŚÜènŦƐȤȄłϰUƨťƾÑ܆ğɲƜǔÈèʈƲĊƞƒšɆ¯̼V˺Ò˺ȂŤVĢêU܃x„Āˌ˘ƨ„ưѢmÞżU¼ÆlŎ@ĊçŎnÈÒͪŎźƒĸU°lżwUb°°°Vš£ÞlĠĉĊLޏɆnźÞ„n¦ĊaȂīġѝIĉůl»kƒ„™Çý„¥Ŏ¯ƒén£ġљÝȭxƒÇ™@Åçķ»óƱŎ¥™çWÿmlóa£Çb™yVÅČÇV»ÝU¯™KĉýǕċţnġ¯»ÇōUm»ğƒÑ™wƏbċÇŎċwˋÈÛÿʉѰŁkw@óÇ»ĉw™¥VÑŹU™mW»ğğljVÿŤÅźī@ř¯ğnõƐ@ÞÅnŁVljóJƒwĊÑkĕÝw¯nk¥ŏaó¦ĉƒV¦Å`ğуÑÝ@mwn¯m±@óƒÛKˍƏǓ±UšÝ™a¯lƒōšșk„èƒĬގn@ŤġŰk°ċx@œĉ`Ƨĕ°@ţÒĉwmĉ@ƒƒnƒƒa„™¥ķnƒÞĉVóÆókĉŽķ@ÝkƧƧÛaƒ°Ç@ÝÈU˜óbݼ@„ÛÒV°™@V¼ˋL™ÞɅŤŹǠVÞȗŤÇĖŚōbȁƜ'], - 'encodeOffsets': [[ - 113817, - 44421 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1506', - 'properties': { - 'name': '鄂尔多斯市', - 'cp': [ - 108.9734, - 39.2487 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĶL²ĬVłƑkkl@Ȏ™ŘWńÈĬȗ¯™ºlz@ĠššĊôŦô„ÒĠ°kÞܚ™n@¤„UĸèĸbŌÈXŽĸLlÒĢxɲÆ¤ÈÛƾJÈݰUšÅĶ»²VW¯ĸJôšbk‚V@ôlbnĊyÈzVôašb@ĸ‚ÞUl°yǬ²Ǭm°ššk„±lbn°@È»˜JX„VŎÑÆJ@k„LšƒÆl²™Ġ²ʊůĊġ‚řóƛÞÅ@m„ƒmLUÿóĉƧ@™»L@„›`ČĸmšȗÑţů±ĉğl¯Ā™wǎƒçƧŤÛI@±ÜĉǓçō°Uwô™ǫůķƳř±bÅ£™ÓÇwnÑó@ȁƽ@™ƒÇƧĢón»ŏĕóĊ¯b„Å™™VȯÅImƒōKU„™LǓ±Ýxċ—ŋ˜V±Āȗ°™„Źl±šÛ@WÒȁŚŹНŚÅèŌô„¼°ȰɞȂVĊ'], - 'encodeOffsets': [[ - 109542, - 39983 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1504', - 'properties': { - 'name': '赤峰市', - 'cp': [ - 118.6743, - 43.2642 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɲŁĢljĊwƾōÞĭ°_ŎŃźȹƒUČÿl»¯ôķVÿǬƽ™ɅġÅÑǫ»̐ʟȣU™¯wVWݍÈġW»Þ¹m݃ɛŎÿŎōͩůV¹›ō™éċ™óŹÅVVĢǩʈ@Ėċ@ķšÛšV°¯xÇÅţ¥™»°Ûô™ĉʟ„¥WýČ¥™w‚灻±mnÅķ¥ˋVƒbUÒġ»ÅxğLƧ™ƒbWĖÅxš¦U°ÝVóŰlô²@š¥ÜÞÛô„V@²±`𦙄™¯Ý@„ŽÅ„VÒō¼ôš™¤V²ŹĬÇĊƑƒţxƒç¯Lk»ʟlƽýmłÝÆƏ@mö°Ġ@ŚŹĬţÆUĀĠNJĠŽX¼šnźVUҚ¦Ċxȼ@ôlx¯łʊÒÜĀˌÇČxƍČÈƐašx„ÒĠŽn¼ŎVȐ‚¼Ģ°ŤmǖČĊþšLV°ÞŽU¼ċÈUƚzÈa‚¤ôbkŽ‚nXšè'], - 'encodeOffsets': [[ - 122232, - 46328 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1508', - 'properties': { - 'name': '巴彦淖尔市', - 'cp': [ - 107.5562, - 41.3196 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²@Ζǀݴʶհĸ„˜ƒ¦Ķ™̒Uˌ¼ӾÇƾ¼̨UÞĉ˜Ƨ—éÝ»ƒĕĉ—ƐȍœōǪakó‚ó¯a@™ôţ™aV¯Þ¯°@²él¥ĵğťwōxó¯k±š—Vó@™aóbUÇyĉzmŽkaóŽU@l™aó‚ķIX°±Uĵ¼™Æ¯VÇÞƽIÇÜÅ£ɱŽġwkÑķKWŋÇķaķçƒV@£šmۙlÝğ¯ƒÑťóǿƴȯ°Åł@ÞŻĀˡš±ŽÅU¯°ɅĀ™źƧʬmǠšƐ'], - 'encodeOffsets': [[ - 107764, - 42750 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1505', - 'properties': { - 'name': '通辽市', - 'cp': [ - 121.4758, - 43.9673 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôƲĸ¼Æèš@„ÈȮwƾ»ʠĢ¥VÆ@²¥@»Ŏњ¯ĊJŤ£k»ÆÇX¯̼ōšī°aX£ôƒƾȁꥄƒ™aôŤ™ĢL°ƒĸ@Ȯ¼ÈÒʈŚôVXůÆaĠƛÈKƒķšĉôÿ@ğÈĉ™»ÇVn™ĉV›wXĠݰšČÿĸwVƒ™¯¯ǵ±™ĉ‚ǫ™ÅÅm»²Ż±ƽIm¥ţÈķ@¯šƧJV»ÞUÝç¯UġºU£ţŽóaÅÅlƒƒ™Ƨī¯K¯Þ݃ğL̑ȍƽ@ōŎōĀƑɜnÞݺX¼ÇĢގUX°xVšʠȤ̏Ǭ¼ÆÒɆ̚ŽǫƾUĀóĸ°‚k¼ċĀƑVŹȺōń¯`ÝĮƽŎĉxġNJɱłō¦'], - 'encodeOffsets': [[ - 122097, - 46379 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1509', - 'properties': { - 'name': '乌兰察布市', - 'cp': [ - 112.5769, - 41.77 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ʠǠÞĸɲȺƒÒȂƛŎaƙÈĕȘţUÝźǟɆţšÝˌKU»š@U¯ÜÑ@ƒÞ»ôaV—ÞÇÈ@„¯ÜbƨƨÞlĸ@ĊôlôÅĊU„Ýĸmš¦ƒŽ„bm„„„Ċ@n‚ĊxŤÑ@¯‚ƨĖĊ_@›Čwl¯™ƒȭL›Ý„»ƽ¯ķů„Ǔ@ÇǓbċ™ÅÅÆwÿĠÇU£óaƒ¥¯aŎğĠţkw°»¯ůlÝĵkǻݰɱƧǫaóôɱ»Çk¯ŃóƒʇŐŻ›ĉNJŻĢ„ޝÒÈUl°ƒx°n„Ò™Ĭón™Ċğ°ÇŚĉ¦ʵVƒ°°ĬÛżÇJȁńʇʹó˂ƽŎ›Æţ¦'], - 'encodeOffsets': [[ - 112984, - 43763 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1522', - 'properties': { - 'name': '兴安盟', - 'cp': [ - 121.3879, - 46.1426 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÆXnlŎ°@LVLĠþœxĊUȮĊnU„ĠV@żaW¯XIŎġƒ¥Ý@K@w@K@I˺ŻŎ¦ƨƒƨÒŎIÆ@X@VºnX°lŎ@ƾĉˤƒȘǷȘÑÝݚÞbVţĸÿŤxÈĖƐށêÇKnĸ¥ô@›ķÞUnÒl@UŚaƒīˋƒ¯ÑƧx@±kXřƐƏÛéV™ˋ»lō¯ĉ„ÅÇÓǫޗĖġV@ğ»›°ĵ„ÇÞǓ¼¯m˜ÛÅŃĉĠÇƾb²çƒ™šéż¯VƒƒğÞml»ōÑV痻V¯™¯šĕÆU¯y°k¯¯V»ôDŽѰa@Źk™ġKţšóŽšbƒ„ʦƽȂó„W¤¯b™Ĭ̻ŎW°ÅÈl¼ţ¤ĉI™°ōÒ@¼±¦Å@UŽġ¦ʟŽƽ¼šÞĢÒm¤„êō°ƒ¦Èþƒšl„k¼Ċ۰JĢńȁĬ„°ƒżn‚ÇbV„ݼ@¼óĸţ¤@°Ånšl'], - 'encodeOffsets': [[ - 122412, - 48482 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1502', - 'properties': { - 'name': '包头市', - 'cp': [ - 110.3467, - 41.4899 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@źxżĀǔÆǬVȘĀŤ¥œÅƾōôˁʈͳȂŃÈIÜŻ¯ī„¯ōm™¯ɱ˝ƒķÒÝIÝ»ÅV™ƒlÅôфġ™ğVmÞnnƒWçkW܁XƝÆwU»Șĕš£ĉÑ𱱚Åk™„ƒK@lÅIō҃UW‚—IǼ¯@m‚kaƒ²™l¯™ǫnǫ±¯zkŽÝVķUô™˜l²ô°ŎwŦxĶĠk¦±ê¯@ݰU°šbóŤ@š°bôlôǩb›ŎƏȎĊ˜„ĖÞ¼˜ê—ƨÝĊ'], - 'encodeOffsets': [[ - 112017, - 43465 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1501', - 'properties': { - 'name': '呼和浩特市', - 'cp': [ - 111.4124, - 40.4901 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ʶUĊ¥ÈřĠ¯šĉômšīƒÑ¯m„wk¯ÇV°ÑƒżġĊljǓɱţǓ›ƝóX¯ƒɛÒóa@nÝÆôƜŚĉĢʉŰĊҙ¤ȗĖV¼ÅxWƞۂlXXèm„ÝmUnšĠƒĢóÒkƚ„ÆUÞ¼ÞJĸѰ„ɲĕš°Ŏn'], - 'encodeOffsets': [[ - 114098, - 42312 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1503', - 'properties': { - 'name': '乌海市', - 'cp': [ - 106.886, - 39.4739 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ș°ÇīXњŗ@ȍlkƒlUٱīĵKō¼VŽÇôXĸ¯Ž@šťê„°ź„k¤„x™œ@Ĭ'], - 'encodeOffsets': [[ - 109317, - 40799 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/ning_xia_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '6403', - 'properties': { - 'name': '吴忠市', - 'cp': [ - 106.853, - 37.3755 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nLV‚@šVLšaÞbn@@l˜š@bUVlUV„zVx™¤kÞVèšXnš‚@nm°a@UƒÑ„@VŽXnV@Va„UšŽVKUUU@@U‚@@KVa@U²@‚wXkWnk„±lLnU@UmmVKnIVWnI@UK›@UK@@UVKXkmWLWUXmlkVwUyVa@w„w@aVI„K@aVÈw„KlLVV@LnV„VVnU‚ܲ°WÈIUÆ@nÞ¼‚‚@¦™@UÞUVW@UxUxVn„b„K‚b¯ÞU`VbǬ™V@XXÆVVl°InmnUôƒ°¯‚anam£œWVX‚KXmškôaVU@ƒVak@@wmaƒn@K@UÛUWKXUƒÇƒ@UI™b@alW@akLUKV@@Ukw±Iš›nL@kmwkWmk@JUIƒůVmnnU@m@UƒK„VKlkUwkƒƒnVUKmbkI±š—KƒkmVkKƒb@U@aƒVkUmn™`kIlaUK@UUKmbUIݚUa@mUa@aƒ„m@UUULUK@bmKkbWI@WXwlkXƒWa@k@kKƒLVkkK@L@JUVmzUKlwUUnW˜£XVlKUwVU@aXI@aWaUw@W@_nam@¯‚UkWVkUWaU@nwmJkUVkWVUmUkJ@ImbUaƒ@@WÅ_mJknmak@@mƒXƒaUV@„ƒxUšƒ„@‚ƒ„@VUnkVƒ@Vn@`ULUbWLXVW@kbUJ@XW`@ƒnÅĖWJƒ@—m°@xƒxšbnUa‚w²lƒÞ°xŤIVVULۂWbšbkVVXÆ`UbVL„@kx°LlV@Vœ„WbƒJn@bl¤ULV„°@lmL@ƒƒ£U@@aUwmKULVxUVVx@„™@kU™@mK¯LÇa¯@'], - 'encodeOffsets': [[ - 108124, - 38605 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6405', - 'properties': { - 'name': '中卫市', - 'cp': [ - 105.4028, - 36.9525 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°@Èb°KnLš@lVš@@ƒUwVUUwVKnLVx@bV@„¤@„nK@k‚¯UƒVKk£@a‚m„IXa›ƒ@UkU¯Klwƒ@UKVaÅ_UWlU™aXa܁VKUUţJ¯w„ݱkxVbmŽ™a„w@wn¯˜„@XIÆĕ„m‚@X_@WVIlaX@WUXKVaVK@_Um„@lUVm@U„ƒ@„ƒV™„w@ƒVUÛwm@@W@ImKUkU@Ua‚aXƒ@wWaUKkw@UVaUamLU™nk@»±`¯@k—W@Ua™ykbƒI„„@VWJkLWUkJƒwU@ƒn¤mL¯wm@Umƒ²XVWbnV@bmxƒVkxUblLUV@kVWKU¼ƒŽkUƒ@mn@JnV@bUnmJUn@„k‚@XlxšLVVnKlLVV@š@LkKULVbk`WL@lkXW@kVƒ@UÞUlÇX™lkaUbmV¯@@L@šƒV@bkb@xƒlW„—bƒbW@—±@UJ@IU@mVk„VxV@@l„Illœn@Vm@ƒVUbl„@JLmKÛXmVkU›KULU`@LĉwƒKUX„lVUl@Vb„JX¦̼bÞxŎxɜĖĠ„Ŏaô@'], - 'encodeOffsets': [[ - 108124, - 38605 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6404', - 'properties': { - 'name': '固原市', - 'cp': [ - 106.1389, - 35.9363 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Vnn@°xnK‚£„mV@„xlIXVlKXI@Uƒƒ„JlašzVbX@l˜°@²_@¼mlVšnKVbUb@VlxVLXb@xW„bVbV@VlnL@J@Xn@Üx„b„W@nl@nblmnIÆ`@X„@Vbna@aVUUWVkƒ@kbWakbU@VwšW@_l@nmn@@alVlk@UkmVak@@a‚UXaƒL@¯@KVa@axWI@KnkVaVJn_lJ@„X@‚m@nVanUVb@mXLlJ„VWnLla„VVaVX@KXVVkVKlknKVa@aVU@KXb@klJUknUmƒ@K@_UW@alIUamaU¯kJma@IUK@U„@@UW@@aXLVƒVJVaXIƒKlaUkUV@ambUUJkIWJ@wUI™V@JU@UwV@@Um@™nU`@UkUmVUxWUUV@aÅb@aWXkKUUƒUUaWK@wnm@IVU@aXwm@UmVaUalk@anKUwlƒUwlkK@wmaƒUkmmIk@VmkUUbW@UVUnW@kV@xkVmbVnU‚™@UbUV@a›k@kkW@„kLW¤@„nV@VU@W_UV™UU`VLUV@IUVõVULU@UUUJ@wmkUJ@šWI@l@bkKkbVVƒbVbUL@UUJ@Vm@@L@xbVVVLVlVwX@Vb@bmUkbk@@JWIUVÅw@Km@UkWKXxWLÅ@UVUnWK@xkVW„@KULwWVXVWzXVVKVXkV›V@VUbV@U„VV@š@LXxVL@V„b‚Ž„LnKVLVxXVmb@l'], - ['@@@J@aƒU@LWK¯UUxVVn@Ġ„„LUW@UbUUUa@KUX'] - ], - 'encodeOffsets': [ - [[ - 108023, - 37052 - ]], - [[ - 108541, - 36299 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '6401', - 'properties': { - 'name': '银川市', - 'cp': [ - 106.3586, - 38.1775 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šUšwVK@UVWÞUšbšw„V@knV˜@@KU_VK@K„ƒn@W_XWlL@Vn@Ċw@Ulaœ@Wanamī@aƒ»ŋó@aÆÅɲÿUaV_°ÝaƒLƒaUmVwVwX@VUVݚ@@¥Ý»@mVÅÇJ¯XÛ±VUmƒUmU@KUUkKƒLÇxUŽ@bƒLUJ@bƒx@xUbVzUxklWnXV‚KnXWlUL@V@ŽVLœ@VL@ŽmJUXmJULnn@VmVkKƒ²mlXWlx±@@VUb@L@@VV@VVUL™ƒVUbU@WmUƒ@„Ò@V¯bmn@VŽƒ„@lVnUšnVWŽXVl@¦VVUn@x‚š@‚XL@¦‚lXxš„Vb'], - 'encodeOffsets': [[ - 108563, - 39803 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6402', - 'properties': { - 'name': '石嘴山市', - 'cp': [ - 106.4795, - 39.0015 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@U¯ķó±ÇÛ¯™ķmbXb›@kb@Vĉxm@@UkKWXX`m@ƒ„@LULV`@L—@mU@lƒU™x™aÝVUX@VUL™x™VkLWVšš@J„nVLXVlŽUV@zl‚VL@V@b„„n@lU²WVLlLVbUŽVxUx@xǀL˜xôҜk‚K²ŽVa‚U@wXa@W™ÈĉUa@‚bÈk„m@¯'], - 'encodeOffsets': [[ - 109542, - 39938 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/qing_hai_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '6328', - 'properties': { - 'name': '海西蒙古族藏族自治州', - 'cp': [ - 94.9768, - 37.1118 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@„V£°š@laœXô±źwš™ô@„Ulƒża܍n™Kƒw@U„aƒ™ša²L‚mÈLƚÈxlaUa„wÞmÜbÞUšnJ°a„kôƒ‚ÑkwÝVğwÇ@ÝkkV¯¥@ò„»„nŤ¥XImw@mVwša@Åw™mLkaW—wƒ¥l»kçƒó„»@ƒWÑĉŽğ@ĉ„™‚Ń„UwóřVómĵ»™™Ý@VǕ¯kšÝĊÅk™°ÓUklkU±šI„ÇÞkƒ±@šƽJƒ™@UġIk@W¦™VÑșÓÅnťKULnޝX›ƒ@¯mUÛ@WřmóKknōbƒxÝ@ƒŽU@kw@ÿÇLţšÝUkšmwƒŽk™lċVŚU¦™ŽƒLkUWlÅÑ@aƒ@ÅѱUóġʼƒÈĉmŻ@@wkw™Kl¯U™ġ@—„lÇU™Ó¯_ƒ‚Waĉ²Åló¼VbknƒKǎÅ@ƧĢō°Ý@ğ„W™ÅxUUm@™‚ÝXۂW„ULUè¯@mbUaƒLƒbUWġxIUJWz™a¯b™y™@ōÈóLU`ÇXUl™UĉV¯n›mÛbǕLklƒUĉVƒšóaġ„ƏbġKţnkbÝmmnÝWȭȃŽÝXţWókUÇl¯U¯‚ġUɅĀ@°¯„„š¯„VÆnmJ@ĊķnóJUbÝXUlVškL@lVxnnmb@¤Vzš`ÞÞŤ@„VnÆJV„°b„UôJkzlŽkl@²óš@ÆÇ°k˃šÇbÛU@lmb™XV˜kzƒV™ŽɅĀXˢlń„ĬŹ@›éÅ@ĉńưğbUšlŽɜ_°‚@xŦ˜škbVbƒKĢ„ŤVŎް@żÈźlĊ„ôKôb@nôxŦ„Æ@ôŽŎL@þÆb@šnnšWˌbÈx‚InaŎxlU@Ѳ±ƒğVŨƨbɲ@Þ¥ôUUķWVô¯ĊWʶnôaŤˁ@£nmnIôŽǪK°xUXô@Ŧa°m‚kXÆÞVŎkĊ°ÞLȄôyVašIlwX°UVwĢÑÜKôw@nV@œm°nmŽn„Ü‚ɞ£VbmŽXnƒ°ÜÒ@xx@V‚b²UlbkxVnšJUnVVĊ°KȚm°nxÇnn¤±¦@ŽUXVV@„lV„„bmVVȁŽVxšÒ™°šIšbźaȃšbVwš@šƒVL„™ƾÑ@ƒŦô¯ĊkôÑ'], - ['@@„@šƒ„@n„òVœa‚w²bVxšxÜaČVô_ĊJšIVmšL„a°@Ŏ¥XlK@ƒšk„l„KVbUb˜@nUĢn‚aÈ@lmǬ»Ġ¯œn‚mnƒƨVy™Ñǖ™Ġ»ɲInŽ‚@@ÅĢƳ@¯°™ôV„KÈbVIÇ¥¯@Ýó„™@ÑnīWKšƒk™‚k@¥š™¯™Åa™Xƒ±VÅw@±Ġ¯@»™š™n™Wmw@ƒ™@¯ƒVƒUUWçƒKĉ„a±VkkƒV¯w™x@šUJ‚x@bknÇb™mÅ@Uw±U¯¦UŽ™Kmš¯I¯Žť¼ğĊ™@ǃŹÈ¯@Ý»ÇnˡJƒbÛèÇnƒ„ÅK¯„ġĠʐW¼Ålm„@¤n²ƒŽÝb@b„š¯lƒ¯@ƒšÅ¤W„™¼nV@x„„°@Vx„@lbUblbX¼W‚œšÇ²lšUŽ@¼ŽV¦@bÇlVxUbVxÞbVšœbm¦ƒVV„'] - ], - 'encodeOffsets': [ - [[ - 100452, - 39719 - ]], - [[ - 91980, - 35742 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '6327', - 'properties': { - 'name': '玉树藏族自治州', - 'cp': [ - 93.5925, - 33.9368 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɆÿĢV°°VÈklVôŤXÞW„ȮÇÞXnmÞnlaŤmĢLƐãôb„™ĊU„VlkǖKÜaœn°mĊUšVVkÈWV_ôKŎǚ@šz°ašbXyVI‚JĢwVX„a„KVbna°@VçVKXƒÜÞWšn@VVÆwXšĠƒÞ@Ŏ¯ƨġÆ@ȍ„LlmUaô»ÆkĊ±Xb„°`šÔV‚kȘƒĢ@Všk°šLlx@xż@Ċn„Çź»ô̲VÆÒ„@@bÆÒXklV„KšV¥Æ™ČUšk‚l„nxl™çƒ¥ċç@±m¥ƒwÅJƒ@™™™Vƒ„mÈIléÈa°U¥™™@kÞV‚K²ÑWƒ°w²Ñ‚K²ñšyƐ„ÝšVmw„»kkWĉ—JWUƒVÅwƒL™mÅ@@ƒmw„kn¥Vу»°™°@@»„¯„Lla„JônV‚UůƒU@W¯Umѯ¯k@WykU@¯„wV¥ƒkVwţƒk»šwWǜĉĶçšK„ƒÞ™ÇaĉbƒI™lUƒ@kwƒWƒXUƒ°w™±@UšKn£Wĉ—KWxƒkĕVƒšamwXw™@™„Wmnk@aƒVkƒ™bĉLƒl™Imm„wUÇ‚Wx™nÝJn@¥Æ™kwƒaXƒÜĉ™¯ÅV¯¤mkƒx¯kķܙ²VWôŹVUƒƒ@V£™¥@ƒ°wn@™m@¯@UbUôķŽmn@ÆÛ@ÇýVaUÇĊVƒ@Çlğ—¯xÝŤ™lVÈÈVƒx„ƒ¤Vx™„kK@™@ƒx@„kVƒĖġ¥kIWbXŽŎx@nƒxÅUW`ƒ_—@±ŽUa™LUxƒK¯„WbkVlb—bmŽƒLÛÆWIUwƒWkwÝV@kI›ŽéUb›UUk™V¯Km¯k@Umݐ¯m¯›m—L›Þĉ‚ÛUm™ġ£UxkKm°™Lw›šk@kšƒVm„ƒKVUk›@¯a¯Ģ™móKUU™x™ImlÅn™™ÇbXèVVU„°„@ŽšŽ@„‚xXnmš™ššŽ@¼ğ°@²ÆxU‚„²šWÆb°š™š@¦llš™„XLmĬ@҃šÞô°@ȦUJÇaƒLóU¯š@°ġƴ@Ɓ@mɱJğ¼ǕššÒUzƧ‚m„n›mğ°ǫ¼knÇ@bġmmV—@VaUaƒLƒk™l@„kLW‚ō¦¯@ƒb™KUn™JĉIó`ċUÛb™wUw±ax›bñUmƒƒ@™„ƒ@—bƒaƒbǏÅXm˜„ƒÝ„ÅôVbގ™bl„UšÞVޚ„U‚°„VUxƒ@U„V„@l`™¼nL@Ċ„LW„„¤kXķWġXUVVVķ„UbVb@°kVVxÈa‚@ȦĊbšaźJ„U@Ț„„˜Vœƒlš@XkôaWƒĢ™Þ@laĸUÆb²mÞLĠ™ÞÑôbšÒĊa„JVbm¦'], - 'encodeOffsets': [[ - 93285, - 37030 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6326', - 'properties': { - 'name': '果洛藏族自治州', - 'cp': [ - 99.3823, - 34.0466 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÞVŤ™ÈK@ĀlxV@„Þ@„wŎalmôLšnXÆÜ@nV‚°@œ„°WmVKŦLÆmȚԂҚUX¥l@ĢJVš@„ŽƾI@w™W°™™Ån¥›kÅÝVwôƒÈç„@lÑĊĕša„JnaÆLVw°kny°UnkÆVȍĊll¦„Vƾ@@™nUźƒÈǂIn°X„wÞKô¦VWV£„@£°ókċ±I™™am¯Va™»ČĉV¥°™@m„k„¥l@„Ċm@ašU™mwXƒ@wÆxšmĢ_„`VnÆbšKVw„@@ƒnUVğVmVVöIlŽl@@çÛmƒ£UDŽw°@VUƒ¯»m¯ƒJōĖÅLƒa@»ĉ̱`U_k`ÇçšóƒkX™lK@ƒakÝރš£WċkÝ™kxƒJݯÅw™xķxmIÅx„@k±J@ýŋš›¤UœkŽmV™°ÅÝxkwmġƒnÝVU„š¦ƒŤlmšóXk¤™UKƒç™@mVkK@klīƒ£mš¯VUbƒW¯¼ċb¯ĵam¼mVX„m@k¤ÇX‚ÇbƒUƒ„¯J¯„¯È@˜™bVXVҙ¤V¼kxݚV„@l‚V—„WxÛ¦Wš¯šmKnlŽkŽ‚šU‚@nƑUĉ„Ý@ǺۄċUĉ¥™UƒÞŏ™z±òL±Ò¯xX„±ÒLÝU@lššV¦¯‚ÇbkêÇJƒnU„šš@š„‚ÆI„xn¦‚‚@²Č脦‚è'], - 'encodeOffsets': [[ - 99709, - 36130 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6325', - 'properties': { - 'name': '海南藏族自治州', - 'cp': [ - 100.3711, - 35.9418 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VxƒŽńƒš@ĊĠŽĊXÒ°UƾĕÞm°£nb@‚@LUUW„Ûº@nlÆǬšĠ£ÞV°UXb‚VȂǵ„éƒ@kWanm°@™x„z„K°¯ĠVšƒVƒkw™Lnm°kÞxÆa„¥@‚wnĉƏ@™œ_l›š_VwšmĸèŤÅČU@™˜Wn@ÑmKU™nğƒK@ƒ°¯UÿV£nmšLl™„UƒUÛé±óókkmƒnƒakV@ǰóÝXƒWəÞťIţxmm™VÛUVȂÓnWyȁĉkƒVš°WnkĊa„¥‚_œK°ÿWna@ƒmU¯wƒlÝIU¤UXó¥ÝLƒx¯WmJÇÈŹ„mV@šƽ@ƒUk¥ĉkċŽÅUml¯Vmz¯lUxÅKmbƒI™bĉĖk҃@Çèó„UxÆÞœlm¦šÆ¯ššX@x™Ž@Ž„²ÝlƒÈ™JV²klVl¯ÔlšĉƙްlUǖÞ@ššĶ¼nŽUôôŚ'], - 'encodeOffsets': [[ - 101712, - 37632 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6322', - 'properties': { - 'name': '海北藏族自治州', - 'cp': [ - 100.3711, - 37.9138 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ōmġxƽUm±Lǿþġԙ@kxmWƒb¯I¯‚mIUx@bƒbŹVǎƒkĵbƒlĉI¯¥ƒUšm@ƒÆ¯È@šašóšUlƒČ»@w›œ»›wXaƒƒó°ţç݄kUƒaV¥ÅbÝw¯lmnšKlxU„™„ğU¯°ƒLƒyšw¯@mnXb‚l„@ƒêȁǶUWa¯VÝUğ¤ǫ™kÅ@mܹXƒVV@K@ma¯¤Ýnƽ˝V@„ƒ¼„ôlèk¼„¦˜xXŽlbnKšÆx@Ž™bUx@nnxWJţ¦ƒmƒ¼ñ@ް¦lUÞlÈ@ĠxÞUlxÒó„ƒl¯bmI™ŽÝVÛaÝnƒxVbkbÇwřÇKn±K™b„šƒb@V„xšLmŽÛŽŻbk„ƒVó@™šŹxó²›Wkb™@¯U¤ƒźĊ@lUX„°lÆôU„ƒlLX‚aœV°wšxUb°xÜôÈKVkÈmlwškÈKšwšK™™VUŤĉŎ»„»„Il¥na°LV»²¯Üy@w̃°ĸwlwĢw°±„_lVkš@°ƒbƒÆ¯zƒ‚„š„@l_„@̱lŚVlUaރ„LVƒnKlnȏ°IllČa˜wÞѰx„UU™@wƒVkmĠLô»„KÞýôaÞ¥ôĀÞmƁ„™‚mUƒŎV¥Èl°²°a²¥V„@@w„amm@Ñn@Æ£żƒVƒĠ£@W„¯Þƒšl@š»@Uk@'], - 'encodeOffsets': [[ - 105087, - 37992 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6323', - 'properties': { - 'name': '黄南藏族自治州', - 'cp': [ - 101.5686, - 35.1178 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôl²ôÜê„VƒVkš™KmnU¤V°@„„LmĠVšnLÈL@alb@al@n°Vš_XmWUÈamaVIn@n‚aV£œóVWƒ™U£°ašxÈ¥@™‚aĊwȹ@óša™ƒğbm@k„w@mƒaÆw@ƒ„In¯mmƒ@UkkWƒÑÅ@@kċÅçVkÝJÅkVykŹl¥@¯š™ĢU܃X¥òý—mmX™ÝÅlmU@£™Wly™XW»Åbƒl@aI›»k@klm@UxUUƒVƒ¼¯Xƒl™aUnķ‚ƒI@x™@¯„ƒK™„ĉUU`óšlȝô@¤ƒÞJ„k°xVŽ„n@ŽmbXޝ›L`ƒ¦ĉbml¯X™ŽUŽl„ȂĊXzm‚ȁÔU‚ÜVšUnnŤwŦJɚ݄XÞW¯ô@ÈlU„b„mln'], - 'encodeOffsets': [[ - 103984, - 36344 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6321', - 'properties': { - 'name': '海东地区', - 'cp': [ - 102.3706, - 36.2988 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@҄bš¤ÆI°ôU¼š°UŽnnWx™š@b¯L@lUUWbXxWl„ƨnxVUllš„XVŽUŽnL@lȀý²KVnƾ‚ĢwV»ƒ@mÞ£nÆƒÞÑmL™ƒKUaVżĕƒWVk²ƒƒÆÝ@ƒXw°@„ô™@a°wóUUmIk™™aVmÞwmknyƒ¹VÿƧnŏm£X»˜™naV±„Ýw@ašb@aƒm¯„ĉVó¦kÝWKUU@WanU™b@ôǺĉxb@šÇ¦™w¯bV¤„šUX›ôU¤bmm@UJnbÇbXVWn™`¯Umk@@bka@bÇK'], - 'encodeOffsets': [[ - 104108, - 37030 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6301', - 'properties': { - 'name': '西宁市', - 'cp': [ - 101.4038, - 36.8207 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@kmKVUƒWk™VkUmwƒƧXkWwXaVV@k°K@aš™XwmmV™¯V»¯óÅJ™£ƒamŽ—X@šċVţÆķç™nUx™`kœ›`@šÅmĊx@Žƒ¦U¦„blVރŤèô¯„„Wbœx›¼œŽ@xċ¼k„™V™ô™bÇ@Ű@„™n„V°¦ĊJ„kĶa„lȍźU„a@aVwnJ°°J„anXlwš@ĢÓ'], - 'encodeOffsets': [[ - 104356, - 38042 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/shang_hai_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '310230', - 'properties': { - 'name': '崇明县', - 'cp': [ - 121.5637, - 31.5383 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@uŏu»GPIV±ÐɃŜ{\\qJmC[W\\t„¾ÕjÕp‡nα|ěÔe`²„ †nZzZ~V|B^IpUbU†{bs\\a\\OvQ’Kªs†Mň£RAhQĤ‹lA`GĂA@ĥWĝO“'], - 'encodeOffsets': [[ - 124908, - 32105 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310119', - 'properties': { - 'name': '南汇区', - 'cp': [ - 121.8755, - 30.954 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@`y”ĉNǕDwǏ»ƒÖLxCdJ`HB@LBTD@CPFXANC@@PGBKNECCBB@EBFHEDDDSNKAUNBDMNqf[HcDCCcF…@EFGLEBa@ACoCCDDD@LGHD@DJFBBJED@BGAEGGFKIGDBDLBAD@FHBEF@RFDMLE@SGANFFJBANPH@@E@FJjRIACDMDOEKLFD@DbDAJI@AP@BGHFBCBGDCC@DCA@CECGH@FKCEHFJGBFDIHACEDNJDCVFBDCRKRLDLITB@CjNJI^DBCfNVDHDFKHAFGDIICDWBIF@@CFAjFJNJBBHD@CJ@AEFJ@@DH@BFBCPDBMFEQGDIFCNDHIP@HDABFACBJFHEBSZC@DP@@JDBƤ~'], - 'encodeOffsets': [[ - 124854, - 31907 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310120', - 'properties': { - 'name': '奉贤区', - 'cp': [ - 121.5747, - 30.8475 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@~T~JjZdDbLXDLCB_J@@FHFZJJIAGH@HGR@BENBLID@@LFCDF\\FpDBDb@FAHKFE†@dEDDdC\\GreNMACVMLBTMCCFCEGFAA@DAFDLMHA@OD@BMEWDOC@AS@KGAI_DcKw„ÕísƝ‘åĆctKbMBQ@EGEBEJ@@MBKL@BJB@FIBGKE@ABG@@FMFCPL@AjCD@ZOFCJIDICIlKJHNGJALH@@FPDCTJDGDBNCn'], - 'encodeOffsets': [[ - 124274, - 31722 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310115', - 'properties': { - 'name': '浦东新区', - 'cp': [ - 121.6928, - 31.2561 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@EN@JJLNHjLJNR^GRYVBNZJRBV@PDvbLNDN@LGNER@nCNQNuT_TIVFV\\Z\\XnDrI|[Ʉś²ÏJUHOƣ}CA@IO@@CYDATGFIEDAEBBAGCO@GJMCEDCJRHEFANOCADAEG@@CI@FE@BDIC@AGIAIMiEEB@DE@AJCXJDCJEHGBELGCUCeMAD]CIJiM@DSAKJKCLQDQACUECDMIFCBDJGECHAEIWCK@GLMCCGEACNKCEJG@MMBMC@@CIJUINT@JAJSTEPZZCP'], - 'encodeOffsets': [[ - 124383, - 31915 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310116', - 'properties': { - 'name': '金山区', - 'cp': [ - 121.2657, - 30.8112 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@L@BIHFN@@EE@@EFBDGDAADVDD@@EF@CA@IIsRE@GDAF@BF@CV@|FBCHBLCNHAFCADBMDCFZXHILBVEEQA@MWFARJJ@DCX@@TEFBLHAAERE@AJABRPBNK\\BrJ\\VHGND@CNADKDADQjGAGNC@GJ@FCFFHC@JF@@dLBDSFADHVG\\DTEPDDHJALIJkJDJCDIPE@YDCBiK@DONE@EH@BAF@HLJA@EIA@ALKNA@@FIFAFHR@NALadsæąyQY@ƒA±DʼnXUVI^BF@FFF@HBJEDFFGFEBSRkVEXGHFBMFIVW@GAEEFOIAIPKABGWEKFSCQLQBSEIBC\\FdBLRR@JGACFDDEF@AWB@LJJYNABBA@CUEGPaO_AIE@MYMFIGAEFECHSAAKAO\\[JEDB@E@MMA@@AGBKMGDFFCDDFEDFJF@NPBAFLHFH@EDDHBADDC@DDCDHHCDDFDABDAD@FEFOBCJ[D@HEDDNJBDDHABJIBBvGLBJAH'], - 'encodeOffsets': [[ - 123901, - 31695 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310118', - 'properties': { - 'name': '青浦区', - 'cp': [ - 121.1751, - 31.1909 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@RUNKdOFDJCbRFMLAHPLDN@JGL@@APBWYCKN@TU@SHGCEJIDIJKVIZVNM`iNY@CIE@CA@KBOEGEUFCCSADEIEFCDDDIDDHC@CKIeDCG@IG@DHWFEEGCH@@GO@@O]CNpeEQDBFME[JC]DGF@CKOA@QSB@GB@@GW@@ED@AQIJIAAFE@@DO@CFI@KNG@CDACAFEGKGBEGBDCCAIFCCLIECFI@MBCLDHGNAHSF@DMB@EEKBA@@C]DEICFG@ADBHGFKCDAKKHKD@@FHGAANGEEFCHKCECBCKG@ADKCNE\\[A[I@@mGBDQQEO@BCE@AI[AML@JGACLOAFKEMM@EQKC@CUCBCCBCHEA@FF@@FM@GEAJK@GNF@EXPH@FD@M^@HIADJCFDBER@DK@@DE@CAKFOCCBDHIBCNSB@GFC@GQEEOWFICGDUAEJIDBTAHJHEB@DIF@NE@H|HBDBEH@DKBAHEF@HEEUB@FGFGCCCE@AHOB@NH@PRLVNNFBX@RC€PbAvMtBfH@DJF@ELBFA@EH@HNED@FFB@HLC@CJ@@DJ@PIRf@HE@CFF@GPHD@DKE@FFBEFFD@DEFCA@DD@IjCRFBAHFDKD@HF@@PM@H@BlbDJDBFEF@DLXB@HCD@@IFCBIFEJD@FDC@FBALLF@PAACJERACAJCBD@EL@JD'], - 'encodeOffsets': [[ - 124061, - 32028 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310117', - 'properties': { - 'name': '松江区', - 'cp': [ - 121.1984, - 31.0268 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@DLDFRN@FNELPBDKHB@INK\\BBJF@ADP@RFCRHA@nJ@B\\[\\MFLDBCH@DLDADFGLEDFFMHBBGH@EC@GLLLCBLDHEAGBCH@DEFJ^C@DB@LAFFA@CNE@GTMBGHKCAD@NEJFDKJDDJEDBCDHAAFLHFHBEBDDCH@LMJ@DEP@@CF@BEJBJIBRC@@FX@@HA@@HTA@RPBDLE@CHD^\\INFAERCfFMo^D@PP@@HG@HDFFXECGH@@JDHfCLJ@DGDCCCJCCEDJFCFTBDDVEHFPFLAB@NBFCFKFC@CHIACNOHWHCAAFIDD@CDAGEI@ACFMF@R@R_@GQED@EGFEQEDE_IAHKAEXCQUOQCUDEN@ZI\\DDmAMHCICDSOC@EG@BKHIGMIBCGOCSF[CUHCGEBCTKA@cE@@IGDEEEDI@@HMDBHiHCRCBCLMB@DMCGH[UqI[AMLOAAQIB@BQFBFGBAKFE@SW@CDI@QIEBNXB@FRUFKAGJYWDENCCADBBEMGKDGAAD{EU@@DAEE@CB@HQFJt@JDBE@@FC@'], - 'encodeOffsets': [[ - 123933, - 31687 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310114', - 'properties': { - 'name': '嘉定区', - 'cp': [ - 121.2437, - 31.3625 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@F@LI@IDKJADKIEJICADGACFECCJ@HKCAFOHAJI@aCBEE@ICAEB[GFGCKL@FGEIFADMLCAEJM@ELQECEIG@BE^QKKLQCA@EHBIGQ[GEHOMGGDHKH@JOECFCjCBEFDNCACMBCILGTABDLEEOEIG@GFIMM@CGKFBFCDE@@GEAGEEACIcGaHMFITIHDN[AKF@FS@OA@BK@IHM@KCGOKBENaQIDECcPMLQVFHFB@BFBKLGD@FAJOVGIACQ@A`LPCB@JEF@RU@ANS@@RCL\\HIFpRBFRBBDKLLDADJDGBFDABHBEDNF@DGBBBADKDAHC@\\JJFBDEH[DEFDH\\LX@XLBLbT@DNJLDCEL@VJABJNDHB@HBHYFBAA@GNFB@@AFB@AFABFLFBHFCL@HJBAFBLC@DN@HN'], - 'encodeOffsets': [[ - 124213, - 32254 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310113', - 'properties': { - 'name': '宝山区', - 'cp': [ - 121.4346, - 31.4051 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ˆmÖoÖiƒ½[s[YEUJU`SCIEBCCWJY_LIICDWU@@FaBCJIB[ICH[@@CDKEE@MK@@IMCAEBCH@AMFI@SMGEFGB@FK@BHCAIFJNQD@FEBDFMBKGACG@ECWH@@CDDTOEEBGEK@GC@EE@GPHFR\\JHGA@FDBKRLL]RAFH@FJFDKR@FINBFKDCNEBFJEHK@DLEH\\HFADB@JFFDA@bIJGBEPDBGLI@DDEFBDCHDBIJJFCLIBCL@JKJE@ADHDBHJ@HIBBDFHBBAEIJ@BJFAVL¢ˆ'], - 'encodeOffsets': [[ - 124300, - 32302 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310112', - 'properties': { - 'name': '闵行区', - 'cp': [ - 121.4992, - 31.0838 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@T@@ELE\\BCMJGJSNEbGdHDJFBJAFIEIFCEWG@@gMENSFCVJFAxR~B@IH@AIiI@GE@FGEAFQPDRiV[\\DFSGMHAXHDOMCJCDETBBNVJJI@DD@ANNNH@FILDDMFBDHNDHKL@XDFGLD@EHGFD@DDB@CDDHCDAEAHG@ABOJ@BIaC@CECLKPFNCDCJBiQEIF@@@OGBMIAEEBMTHF@NKEC@QFEGA@EBCKAACHCLJHEFHHB@AFCAIEACIC@HG@KCCDC[ECEED@KC@KJMAAFQ@GHG@BHIJYIGE@EI@A`KDWCaKcCiY}I}S[CYJM@CFDVPRRVWDFžLBBG`JCFRFEFFHC@RF@HQ`Q@E@ENBDJ@HFCB@DCCEJBBGDGXMPBDGJ@DEDELEDMA@DJF@DMZ_jMNYUUJILCJIJDFGH@TSVM@DLXZ'], - 'encodeOffsets': [[ - 124165, - 32010 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310110', - 'properties': { - 'name': '杨浦区', - 'cp': [ - 121.528, - 31.2966 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@V@CXJDKJZ`XIDDFADJvSRMDM@mFQHM@KCMKMuaOCU@BDAJSX@HKJGD@PNJCJWAGT@R'], - 'encodeOffsets': [[ - 124402, - 32064 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310107', - 'properties': { - 'name': '普陀区', - 'cp': [ - 121.3879, - 31.2602 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@F@@FHDL@HFFAPFCSDC@@XGFDH@BDLHNACEFA@ERCIMJEDBAGL@@EHAFENHHJ\\ONQBQCIBC[MKACKI@GGGH@I_G@CW@[DMHCDIBMTDHN@JNHEH@FJFPKFACSBKHDJNABDMDECAFiDEDFDIPG@GLHCNH'], - 'encodeOffsets': [[ - 124248, - 32045 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310104', - 'properties': { - 'name': '徐汇区', - 'cp': [ - 121.4333, - 31.1607 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@RADL\\NCPHFfLJaJ@FWLGMGIK@IFMDOYYFOTSBI@IMSAMSACFIDNDCPWGGBHNET[CU\\QjOCERFBEHF@@HjJBJG@@J'], - 'encodeOffsets': [[ - 124327, - 31941 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310105', - 'properties': { - 'name': '长宁区', - 'cp': [ - 121.3852, - 31.2115 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@HFFB@HF@DCAELENSJADCNG\\CX@@D`H@JHGHHJ@BINBFUGEDO[MCKQB}AwQEBUIEDMTNF@hH@FXEDFJEJIB'], - 'encodeOffsets': [[ - 124250, - 31987 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310108', - 'properties': { - 'name': '闸北区', - 'cp': [ - 121.4511, - 31.2794 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@CSG@BQGODUPWTOBQAAFMECKBGEMFKEOHADDJARMR[PGI@TEJBNG@ADBFND@JL@@NFFCL@D\\@DG\\JJADI'], - 'encodeOffsets': [[ - 124385, - 32068 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310109', - 'properties': { - 'name': '虹口区', - 'cp': [ - 121.4882, - 31.2788 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@bA@E@QHSXBDIMI@OHCLI@GTWBIACQAYIOFGCENBBARSPOXCVHPARH@DT'], - 'encodeOffsets': [[ - 124385, - 32068 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310101', - 'properties': { - 'name': '黄浦区', - 'cp': [ - 121.4868, - 31.219 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@NEHFLAFDHDPEAMZUHQQ]IMKJG@EPERABHBGRUCCNGV'], - 'encodeOffsets': [[ - 124379, - 31992 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310103', - 'properties': { - 'name': '卢湾区', - 'cp': [ - 121.4758, - 31.2074 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VDHQGABAFQFOH@LIiKKHEXI@IbAFZB'], - 'encodeOffsets': [[ - 124385, - 31974 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310106', - 'properties': { - 'name': '静安区', - 'cp': [ - 121.4484, - 31.2286 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@DLLB\\NPGLFHUDMYABEeKEVMAAJ'], - 'encodeOffsets': [[ - 124343, - 31979 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/shan_dong_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '3706', - 'properties': { - 'name': '烟台市', - 'cp': [ - 120.7397, - 37.5128 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ŤLšLllVń²è°xżĢĠÆl҄šŤbœ„V¤ĊXnŽlĢVĊ„Òš„ȰĊŰÞè˜L„±@џn»VUźċ²»ÆkôVɆkĊѲkŤVVwUUVmUaƒ@KkU@ƒmUmmk@UwUkmW@UVIXa@ƒmw@a™KULƒaƒx@Uk@UbWU@yULmK¯@kXƒVUwm@@JUUknWKUVƒLUbU@™wWykIƒa@w@mUI@ašUVynIWa„k„@@W„bl@@knmƒK@wnIl™°Kna@V¥ğ@ġUķ»™¥@UōJƒX¯¤k@™wmI¯‚k@mwƒak@@šlX@bUJ@VƒbknWxkLkxlŽšLVlkLmŽšb@bU@ƒbU@VbU`Vb@n„L@Žmb—U@˜VnUVmnU@mm™@kIUWVIUK›VkkUJUnmL@VmLUaVWaXamU@™™U@KUUmVƒU—JƒU™VÇwğn™mƒ@mXĉV@l¯xnô'], - 'encodeOffsets': [[ - 122446, - 38042 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3713', - 'properties': { - 'name': '临沂市', - 'cp': [ - 118.3118, - 35.2936 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˜bXlƒl@zlV@lXXmŽkbVVlš„U@Vn@@Vmb@XšKšVX„WJ@XXl@„‚ŽÈbVLšUl`„@XXV@VVUxVbUxVbš¦„@‚WnXVJ@bnVUzl@„°Æx„U„KlU@mUUnUlUVWVUnVV@XX°V@Všll@Vk„aXVl@Ux@bmbXLlKlb@b@bUJn@@„„b@n°x°K@an@@UlLVKVbXb@bVVnK°LVa@UVa@™Xw‚KVxnLšU°@naV@UWUkWƒULmV—wÝKUUla@aó_@mƒK@aUU@ƒWUkwVm@aVI°W„@@IUw@a±¯@¥kUVUm@a‚wkw™@ƒK@kVKk@maXalI@alL„WXblaVLVU„V@LnKš@„l@w˜aXašLlnUl„LšmV@n°J@_VmnIVym£UKmI@WnIVm@anUVmÇ_kġIÅWUXÇm@U@ݯÅ@ƒ™@naWƒ™IVW@IkK@klKn@naWIƒmk@ƒaƒbkKkLWn™WkLWmk_ƒ@UaVƒUKmLUw@mn£WwUmU™ƒaóV@UkUm@UKULUwmJUX@WW@XҙzVblJXŽWXk@UVWK—X‚¤UL@xU@ƒ@ƒVUaU@@XmVkLmWkXUyÝLmKXnVŽ@n@l™x@bWLnVVn™`knULmxUl„„WLXŽVb@VƒK@z¯x¯¼Wx™KUn@bk@ƒlƒVVVz'], - 'encodeOffsets': [[ - 120241, - 36119 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3707', - 'properties': { - 'name': '潍坊市', - 'cp': [ - 119.0918, - 36.524 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l@@UšK@Ž@L@bX@@VlL@JƒLUVnX@`ÜXn`V²mJ@bU@@n„b@l°xnnĸVƚ°@„ƒĊ£Þ@lWnÑnkʶJmó°w@kk»V@»ƒ¥k@V@kw@wVm„a˜Å„mšaô£ŎƒXI@mln„Kla@mV_UKƒ@kUkw@alW™IU»™mƒ—@WUIl±UUÅU›bkJƒ@a@wUKUaVIÆmXIWaka@m@Ul£XKVw@ƒUIƒJUkmJ™ƒVkU@a„ƒWK—ImVƒ@UxmL@bX`WXU@U`ÇkUak@@°UblXk‚mLUKmL@VULóƒƒVk@@Vlbn@Ub@ċaUJUbƒIUlVLUVVbVKX„VlVXU@mb¯@™VmKUwLWx@šUb@VUb¯KmLUU@aWaUaULkK@Vm@@b¯L¯w@mƒa@ƒm@UUU@U¦lJUXƒVƒmkb@nm„XVWŽkb™IVxUV@VUbWLXVƒLW`Ux@nk@Vn@x@VkJ@œV`mXkŽ@V„xV@lVššI@VULš˜VU„IV`°bVXXx„V@VWVnL@xV„Ub'], - 'encodeOffsets': [[ - 121332, - 37840 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3702', - 'properties': { - 'name': '青岛市', - 'cp': [ - 120.4651, - 36.3373 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„@nU˜JXLƒ„@blVU‚š„nIVl„IVJ@„UxWLk¤@V@nlbXbWJÅnUJVbVL@x@b„ŽlIœaÆVVVk²VJ@X„˜šnV¼šJkX@blxlV„@VLU`@nkbƒLkm@nWJō„ó¤™bƒn—ƃbUn@xlxU@l@„¦@¼UŽl¼ĊUnW„@šnĠmÈxšU„V˜I„VnUVV@LšV@šnVWbXb‚UVbnK@UnKVmVIllœUVLUJVXlJš@nnV@nmVUUm@—˜Vna@ƒK@mUaV_UaV@„aV@@a™anlKUk™KklwlKXwlm„a@UVI@akW@™l@„bnxl@°nJšxl@°£„WŎIUÑn»lašmô¹Ŏ¥VaUUkƒmkġWɱIUUŹ`›@kk@ĉƨřV¥_Ç@™Ĭƒ¤ÝL¯m¯£ƽóķwUW±ī¯kōaĉĕ™kğmó°ƒbW@UKkLUaƒVmz@V@ŽUxVn'], - 'encodeOffsets': [[ - 122389, - 36580 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3717', - 'properties': { - 'name': '菏泽市', - 'cp': [ - 115.6201, - 35.2057 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@¥šIVUÈmÞ»@UlU@Un@VW@UVmkk@aVUUKVÝ@UVknK@UV@VVnIVƒ@wnƒmwmKXaWaXI@UV@Vy²blkVKkam™U@kb@Um@VmUkmƒKmkXKWwkU@Ulƒ@UnK@UVUUm‚KXwšUVL„w‚K„U„@@Wl@@wUkV¥—@@I@W@_V@VWUw@UUa@aƒaWa—@@_mKUw™l¯amzmV—@WK™nU@kƒWLķaUKbÝVmV@UWÇbÛ@ƒX™°UbW@XŽm„Vlk²UJUbmLÇxÅWUzl‚¯Ll„@VkK™XUbWJ@bU@¯@™ƒkbƒLmKka™„@l™_WšXºVbUz@J‚n²V@¤lX„Ž„nV°šLn`WbXLôVlKVUšxXn˜lXLlU@bVV@„XJWLUVnVV@„„@n‚l„°nn‚V„KÈbVXÆJU°VnXV„kV@@xVL„@šWlb'], - 'encodeOffsets': [[ - 118654, - 36726 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3708', - 'properties': { - 'name': '济宁市', - 'cp': [ - 116.8286, - 35.3375 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nam_nKlVLXa„Il`š_@KVVXI@m@w‚ƒ„@@k@Kšnô@n`VbV@@L„L@KVVn@VX@‚VL„Jl„š@VUUƒU@Uam@Uk„wšKWaXamkJmIUVUÈblašUnV@kVKl@@lXL°kVJ@VÈnVJUX@V‚LXl@xVLnU‚@VK„V@a„IUaV@„bĊU„x„K‚kVJXUlV„ƒ„UVašI@WUI@KlUnw„mWk@WXIWƒ™U™L@Wna@Um@@UƒVk™UUlanWW@kkU@y„kWk—aWVUlÝbUU@kƒJUIU@@ƒ™JmaókƒLKǃUUkKWLk@WbkUUaƒbmKn¯°¥V@XwV@VanaVaU_@Wlk@WÈ@VUÈVVۂm„aklKȯlLVUX@lK@aX@@kV@VmV@VwnJV_UWUwƒX™am@kW@wVUkKVIUUVmU@UV@IVK@aUL@aƒV@Lm„UKmx@ށômLkUWJ@šnXmlUxUL@Vkn›VUšU„@V™L™`Ub±LkV@kUKÇbÛ@ƒU™Wó_mJƒ@Wk@@Xƒ@ƒVLƒxUK™VWxLVnUV@VmL@Vk„@VlVXxWLnl‚Ln„VlUnn@@VlaV@nšlbULkl±aUzU@@VWJXbWbnLnxm„@xU„mJUUU@@VmLUl@VUÞVLUV@bllUn@VUXm@@VkV@VݼÇnUV™J@¦nnƒlnVlL@„Þb°KVV'], - 'encodeOffsets': [[ - 118834, - 36844 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3714', - 'properties': { - 'name': '德州市', - 'cp': [ - 116.6858, - 37.2107 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„¤@VmbVXnVVbVJššX@Žll@z„lVInl@„@bVxUbĠ‚l@Èbla„IšxXVWb@L™@n‚ULWVXXšWWLnL@`@LUVVL@lVn„JšU@UUk‚a„™nš‚Vôô„b°¼V‚ސXš˜‚œIÜbČa˜bôW„XÞWÈzÆmnLVJ°ÈnlV²lbnW@™@UƒUV™šmnwmkkKWƒkla@mVIUKUa™aUwmn™JU@@amIk@@bVlkX@mmUklUUƒƒa@_UaUUƒV@wƒw™WkXmW@I@WUaÝU@UXaWUU@UUVW@UUUWUn¥nUVa@m@k@alU@wk™LWa@UUm@@wnmU™wla@anKn_@alK@ݙ_ƒ@@WUUUmlkaƒIƒyU@UwU_Wa¯yU_mWUwkImm@InWWUk@@UVWV—kW¯U@VƒL@b¯b@l±¦@šVV@lUbV„@škxVnUšl¼XV@b@lV@nIWxnbƒ‚™@UU™LƒxÅxm¯ƒaUƒ™wU@mUÅVÝKULm@bmKUXó@'], - 'encodeOffsets': [[ - 118542, - 37801 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3716', - 'properties': { - 'name': '滨州市', - 'cp': [ - 117.8174, - 37.4963 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Vb@`„bV„kVlnV@nlWUk@al@nJ@bV@šInmVxšbVbVLUJ@nkb‚lX„lLnlmx™nUš„V@V@šmXn˜lbĸ@nnVx‚b@lnXV@UJ@nVxšxnxVbÆVn¯ƒĕ‚@@wÈçUÇlķVIœb‚@„Çmk@¥k@UkUK@aWakUóJW_UW@wkkWK@U@Kš@XUƒƒUkmUUalKXala@U@kkWlkÈl@kšV„mVIVmU_‚a„ƒƒwnwVW@wƒwUƒ@wU£ƒwkJWIyUI±bk‚VUJ@nmV™Ukl„Xmx@lnbW„kVƒUkLWŽƒxkKUUmUkb™J±—LÇxUKmkUmkkW™™a„mUaVkšJÆ_²KĠ@U„W@w„U‚¥nUWwK@aÝUkÅVaVK@akLWƒƒƒ¯I@bnbVx¯JW„ñšWbUL@šƒŽnV@VmbkUUV@IÇak@@bWak@WJUœJWL@bXV@„‚@„V„Jlb@zUlUŽUImšnbV‚mz@°UV@V™bV@@V@L@xLmKUnmJVX„J@VkLW@UVUL@b'], - 'encodeOffsets': [[ - 120083, - 38442 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3715', - 'properties': { - 'name': '聊城市', - 'cp': [ - 115.9167, - 36.4032 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ô@VWnL‚an@VKÞLÆUnVV@šxV„„bn°Æw„wšKVVš@„maXwmJU@@k@aWUk»V™Umlw@™UƒVa@kUU@™²¥@k°a@a„K@U›ƒU@mmm@ów—ѱ¥¯@@w™Kmw—I›¥kU¯UmakJmIUaƒVkKUkm@VUUa™Uƒ@UaƒKUK¯@™w™UVŽUIUKVw™k™¥™wƒbVŽ@xn„@lWnXxlL@`„XlJX¦l°XxW¦@¦Ul™n@Ž™@@Um@@VXVmx@¯bllUnUJ@VULVn@b„xV‚VL@b„„VlnVVblV„ÈnVlIVJœLô„lJ@xl²„'], - 'encodeOffsets': [[ - 118542, - 37801 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3705', - 'properties': { - 'name': '东营市', - 'cp': [ - 118.7073, - 37.5513 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ͬUǪlô@°Uœw°ōĠ¯š»Ģ炻XÇ@w™wƑa™ÇƒkwVƑ¯@řķUmm¯w@kƒa@mV@@anIU±m_ÛW@_mWVU„K@IkK@UW@@a@K@™L@Vk@±U@UV@lm@mUU@kLm„„xV¤@xV„„x@xUXmx„xƒ„bV`UnUJƒn™U@lÇkkllX@l@VkbWbkLVbnVVl„„WV™@@L@VXLll@xVXX`ôIlVXb@bVLVll@@¦nlƒÈ@›aUJkĸVÈÇè@x'], - 'encodeOffsets': [[ - 121005, - 39066 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3701', - 'properties': { - 'name': '济南市', - 'cp': [ - 117.1582, - 36.8701 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²¦˜Òôxn@nn‚@V‚œ„°VlXU˜UX@Vl@XVmX@JnnlJVxnXV`°zXbV`VxV@„z„JlbkŽVnVV@X„@š`@ÞkL@bm`mL@bkbšxnVm@xn@VV‚@XbšKl@xkV@b@l@nUbmVm¦XVVV@VUXVVV@XVWb@VÞVVb@X@JnXlWšX„x@x„UVV@aVKVUX@lK@UƒIUWnIVmnL‚K@w@K@UU@ša@UVU@¯nyUman™VJVVk@ykaƒIƒU@@ƒWU@aXK‚IV›XIl@Xb@al@Èb@JVUlVna@UmU„@™VKXaò™Xƒ°IUwma@aU@UU@wVW@фw@a™I±`kbƒUkw™UmJ@UkmÇUUkmKknUVƒ@mJUkaWkƒa@KmKkUƒLmyXa¯_@WmImmbƒLmUkVUbUVƒJ™bƒUkkWJkUƒl™IUm™k™Lƒ›„lK@knaVmkI@mWaƒLUK™UU@@VmLUVLWK@UUUƒWUkkVmx@„Vl™¦'], - 'encodeOffsets': [[ - 119014, - 37041 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3709', - 'properties': { - 'name': '泰安市', - 'cp': [ - 117.0264, - 36.0516 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n¼šŽW„nxšL@x°@š¥Uk@ƒnwlUVl„XVV@VXL‚KVUnK@UV@šVVL„KXb@nlJUnmb@lkLƒ‚„œšKšlVnšJ„klVXIll„Vša„IVUValUnV„K‚annnJ@X°`Wbnz„KlVnL‚Ž@L„bXl‚bVlnI„@VUU@UmVƒ@U@Uš¥@VmV@@_Ua@m°@@ƒ„kmUUm@UVmn@nX‚@@a„anJVUVL„mlIVJn@nkVLVa@KVmVLXVVLš@@U°bn@VaV@@K@aVkœbWaXUVymU@aUImWXƒ@™¥UaVwUaVwUUU@WWƒ@k_™VUKÇa@ƒƒnmxkV@LVJ@X™JUbƒVƒ„kUWVUIlƒLƒwĉVƒaU@VbƒJ@bƒUUL@mVUK@wWkK@UVWUIÇm@UUI¯lWK@kk@UL@lmU™VkbÇaUVVnJlIn‚WbXb™LƒxVln@VbV@V„UV™@kƒƒIUK@UWm@UU@LƒK@KU@Uam_ó@™m@L@lƒ@„@x@nWJUU@L™`k_ƒJWbUKkmLn`mb'], - 'encodeOffsets': [[ - 118834, - 36844 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3710', - 'properties': { - 'name': '威海市', - 'cp': [ - 121.9482, - 37.1393 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VbUnVVUxĊ¼š¼ô@Þф¯‚WǬLŎUÆW„¹Uǃō¯ÑƒÝkţ™™ţóġ™óL™ł̥U™wm¥kÝmkkKóbÝ@U¦@‚mb¯LkšmJ@x„Lmn@lk@ƒa@Xƒ@ƒlXbmJUz™V@bVJ@n@x„blJXzšxV@Va„KVUXLlmVV@In@Vx„UlW°@nLVK@zXVVal@@V„w„bVKšL@bnx@„WbUJ@VnXVlVxl@nnnV@„lV@L„‚'], - 'encodeOffsets': [[ - 124842, - 38312 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3711', - 'properties': { - 'name': '日照市', - 'cp': [ - 119.2786, - 35.5023 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@UaVUUKVk„JVaVIČb@Vam@ka@Ul@„Uô„VK@UnKVLnKlkWVa@¯l@VbÈlV_V@XWW_@anKVwUmVw@@Uny„UVblKVLX@„aô¯ó¥mÛĊÿÈ¥š™Þ¹lUīƒ¯Kĉ¼ʟbÇV™U™ŽUŽ™XmakJUnmV@bUnmJ@XnJVLn¤UzmJUn@`¯ImŽU@™nƒKVkkm™KWb—b@xƒk™@mL@KƒUUVUKkbWaƒXkK@bkJWbnbl@UL@l„Lš@lxx@b‚nUVlV@¦²°@bVx@Jƒ@¯XUJ@bUnlxVŽ„X@‚VV@b„L@nô`@bkbVVÞL˜xnU'], - 'encodeOffsets': [[ - 121883, - 36895 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3703', - 'properties': { - 'name': '淄博市', - 'cp': [ - 118.0371, - 36.6064 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nƒlKV@nVn@@kVU‚@²VVaUƒ@wmKXU@UƒUWwUW¯aU_ƒJUV™—VK@U™JU™@kUƒw@UlnWU_@›lI@U@wUml@@mVwX_„KWUXKVa@UVUUwšJlaXWUnƒ@mla„n„UVWkIV¥V@VVVI@a@akakLWKna@aVwk@WUƒbUlk@™k@U¯UWWU@mUUVUXkVmVVV@nkVƒLƒVÅwƒ¯k@WVXb›aUl@bV@@b@xkVVXVxkJ@nk@@ŽVLUlVb‚VXUVVUzV‚™LVbUbV„VWVkLmškJ@n±@UxU„VVkV@bƒx@ÒUX@xVVV@°J„„X„lK@bULUblÆÞV@b‚LXxmV¦ƒV@xƒXVŽğ@±LÅ`™IUlVbƒnšbXšllVnnlVLÈw˜K²ŽšIlanVVVlL„wXlK„VlUXƒma@knwƒWlkšVnU@mVIUl²aVJ‚zXJlI'], - 'encodeOffsets': [[ - 121129, - 37891 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3704', - 'properties': { - 'name': '枣庄市', - 'cp': [ - 117.323, - 34.8926 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚yUU„U„kl@@aVmšLXw°»°w@y„L@UUaWXKƒƒVknwVKlmš_UmmUXK@ašw@k@mUWmUL@ƒ@™@£@KƒbÝV@akw™aULmƒƒbUK™LUU@lm@—°mL@nUJVxVXU`mIUxU@UnU@@lW@@bkLW@UVkKǰkLlŽƒbnUÜÇUUVÇ@@Xkl@XV`UbmbUbU@WxU@¯¦m°nL„aVblVXal@XKlLVVȄ‚L„KôlnbšI@„V@VJ„I@lVVÞaVkXU'], - 'encodeOffsets': [[ - 120241, - 36119 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3712', - 'properties': { - 'name': '莱芜市', - 'cp': [ - 117.6526, - 36.2714 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lmnLVlÈVln@VnIšVlx„Vla²_šJlUUUVƒVw²@@mlIn™lKXU‚UUƒVaUašKUVyUUWVUUaVkUK@l@@mlIUwUWlU@w@aU@@LU@Ubm@¯a@V™@UKWUUKUn@LUbUKmlm@UIkJƒnUKUVmIƒb@b@mWm@Un@VVnnVƒl@„¯@@nVb@`U@Un@Ž™¦@V@VU„VnV@'], - 'encodeOffsets': [[ - 120173, - 37334 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/shan_xi_1_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '6108', - 'properties': { - 'name': '榆林市', - 'cp': [ - 109.8743, - 38.205 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@™ýVƒnIW»ƒW@»kUÇL—݃U¯¥ÇIUWWїUWwX¯mƒ@»n@ÜÈķô™@a±kȱƒw„ÑmwçċmU»ÆkkVyIm™ĉÿ@ƒÝ¹ƒWnwÇVš™Åaƒzmmĉ¦ó™kVmx™xU¼VškVm_UlVlk„°IV‚kmJa›¦k™™LmmV@XmKnšlUô›VXbƒbƒ@UaÇLğܙ™Åwƒ£mKnmċwÅ@UkƒbmaVƒƒƒn@m¯aU™Jm_k˜@kWXyl@@kÅamw™LU™Þ™ƒ™mWÅzUKƒš™Uk±@™b@nnK‚bX¤mzVšŽVxÇn„‚¯„@ÒknWƒƒVUbkķÈÑWkk@Va™™U@„mUkbƒÝÅ@Ý¥ÇbkĬ™XV`kLǍVmalUUa™nV±nwmkƒJ@Inƒ°KVw¯UnÅ@¥™ƒ™U±bUU˜±œmWbÛKWnUm`UƒVK@bmnœm‚Èż@V„L@xƒxmš„Ť°nŽ@VmK™²VlšlKk„ô@„êÜV@VXLlmš¦UššV°Ș¯²ÿ@¥š@ƁĊ˜²IšmĶnnb°b„KVƒĸLl„Þ@UȮš™Ü°IVƒÞÝސlŽœx@ŽķĀWŽ„Ux„èƐ@š°ŽXnšlĊ˰m„nƒšV„²V°ÒƦ„aބ„˜@zll@bÞšlš¼nKĊ¼óȂb²±šIǪÒ¯ĖV@„lxnVlk„JlaXwŌĉ„„@VnŽššlÆĕ„UÆLœèŌŤôxȚlUœ@šxlaUċĕXm„IWmnkšVVƒ„VW_@aÈWUUmk@ƒ¯çVm»™±W¯n¥V™mkXw±ÇVwƒ'], - 'encodeOffsets': [[ - 113592, - 39645 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6106', - 'properties': { - 'name': '延安市', - 'cp': [ - 109.1052, - 36.4252 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@kkÇmIšmUwVkUƒƒU²WmšVkm@m`mIĢĕUƒVa@™mXƒƒÿVVkyUýšĕ@l_UmnƒW„KVkţ™™¥™aƒwğ@™@aôƒ„ƒWa„kUmƒa¯¯™a±£kx™mmxUwÝ@xmU™b¯K™wó„Ý@kmm¹Ub@lklVbmnnVUV@x›UknƧJUX@ŽƒLÇWkw™LķƧÅwWJk„ƒLkþĉxWz™JUnǚkš@Ɛk¼ÜÔÈKšè@°lșÆk¦l„n@l¼@l¯L™°UU™Vǰƒ¹—`m¼mXk‚™bUaƒV@U¯x@¦™Ç™„UUmlmUVm„nnmlkw™@@šƒ¦Å‚ÇLmx¯Iklš„@¦mưVUx¯Lm„@J„InlmxU²šmVbkV‚bUnȎlKU_šWlīÈaÞ¦Æ@„ÞlanV@ƒšVšUbl@XlÇÒĸlŽVa„UX„lm@ѰƒƒÈmUw‚U™nyW£amL@mša²@lšV„™VLÆynX„šÝšVššKnxÆb@lk@WzXŽ@ll—n`šIV‚°b@n„m„„‚Unb„aVlÆ@ČxmnnL„¤ÆxššĠÛÈKVb„@„aWaœU‚ókVm™nL@W‚UnnšKlšœ¥‚bnIlU¯JlƒUkVkn`lUU™V»šwnwlUôšĊ¥nn„yÆb'], - 'encodeOffsets': [[ - 113074, - 37862 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6107', - 'properties': { - 'name': '汉中市', - 'cp': [ - 106.886, - 33.0139 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lKnb@n„lWb°bkxĸwVb@ł„nlŽ„ƒĊ¥šL@XŽl™ÈƒVblÈK‚b„akVwôml²`‚nœ@‚nVKœl˜k²xŎƒ°¦VU„JĊw@çnWçރVkUóÛ@¥kwš™šUmƒX¯WšÑkƒ@UymIUwlUn¥‚mUk²a°¯V»@™ÝVș„ÝċÅÅVl»@l@a°±@_kammÅb™a@ƒƒm@ż™KknõĠ—@mšƒ„¯LÅw›‚—LVxmb@¼kV™@mw¯wVakKW»X±¼¯Vkxƒb„¼WŽ@nx@x±bóakbƒ@ÝmU™@ķÓÛL™kƒVUm™k¯¤ÝLUlÝ@Ýz™š„x@x™°™™™bƒmƒX¯aUJW¯—k@bÇWƒwÛwWxƒ@XWlb@Žƒ„VŽÈUlwšLnl°VlUô¦œU°¤VšUxVXUxlbkVVlƒI„°„ÅVlU°m@k„ÇU¯xUlƒLUlVL@b™°ĠInĠ°ÈnK‚„@xÞa²n‚aUyšXUKVkšWô¼Èa‚z°JXUVÇV_„JVƒšz@Žnb'], - 'encodeOffsets': [[ - 109137, - 34392 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6109', - 'properties': { - 'name': '安康市', - 'cp': [ - 109.1162, - 32.7722 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„bĊaƨèšwôô„¼šb°ašXVƒÞVUÞ@‚aXƒm¥kImx¯¯ƒV@anU@UÇéğL@ƒ¯¥V£mƒ@ÝÈb„K‚™„X°wČÿ˜ƒ„b@xÈblxȯĊ„„mÆUVƒ„nÈ@ƨÜLĢ¥ƒŹnƒ°Vnn˜K„aô_ȃšwU‚aXmnW‚¯kl›LXƒÇ™ō¦ÝaÅVmbğUn¥±wÅéVƒan¥ƒ„U„»°am¥„£ƒÝ@ƒ„wVw™¥nU„уUmmVwmķIÅaóVWxkblb@ból@œğÒĉ¤ċXƒ˜¯X™xk„Ç@óÆÅx@š™xķ_kmݎǣkblb@`¯²@bk‚‚@k¼ÆUČÆƒÞǚÞU@šU¼¯°±bVlnm¦kVVxnJVz@‚l„™ÒXW°n„™V™šlx@¦ôÜVUl݄Xèm@è'], - 'encodeOffsets': [[ - 110644, - 34521 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6110', - 'properties': { - 'name': '商洛市', - 'cp': [ - 109.8083, - 33.761 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²nl‚ôbš„°aVwnKÞIš`°wšXôw°VĊ°@ŽÅš„ÞÆV„zÞK@xšŽ@a‚LŚ@b@ŽnLlƒ@šln„mnLVw„a„bVƒ‚VnbU¼„Vƒ°„bl„šbÈ@ĶŦb˜@nÇ@amIyUI@ĠVmôƒU™ƒVwkwlanJ„¯lwó¥@an°Jš_„‚@š™nóƒó@£l¥UwmašÑ@ƒUm±V_ƒJ—£›J—UW¥¯@ƒ_k¯¼mUƒVUè¯b@wmL™»ğVmağI¯¤ċIUW™XƒKĵ¦ķaƒJUb™IƒlUóVmk@WÅÅÇ@ƒmU„ÅVƒnĉƒÇ°kwÇa@wƒa—„ċxƒWšƒLÇa@Þn„U¤°¦@„ĠKÈê@VmV@b„U°°nwlJn¦W„bÝ@VŽ'], - 'encodeOffsets': [[ - 111454, - 34628 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6103', - 'properties': { - 'name': '宝鸡市', - 'cp': [ - 107.1826, - 34.3433 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@ƒ„£@›°Išb@¯°ynʃaUƒlƒU£„Umšĵĉ@@ylUÞ@@£kWU¯WaU£¯ÇV¥ƒ@kb¯wƒn™¥ÇkUÇnUƒ@¯±›kULm›@m±_kŽónUxlŽƒbaÇLkŽUaDŽkšW@™Kĉ¦ƒ„kƒm@ŁUaķxlw¯aXaƒk@mmakL@šmšÛŽ@¼m„@l„XV`ƒn™KUš°°@²š¤UÈ@VxmôƒxKl„VV²aVw„Xla„Vlx@UVnŽÇnk°ƒVVL™lkI™šƒJÇk¯V@šknƘn@lznmlVkzVŽ„VVxš@Ux„z@x±¼VxxU„l‚kb˜@„¼Čk˜VXlĠkôV²w‚LUKlwœJ@a‚IV¥Þƒn¯Ün„‚„@nk˜l²kÆ@š°„aVbnI@™š‚Ťn'], - 'encodeOffsets': [[ - 110408, - 35815 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6105', - 'properties': { - 'name': '渭南市', - 'cp': [ - 109.7864, - 35.0299 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@ÈôL„xUް„Þ@mŽÈnl¤nUôL‚wX`@ÞÝL™ŽUšmLô„„ŽôbVbnºlnÞ@ôƒšx°LšanV‚wÞ@Vxnwšnlw²¤šb°°„bVnƒlXbƒ„ó„@bš‚Ġ@„xšbš¦ŤšV™Xġ„£W¥ƽɽƒó@ýóƝÝ»„£X™mƅšĊkUƒ„@™™šó„kťaĵŽÇ@™akƒƒa„¯ƒUV»maUU„ƒaƒbUxmKƒnkm@™k„mK@ƒxó@¯n¯KǦ@ôÅèlxkx°nƒƾ¯KU¯WķL@VÝIUb™yWbX¼Ç°'], - 'encodeOffsets': [[ - 111589, - 35657 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6104', - 'properties': { - 'name': '咸阳市', - 'cp': [ - 108.4131, - 34.8706 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šIXyĊwlý„KlƒXIVaķƒ™»a›£„¯aVU@a™‚wÈō‚ašL²»‚VœUln°WȯW»XašzVaÞJ@Uƒ»@¯Ýbğwly@£kÑţ±Wу@ka™IUƒƒnƒ@¯ƒómţU™b™U¯lÇIÝb@¤Ý@kV@zĊ@™ĶnƒVV¤k„V„„bmź¯z@°™a¯J@œƒ¤@„„bUx™bƒ„@`™xUÔ±ºVXœW‚„UnUJ‚L̝ÈKlblmÈXŎ°šU„°LšŽlkÞKš@Èxl_°ĶUÒkblš'], - 'encodeOffsets': [[ - 111229, - 36394 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6101', - 'properties': { - 'name': '西安市', - 'cp': [ - 109.1162, - 34.2004 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°²@‚„mVVÈÈlš¦„m°xla„@U¦°ÈV¤XbV°lXÞaÈJ°kšVšaŤVôn°„„@„mV„šJlb„@XÒŤ²lÒ@¤kzĠxÞa@°„¼ĸK°XV‚°L„ƽ¯mlwkwÆç@óÈ¥°L°mô@„w@aƙK@b™@wÝLƒyÅUƒÝƙ@ĉ¯¯Uóx™W¯x™_ÝJmLUx¯b™ƒóak±mÝUU„™W¯b™aƒ»óó™xƧçĉbƒaĉxƒIUV¯¥ō„±w—l'], - 'encodeOffsets': [[ - 110206, - 34532 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6102', - 'properties': { - 'name': '铜川市', - 'cp': [ - 109.0393, - 35.1947 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÆxĸƨšKlxÈX„K@VWƨIlmœV@wVUmUnmUalk@kVaUaóaƒóƒnKV™šÞK@ÝW_xóKmVk£ÇmnÝ@¯ƒVƒwóK@ǯXkm›VU±¼™KbÇŎx‚š@bUV°bƒœ¤‚bš¼ĸ„Ub'], - 'encodeOffsets': [[ - 111477, - 36192 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/shan_xi_2_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '1409', - 'properties': { - 'name': '忻州市', - 'cp': [ - 112.4561, - 38.8971 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Vx@lnbn¦WlnnUšmš°š²VšV‚VVVnUn„ºlz@l„„@Jƒ@kXWVXl@Lƒa@„ƒKUL„ŽlbnKlLnK‚LnKÆXn°šbVV@bUVl°Un@LnaVJUbW@UX²l‚@ČwlVVIšWnkÆa°„„anV‚Kn°™UW¯@™aVUVk@Un@„aV@ValwUanmWU„k@WVUUanaVwnLVl°@nk@mVU@UVK@w„LVKVU@ƒ„K@UUKVUV@@bnL„a‚V„aôšlIXmlKX_°KVV@bVV„@šzV`kblI„V„Ul‚šL@bnV@V„Ċll„„VlIXW@k„a‚U²blKšVnIlJ„albXXlWVn°JnšnL@l@XlJlaX@„X˜W²@l_VmnKšU„blU@mnkVK„¯@U@ƒma@kX¥VƒmakkƒLƒa@aƒ@WIUUVXWWnk@a°a@kkm@kUUmJm@WUUUIk`m@V—kaWWkX™KmƒXk¯ƒ@WKƒLkak@±bƒw@ƒaƒa@akaƒ@ma¯@ƒL—KÇÅkKWbkmġ™±ÅUƒLUK™VVkƒm¯LUVVbƒ„UwUW¯bm„ƒULƒxWJ—@ƒklmkUm@@KnwVkVK@akwƒ@@a¯bƒKkn›VUI™b¯mmbk@UbmKUL@xUUƒ@klmLUŽlVXI‚VVVUVUœU`mLXVWbXnW`Ų°xmށxU@mĉƒƒwU@mbU@UƒmbkVW¦kJ™@ƒX@`¯Im@UlUVVnb@bWJXnmbƒJUU™UUaƒ@UamIkaƒxƒ@@x@b'], - 'encodeOffsets': [[ - 113614, - 39657 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1411', - 'properties': { - 'name': '吕梁市', - 'cp': [ - 111.3574, - 37.7325 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@a@w„@„wlbnJVb„@VbšVVV„InaWmXI@a‚aUmVUVkn@°J@_„Wš@lIX¥lUnaV„V@naV@„xĊ„n‚V@‚wn¯wƱX_WmXaWUnKV_V›VUUUUWJkUVnKlk¯™@@kmKUaٱKkU@WmI@WUIlUUmVwXƒ‚w@ƒUlUVwœV‚@„Lnb‚W@anU@UšaVkô@l»n@na˜JnUÈLVaƃUUVm„VKVƒ²L@mU_lK@UVWkU‚a@a@U¯aUaƒÑóÑUb™„ƒKk@@aƒk¯mVaUwVƒÑkWUmK@UUKmXUWÝwUa™LUU@aWJUUU@Ua݄U@WL@VKVaVI@WnU@alIVKƒƒ@kIƒmIkJ@™m@ƒ™@@_™K@xƒ@kaW@U„@Vmn@ŽUK@mIƒJUXV¤XXWlkKƒkkK@XmJVakImJU@ó™¯LWKUV@nUVƒLkxmKkLma@kXKmmƒLƒab™LmK@V@mXVÆUxƒX@`nL„aV@@VmLUVnLlLš˜„b@„šŽ°²nx@b‚VUxlb@V¯bUV@zV‚XVĊXVx@lVn@VnnmŽUš@LlJXVƒz¯VWVXbšV@bmn™VUVk„Çþń@XVxmbUlV„Uln„W„@„Xl‚@VLXÒ@bÞJ°¦„L˜ò„@nU‚b@°„X@ŽXbmVU„V„nb@x‚x'], - 'encodeOffsets': [[ - 113614, - 39657 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1410', - 'properties': { - 'name': '临汾市', - 'cp': [ - 111.4783, - 36.1615 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nW‚@@UnLšK‚a„b„KnnWL@lnblKnLlw„KVU@mVUXL°KôšV@nIlJUbnI@WlL„llLXkWWU£VW„InJ‚@VL@nm@UVƒX@lb„@@wšL@`‚@„šn@V@lw„@n„VmVX„WmwnUlƒœa@_lK„wVlUn°xVKVXXWlUšVVI@K@K„n°KœwlVlU@kna@V_„Wn‚m„UVm@kXml_@m„LlKXw°m@_ôJVUV@X™l@UaV@Va°I„lk»VwUkVmwUmmVn@V¯@KƒU—wmK@U¯wUVÝ@mJƒU—nWK™@@UnKVa„_lykUmKÛnm@™x@ƒUUlwVk™ƒXW@ƒa@Uƒ@@K@ƒkIV™nammVakUlƒ@wX@@kƒ™¯@ƒVVbml@„„°UbULmlVbnbÅK±VƒKVXUJWa@ULWaUU@@U@aWK@UkxUKƒLUUUJ±UkL@V±kk@kam@UV@l@LWl@n@VVUx„LlUUx@VUV™U@aƒIUl™L@°mLU‚ƒbkUUaWUUaUU@aWK—LWJ@bUL@VUVVbU@m@a@kmKmnĉlUK™XƒWUblb—xmIkƒƒU@xWb@lkšVx™LXŽmzVV@bklVVUzm˜@bk„@Vx@xlŽU„@lUbVnl@„Wxnl@n@ŽUbV„mL‚mƒb@`X@lUX@@xlnkLWaUJnnWV™Vn@l„@bULVV@l™V@XnJVX'], - 'encodeOffsets': [[ - 113063, - 37784 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1407', - 'properties': { - 'name': '晋中市', - 'cp': [ - 112.7747, - 37.37 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@šlInJ„lJ„@‚„ULkJ@bmV@XUJUb‚L@UXKV@ރVbV@VVXI@bVVšKVbÞxVXnWVL@VnLV‚lX„ÒUŽVxUb°n„l@bl@„LšƒVaô҄ÒVb°b@VnLnnV@lmn@lb„U„V@„‚JœUVV‚Xkl@lUzmJ@xšXkl‚bUn„JVšUb„nU‚lb„V@nlLX@lakšV`Ub°š@XVJnU‚L²KlxnI@KV@lbUbVV„KnVl@„zlm@Uš@nŽšI@WUaVl@@mVU„@XkW@ƒnkVKVƒ„_Vw„y@knwVa‚@XalU„@šVnml@„X@V„L‚KVaÞbnnlJšI„mVKn„VVVInVlU„@„m@™mXK@UmyUI@mWUUakamw@wUwmLkakwVƒmK™w@wUam£y@am_ƒW@™UU@knmm„amU@WUa@knw@ƒUUUUV@nƒJm@mVUkKVUUUkKmwƒKULƒKUImV@lUn™nŽm@mbUK@°™bUnmbUmkkƒWUb@am@UXkK@a±@™V™@ĉř„V‚UXVxUVkLWl¯@@bULUlm@@nm`—XƒlWakIkm›VUbUL@Vm@kIƒ@@Kšm@—VaX‚I@W@aU@kUƒVU_™KƒbƒJkkǎ™b@nkKmL™wÅW@kVUUƒVU@WUIƒJmIXmma@_kyVaUUlkUm@ƒkU›x¯Lƒm@L@LUJ™UkVWXUWUL¯wVmUkƒxkL@`›bk„mVnxƒXUWUnmƒƒ@kxU@'], - 'encodeOffsets': [[ - 114087, - 37682 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1408', - 'properties': { - 'name': '运城市', - 'cp': [ - 111.1487, - 35.2002 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„Vl„nJ˜wkaVa„XšWVLĊknmnL‚l@@bn‚V@UaVU@UVK@aXI˜KXL@bVVVbXVVblV„aVnK@¯šKVk„J@bšVVU@UVwkVƒKVwUUm@@Xk@K@kVUn@lbl@²l@UlK²VVIVV„KVLlw@VXL@b@VV@VŽXbVK‚@XbVIUW„L‚U²ÆLmaUankVKVaƒ¯@ƒnkUa„U°@„š‚n@@kWa„UVaXUW@IXKVw@U™ƒ„™WU@W@@UUƒU@mn@ƒ`m@UUULkUmJ™IUƒ@@UƒK@U@›anƒ™ak_@wmKUwmakV™kmK™V™k¯b™wƒ`kwUIÇx¯»ÇaŃmn@@™mƒmUkV@wkKW@kxmL™UkĉLÝk™xÝw¯lóVU„mV@ĀVVX¦W¤kz@`Vx°„²ĸ‚š@„Ul@x„êĸNJ°¤V„VlXLWnXxmV@nUl@„'], - 'encodeOffsets': [[ - 113232, - 36597 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1402', - 'properties': { - 'name': '大同市', - 'cp': [ - 113.7854, - 39.8035 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²£šyl@Ȑ˜Ė@bĸŽĢbĸ„˜X„a‚KŤnn@ŎôllÈx„nVnÞDŽV@b‚nXllL°KšbVb@J@b—„‚„@ŽU„„xlKXLlKlXk„@Ulk„JlkUƒVKXUƒÇVIVm@_nǚLšašl‚w„VnU@UUwma@aƒaÝaLmUk@@Wƒ@U@@X™wVWÝUUUk@@VmLƒKV»nwUw™aUL@`mzƒJUIVƒUaUw™KUaVIlJôanÑlLVUn@ša„@VV„@@UUwVK°Vn_lJÆLœéW@UUUÅ@»lm@aÞIVwXW˜UUkkm@U@aƒU@mwU£VWU_kWmƒXwW_°yUkkK@UÇK@kkUVymóK—U@KWIƒbUak@mJ@bkbmLkŽ™UmƒkVU„W¦@lnb@„@Vƒ°ULml@nkVƒa™VmLUnk`±@—XƒWW@kbǦXޝ„WxI@xmbmxXlWV„„@bŎUz@J‚b@bÞb™ŽU@Wbk@ƒxk@WX¯VۙƒWÝbÝUkVUU@alI@a@akLWa™m@U¯UUmÇL@K@aU@¯VUkƒKmX@`@œkJ@nV‚Ub@lbVÆXVW„ULU`VbkLUV@XWl@bXJ˜@VbV@Vl'], - 'encodeOffsets': [[ - 115335, - 41209 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1404', - 'properties': { - 'name': '长治市', - 'cp': [ - 112.8625, - 36.4746 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Uk™Lky@I‚JVa@mÞaWšy@_W@_WƒXVlUVwš@nw°K@m„UƒVaƒmVkU@mmmnLVUmKXa™U@IlKVUnK@UmWkX@WV_Vƒ@akU@a„KWIXyƒIUVmUn™Ua@WaXUVKVmkUWVkUƒLU@@VƒbƒKbƒIUmƒ@mbVL—x›WUUkn±V¯wƒbÅJUbmLkbmKÅKƒbVnUbƒV™KUb™KUbmLKmƒb™aƒKkUm@UŽnn‚VnxUVlUxl¼ƒk¯JUbU@Vbk@WšU@UVóI@`¯nWxkLƒK@nk`Wn@lUnƒVnm‚ƒXU`@mb@lkV@„VnklVVUblz@`nbWnnJ„IVJ@XUVV„UV@lÆXšxnKlL@mšaȍll„I„ašLV`„UlVV@@b@XJWUb@˜™n@L„@lJn@@UVKVaœUlnlJXb„k˜Wn_@mn@VkVK@a°@XklKVUUwVWUšƒĊƚ@šU²@@blLVWn@@bVa„XllVnnaVmša@¯VLnan@‚šmVm@knUVJ'], - 'encodeOffsets': [[ - 116269, - 37637 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1406', - 'properties': { - 'name': '朔州市', - 'cp': [ - 113.0713, - 39.6991 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XXWVXVWnnlnn@èÆ¼@„„xlš„ŽV„nblšššVŽÈUVl‚š@„blnœL܃ĊmUkU@Ua‚—@WI@aXk@WVUlKUaV_VKXƒWUUÅka@VaU@mlI@›@_nW„LVl°UV@@b@LÈKVn°V@VšnXblK@b@bkJ@bVVlUÞVÞa„Xܚ°UXWl@„wl@XaV@šÝa@aa@IVyƍ@aƒƒXUWknwna@w‚JXw°ƒWÈ¥kI@W@kmKm™¯IUmkXWWkaƒbkImJ™UkL±aVƒb@lWXkJƒUkƒĉkƒ@UmU@a™KkƒVƒUkJlaU_™yƒ@UU@aUU¯LW`kLWnkJó™ƒbUƒbmK@aU@UVVL@VƒL@„UVULƒK@xUL@VUV@nml¯@UkmKUxmbVbUV@XƒlXVmnVbkxUbU@ƒbm@@VUlUVšb°@VX¯šm‚'], - 'encodeOffsets': [[ - 114615, - 40562 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1405', - 'properties': { - 'name': '晋城市', - 'cp': [ - 112.7856, - 35.6342 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lV„Lšb„an‚LnKVašLVašL„UVaUm„aÆLnLlanKVaÆI„a°x²UlmVVœX˜wUKna„@Vn„J‚a„L„a@UV@@alUkKVKnkmmVwUk„w@ƒ™@kxWUXƒW@@mƒk@aUa@a¯aƒLkKmwkUm@kL@K@aWIXmƒVƒXƒWkUVakL@UVKƒw@aUK@UUKmLU@¯n™KUwVƒUIWJUWmka™@UXƒJƒk@UkmW@kLWKVƒx@bmI@VUaVU@a¯@UUmVKmX@±`kÝKVxUL±akL@V™bƒLkKmVƒ@XWVUbƒVXb@lm@@lW@@xk„lVUbnnmbUšlJ@„@L„@@V„b@‚WXš„UlkxVV@„šwn@ÜmnLlVkzƒ`UbmL@Vš@XL˜m„VnIÞ@VU°x@VnL˜x„V@LU°'], - 'encodeOffsets': [[ - 115223, - 36895 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1401', - 'properties': { - 'name': '太原市', - 'cp': [ - 112.3352, - 37.9413 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„@VV@wVKnLVal@na°nšaVJœUlm„L°a@b„@lx@bULUlmx@Ln@lVkn„l˜@XI„w‚K„Vnƒ°aVXVx„ƒUaVU°K„nUlšUVL„KÆVš²Ģ‚lnXalLÈÆ˜L„KUaVkUanmWU™a@WwkUWU¯y¯Ñ@anIl@@aVU„m„I„ymUƒLUUVakaU@@LmJkw±LKmVUI@W¯™VaU_l™kbW@kK@mƒUkaVƒmVaU™ƒIVmalk™W@wnIVy@klkWUU›VI@ƒƒUƒVkam@knU@mmmK@bblVUX@VkLV`@n±KU„ULƒ‚UnVVńUbÇKmV—Imbm@k¼ó@Ul™b@VmV@bXmaƒK@›UUxkV‚V@„xW„UxVnkVVJ@XnJ@XlV²LƂVbnL@lš@°'], - 'encodeOffsets': [[ - 114503, - 39134 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1403', - 'properties': { - 'name': '阳泉市', - 'cp': [ - 113.4778, - 38.0951 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°@nb„@lb@b„b„b‚@„x²al@lb„KXU@m‚kUWkkmUUƒVwV@XUW@™naVklKXblKnL‚ƒnLVanImaXKlL„ašV@U@KUKW„alƒXK@£WKXUV@VU„ƒUUVW„_V™@W@@K„@šƒUƒƒIWmXUmƒULƒn™JkImmÝaUbLƒK@UƒWk@mn™Uƒ@kVWb@Ubmx@lƒzUxƒ`U„ULml@„XWlƒ@UV@nk@U‚Vb@X™Jm™@@Vknƒyk@ƒzƒJƒnUV@bk@mJ@b°Ò°zXVlVXx‚@šbXVmnVbUlVb'], - 'encodeOffsets': [[ - 115864, - 39336 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/si_chuan_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '5133', - 'properties': { - 'name': '甘孜藏族自治州', - 'cp': [ - 99.9207, - 31.0803 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƒaXamƒ¯wm@±°wUwV@UaVw²Kš™„U@UƒU„¥‚a„ƒ@£Þ™ôx‚Knkm™X¥™IUƒÝUwlk°V„@ƒÈ™‚KUwlkUyV¹„mšx²Xll„ÑW»š„l„w°UŎ„nƒ„„˜Jœƒl¯°V@wôIVÇn™nUllšLšVǚLô¼XW£@±„@¥k_ÇJƒkUéƒkšƒƒwXa@ƒšLlw²™Vx„b‚mš¼ÈxlLȃ„VWÞn¯mǙÑUÝlÛkwlĉmƒULmwUJ™ç@wkm@ÑlUX™ƒÑôġƒVa™ƒUф¯@wķÓkbV„mnU@@y¯IķKƒV@¹šaƒé@k„mÞU°¥@a¯@anKlblU„¥@óğç@Çw@wkla„çݱk¯±@ğÝUÛmݯwƒ@kb±¯akXWÜkXUÆÇUš¤X_Ɛw„V@¤ƒXU‚ƒbUƒŽƒIUlÇUkŽġ@™aXČmlUlèUV@„mVk¦Vxš@¦±š¯ƒƒ¯¯anlWš¯nƒƒÅw@w°KVak£m@klƒKknÇU™»óKšīlaUaV£@™™¯@ƙU™VƒÛÝÇXƒÇl—ÓlŹ„»WUğJ¯£mx™Lĵô›ºX„VlUll²bl„„lŽƒxónn°ÝšU¼mJUš¯nƒƒƒV@êĉ°Uĸ™w™@mƒ@¯kmXamѯaUwÝKU¥„mÅn¥Wmn™ƒ¹n±ƑƆÇôXê±NJnšƒ‚UôlĖkȂVÒ¯¼VnƒȮ¯ĀnƆ˜Ģ@Žk°V°¯ĢVlkšVxm¼X²™Ŏ@ŽVxknWܰU‚¯n™ÆÝœ@`„ôݲÒƒ‚Çzn‚mX@x„è°K°Å„UČĬóĖ݄ƒ˜ó¼ÅêƒÒƒbmšk@V„Ž˜„@ҁl@nĉܛê—x@Ėml՛J¯¦óxȭ°ÝmޝLĵè›Ā@Ɓ„l°żƒ‚šX@xmŽkV@z@‚„°blŽnÞ°J@bn@ƼUVƒUóŽóLƒ°X°ÝLƒxUn„°ƒĬƒn@lnL@ŽÆ@šn„KÆxnUnV˜InĬmÆnxŎ¼ĊIĢóÞ@ĊƒƨbUƒ‚mV¥lkƒ‚wnL„mšÅÆ¥Xƒ˜wU@w‚wUÞ™@alUUŚU™Vkkm°aU—°Ó°w°U„ƒ„b°aš²K˜¯œĕ˜@ÈbޏĊaš»„XVm°In„‚Ĭk¼Vb„ašJšôš£VĊan™‚k„ů™™nƒÜU@anKnĮ‚bÈmƎš»nI‚霣Ġ™'], - 'encodeOffsets': [[ - 103073, - 33295 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5132', - 'properties': { - 'name': '阿坝藏族羌族自治州', - 'cp': [ - 102.4805, - 32.4536 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l@@þ²I@lƒ„VL°wnJ°Uĸ™Ŏè„Ilw„V°¤nĮ™¤Ý„lè„L@„ƒ„@x„l™è²ôĊ_ĊġVÈôJżīlbXšÆÈVŽkxÇVƒ„n°„¦Üb@è@nn@@°šUÈ¥WDŽ_Uala¯¯UǙkƒ»„mVwk»˜k²°VxlL@¤œ_@x‚`ȍ‚Ėöb˜š@l²alX„a@bnK°¦VK@nnWmx@nUnl@@lƒlĉk°l°UXkmW@Unš`k„ÇL„ŽW„ÛÈVxšVVlVk@l„IXb@ylXÈW˜Į„WŤzœy@šmIƒŽ²šJ‚š@nް@V„„J°a„Å@ƒŎkVǚk™aUw„KVw™™Vƒ„@nkm™@±ôkô™ĊJš¼šInÑm±nIššÞ‚XȃĊxĊUÈbÜyÈ£Vkw@kVUV™„m@ša„»ÜbÈmƒUXwÝxƒUn¥@°ġ™Å‚aœJVk™aW¯Û@W¥—UŏĶ™@¯kUƒŃ@ašI@mmanwސ‚W@œ™mw°»Uřk¹±W„xVx¯¦U°ƒzţW™w@°ÇVÑk¯@„y°aš£š@šmšnl¼„ašÝÝakwUƒ±aĉImlĵn@ƒm@kkVƒ¯Ñm™ĸ™°x„l™œ@˜ƒXVÞmlÛݙĉUÅ¥mwÅ¥VaUw›™XġċaVůÛŹlwU¯U™ó±™xÛV±¯¯n¯mċƒLmnĊm‚™@™_kJWaXmwUƒĉK™»™@mwX݃UDŽkKÇw™»nƒaUw±škx™K@„Wb„x™„„lVê„lÈIl`@¦ƒŽ@²X¤Wó»™KUșŽ™KkkmVmšUÈóJ@x¯Uk°›„—Iƒƒm„ōƒ¯Vƒxƒk™ŽX¼ƒÒkk±W™wƒnUºVzklVxLǚ@„ƒŽ¯UklVxސV„šJW¦nšmlLówݚ@¤ƒ„bƒ¦„V@VƒV™š±LUxVbU@Vx¯x@²n‚°xn„Wb„b'], - 'encodeOffsets': [[ - 103073, - 33295 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5134', - 'properties': { - 'name': '凉山彝族自治州', - 'cp': [ - 101.9641, - 27.6746 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĶóšKnw°¤ĠIXVƒ¼kź˜Ôk‚„ÈWŽÞȄÜUVšÅš°@šš‚@U¤Vbkb™ĬôLš¼ÈVlm„Llkn@l¤Ub¯L@xÆx„„°mX™mk°b„°°„²™@¥‚™Uwl¥nU@ƒVUkçVnkWċšbĢ@lÈVVk„J„‚V„aV„W@£ƒUƏxW`™£ÈVVÅlWXÛlW°b²la„@°xnÞVÜĠÞ²@l°Þ²ƒèkblŽ@xÈx@Ġènal£nU‚Dz@‚ÞK„nn¤@¼˜°U¼„nV‚šXU‚šbn™ĠUVbUlVš°LX„@lV„èÜUnK@_ƒyXVyUwmIU»Vƒ„kÇ¥šÿkkV¯m±n@ƒn¯ÜanVVƄz@Ž‚bœwÜb„m@wša@kƒmk»@™a@VUUó„w˜@nb°mš„XŽmnVbގVôanwšJ‚ak£lw„˜šLšÅnÝ@wl¥IÇӃ@U™™Lƒ¼kVǃÅó¯kVmmw@ƒn_‚Vn»°LÅ»@éÇçŹīVÇÝ@ÝğU™ƒaVݙ™š¯ķlŭġlƒ@óÞۂċ@¯nkUӄ—m±™IVġUwóKUn±¯—K›w»ƒKݐV„nl@„óxUwţ›£ĉƒUmŗÇ݃K™„ÝUlmKƒ£UVŽ@ÞȎW¦„Ò@Ĭšnny‚@nÒmœVŽ—¼@°Vbl@VlnUUwl™°a@„œ„@llnk°lbnKWĀnŽU„VxUŽ‚²Å‚m¦Û›ÇڃaU„Vbš@¦m`móX™Umm™xÅ@±Þn虲™U¯»m™ƒV—m@wƒU@wݚÝmLƒa@„™VÇUk„l°¯„VlkVƒ¦UšmxƒaULUèVx@„kIUxmWV¼¯VmȯšU„nl›È—@m»Å™ƒVWxÅbÅğW@kƒm@kVV¦mlnn@‚ō„l¦Åƙxkœ'], - 'encodeOffsets': [[ - 102466, - 28756 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5107', - 'properties': { - 'name': '绵阳市', - 'cp': [ - 104.7327, - 31.8713 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„ńlV°š@Őĵ˜VX»ÆUĊќJ‚w„@È»m»š£°Kšk@ÇnÑÆš@„w°JUwnw@wšbVbš@VlźLUw„aƒ»„aUklyUUVakwWXwWƒUxkLƒmn¥mšwk™˜UX™lJ„w@aƒIk°X„¥Wƒ²l¥šaU™„IlmkklƒÈL@m°nlWU™aW—š@Vƒ„@UaV¥@ašk@Çk¹ƒK@a™K@kƒKkšÇX@VU@kx±V™èkIWwUVUkkKÇ@ƒa@wkml¯@kUWn£Wa„aVwnaV݃w¯@UaWx—n›JńUxUšma@L@„mbUށU±VVnkxUƙ„VŽm@kkKW°„X@¤ÇUkÆÇnU¦¯ŽkƒmLVwÅK@UóbÇÆVƒ¦™L@‚±êX¦mVޚkÜÝnWU—„›@kšƒŽ¯wķšnš°ÒU„lln@@„ĶmnkĊJ²bV„lxÞb™Þƒbk»™m™n™@™¤¯bƒz@Žl°UÒ¯È@ŽšxŤX„yV¯°¥Uwƒw²XlºVڝ¼nx›š@ށXݏmxnb@n™J@b'], - 'encodeOffsets': [[ - 106448, - 33694 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5117', - 'properties': { - 'name': '达州市', - 'cp': [ - 107.6111, - 31.333 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Uxn°‚bnŽlUnÒÆƒnn@n‚¤„LnxlU„ššV@„Æl„x°XXxl`XœƒVW‚œL˜è—„±nÈbƒŽ°b@š²x°Kܼ°ĉ„V¦lJnU@¦šÞ‚JÞğ„mšLÞ»šxU„lb„VÆann„alŽ„VƍX@lnŎV„mU™maÅXƒa@aWmœ@‚£@wĉJVƒkk‚kkmƒnk@ƒmna@šal„Kš™‚J@Þwm‚ÅŃ@ambkUƒƒ@™™KUġKU@m‚ak¯±ƒ„a@aĉÑÅaVwšXlwƒ±—V¥l@@a™kƒ›@@£šmƒĉÝónWV@ށnÝÇÇx—UmbƒaVkkk@m„@m°ƒÝýXm›akÅīƒ@@ƒmb@@xmšnbƒ@mxšŽkWL@ƒ¯b@WUXmWœWKkbm@kx™Xmm@LUl„xlêóK™nUš„all™LƒlLó°m¯JVšU„K„„@x˜K²Āô¦l°'], - 'encodeOffsets': [[ - 109519, - 31917 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5108', - 'properties': { - 'name': '广元市', - 'cp': [ - 105.6885, - 32.2284 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÆL„Ċx°»Ŧ¦˜W„™šLȄ@xÞKܰÞnVxÅĀlÒnJ°a@w„V¯l@XWknKnw˜VȚ°XXa˜lX°VI°b„W„nšaššš¥@ƒw°™n@šyÆ@nkÞ@°¯lJn„°IÈl‚UšlXÅ@ķlUV¥VUUÝޙUUƒ@UwƒJUkĉm@ýƒƒlk™WUwVwWJk@VUK™lUkaVƒUƒmLk„m@ƒƒ@Uƒ›Ik`@„™UmlUkV¯ÇXKÝ_mm¯@Uƒ`kwmƒl¼±KV¯—¯Vk±Vk±kzma™KUnDZ™bk¦±ŽX„ƒ¦¯Wl„J@bƒxkIWš—Vlš™xnŽm¦„nlKVwX„WxXŽlxUbVVkzVlƒb„¼ƒbVxŹKUk™@Ua™a@xmxVx¯Iƒx™@ŎmÒ@șl¯L™¤n¼'], - 'encodeOffsets': [[ - 107146, - 33452 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5118', - 'properties': { - 'name': '雅安市', - 'cp': [ - 102.6672, - 29.8938 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ln@xšèVInxVKn„‚ĊklxkÜVޚÒnÈm°nxš@š¼ĊLV„nx‚WXblIš`š@nmĉn‚KȄôÅlUÑmU„K²¹@ÇÅVÓůVýÞW„‚UVmX„ÆbnwšKUÿ‚™@UmmIUb¯¥Uwƒ™¯™Çmš™„çmanUm»UUƒl—kƒ¤ƒa¯bV™U_WĕmÇŚ±ĢUlƒUl™ÛVƒçkUƒ@WޝKU™VkUağVmš™aV™WUƒmV»—¯@»m£ƒmÝLŽ±@ÈmVk¤mb@ôƒ¦kVkamL@b°‚@b¯¦ÝVƒn@l„ê™b@º„UĸL°J@zV@nmUƒlaĸÔ@xƒ°VҚ„Ub„‚óĢ„ÒWškV@Ò'], - 'encodeOffsets': [[ - 104727, - 30797 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5115', - 'properties': { - 'name': '宜宾市', - 'cp': [ - 104.6558, - 28.548 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VlÈnl‚XnWLX`m„²nV‚@b°xĢçlnšVm‚nn„@@„°‚UzšlV°nޘÒkxl„w„`UnVb„mšL@albÞKÈۚmܼ°@Xǚ@wmW@ńKĊL„lV„šLVŎçÞL²±‚ğkw@Uƒy@¹lKX™lKVa@w™™Č@‚w@a˜ÇU¯n™@@wġak—™aō‚ƒƒK@Å»VakUWmķwkbğ¥mL™akš™@ġރ°¯xVVÞ@VšxVš—VWx„XlxU‚™@k²WVŃULmèULVĊklĠ„VœJVx±nѝ¦mwğ@mƒƒlğkkl±@kšUk@¯±Ç™Kƒ—kxl¤b™Imx'], - 'encodeOffsets': [[ - 106099, - 29279 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5111', - 'properties': { - 'name': '乐山市', - 'cp': [ - 103.5791, - 29.1742 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@kšVŽk„ššÆkšV²UlºÈIlxƒLXèÜlU„„XU‚mkƒbVè„x°@„@¼°Knnn@m˜ÆIUbnJ@bVI°b°±@nK@mVakkƒKl¯nbšmĸ„èl@VnÈl‚UUw„wmwnm°¥„L„™lLnU@Va™ImbkƒmK„ƒƒnk@mƒb™ƒƒLV„JVUUƒ„VnkVmb@a¯JUaÆkk¥„IW¥„Klw—ÑmÝU¯™kVy¯@ƒƒ@mmn™Ukmġè¯w@aU±mnƒW_XKWmkÇmUkóbUÝUanmW™ƒ¯nma—@ƒxVôUV@šb@‚l¼„n@l™b@xƒnÛa›xa@ƒyUÅmUÛbm°@„m‚n²U°ll™ĀȦƒlU„V¼nJVxUz‚W„z@`mL'], - 'encodeOffsets': [[ - 105480, - 29993 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5113', - 'properties': { - 'name': '南充市', - 'cp': [ - 106.2048, - 31.1517 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ȲVmšLnblyl²²UUl˜°U°²L‚»„knlx„_Vް@nnÞ`WL°ÈUŽVlnkšV@ƒl_œJV„‚@„„n@lƒnKV£™Çšƒ„UV¯šm„@laX˜U„‚UbVx„@VkôJU°Jn™@™‚wUk°wnUƒV_nJmknmm¯Vwk¯ó¥±ÿ—L@wƒƒƒLVU™kU›bX¯mykI@a±Kk¦ULmaXƒƒVm¯ƒK—z±ƒklUIVbÇJšƒkL¯™l™ƒU™ÿ™UƒlUkJƒUmŽUUkVVklKk@@a™U@„™J„²ƒxƒ¦kĬ@¼±ºXnWb—xƒU@xƒx@lšL@b„Llº@șl@bU¦Vbƒ@U„™@X˜‚bVškX¯m@nÇKk„llknƒJVš'], - 'encodeOffsets': [[ - 107989, - 32282 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5119', - 'properties': { - 'name': '巴中市', - 'cp': [ - 107.0618, - 31.9977 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@V„U„lbkVšŽVLUŽl@XI‚ŽUxVxšXkl„„@þĊnVl„IVx„@VVݚVÞUVU¦kV@ĸWÆô²š@VÞnš@Vaôb²W@‚K@XUmÑUW°¯°Ina@y„_lWn¼lLUbô¼„Kla@™nkUyô—Æx°@šn£™Ý@¥mVkIU¥Ċƒ‚¯Û»¯L±w@™¯a„Ça²m˜ƒ—ç›KX„UW›k_Ww¯WƒwÅk@ƒ™Uƒ™kVmwƒK£@mmmńmÑkVmamnnlmIU`V„m¯xVlx@šmš¯IV‚óIUlƒ@UwVaƒ—VW‚kbƒ@™nU°ƒV™„šÈU¤'], - 'encodeOffsets': [[ - 108957, - 32569 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5105', - 'properties': { - 'name': '泸州市', - 'cp': [ - 105.4578, - 28.493 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VVXwVKn„˜wnVƒn„l@b¯xmKUbVn°°X°@blLšènV„@Vn‚l@U„LnmmUna„VV_ĶV@wnJ„„l@@kkKVólaUwnJm„wUlm@ašUaôKVnJWbޚ@VšwVLX¥VVš_Þ`šw„WƒÞŹmmnIn¥Wƒ@k„WV¯@ƒ°kI™ŽƒLk¼Ç@k¤±Xk˜™nmݯUlÅÛKWV¯kƒlUwkLƒÓ™@U—@ƒ‚w@ġXV„˜WX„š@UbVbšV›š_kÇV™lU°lnwŎ¦ÞaƯnmm¯šU„™m¥nkVmkƒl_ó¥¯UÇl¯@™ƒ™L™kƒ`¯ķLUy¯@mw—¼ķ°ġ_řU°mlšnÇVUޚ„@‚ƒš_ƒJUnV‚UXšbl˜Ģb@x@mšV°—È‚b@‚xċ@šš@xUbkLWškL@º„zV‚@lxĠ±²'], - 'encodeOffsets': [[ - 107674, - 29639 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5101', - 'properties': { - 'name': '成都市', - 'cp': [ - 103.9526, - 30.7617 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°n°m²°ÜUšw²ŽôVš°ŽVkxÜźUŰČb‚ŽĢlaÈL„»ƒ@k„wVǂ@„ƒnÛÆ»È™UݰKl_„V°Uš`Vbn@VbÈLšaVU@ƨ»V™nIl™šUUa„±lIk±š@VnKmÅ@WaƒK¦™lVōškK™Ý@maXÇmw¯IU‚@kƒVƒwUmVIƒƒƒç—ÿƒU±ŽÅ@¯È@xƒK@wƒLUbÇKō@mÝ£@yóUóóUxkI@WlIUaƒbƒaŽVĀ™LmxÅaWƒUnVƒÝXUþưUÔÈÆ@±ºƒLnVVÒkóÆ'], - 'encodeOffsets': [[ - 105492, - 31534 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5120', - 'properties': { - 'name': '资阳市', - 'cp': [ - 104.9744, - 30.1575 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„è„„UJVn„x„U@lV°JnxWÈnbÞ@šŽlLŎ™Ušk‚¥„LXbÆ@nŽmLU‚@zlbXmlnVynL„çšJVb‚UnómUnamU„an¥lKV_²aValWô„n@nƒ‚bVœK°¯VblW@kkƒlUnlV£°W@w„UXk°KVwƒmVkwVyVI@wkmƒVÅ_Umm@Uÿmbk£™xUaVw±V¼V¤kLWxU@Uk™bƒyƒXšómƒ°V@@zÝÒkKƒn™±U@@_VVkƒÇaVwnLWalm@@kkVVl™¦kIV`±n@w„Kƒƒk²™aƒVUUV¤™nkxmUkVWVnLUbVbƒ`kUU„mLU‚mX@`ÅbǚXbWLXŽ›n'], - 'encodeOffsets': [[ - 106695, - 31062 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5104', - 'properties': { - 'name': '攀枝花市', - 'cp': [ - 101.6895, - 26.7133 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„b‚KÞnޙ@x„V@x˜n„Unš°¼šVš±mç²ÝÆ@šwnnšVWŽnôn_@¥‚™UaVƒ„bƙœÈ܎n¥Æ±VUwVƒmXÿmLkal¯km@k›ƒ@ƒ¯bkšVxmVUkk@Ua@¯˜»Un›mс@mz™m@īƒÑX¥Ç@ݙxU¦ƒšÅŽÇUkx@šlb„UWVX„mV@xĵ˱@@ޝxUšÆLnÆm„šx@nXL±lUUVwKWak@WxkbšÞƒŽĉbUn@‚ƒ@@xó¦„Ŏ'], - 'encodeOffsets': [[ - 103602, - 27816 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5114', - 'properties': { - 'name': '眉山市', - 'cp': [ - 103.8098, - 30.0146 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„šVx°¦VanJVnš@„b„aVbkJ@XlJVwôôôV@zÞ¤@nƎÈLVa„K@x„L@w°ÇÆ@²„V˜ĀœmWXKWașÆa@_nWVnKVƒlV„_UaVamKXUWwnmmwœÑm£@ynUƒkWƒĉUkWVkkV±çkJmkKƒšƒK¯¦mnnxƒxVxVÇkUmk@ƒçķ™nmak°„LllUb@nmL@‚¯²¯aUJ@amIVaÅJn—m@mm¯L@»ƒŽ¯@ƒwUç„anlVƒWVƒÛkWç„KkwÇJk¹±V™UÅl™™ġV™²ÈƂnXĖV`Uš°a„b„£˜l„kVVn¼mVnbƒè™šÈn°š'], - 'encodeOffsets': [[ - 105683, - 30685 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5116', - 'properties': { - 'name': '广安市', - 'cp': [ - 106.6333, - 30.4376 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„VlIV‚„kšVšĀ„Vkš°šlK™„ÈIUaVJlk²„˜y„Ln°„UW„nbVKl¥²L@blJnzW°œalV°Inô¯‚K„kšKkkƒbV™šmôLkéƒwVk@KnnšWlwn@laXL›ŽnXVW@X°a@„XKl™nw„@man™@w‚@na@„„@ƒw™ĕġġ™wUkUWb@mk@™¦ƒ¥mUÛb±yÅn@bml@kV@„ƒlknVbmVnlmš—bÇk¯bWyk@V_UamJ@I—@WaƒVXamIVWkUkbVaƒUUxƒ@VnkVU¼›bkKUxmK™„@WšƒxnV@n'], - 'encodeOffsets': [[ - 108518, - 31208 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5106', - 'properties': { - 'name': '德阳市', - 'cp': [ - 104.48, - 31.1133 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nUW¥²é@šK„¥‚UÈÅôa@VÆLUxnKl„°V¥ÈmlÅÈV@£ƒWX¯lLln@UšƒVÅlwUm²U‚VVna@ƒ@KnbV™VwƃœI˜mXwWƒkIVwÝĕVUa™IƒèmKUzkmWnka@y™@l²kJƒ²Vb™VkšmJUšƧ¼@UV™bÇKUam@Ua™_¯VƒUk`¯LVÞǚżm܃„@Uȃx@l„ƒ¼ÇKkbWŽœšVxUbƦnxƦĊV'], - 'encodeOffsets': [[ - 106594, - 32457 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5110', - 'properties': { - 'name': '内江市', - 'cp': [ - 104.8535, - 29.6136 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²èlUUllXĊVX„„lmV@zn¤›ÒnxmnXxlUnVlwšmU£VV„Ušbl±„„ƒL@x²mU_lJš¥UklU@ln@‚kXbmKUxÈbl„UU@`V@š²„mlLÞÑ@yU@„¯ôn‚™„W„zšaVlV@XwlKU£‚»—aVaUwm@mwUVUwkƒlVDzLlƒ„KV™m_@ykUmƒ@mU™çkKmxkIU‚Ý„@LUJ@n±„kº‚LXb™¼@mmIXa™@mamnkW™ƒKUƒƒxƒ_U`UklwUw™mUbƒV™²ƒakbƒmkn@`„UmҙšVxUb™I™`UƒaÝÈ'], - 'encodeOffsets': [[ - 106774, - 30342 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5109', - 'properties': { - 'name': '遂宁市', - 'cp': [ - 105.5347, - 30.6683 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÞĖUxlJX„Vb°@„xUÞmbUxƒbXbm¤VX@lk°ln@x„bÈ@lLVlVUXxlJšç²UlwV@@UÈWl™„L„w@w„V˜wXaWm²¹@»lī„¥„wƒ±šI@ƒšV@bl@kLUllUVVn@mmU„wX™ċbVb@VUkbmamšW@kƒa@™™k@ƒlaUa™@¯b@šmmwó@@lkXUa¯°›LU‚am„m@óƒkXUb±bU`kLm¦ƒbnVmbnVmô'], - 'encodeOffsets': [[ - 107595, - 31270 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5103', - 'properties': { - 'name': '自贡市', - 'cp': [ - 104.6667, - 29.2786 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lIÞDŽbVŽš_šJVaUwš™nуV@_lm„nla„bš±„UVašnVxkxVlV_„`„wV„„LšlXnmnbš@WbnJ@nš»WaKl¹²ƒ@mVI@KރVlJnw@aW¯¯¯UmVanL°w@aƒk„mmU—xmƒULWxUUÝKōèU™KUƒƒkĉKƒL@ÆnX@x™‚Wȯ@Û»™nÇÜÝLka@b™KƒnUaVmƒ_ƒxkƒLX¦ƒJl¦ÅlVb°I@bnaUŽmlƒUV„UVƒIUŽ„Kš„„a@nml„„ƒŽnLl„našJUbV@'], - 'encodeOffsets': [[ - 106752, - 30347 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/tai_wan_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [{ - 'type': 'Feature', - 'id': '7100', - 'properties': { - 'name': '台湾', - 'cp': [ - 121.0295, - 23.6082 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@\\sŽ@pS}aekgKSu™SsMß`¡CqZ·be@Q^o@‹gieMp‹‰]}•}Ľc_Kk…{™ù“A¡r‰[uom@эĥJiq©mʼnq¯Bq]ÙYgSåk_gwU­isTE…“‘ĕiqiUEkue_‰OSsZ‹aWKo¡­q“ycY£w}‹ĩ™ĕS§Z©S™N¥SyLÑ¡±Ks^IY‰PdƒY[Uo†Fp}´\\¬\\j]ˆe܍ò‹¤¡–ā a\\bn™U㺹Ìs¼j®[cíȈEŽĝĆ`ļf¶Š®K|VØDdKGpVnU‚FjpH—F`†B’[pMºxÖjbpÎxp€¬‚|ΟÜÒCв®‚ÜAp„ZG~€Šd˜ÞàV¨|¸€`|Œ²tx~\\~|dFf^zG€ĄŚhœdL\\hĸž¼†ŠOªP®lV`p\\]Xpll˜æ¤œCpQ|oF}fMRi†NSon_²qämœM„NM‹\\•'], - 'encodeOffsets': [[ - 124853, - 25650 - ]] - } - }], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/tian_jin_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '120225', - 'properties': { - 'name': '蓟县', - 'cp': [ - 117.4672, - 40.004 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@EUDAEI@WNMNCBFAHFFNACDJDPBD@@GD@DIFFHEFGDBDEQOFG@EI_KG@OcJQM]RMEKBGPG@[LaCIICBWKCEEG@WBQHCDFD@HSLEJI@IHWECFGAAEKCGDBFCBSBIDCKKHEADMJMFABKOKEQAA@IEEG@GIQAEK@OZEESMOL“lu@SLUTYFQCMG@@SQUAYKAACA@IB@BDB@B@DC@@BGAEFAA@BEGKJCC@AGAIHA@@JC@QEIP@@A@EGIDC@O@C@@@@CJCWKABFLBBEBSQGBAAMIEM@AKBcJEN@BEBCFMAEFEF@J@BG@BFABECKFG@AFQ@@F@BEB@@A@@AAAKAE@GFGDECEFEECBKIKDELDFEDYH@EIACDCHKBEB@BAAC@ADBHABKJIAIJICEDGDCD@@A@A@DHCHJHDFEFGBKRKBGIK@GIMHSBCH_BOJECCJCFKKMD@DNJEDEGC@OJCJHRUL@HRJ@H[DCNKDZHCTFDHCFFKR`TANVDFZRDLFARB@HPAPG`ILAR@TERNDFNHDLCLDDCXDYbHF@FEB@LDDVE@JPNfXPINCVDJJD@NJPAJHLXHDNANHhB@DPNLRMTBFRBHHr@`NBFEBOCCBIAQJDHCHLHFA@HSDCRLFTB@HEFLNF@PELBDJALFLTC@EPFLLP@tUHQJDfIHGTB^JTCPDLKAIBATFPADIEGECEMJ@JIAIHGECFEAGDI\\SPOXAFCL@BQTQBBTMZECYGAHA@GJAE@HCAEME@IECFKJADDBABLTHHG@ILEAMNDJCDHEBF@@JNFJELDFKTOT@JETBFFHBHEHKI@@IJEJ@XKEOUMS@AF@CEB'], - 'encodeOffsets': [[ - 120575, - 41009 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120114', - 'properties': { - 'name': '武清区', - 'cp': [ - 117.0621, - 39.4121 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@FWôµ@IFCLIB@EHNBp]AGEAKAEDMGZKFGBGME@ILGP@HEFB@BXMEAHUGC@IHCLOD@X[NWHWPKAEF[@EKIOL@EKGBNMJ@EIEHKBIC@BAKMIACCFQZCF]DB@ERAKADIHGEIBCGIIECFaGLZO@EFCNGAGDGAKL@BMG@IE@ADSDEH[JGC@CGA@BMDeK@EIACFE@@GG@FIAMM@CCGC@EM@ADE@CFMAAGHBDKIEAJG@DOGCDEKAGIS@KFCHKAEHIE]BeKNO[IFIOELC@A]GMBKVYCDDgGAICARc@MW@AQE@DGI@@AQ@@BKBAIQQYEFW@CEADIGGBCEIiMEMF_LGEKMBBDWEBGRC@E_CHYGCH_IAED@FFBQh@FGJaJ}AHRAREF@bE\\C@CT`FHC@\\BBF@BID@HGDDJ@@FAHKBARECKDAZBJIVNHCTA@EREAMLHDAFFBVFFC@RNRETHD@FOJMACH@CAB@P@DF@@FGDWE@FFSIEMKQDYCCHKb^JADOCIDGNDBdBCFJB@EC\\A@BJEA@JAAAD@HHD@LFBCFF@BERDHNhZQHMBGHOACCEBWEGD@PSJKCGEUD@CINLFGHE@AJK@HDABBHTB@F`DBFLBBHEDARCFG@ABJBAPVFE^FBGLGCFG_BMLEXGAAFE@@JNRVJHFALFBEHQJCTbNDHCF@PlFLJSXCHFHfVBTNJ\\BPJXC^FAVNFCHFB@FFH@JF@\\ABCFD\\BDMCAAJKQBGAILOEGHILECQLWFENJHADC@QxNHFJNLDFA@CBA@D˜UÂmR@FBL@BD'], - 'encodeOffsets': [[ - 119959, - 40574 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120115', - 'properties': { - 'name': '宝坻区', - 'cp': [ - 117.4274, - 39.5913 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@TZbB@JHD@DODCLM@AP@LL@BNH@ETFN@`E@DNG@CHLBCJA@AICFKDDBKA@\\N@AFNAGRBFjFFFL@DHLBLFQPcXAZMJ]GAVHAIZJFNE@JpDRRDCLFDGXA@EFF@CFFPDfEBDB@DCHCFCJDJIJBLI@I@CB@@ADBB@FALADGDC@@H@BB@FZGFCCE@@FMLALJDAFFFEFDFCB@@AHCF@L@@BBB@BB@FC@E@@R@BEL@HEFD@G@AH@AIB@@@FEFEBALDDEFAFO^IF@JCBBFPNJJ@D@PRDCEKBAXL@BIFD@T@JE@BHHJORFDI@@B@JGH@@B@BDDLIFFHCD@D@DEE@BAAAB@DAF@B@H@NGLJLMRDNMfGIEPMI@GDAKK@KIDIJ@GE@CFDN@FE@GFEPGV@TCDFKHBBF@RW@DD@@ID@TJFKIKLI@EP@IGBCLAEKLEN@KSHIGYACSD@SEAMBBMGEBMQBCMIGKFB[D@HDLPHDBC@IFITDLG@IIIFGVBNJDLN@VIRI@YIAIHIC@CLKZCBEE@JECEIHEAKGDGECBGEEM@@DA@CCCBBEGA[GEDBBoNAAH]MKiIAWKQoIIPMFQAEEDMH@FMSUYIeF@EK@BIOEKJEBICFKaKPFAFSE@LWCCFMHDDEKESBOGBKIEIODLG@CCDEQCEDWEMDIEIB@EHGEEDAEAa@@HqDEJGF[AECCFa@WCEIKAAEQB@FCAE^YDERDDJBLNABD@AJGLJF@FNIAMLH@FPKLJ@FE\\BFOLGXMXW\\C@KPGD@JHDGVFBWN@AEAGFO@KH@JNFAHEHYLNHFCLBFBBHo^MAFGA@KJED@Jó¶EX'], - 'encodeOffsets': [[ - 119959, - 40574 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120223', - 'properties': { - 'name': '静海县', - 'cp': [ - 116.9824, - 38.8312 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@NGFMDATCNDR@CCbINEHNJA@C\\EEGVE@IhE–[˜w”epc¢·²›^QEKIEKIgiQDkehY£uSDBMkUDOJDHC@GF@CAFBFEN@C‹Q@BeP@@G@HD@@MHQKi@[IGCOCESE@GMA_OcCGDu`aˆ@VZzKDkJBLNXGDqKEWE@cFEFA@ƒISIi@@KMABJGBcMuFEzGVH\\ATSEUBeALCEMG@CEBUHUCGXaBPtUBBFIBFTDFF@DDKBFNGBJPHXDDMDCLJ^mBIHIL@LR\\@LCR[@@z@NFD@LLBNb@RHDBNTPT\\F@BJF@BXCFBHHBDLFB@HODADE@@JHVXCPDHCFTLBBFNCDCCCU@@GAABEHHZHBCAEdEjFDD@GfD@DXFCHF@ERFDLBH@'], - 'encodeOffsets': [[ - 119688, - 40010 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120221', - 'properties': { - 'name': '宁河县', - 'cp': [ - 117.6801, - 39.3853 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@BFLBFJXDb@DEFD\\BHEFIrC@Gb@FBCBFFGH@FJAJFNCXFFCRDCFDDH@CKJPJFALPHTALFCFGCENDDKXF@ETEBO‚bLELJDFALIPFAJL@@FfEZJTVENG@CNFFRBNEJOpJLRBXjJNLG^BBpMAAFC\\HHBAFDADDB@@CN@FFAHFDCHLHFBJGFCFUNKJJTD\\XUXF\\^F@DDDQXXBRLRCBDFEVCDLVDpUl@LEDJHAPRFGL@CETGPBTCDDVI@CFF@GFDCCVGLKEK[Y@MECISG@BKNSCGCKWEAaEBEKNGFSECO@GGM@GYI@DÅCMLHPTF@DJHAVVNKEGDETJ^[TJNNd@NOAMFYJ@@GFANDPEJB^aOadSTQSI@MHBDIEOKCG@EEFCKCqXO@@DMFENCDDHCCGJ]AKFoDaGGHYFDHKJiCMFGC@EQ@AEHGAC@IEAATKOHGIC@IXIFEoƒGE[JCFCDHNmRADFZMF[EEBMO{GU@AOW@@]ZeHBDEHBKEfQkuIWBs‡@EC@d[@[^EDMTKCEEcI@cDAB@FCBCACmOCG{PYHeBgPwPFDDALFFFCHQGSD@BHFAR[TaFYXMASUiGFL@DQNCJI@@D@PLDN`ETEFIGMCGBCE‘~CAIFDPEHGEQPHJADFJGHCJLB'], - 'encodeOffsets': [[ - 120145, - 40295 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120109', - 'properties': { - 'name': '大港区', - 'cp': [ - 117.3875, - 38.757 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@JFFL°_`ONJKDDFIFZN xlb~yFVNRŒrdJGzDPVFBCTNND\\UR@E`F@@Ip@IWGUoawOEE@ÏDgK{İEEMFëC—b…™@—KwOCDHHKBDJCDEEEAGHOABFABMCgDLSQ@CFEB‰MgYIDQINE@AUSwSAdYEHQMEyK[KI@GRMLE@@OqOoBOnpJ@BmEAFHL^FDB[C@BBDVFAHFJENB@sNEjQAMYsUgCSBGDJH@\\LjGR@NC@@G@HO@AfR@DŒM@EFEADBE@@HGDICCPlVANTC¤vgZlfRChjLJ'], - 'encodeOffsets': [[ - 120065, - 39771 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120107', - 'properties': { - 'name': '塘沽区', - 'cp': [ - 117.6801, - 38.9987 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@|ODHnPBDADEDA@CB@ddJFFLDNSFC\\]\\@@cFDˆ@nACOMW@M@ITURBRZNHNWRQšoO•j½f‡cqŸAqeiDÿÍyÓįFL|Ch@ÐFFxPpbHVJXo@@JCTR^BPABQA]^MB@bE@@FQBFVJRH@FXtPNZSBAja@@NƒDTŽLJrQTHFXZFB`'], - 'encodeOffsets': [[ - 120391, - 40118 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120111', - 'properties': { - 'name': '西青区', - 'cp': [ - 117.1829, - 39.0022 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@LHAHRHATh`LHNHDG`HDGZ`D@FQDAHXFACNAFLVRTBFOfHDCVBFQH@HSXHEPFB@LDBF[bDbLFKJBFLADBDjLvCPEI]FGEIGCBEUSjcFiBIVWfaHCjN^HtwBBFGPBJGjFBEGECGDONMFAP]TDHQOWCMGAMHKIJEIGQ]aDlUG]VGEGDC„{PEbBZmE@@GH@BCA@FMQCFMYMJECELCMI_P¯`]R±œ¡¸od“f—x•\\gF@JUFFH[F@DIBGMMFaJDDQ@MCSDCBENMH'], - 'encodeOffsets': [[ - 119688, - 40010 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120113', - 'properties': { - 'name': '北辰区', - 'cp': [ - 117.1761, - 39.2548 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ROHFFGCOJEDB’}DFHANDJHFEFSM_KC@O@CJ@DIRM@CEKKA…L…FKACHoLSJSIBETDJaEIIE]E]K[MYUYQILC@GF[MGNKEK@A@BCWECAIFEFYAGFOMI[OFuDiKACBCEKIAELaKaCE\\CA@KEAFOWGGTG@ERUACDeGEPSAUQKHE`FNjNFJADHHCJFB@DEXZFRRBJLA@AR@@BJ@CHF@BRX@@NQdDBBJhHCCZDLUNA^H@BKDPFEJ\\JMPfL^AJFFGLBDGLET@HJLBCFHDCPH@BIJFCLGABHNBDEF@BCN@@FHDDDN@BNEJH@@HF@DEJB@FfLNC@AHB@DHD\\IFGTCBCF@@JNH@ALKHBHCHBDMFEP@KYbHDEJF'], - 'encodeOffsets': [[ - 120139, - 40273 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120110', - 'properties': { - 'name': '东丽区', - 'cp': [ - 117.4013, - 39.1223 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ZV\\N^L^FJFFJIbSCAFTJTIpKDGLB†E†KLBjHTVNBZWbE\\SBQGE@ATCRHDGEEKECBECxOhOfAZGA_YEEWSGqRKIS„C@Mb@BiTAMYsOEWG@IQEURA@EF@@acUOXQRYCUDCHDTEF[SUEgAYDcVGJM`iAWDWLQRMHUHgDsDBLHJFCFDFGHBFFVEAGHCJN@RJF‡PIhBD\\FENCPWA@LFBAFHBEJUEARCDIAEDQBRNa^'], - 'encodeOffsets': [[ - 120048, - 40134 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120108', - 'properties': { - 'name': '汉沽区', - 'cp': [ - 117.8888, - 39.2191 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@LMEI\\MTABKN@FCDMH@COAcH[AoēA™M¡Wa[Meq™pQRMXMGQYQASV@J@NNXDPmBAtJXlveRLFGACFGAYf@^X@BPV@|HNPFA\\FNEEYBCnQGMDCDE\\IHFp„EFWJ@JJDGHLPBSFB@JBDGHBFR@@FHDNEjDLICGZEHGbHpCLE^BHIDDCGDCFMNE@CP@rWLDEDFFH@'], - 'encodeOffsets': [[ - 120859, - 40235 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120112', - 'properties': { - 'name': '津南区', - 'cp': [ - 117.3958, - 38.9603 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@TLv@CNHFFBHGZFETNPhCVGNGRQXKXCjBN_HIdUZChBVF\\TFECSDGVCZDRQPWdVNA^]RBBAAOQ]DSE@F_Q@[VMCSMADUECOHycI‹qMQEU}zkaŸwENRDENB@ADG@@HF@YnaAOFƒ|CDFHUHH^kVbCR^JHIFLJNGHBDNPXGRSCO^EBMNCPDHHFAFiEIHOAEH'], - 'encodeOffsets': [[ - 120045, - 39982 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120103', - 'properties': { - 'name': '河西区', - 'cp': [ - 117.2365, - 39.0804 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@d@hZNFdcLYXKRCtCMOFSYEGHEAGEDMu@SKAAsx]GMTGt'], - 'encodeOffsets': [[ - 119992, - 40041 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120102', - 'properties': { - 'name': '河东区', - 'cp': [ - 117.2571, - 39.1209 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ZBVFFIGABEEA@KXBDOFM[EACJgˆOIE@QIMGDBHUFEEGAEHECEDGIAKQDWLKZcdQPEP@FOFBJTJ@HNORJf@DBCN'], - 'encodeOffsets': [[ - 120063, - 40098 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120104', - 'properties': { - 'name': '南开区', - 'cp': [ - 117.1527, - 39.1065 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@NMVDCG\\E^B@HlB@YEDS@C…HsNSiMGDebUXAJEjidVTAFHDFJ'], - 'encodeOffsets': [[ - 119940, - 40093 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120105', - 'properties': { - 'name': '河北区', - 'cp': [ - 117.2145, - 39.1615 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@DBXFADB@L@LFHM\\NHED@JKZRb]QMRAFCJBDCBQYADMCAe@QIMP@GSIAIPE@E[EGH@ZEF]^HJAXK@KF'], - 'encodeOffsets': [[ - 119980, - 40125 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120106', - 'properties': { - 'name': '红桥区', - 'cp': [ - 117.1596, - 39.1663 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@J\\PNHEZBFEJELEL@BWGI^]FEkA@G]A[FDHUCMNEHJ^'], - 'encodeOffsets': [[ - 119942, - 40112 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120101', - 'properties': { - 'name': '和平区', - 'cp': [ - 117.2008, - 39.1189 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@D†T@FCHG\\FFOROMEgYc@'], - 'encodeOffsets': [[ - 119992, - 40041 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/world_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'offset': { - 'x': 170, - 'y': 90 - }, - 'features': [ - { - 'type': 'Feature', - 'id': 'AFG', - 'properties': { 'name': 'Afghanistan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ࡪ͇وŐǬϠڐŶӂʮǚڦ۾njƀ̚ІɣʪҴMوǯʲĹ،˒˰Nj˖ϪԈiżŬĘͺβ̈Ҕȏĝʱʪ¡ý۷ͪ˟̊ǰώĊԼϖׂ×ࢀAƬʋӧĥяƹ७ĭࣗǭӫλȤΣĪллΛ–͑ɳ̡ߛ€ͦ։՗ɅΥԕ²ԋ͡ɿ̳þٝŋğɻسDҵӇ‡܍થΓבôǝȁԇņ࠿űටіހހåզُƚßՔ˟ڢάҢιŮɲؒ΂ਸ'], - 'encodeOffsets': [[ - 62680, - 36506 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'AGO', - 'properties': { 'name': 'Angola' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ȸصʌԋȘ˕͐ѯ֊æˤŠҬşŲɀɂӨԶ®ƤіHñ̡৴RfՉǞ͕ūԑÖԫ˪̷­ৃȼüκsԴŴϦ¹ĘʹĩСƨϿů̿î́ყZᦵ֤ۋպԽ໳΁᎝Š׋Ж₭—ŵÏԃϞկ~ԉƝЙDžÿՈŜ݊̂ޒªΰ˚ݶȨΆӘռːϐĘج«ӊʣ̜ɡԚȵԎ®Ǩʶͬʭ߼ǣ֚сՐĄǎΌŔʒg̎ĸៜ['], - ['@@ɉėɣلͼδʪƘ̀˽̩ǯƍɍλ'] - ], - 'encodeOffsets': [ - [[ - 16719, - -6018 - ]], - [[ - 12736, - -5820 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'ALB', - 'properties': { 'name': 'Albania' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ń˷ŢέΒȳiə˗ŧ»˙ϷСƛÐgȂү˰ñАîֶŖʼƗƂÉˌθаÂƿɨôǴɥȪďȨ̂'], - 'encodeOffsets': [[ - 21085, - 42860 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ARE', - 'properties': { 'name': 'United Arab Emirates' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ƭ¤ŒɱڂƂ۞uԖ{ֺ֪ظՠՎԮdž˹ŖڑѕGçճƪŝϝǑE΅ʓΏuͷǝDZᡋъ͏࡚Ț'], - 'encodeOffsets': [[ - 52818, - 24828 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ARG', - 'properties': { 'name': 'Argentina' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ߗ§ѓ̔ԑx࣑@Aሞ͒ϵрؿનԋ୲ȿϙп'], - ['@@Ӵ؇͠ڰॠ“ƊǷ໶ോۊŷਆاࡾ͡Ŧχࠡ౧ࡒɭ़ŷڔƈނ٢ƎݐжLjфӝiڣۻҩ֟΁ॅࠃ૭ଧȽڥɣࡹT࠷ǽȇÝիËѫ੨ܙŗ׃Հν§Ч߯ઁఛ҉။ǩउĎǰԅǣػƺщԋ̏ࡱř̪͕߱ɗŜ࠳֨ʧҠˆʢѧޛʻڭԹūࡋȣ҇ߏEڃљʋؿؙࠞߦǝ˿ݭ঳Ӄձটލͧ΅Ͽ˔ࢍ֔ӡΟ¨ީƀ᎓ŒΑӪhؾ֓Ą̃̏óࢺ٤φˈՒĭьѾܔ̬૘ěӲξDŽę̈́ϵǚˢΜϛ͈ȝॺ͸Ǣƙ਀ȠࡲɤݢԊ̨ʭࠐEޚَոo۰ӒࠎDޜɓƶϭฐԬࡺÿࠀ̜ބռ߂צԺʥ͢Ǭ˔ඔࣶд̀ࢎĹɂ۬ݺશȱ'] - ], - 'encodeOffsets': [ - [[ - -67072, - -56524 - ]], - [[ - -66524, - -22605 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'ARM', - 'properties': { 'name': 'Armenia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@୞ƀǨə͌ƣǛɁ҄˽ʁˋΦɫϘƏl׋̣}΃ӢHżχCʝɤǩuͧʖرȼĄФƛ̒'], - 'encodeOffsets': [[ - 44629, - 42079 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ATF', - 'properties': { 'name': 'French Southern and Antarctic Lands' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ը˃ߐĿˆDžɽϣಇÃq҂ŮΎÊǢ'], - 'encodeOffsets': [[ - 70590, - -49792 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'AUS', - 'properties': { 'name': 'Australia' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ߺ́ҜŘپNJԎÉÐঽ˽́ēگ̉ɰ׍בǧ®ԫ€ԭܘŗֈӝܸtϬռõ'], - ['@@̢ڇբ̈́˦ΡЖ͟đϋǴܛŸнɄĹɬܕąѥ˖֭࣬ѭצЋ֞λŋȯӔՃࣧ͜ͲȂ;ηȴźƢࢹ׬ԩϸ͋ڀڹʀڭtӏËԳА܋µݓơϵɩݡjӕǕ׻χއثЭ̫ٱ˫гʝܧ͕нɅػʼnׁªˇӕ̇व‰ޡ·ϫ͙ԕέ۟ψԥƪżѬҝǃ݁؉ܩɪӉƄӑÔ߿ʐիԮƻْțьЭ;߱ĸˢРȯزЧ׉ݝƷѮҬŶӞ͘ЬãجہܑԿ˽͏ڛٽΊ~ҀԿ،ѹ̀ǂȘઃԚןz߯Цຓāછ̝ख़˫ߡÈࢻљܯȗljѱ̳Ϳ܉qՅõݑƶ׿ğֽԁ҃ʕœуʁЗˋؕ֛Bࢽ՜ҋDŽlӖкŘƚȒ‡̠ĺאģӼѻࡖƏӒ˜ӎͭնsʚϋͰĽڄӓڔřΪτε˳ެиʑʞ͗aјеڎă˄țʦĠӠǢȸŘрęӮΎ؀Úٕ΢׀ۀˬЦΪٜ̰ϤàɴĻڎ̺ԚĤŶȀɞüҬoࢨʖҚώɊ҆ӲѐœͲvҘט܎ΠܩΦǚ̗Ј˂ТψǻĸٖҠаȮͨцƜ`ɼτĭdɂτŦОŔبϫҲӽՂMՖÿDZҦДڪϜɘſȾκӒԘ̒јıۺǂeі؛ˢ҂Ū֎ȻҀ·ۼɋʈĐԶʵӬʊ͂ñȠNJϬеɡ͉҇ͻ˿ƒĮͱʙп̗ЭÔʁڜҫ٨ˏѠ́؈ӻʂBѰɍŶʷߤ˵ֈ˼ǐҊǠόľҤʰڞŝОÔʔīӔŌنLjǠŽˬȮѾdžҦtʈ̸̾ʂЩÎՃȾķ˜Λ̨ёÚӇ‡̥'] - ], - 'encodeOffsets': [ - [[ - 148888, - -41771 - ]], - [[ - 147008, - -14093 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'AUT', - 'properties': { 'name': 'Austria' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Û΃ӁCǎǻ˧էLJƗܽsщȏۛÞயɐȉ̊ࠧƣĭDžԗŢѕxϝƶźȴƬʪ²ьɹŤɜݎ•׸ƮЖ}ˀǣþƜšո̠ń̒ϰز˓ӀΆ̐ÚٶʱЂªϰǁãŃČ̅'], - 'encodeOffsets': [[ - 17388, - 49279 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'AZE', - 'properties': { 'name': 'Azerbaijan' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ʞɣψDGŻ΄ӡֽŒщϰƃ͆Ǫv'], - ['@@ϊËƞɈԈͺѴѵђ׭ϺŸʸɧۗãƣٵƟ̭̍ȝvзȽ¥ԻѲ̂дʝʚ̿×যإk׌ϗƐΥɬʂˌ҃˾ǜɂ͋ƤǧɚȶƎضʍҐ¹ŘIJбҔɔŚʀ…׀ԙ'] - ], - 'encodeOffsets': [ - [[ - 46083, - 40694 - ]], - [[ - 48511, - 42210 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'BDI', - 'properties': { 'name': 'Burundi' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Á০ɃϢԜßʲӎҀŸͧǸȏT˗ȹǭ͛ѫ̧̥΍Ÿ'], - 'encodeOffsets': [[ - 30045, - -4607 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BEL', - 'properties': { 'name': 'Belgium' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@؜áުǪՐοҦȝħ֧ɕĝһܿϦћßדІϷͶϷ`ũ̒ڪǔ'], - 'encodeOffsets': [[ - 3395, - 52579 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BEN', - 'properties': { 'name': 'Benin' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ۛįȹ׆žኞǛǦЮ̇̌ʱʞņѶ̀ĨǠξЪĀȀʤˮʘ̠F٘ә˩ȎӽǓͷĘɧСԳʵʳǁՉt՗µണ'], - 'encodeOffsets': [[ - 2757, - 6410 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BFA', - 'properties': { 'name': 'Burkina Faso' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ֹɐϽ‹̍Ƀϗǰƥ˦ϙǾÅӦɮΤo˴ښۢŬּɲȴОœΚǢŘɎٴϖdžˀ޼ΒҦŢɀLJՠJáСŔϣӀչ€НॺȏmֻǿʣЩÿǟν˿ħ݁lϳâ˓ƉωÖร¡qӉŘم'], - 'encodeOffsets': [[ - -2895, - 9874 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BGD', - 'properties': { 'name': 'Bangladesh' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@i׽̉ŶÆگʉѬµєDžКΕӨޟ’ü΋˃ҳΧǠũƵʃĠ͗øŽۖ̅لƜԒԫɤȆ̪Հ̼؅Ѽ֮̔ږεВ£ô׏ߞřު^Ӟƛϯ܅ϕµʷӍҢѥƎ՞ɶFѶ೯'], - 'encodeOffsets': [[ - 94897, - 22571 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BGR', - 'properties': { 'name': 'Bulgaria' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ʎΉ͚Ö٦ſ௾«иɌবȜ̩ؒӴĕѥΏ̫׹˔ӏܣŒࡥ˃Uлޅÿס̊ڧɱة|Ñ֊сːƒŢĝĴƘˌ͌ˀСδ÷̬ȸȐ'], - 'encodeOffsets': [[ - 23201, - 45297 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BHS', - 'properties': { 'name': 'The Bahamas' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ȵ£ɇӜ̿ʐǾՔʨ‘ۣ̎Jӥ'], - ['@@ࣷƅÏ̴Ђäֈ{~ɕ'], - ['@@ƟׯƷņ`ѮϓͪCĪڐϗ'] - ], - 'encodeOffsets': [ - [[ - -79395, - 24330 - ]], - [[ - -79687, - 27218 - ]], - [[ - -78848, - 27229 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'BIH', - 'properties': { 'name': 'Bosnia and Herzegovina' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̦FȿσМ͓ūЃȡ™ƽû˙țūҥݓ͈ͅΘ͋Ȅϭ̾ǻʺЩϾǬΒ̞ȕǼǨϾnܠƓ׈\\Ϟȅ'], - 'encodeOffsets': [[ - 19462, - 45937 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BLR', - 'properties': { 'name': 'Belarus' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@߼Mࣰ̈́ȚӄېːÿϔԜƚ͖ࣘࢮɁŢȻѲĴࠒȧĊЁǷɧՄս΂Ƴ»Ʊ֦Ʃʎɡ͝ǿڳˆljÿȠ˧ȸ՝ܝ¹ʵȁÃхͭĆݷ¡əȞ̿ƥ́ŨڍjफȬࡕàٱmҡɩГeϐʷϴԌǢLͰɷ͌™ϊ'], - 'encodeOffsets': [[ - 24048, - 55207 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BLZ', - 'properties': { 'name': 'Belize' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@OŮĸžƴı̞ԔDŽZHūDŽGaɭƋεôŻĕ̝ÀăīщǓɟƱǓ̅ʣ@àॆPژ'], - 'encodeOffsets': [[ - -91282, - 18236 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BMU', - 'properties': { 'name': 'Bermuda' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@OEMA]NOGNG\\Q^McMOI_OK@CQSGa@WNLVWHFLJXVFGJ`ZRTDLeeWKIHGIK@@[MQNi`]VDTBHCJAPBJLVFjT^LV\\RJZRn^RH`TfJjZHHOTTFJP_NOX[EYQQKMEJOLANJH@HQHAARF@ZEPS[U_IcRQXE@EEKKOCGGCQCOGISKYGUC'], - 'encodeOffsets': [[ - -66334, - 33083 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BOL', - 'properties': { 'name': 'Bolivia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@य़”͟گӳ؈વȲ۫ݹ؅ŗ͡୆ҋऺˆ߾ѳ΢ŏ؆ЫֲՌ࣢αۺȖ˰ƭ̶͠рh܎¤נǸ˶ܩഠزíѠnȈʪ݀;Ѷ͂સƚęؽļ͓ãࣰ֛ݫऴƑ̻ͦ֨ǕΐʑՈTӦʟšӟǐʕZγʓa͒এྖ“ūӟĜͧҞɽȤԹƫڋɯρĄӏʿǥaʶ޳јޭ^ัʓЕ݋sҋͥ৕ƉǸ'], - 'encodeOffsets': [[ - -64354, - -22563 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BRA', - 'properties': { 'name': 'Brazil' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@૮ନॆࠄ֠΂ۼҪjڤуӞеLJǒӜŖӼBҦ̡ƴ̿Ƌ̻œį͔ýޔƿʤ֥ɪ΃ǏࢱLjÈଜʝҴˀǦăӐɰςƬڌȣԺҝɾěͨŬӠྕ”͑ঐʔbYδǏʖ™ӠӥʠՇSΏʒ֧ǖ̼ͥळƒ࣯ݬä֜Ļ͔Ěؾષƙѵ́ܿͽȇʩџmرîӃƟϡĪÈ౨ۏӷݏv҄ͅ֏¶DzΰұԞΓݴɜƶA΢ԖʎċҔɊ̈Ôϼ०ֲێNJŔŴݴŸϚᘰpθſӔύ̬LؐӀƒǚē†͐ӯĔYՀ࿖k˦̂ɸˉǐӷǂļҨѻٸÆnjʲشȞΊƐĮΤ׸ʆ¯Ǯ܅ðśՊ’֞ϓɒǀþجŅڜȿʐȤ؀žल̮͎̾ŏʂѪšȜȗʼnσ̀ŵȖϷɷ̏ƅ܏ɌыÔϳԬϿЮ¥Ģǒˆ˜ϠƦ˚ɢҬíȲŠҚçøǢƗǘĎʐͺõЈĒӔDZξǥʺɪȊ•ŘɿДÒ͒͊ʴؤӼޒ˺¢ȺҫҼ฽҈Ƒxׅمەʾʩ๤ƁŠࡃٔր੐̟ඊԡШӱƏҫ঎ʶ࿐ѹఴŽఔ۝੸व٪ʏܖ‘̦˅˸੭Ɣԗͯ൹ёշஅୡՙोثܯȿgɻءÒ༽ɹಓęօˇͧƫ૱࡛઱ƛࢁڹηȟԋ࣯Fೕ͓סύवʗ঩ڝ܅࠯ũطƔҫƽࡓȏЧחҥट๕݉ڗ֯Ͻϥߛ։ӑɷӈψЊӟֲڇҬࡹՠ̹{ࡅٰձę'], - 'encodeOffsets': [[ - -59008, - -30941 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BRN', - 'properties': { 'name': 'Brunei' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ͬ̾܎Ң›Я·՛Б€ǭ˹ϥѦ'], - 'encodeOffsets': [[ - 116945, - 4635 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BTN', - 'properties': { 'name': 'Bhutan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@΂ˍÏԩۇ{ۿÈՇſޅ͊kǚ֌زҒɈ׸șѺqπɥ'], - 'encodeOffsets': [[ - 93898, - 28439 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BWA', - 'properties': { 'name': 'Botswana' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ǜƭ˄ӡॎइήĝD̑ʚՑٰŹ՚ϝ஑أݭع˩֓ʧ́ҙãƧГďʽ՝țہ¤БɾΟĸХșȵГЉʧпϑ׻đȇ̐üԠӽߚɧŲAរࠤˆ|Ჾش„ಖ͎̎΍՜ͤʮDӂȎưÙ͔ڣ'], - 'encodeOffsets': [[ - 26265, - -18980 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CAF', - 'properties': { 'name': 'Central African Republic' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ۜÚƺɎƔgȾȏ੔͐Τ͠Ѭ̌ĉ̐ʂüߺ½߆ϴ؊ࣺю;ՐƜĪΫӜԿF΃ƋΓÄʻ̆ʍٖοҢͻT˗֠ѫΖεɆԋغͩƊˉˣęաpكĘ̹ïųȱ˕}ͧDzधнϥĎŗÝʥԕطǐؙĊ՗̴ۓ˸҉˓͛яùדգ²֩Ƙԅѻѯޱėʐ›Ϧϧ˔̳Ѡï̠ЇѮæʢċΞÞٴȬƴц࡜'], - 'encodeOffsets': [[ - 15647, - 7601 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CAN', - 'properties': { 'name': 'Canada' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@؎œުxЯ΅̵Å੥Φȿˬ͆ʸ̎С'], - ['@@Хcઝ˂ޯІ̄î૆Ɂ࡮Η|Ʒ'], - ['@@хŝൡϢʥ̘ݩ̌Ưʈࡻư͕ҜðȚࢨǿԨŵ߄ė˺̃дЋ࠼΍Όҩ'], - ['@@։ܿո˴֠ǵ̏̉ݚɱϰȴ࠼ʵʹ؛טƞņѿʼԷΝ݉ϝ‹փǂǾیɻńইܯԅ†צЂ߫Ȳࣙ¹࿅~ŹʠԼ̐λɬ۸Ԓࢄ೾Զӎܲ̂϶™Njɫ҅Չ'], - ['@@@@@@@@߰äʥ॓ܶگͯDԑϪ̵ϮчʾƻτºˎЂŋ'], - ['@@͡ѳχîəʢ Î͖ʦΆkɈǣ'], - ['@@ঝҧץnǿɪزϲ଼SiǍ'], - ['@@ƼυјżӨɗं˽४ʽöЍؤÞ׶˥ݙ˃ಳȬҽϚ࠭ҁ஡ѣ˿Ӯଗăܴдņڌ˺ޔ؈å'], - ['@@ष¥ȿЪΦҼޖŜپɷXέħřձʛ'], - ['@@Է̍ଉʬۃğଫϘ݊ʼטζࢼʃԎƯʦDžԠ͍'], - ['@@G࡭૰ڄ৐եʡح߾֥࢚؈ؖܨ°ईஞÝఔūૼй¼зس҃פ҇ŃУ࿩חୡŻࢃʨʣуߵ۽ʓοই֩ளÇڏΡÇձ঍Ŀਉڻ࣭ु͙ڏ±উంƕϜ޻ϼّ୲ǔ༞εࡀ͋׺Ѕ੆ɳࢸΟ൶µࣴąƍܫʼࡋ،ळనߗ٨˚ҔࡺѭೢףѶഎЀ॒לҮהç֭֘܌৷لলࢤνݾ˫ಾגȘ෸ɫࡸć۠ɚ޴˵ਚӣʮ͙ຄÛ}۷˪ਜ਼ގſ،ӵ௖Ұߦऔ֌ϸٺݣબੳघ৙͵Յ૤Ӂݰӓംɏբˍͬ܃ټŏͶͅÖऻ؍́׽̏൯̗੏ۑ෇ƋᅛǮుPࢇÍ۱׽ੳω௉૗ॵޡ܌Ɛഘૄᄈ۪సČݔЫߍ֟ˊࣟ˜هતп൸ŨࡆीÎ؍ժ̥ਣսᇷԁ࠯ͽय؁ٓ֍܆ฤ۞഍ƒणĹջӆBନύʐ֛ƛ˧ɚٙىʱٹ̕ϡΥŽˏ¥čȹ໽A౥MϛƷࢵ؃Ŀßˍ͝ޗBࠛGϛƅƊǑøʯeďષлࡽſউ҅Ɂ@˷ƂĥŦnĔȂ̎ЂҦʘӺǙܴǵނ࢕ЂľƬūĺɳ@ǛƆ¥ȤǍēɥ€¾ĊȡĊćɚٵːڹ˪ࠑ͘߁̨ݧʃ˝Sਕɔڻʼnࠁʺ࡫Ɔו¾ʻƜƫҤ˳IE͓჏BᮝA᭯@ᡃ@ᠿ@៙@ᢡ@ࠛ@᠁@ᛷ@őF྽ࠜ׵δຽΐҳݖŤԨ੻ΨƧڴ৭؎iѠҲКwՌෙ՘࡭ॠՁ׾ޑϚ֣ΈѿѢࡇ˕ࠇҹݛւדπࠋɸࠟ|JⷎNᷲ༬ȭ೘Й࢘û݆ΖৰˀఢĹ఼τ൘Ⱦ־ΑظȠȊЄ׈ęෆݫ૦֬ŖّਔƐ͆ʖৰ·౼Λዸ̭ୄƛࠖÄଊэ஁зຶǷᗘIJܒƦࣆԋࣴьࡩΦժ˼৾žڦĎڴȩࡊҗरä๢ϛಬƄ௬oĭԺݞƦದ˵KߑՖڠڰuϞࡊ࣑԰কͺäघশ؎ૌƇࡘχଞॅݗЭ༠ǝ'], - ['@@нϿሎʬୠщॊіސ˟یࠛфΒ׭ࡰ݊Ŭ࠲Ƈश͹ՆࠉʼץථеະЉĝσൡã՚͓˱ູ̯Ƃฃɪঋ»ཅ˷ᒃű๻āҕІଫɮݙģਛږ֔ĚಘƜஈ›રƦྷȞᅗã஗jѷ̴ዎͲಗ[ืɚ۶ـגͮᖬԠ࡬Nj'], - ['@@݉ևಹך˸Ş૸’ٔȁ'], - ['@@öɵࢿ|ࣟjࣿőʑ¼ऍѾ˜̠ИÈነěชң'], - ['@@ڎԽޤڴᒆΈ෺ࢅůջဒʒߒͮሀыୄЏŊν༚Ȑ࢘՗᎐ܸͩ͹ߐ޻໯ϹጘչೲȁீޙೖÇʽכ้ঋਗά೓߲ઙĿŁӕࢪӥଜϯΌɟմࠩ́׿੕ɪᑏڨஎܣ࢔ԕƎ̉ᗱͲᅩӤ৳Ц̌ʂయќ௥Т`ʑᝡƅ܃˾ֆؤ཈dႸņ˫̜̊оચࠊɳϊ͕˾౿Рၳ˺՞ɆࢷԺ݋´ڏ˸҇ʛ຿ŅᵝȈᄫʚഹŴۥ̐࢞Ϧ஝Hˉ࡚٦ݨࡺ΄ᓪɢأի'], - ['@@৊ǯຄńɖʑ޷Е౜αƱݳ൝͗߳ê׉͎ᐡٮjˎ႖ĽएռসР'], - ['@@࣓عय़ŒԽ݆`кѮΨ࠰ɮც‡ྈȱళݟ৉Ǎ'], - ['@@ᕍЙѷςኹѺήΤ׌ؘܰւࠑԦᭊƀ஬ǧᒰ±ࠄʑࣖΝ੍ɃᏝןਫי@ν'], - ['@@ҙ͙௝Øৱɖ҂Ϛீɨܼ̬̍ˇ'], - ['@@ٞϵ€љϣس൱đࣗƈjӬ൝ÝÁٮࣜౌ˺ஂµÜŎ'], - ['@@̙͢ݠƘࢢ™ƪЩԝЋ᭗Žᑯη౩mŅ˜პϊ④ij୯Ʈପࠐ߈ɾᛄ˳๶ӻฺÛறߨޔ̪ࢄĭ˲Џ'], - ['@@ढ˓ကFܨˡȑ́८ȍՔȧଊ™௬ë೸ǼႊðീÏ࣒ͅȊ΍ԽɟభǷ੽ĸᜱŻႫcഫļᖁ˔̃ҦĹжࡇξ჋ĺঅʼ͂ΈႾÁ'], - ['@@ŗ٣٩̇޹£༝Ϋ഍ŹଗǼ@@ුؼႮծಆ[ସŬ'], - ['@@ϣy༽Âɡɼၜ]מƻĵĩ'], - ['@@༩ʋఝ˔ڼˎ௮Đஈſ˩ʥ'], - ['@@৽ǏඉBbŤࡴʦҌદǝ'], - ['@@కǥۃȚέ͂áΎજ‘ӪÅ৐̇ɫ̣'], - ['@@͜Ε൏Ĥ൩˘ሏŒߺʠ৫ȮÕ͐࿶ŕᗢ̫ٞЍ'], - ['@@০˕ଽʟ༇ك๥Óდņࣗ΄^̦ڔɢ໡Oए˨ՑϠ׌ώ׊ʲࡴÎοȖዜ¨੶҅මǵ൞ǃڒև'], - ['@@ᖢßᅮŅ໤ɫ™ɡᏅη᎙ǟݻȉᆬJጡԙേʃ෯ۇႿƓՙǡᡷěୈĿׇƭ۞бߙ˽ಛʃЋ͡୫ʣŞȏ෬lȳᖟԋᔧɴឿŻధĸཟªĿЖ༊Ȑб؆ԢÐᖤγ଩բഹLjڼ͘๰Ȩʄ̊஋͠ΥѠᘞ—ڒĝ಼̪ቃĬ᰽Á๣˸۩ͼগʘȁ˺దLjঘ‚࿲ƌం̺ਬ©ࣤɽٔҒૐƈບĢᢲ–Ҁĝ᝚ƚᆔÁᆒÁ'] - ], - 'encodeOffsets': [ - [[ - -65192, - 47668 - ]], - [[ - -63289, - 50284 - ]], - [[ - -126474, - 49675 - ]], - [[ - -57481, - 51904 - ]], - [[ - -135895, - 55337 - ]], - [[ - -81168, - 63651 - ]], - [[ - -83863, - 64216 - ]], - [[ - -87205, - 67234 - ]], - [[ - -77686, - 68761 - ]], - [[ - -97943, - 70767 - ]], - [[ - -92720, - 71166 - ]], - [[ - -116907, - 74877 - ]], - [[ - -107008, - 75183 - ]], - [[ - -78172, - 74858 - ]], - [[ - -88639, - 74914 - ]], - [[ - -102764, - 75617 - ]], - [[ - -95433, - 74519 - ]], - [[ - -123351, - 73097 - ]], - [[ - -95859, - 76780 - ]], - [[ - -100864, - 78562 - ]], - [[ - -110808, - 78031 - ]], - [[ - -96956, - 78949 - ]], - [[ - -118987, - 79509 - ]], - [[ - -96092, - 79381 - ]], - [[ - -112831, - 79562 - ]], - [[ - -112295, - 80489 - ]], - [[ - -98130, - 79931 - ]], - [[ - -102461, - 80205 - ]], - [[ - -89108, - 81572 - ]], - [[ - -70144, - 85101 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'CHE', - 'properties': { 'name': 'Switzerland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƫŹȳϞƵіwá΅χƙةŀǻ͹ЏơƄһ˵Л¡αǶ˽ςБſ^ϠؚҾɈϤûɲƞ܎MǦǼ࣒ʱ'], - 'encodeOffsets': [[ - 9825, - 48666 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CHL', - 'properties': { 'name': 'Chile' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Bም࣒@Ԓw˧ͻܛʻЭ‚ӻä؏ʨ࢟ŨੑҸ࡫Ҏୃशۘǭ୼֗૜̟ѢϬ˘ֺޠΎװı'], - ['@@͢୅؆ŘĺɁ˿ࢍࣵг€ඓǫ˓ʦ͡ץԹջ߁̛ރĀ߿ԫࡹϮฏɔƵCޛӑࠍpۯٍշFޙʮࠏԉ̧ɣݡȟࡱƚ৿ͷǡȞॹϜ͇ˡΛ϶ǙĚ̓νǃĜӱ̫૗ѽܓĮыˇՑ٣υôࢹ̧̐֔ÄgؽΒө᎔őުſݝPЙȷݷ̣Ɖ޹Σoॅ˚१ג@@ਲ਼ӔˁՒʄӰх֒Ņ෤Φ߰ࢴٰౣʔߞݒ˸ඊत̏Ѯგ֝ɠʿ਻ՉŠ˂ல˺༒ϮָʍࠎéूΠ„Ԩപ׈എΤబȗ఼ʤۚĵਞӮਆưྺ˒ნˀሤÕ൘ǩ஄ќɌɦњЬֱŐ؅ѴΡ˅߽Ҍह'] - ], - 'encodeOffsets': [ - [[ - -70281, - -53899 - ]], - [[ - -69857, - -22010 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'CHN', - 'properties': { 'name': 'China' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - [ - '@@ԑഓΫۏѷ܂ĩخӶࠜڦَϨʡƣԓ', - '@@ܩЗۏʺyܢаϠࣾɾӚoȊ͍σσșӟ' - ], - ['@@ฬˍ঺ׯͼ߃౨Cܰͨ൸ʜѳݱ͙̭˽ः֡ࠇ৵ƪܝ̑ɜܙť঳ѕwLяթӺͯһಙαƀѹܩŒЍ˂ֽ׭ऑҋۃա୭ʑأϽࣝɭ҂ϴǭ͞ږ֠ѹѲܷ̓ॉ׏ԫթ࠙¡ѓϻѸ֩یƏ„ϕڔʕस׶ݚ͝լuƌѱஓɻϻҏࠇућיࣜҥͦࠝԞޓ֮٥_دՅɯȪ҃ӶʻŻۃɇڗҷ÷ؗࣧڹિޭোିޡୟۻृĩԣύ̃˘Ӈй୭сࢵŹ˻ࢱҭ·ə؎Ȧ͘ૻːЇƍࡍɔЏ΀ƄӜޏƶЙܑ̀҃ࠇīڡJ҉ȳѥūŶ॥҃x÷Ȣ}Ύ؝ʓεƸر͂ʔۤՏǎȧޜࢱƓĴাߔۮ”ۚ{٠νȨ˭ӶӭÙࣟŲ˴ΜϿԺ׳Ν۵ȸॷ՗އسڳĿοɦѹr׷Țґɇ֋رëڌԟǭওĈोȖڿτٵǔ˯ЖҽŦࡓոکʴΑȩଢ଼טࠛՒɽऐ׾ő‚іͭјĐۆࣙঠ൧ͼʝ٦ةϼƫʌųӎˆ͜ԛȔ˟ďɇިʈȔśȠߤЈ׈ǐࢸő͆՜ંIJͮ̚೜ҔŠȐãӐּɔݱฦဘͲјȈ؆ຒဠˡҲϞ¢ࡆۦĀٖ֔͢èɚו۸ѽப̿׆ڱ͕ঙ̢ηূƝଆŝ৪ԻԲġϤޟӲӿऒnჄȉ૤Ŝࠦůఔԛ৮BόʽঐҌബ̈ాŒঘ̒׾҈ך˰Ƌˤˍ͔ѴըӀùࡺǝ࠸Ѿ౲͚؞֊נʆ௠ŐڐĥĠ̘ݿזګː٥̳ࠣžӇŃɏΆר࠾Цو৚̓ஆՎQτݸࢾҲːWҪңȦۜмਰƲ૜vసʡ݈̱԰ࡏ̀α̊ԩ̶ࠕ'] - ], - 'encodeOffsets': [ - [ - [ - 124701, - 24980 - ], - [ - 112988, - 19127 - ] - ], - [[ - 130722, - 50955 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'CIV', - 'properties': { 'name': 'Ivory Coast' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ϣUוǒ՟Wহƥ׍ʍ̯ࠫNjvÞۖĄŀ}ͨΣΚˉÈʕɲǾώčО ʔƄB¸ξÝnjĄŜ̸ĶȹڨȗΎæ˸ǘÞŊúɸųٮOƸʖƢgʎĦžΫȞłΌŰϚǽƦ˥Ϙǯ̎ɄϾŒֺɏɠ஡Ο۷ɕेθܣ›ͧ'], - 'encodeOffsets': [[ - -2924, - 5115 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CMR', - 'properties': { 'name': 'Cameroon' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ľ°ӻŇԝŒЋÅ൅nŬڒ͟֊ϧƚǟϖɋŦXɶɎתЎ߸ʒRԄӮ͈bҾΉ־˲ĀΔȌͺžь҆ΊǞךDzȊŢѨɜ՚۾ٲ¬˨ĠƲͫͰ‚ˌʂ¶ͮ՟Ê֏‹֏ҜޅҷTʁÏϥČǻЅӸөμƛŠΏˆ׃ſɩх࡛ȫƳÝٳČΝåʡЈѭð̴̟џϨ˓œϥĘʏÓґڛȤڷɜ੗'], - 'encodeOffsets': [[ - 13390, - 2322 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'COD', - 'properties': { 'name': 'Democratic Republic of the Congo' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@»ঙͶŕˑ̗͓ɟ͍ѫǯϷ±ګț͍Oهʍɹ‹ԃŗÝýҟɄϡÂ৥ưޝċѧǘӣӤҹҒ੕ͥĒ૿ƙɣĵʇՙȊχƫষĻࡇɨƫט͝ɲƴìٟࣟR·Ҧ̳ΨٟŠȋѰԣ˅ڧŞ˫ϢՕüϽqµʾ́rϥºԳųιtȻû®ৄ˩̸ÕԬŬԒǝ͖eՊ৳Qò̢ѕG­ƣԵɁӧűȿҫŠˣş։å͏Ѱȗ˖ʋԌȷض៛\\̍ķʑh΋œşʼɊʀμƎɎ̪ǰɚđ˼͐ҜSÄʃ̼ƩӶՄӨШɆːƒ۔θࠆϬўքМĪˌt̰Ǝ̆«ӊŀݖǐԾʦ҈¸Ԕúה͜ѐҊ˔۔˷՘ؚ̳ĉظǏʦԖŘÞϦčनоͨDZ˖~ŴȲ̺ðلėբoˤĚԘۙϘķɤƖϲÅҶDzȦΫ݊֏'], - 'encodeOffsets': [[ - 31574, - 3594 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'COG', - 'properties': { 'name': 'Republic of the Congo' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̿˾ʩƗͻγۏࢸٖҪ̓֌˾ɂ֦ĺäό҆Зݐ•ʴЈł֒ĝڀЉӺζ঄ȽǘسçɻѢÔξ੘ڸɛڜȣÔҒѰ޲ԆѼ֪Ɨդ±·ԓʥ҇ǏԽĿݕ¬Ӊƍ̅s̯ĩˋփЛϫѝηࠅ„ۓɅˏӧЧӵՃ̻ƪÃʄқT˻͏əĒ'], - 'encodeOffsets': [[ - 13308, - -4895 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'COL', - 'properties': { 'name': 'Colombia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ΫȤЭ˨ʅƅ܉Ŝȱΰƽ_࠿Ӓŕʺ̼ڛтȢ̦иÊΞՆ͐Ѵ̳ȦDŽӦȏސǸɚƃ܄ͻ҄ņТ˔ÑǂʠțӶĺŬѢـהΌĚT˦ƺ܂ӖϸՊfäǪڂéڌъ͞ȊОК̖»ɚɛǍ˱գƕɇп͗ʋʓ̷Ĺ׵ɷӭѢÇņϭȄȁâ͹ij̵ˆǫȸéȨ̉ઊĄӦŃעܡͼĚ؂­ӐĪ̔ƟƱҍȇ˯ß׻ǜ֑ʆʟ†ȉэл̨ȃɠ̋ʰ࠹ǁĻǏӸɷˊ˥́࿕lZԿӰē…͏ǙĔҿƑK؏ώ̫ƀӓoηϙᘯп҂ʣpժࡤٟϾԍị̈ƤҧɝصŀӵࢤϳɐˍІ֑Њɡā'], - 'encodeOffsets': [[ - -77182, - -155 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CRI', - 'properties': { 'name': 'Costa Rica' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@җȆǟǮĬƤ‰ȄɷȪͥǔ́ņÅʖəƮÄʑǗȩȓɸˑĊŗǞLʮŎˆʁŠȖnjŴňֆɝȖŊˊéƔǥʜÇȪDzɈҙ͖ͷЂΩ͗õLͷǪűűıƱëǟ©Ǖ'], - 'encodeOffsets': [[ - -84956, - 8423 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CUB', - 'properties': { 'name': 'Cuba' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ܨÑڊW߄˹̭ͮ޺Ĩ̔ȡ܈ԳԺϛˢ\\ԆǟÕʁئ“ٌ΅ıȟ֑Ń֡¥׃âளą֜Ҷ΁ɔէÈ̃ʐȥӎӃ޵ɦʥǬભž̋ǐ̀ɀࠗ¨׿ѧΏ[ťȳеğΫĂѺʸǼ̤ϞȈіǎَĄȰĢ'], - 'encodeOffsets': [[ - -84242, - 23746 - ]] - } - }, - { - 'type': 'Feature', - 'id': '-99', - 'properties': { 'name': 'Northern Cyprus' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÐJŨȮ؄Yކʢ֧ΧÔƿęˆLJÙűj¥iĎѾNjVɫïƿ¬'], - 'encodeOffsets': [[ - 33518, - 35984 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CYP', - 'properties': { 'name': 'Cyprus' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@€ãࡱͿЩŊȟͶЎŒǀ«ɬðnjUÒ½j覎ŲiLjÚ̇'], - 'encodeOffsets': [[ - 34789, - 35900 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CZE', - 'properties': { 'name': 'Czech Republic' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ϯǂЁ©ٵʲ̏Ùҿ΅ر˔ӃΰѕȬėΠƧʠؒǾ̸Ⱦ׾ǎɂdžɜīϒĖЊ˓ؼñ¿ɳҘǧŲɒּĥĄʿز»ϮЯʡCŽƯȕ—ÅȑLJ¡wý˹ēϋbšȁ'], - 'encodeOffsets': [[ - 17368, - 49764 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'DEU', - 'properties': { 'name': 'Germany' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@d͗ࡔțS̗ࡢǂҾɰॊͧІˋȞёɹɣ̨̙Ⱥ҅ß́Έ՛ϑĕɛĬɁDž׽Ǎ̷ȽؑǽƨʟĘΟіȫӄί̑ϯ̟ŃŢշýƛʿǤЕ~׷ƭݍ–ţɛыɺʩ±࣑ʲǥǻ܍Nń״ьֺ௅ƸЇɘ´ςǗȐĨ֨ƗࢢԎ@Ɉ͂Ⱦޔƿ˴ǐDz۰°Ƽȃ֮вȓ̀ӈٌōՠŸ'], - 'encodeOffsets': [[ - 10161, - 56303 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'DJI', - 'properties': { 'name': 'Djibouti' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ȤʹΑӏȩήɯ̱҇ȅƬȭÏҷb_ʮßɶ˴Ѐ̐ϊήñʪȴ'], - 'encodeOffsets': [[ - 44116, - 13005 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'DNK', - 'properties': { 'name': 'Denmark' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ԋڹ࢟ӄŝΒ௼˨ˎу'], - ['@@ȵ̓ʡĞ؁؁ɮХ՟ŷًŎͽҲ}࡬Ɣɪʌʦ݌À̐ɴڮʂƒѝʟ˙ĶɽҘŵ'] - ], - 'encodeOffsets': [ - [[ - 12995, - 56945 - ]], - [[ - 11175, - 57814 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'DOM', - 'properties': { 'name': 'Dominican Republic' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ŀƞپIӾɏɜtƴ̕Ҡhʡϐ‰Ю̷̯ͿЍǼϫ•ˡ¢ƱƵ͑½ŷȲˣťͳֻɏƆ§ʎjɬɍʦȲƚÞ͒óҜ'], - 'encodeOffsets': [[ - -73433, - 20188 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'DZA', - 'properties': { 'name': 'Algeria' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ᮩཽᝩ࿷இϑटćU՘ϵƌԹʊȧЀᬻᆴᬻᆴṕᎠfnj@ÊQ঺ബب࠼Ÿێɦ͎тচͪ˜جӢòϞ̶સƚƸ͜ɛDz̃ࢲ¹Ԟ́ՠ߰ҠࣦƢՌΎ߶ʰ෎Ƭർæшůߊͨ࣌P΀ȝֺ¾ǟћƄߟȡۙԭҵôمۊԃRȯԮ͹Ϊຝ˖ݏ°ϵƧۇÔϥŃҟòՇͫΗӺؓŽέ̘ҵϼƸڒϷςՃ'], - 'encodeOffsets': [[ - 12288, - 24035 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ECU', - 'properties': { 'name': 'Ecuador' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@҂غǻξ͍ϵԉςǞʀƙބ̎ŴƺԼ͆զÍ΄ҢǸ׀Ͱࡀӑƾ`Ȳί܊śʆƆЮ˧άȣŞٓʽճࣷ࢟য়ͧԥܵǃ֣Ӆ΋ΙъͻĞ΍áw̮ʈȨıΔ'], - 'encodeOffsets': [[ - -82229, - -3486 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'EGY', - 'properties': { 'name': 'Egypt' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɽͷǹىɫѩȝƥ˩˔ϛϒ׵ஸđùΐࢯԪࡋٌವ̴ҙ˒ӃݮछǗƣ‚ճ঒ݭƨǣΏ@Ὁ@⁩@@ᶶ@Ჴʥڲɐ԰Żά̤Ж૦b߲ɝ࠲ʛϴſ٨ˊΌʊݎêװŃɮеȜ˜ڨȣټ³аɄւ෽'], - 'encodeOffsets': [[ - 35761, - 30210 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ERI', - 'properties': { 'name': 'Eritrea' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˻˖ΉӰϋ˒ɏܷ̄ͶֻXȭǬӯȡԛϢʽط঑ǬęʹβఀĊ֒ˆʴؤƐьӒӦঃɴޗҢУବߏҲӍҖӝˀ˿аʧʩȳέò'], - 'encodeOffsets': [[ - 43368, - 12844 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ESP', - 'properties': { 'name': 'Spain' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@¦״΃θஒ؆ਊƱ૾NࣂƝۦªമƒͰ͛໺ϡ̨ǺीϝআŊ®ӥߓ֓ઁǯõ˱ԩү͕ہ͞ӑӟϑǹճىǗש٥੧_ߟhՃ͍̓ͅЩê̵˴ʃӚ޷žé˦̶̀Śɬ̃ʢɶրͳԌδè’ЈƎŬZپϲɪɻфөˆƝŁӹCɁЬ΃ū̥ɇ'], - 'encodeOffsets': [[ - -9251, - 42886 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'EST', - 'properties': { 'name': 'Estonia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĮӸ̱ŁՓ̘ñӘਫ਼ɼ੔Ũ࣮Ƒࢂ|Ŵƣׯӝʞ޵ΫˉۙDܡ̸ρļ܏Ʃ'], - 'encodeOffsets': [[ - 24897, - 59181 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ETH', - 'properties': { 'name': 'Ethiopia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ԜϡӰȢȮǫּWܸ͵ɐ̃όˑΊӯ˼˕̏ω˳Ͽàɵ`ʭҸaȮÐȆƫǽ̴̕ҧ̴Й̛͎ᩨঽۺNᛛᡃફ™ݟףաeɯ˅ַB͹˴ލΙʝΓ֕àȃĬȟwˇT੟܌ב@˹ˢ@ҾѧƘӻࣴϥȚƧʹэЦԧÒ˸ӐҀrŲʰ[ݲʞࢠЊɾĎ΄ήٜԔи΀ࠠƆܠ঒ǫʾظ'], - 'encodeOffsets': [[ - 38816, - 15319 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'FIN', - 'properties': { 'name': 'Finland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ūיಀ֓ޡى঎ख़֡ܛݴس΅յఘֻ́ѓޭӟᅡੵໃá๑̯ൃǯӡҞ߿ˠȈࠢСݶАӪނՆ኎࣮֖Ǭē΢ୟЈ˳͜uಒ಻ֲ૩ЪԊɞतѻલ¦ࣘȭߠϊЬ؞ಬ˶઄ͯΡכ'], - 'encodeOffsets': [[ - 29279, - 70723 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'FJI', - 'properties': { 'name': 'Fiji' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@̂ʍƓѭԳŗҩļąτ͖̀ϤĻȼƐ'], - ['@@՛ǯŅ̼оǤˊ°Ӱˀ@ЧՕȷ'], - ['@@é­@ШǨžĽЗ'] - ], - 'encodeOffsets': [ - [[ - 182655, - -17756 - ]], - [[ - 183669, - -17204 - ]], - [[ - -184235, - -16897 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'FLK', - 'properties': { 'name': 'Falkland Islands' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@৘Ԍ܎ȿԌʹڦϙʥ̋ଋʥϙ̌܋ϙпϚ'], - 'encodeOffsets': [[ - -62668, - -53094 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'FRA', - 'properties': { 'name': 'France' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ˣ٭ϡǠș֢ǜ̺ը͎Ɯܛ'], - ['@@הЅќà݀ϥȊñʎjЈɗெƷыֹŃ׳ɱƝϣü‚ɇؙҽ]ϟВƀ˾ρ“ʁʚ̿̅ʯɐٱҖŃĩηݿӅစɬ௧˗ĩԑঅʼnिϞ̧ǹ໹Ϣͯ͜ѢԎdžူࢁࢤإю౹͒čؖઠǾථɏˇॎߌέዠپʨێܾǞŪ̑ϸ_ϸ͵'] - ], - 'encodeOffsets': [ - [[ - 9790, - 43165 - ]], - [[ - 3675, - 51589 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'GAB', - 'properties': { 'name': 'Gabon' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ࡹࡔ։ۚԙࢄ‚˨ǾˎȲؔǜخ˴¶௢SOৠЌÆԞőӼňľ¯ÓνɼѡشèȾǗεঃЊӹĞٿŁ֑ʳЇݏ–҅Иãϋ֥Ĺ˽Ɂ̈́֋ٕҩ'], - 'encodeOffsets': [[ - 11361, - -4074 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GBR', - 'properties': { 'name': 'United Kingdom' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@҉ֽًǦԱ[ǦҊǥ҈۴–ࣔԳ'], - ['@@࣋ࣧࡦŘऄIɕۅݯݩࢄÃäĕݠ঱ֺƇԬढ़ʈͧৰDžķ՝ѓʗͲѣݱѯ૳Rෝɱϻǒ։ϿޥĪם͍ҁǘ௼ࢨݪǺOBಽƔʃͰ࢜ʺҡҐdžռఢ÷D@ŮӤ֛Ԯ_\\৵ƨȧɬ̨ϒˡɴҍЇ·߶щє̨ࢆٶھڤá০ì'] - ], - 'encodeOffsets': [ - [[ - -5797, - 55864 - ]], - [[ - -3077, - 60043 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'GEO', - 'properties': { 'name': 'Georgia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ųάȿִӟ̲ҭĬ̯ʴĺIJ܄ƝఆƋଦЕƦƻԚƂ޶ǭʴ·Նșɓřвғŗıҏºصʎȵƍଢ଼ſ߳Юࣅ¡'], - 'encodeOffsets': [[ - 42552, - 42533 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GHA', - 'properties': { 'name': 'Ghana' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@೉ӯҳ˽ݳʑݡʆœͨηܤɖैΠ۸ɟ஢ŗنrӊฤ¢ϊÕ˔ƊϴáÕʿΖџC؍Ąڍɂ̫ȅݳäйɢՓȈ̍'], - 'encodeOffsets': [[ - 1086, - 6072 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GIN', - 'properties': { 'name': 'Guinea' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ʃtǡͷʁJǏǴÈͶΗԨɕħǵmɳ³V̮Ƈɘ‚ʔǻΜɹ̜ڥDțǁɵoƝǷīɹ҅σρӼ͛͢ɋŊȿǖħϊūȂʓƐώЦʮeɖƘȄDƄŎï˨ĢĖd˶МU؀ȱȄlÚĤҜáŨ´¶̭ƆBɖŒƔƒɸɇάãɲǺ˖ŒȬŠǚuȈȁĴɳΆΙǣɏ˙ǴĊŀį«ʡʲʍǗÝå˷Ș΍Ⱥڧ̷ĵăśÞNj·νƃA'], - 'encodeOffsets': [[ - -8641, - 7871 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GMB', - 'properties': { 'name': 'Gambia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ņόࣶzȎȦˊ`ͨȷʼIˢƚǞʏεȋιdέǰ̷ȗƭQȫŝއl'], - 'encodeOffsets': [[ - -17245, - 13468 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GNB', - 'properties': { 'name': 'Guinea Bissau' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@҅ΘΝÈȕʀLŸʯǴÁǶѼƌ˦ɦĨ༈•c˵ġĕð˧ƃōȃCɕƗʭfύХ'], - 'encodeOffsets': [[ - -15493, - 11306 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GNQ', - 'properties': { 'name': 'Equatorial Guinea' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƿŴ़̀െmPয়௡T˳µ'], - 'encodeOffsets': [[ - 9721, - 1035 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GRC', - 'properties': { 'name': 'Greece' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Ҡ˱ٺ¶شÑqƣҜĶĿʛ௃íTƒਁǎƺΦ'], - ['@@ʹՁȥĥԟ|ѫĀৱɓ׌ҿяƋҳAѻўƿȁȊԅрЁ̓ǿҴϯжʑ^ӅޥɠʜѕՓĕ͈ݏ֏Yۍμ̿ڦƧ֒͝ϮљӐÉʆϸТ¼˚˘Ũjɚռö͌ȀҖgƒƦdž„ت{ڨɲע̉ކĀVмЦɝ'] - ], - 'encodeOffsets': [ - [[ - 24269, - 36562 - ]], - [[ - 27243, - 42560 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'GRL', - 'properties': { 'name': 'Greenland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ᬜԆ᱒›ੴ̴ᲈĄ䀦Ŀ㉊ڗ༅͕ộ™⭏ćшƫᲐĠᡚ́࿈ʴۦ̝इӧᒞ̺✘͚ᠼNjҾΫ⃝ױӃȕ᧑ơወ¡ছؕگկ€ध৚շಽ“൧ˇ༂ѽȢ܋࣍ýઞܡህÑঈ΁˟̑இŽ୥E੆֩\\Ϗပΐћɣଌȿ઼ԣ͈ڱກlj٫͖ਣӘ˼֭উѵᕖ•୆¯ᖯܵᗿڏឧ́ओIࢅ͓ୟࢱᅵכׅ“૧ȷ஽ȝܛԱ[כыտോڧͺٿϗ۝љࠍஅ½఍ۈဿLࠁҢ֕ࠐฝਲэոŗݮ୓ޢ̢ئ֗̒ࠪচొ̺ͨΘǬڀॡ̕қůݯţਏ˜Éְ͢҂ެ\\႔ɟ෿Քݩ˾࠷ş۫ȼम޴ԝ̺ڗ׈ৡࢼ੯͚XΚᖷӮᄻÖᖟ‘Ꮕ×ইˌวՈᕂ˄ၚ¬≹ɖ቉΄Ś͜ẊИᶎИ̪͘ᗗ̠ܺͰ᯲ז௢ĚΓϘጲɜᣚƂᣖRࣺʽᕺҨፘ̽୺áპ˙ፅҐŘή'], - 'encodeOffsets': [[ - -47886, - 84612 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GTM', - 'properties': { 'name': 'Guatemala' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ћƦԻfϩǖҍΌrʖĮȠšƾКۆ઄Ft˸Ƌ¾ġǺ̵Ț̹ˬϜDBӂ޸BަUOڗßॅʤ@˚ƱòŰʘŃϥ͍ЉɻÏljâǑǧɇȟ½¬ıƿġ˽Ƀ}ŭ'], - 'encodeOffsets': [[ - -92257, - 14065 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GUF', - 'properties': { 'name': 'French Guiana' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@͉͑ГÑŗʀȉ–ʹɩνǦɈΪòϤƢή͛ӸáֺѪܠ˸ğؤȥࢸۿƔ·ӻޑʳأ'], - 'encodeOffsets': [[ - -53817, - 2565 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GUY', - 'properties': { 'name': 'Guyana' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ր̯Դյzџ̈́o҈Чͪ̇Ƈݱԛɕ°ȣƹџϊ؏ːAŎӃԢܳȱ‰ҫî˙ɡϟƥ˅—ġǑЭ¦ԫЀÓϴɋьƆܐɸ̐ȕϸ˿ŶŊτțȘѩ™ْ֩ɬɲiϲԬƊȾƾ˽̸ô̬ږӲ'], - 'encodeOffsets': [[ - -61192, - 8568 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'HND', - 'properties': { 'name': 'Honduras' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ơˀʭòÐʹŗĞǣÒσij‹ŔʩƈǷǚʛìǨɈáǒÐNJЊɼϦ͎ĔȂƨʊ\\þ垦ϸùϲv˒ĢİĦˎ©ȪÉɘnǖòϨśƄkʲƿʐį̏Źɜɳ˽jśŕ̇ŋɃAȅŃǙœƛźĕ{ŇȩăRaǥ̉ɳƹıđĽʛǞǹɣǫPȟqlЭūQĿȓʽ“'], - 'encodeOffsets': [[ - -89412, - 13297 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'HRV', - 'properties': { 'name': 'Croatia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ȳ͗ˊʇ͓̓ϝȆׇ[ܟƔϽmǻǧ̝ȖǫΑЪϽǼʹϮ̽͌ȃ͆Ηݔ͇ġƛ߃̶ӣ̢ޑʠ۹ؤǞØϥΞe˲եƄʱγʝˮn̆Šbג…Ƹƚ˸ƍͤgGɼ̈ĒĈͺڞɠˊĻؼέۜlj̼Ų'], - 'encodeOffsets': [[ - 19282, - 47011 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'HTI', - 'properties': { 'name': 'Haiti' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ԣ™ܰƁôқÝ͑ȱƙɎʥiɫ֏ƜЅÍԡÔϽƿ҉ʾö˔ޜśيã̢ȈϧθP͎ՋžȌɶ'], - 'encodeOffsets': [[ - -74946, - 20394 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'HUN', - 'properties': { 'name': 'Hungary' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˨ըǍǼӂDÜ΄ђɋ̲ğ۸ļäǚͮ~ЦžĜÃЂŀȠȢˠ¼࣒ʭǴĒҲɭÎɣԡǭЉ֫ԕ֭کǁԽš١ə̻űۛNJػήˉļǍ˴ƗV'], - 'encodeOffsets': [[ - 16592, - 47977 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'IDN', - 'properties': { 'name': 'Indonesia' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Λe૝ך޴ǒѴʭ̎ʭ»ɩ'], - ['@@ܙȁijĶø˸ΰԢࠨͬĐǓfʫշع'], - ['@@̢ɣԲèȼΥॿǛ׉őҍP̀ӚҤPɤ̖'], - ['@@ūұ౅ʅૣľE̬ښǪՂʥ֔Üݬ̮'], - ['@@ྔċȂΌ༘З̪կీƵਐӿय़͋ऍ͸ݻwࢍØ޻ưঅ͎؝ČΓŁ໕ΌƣΰޑØּߤ৶·ڴ͡ΒÛŘ̗'], - ['@@ѝֱćنƬ̠Ǭ˴ȒʗCЏ'], - ['@@̿˥ׅƸǏΰࡘ¢Ⱦˣ'], - ['@@̨ٝۿΌۯìӃÅׇˆȦҦਠ”ऎʕ'], - ['@@ɼയ࢈ԉ۰ࢼ८ԔݜBܘ̉خ̛ࣘLJbᩑbᩑݟې࡟ǜȷʇ੡}ΦۂՈɺɕࣲЕ۸࿃܆ۗêృަʛУ͑óȏ̮GκٛЮ̢ࣞ״gëɠ௵DͩԄݥƺΡдଈȰњ˜ഘ·Ƃ̹'], - ['@@ڭ࠭كlj߱ǐඓ¥ܽŧţٍݪݛҒϠ༪˸çϯλŪιӯ͙݉ߒ੿Ƶ˿ݲॻQտ҅ʙ̐͡Мی࠙͗ȻɶŊ͖؅ӲØࠌ֕ʭîও”றՓũίʚʌޜŽ߸ΛPʻֺΎվŤښф౎ǮΎ܎ذپʛ੖śॴ–ࠨ؎Ʀȉ'], - ['@@©ܽџĈŷԝΌѷɽĵ͹Ւʟ੺ǚڤ˨̨ÔҝӸóĀ΃'], - ['@@सާহį˫ֵšݿַ߱u࠷͕౻ŭ̚ॕϙͫԤ׳´лːৃ̟̩Оս¯ۗĬŹૺнɺЕܘŝ݀ĮުԂ֐Ɩָ֗ӅըǠ՜ÑӪъЖôߒɽۆǶњୠ͔̈̆क़ॲ@ܰƙӍݷآߓơϭ'], - ['@@छkۻ۰અۊέԚٍۄзؾٕ୴۪݅ʙܠ̳ڀݵՊѭܘمҺࢗऒóђզ‘ಢNjݔࠓٮ֫ҪΓߔࣙࡢ_ۺֹӠ۳٘ϥͳۉӖ̞̅sƜו̊ҵؠõФՏɁ਱‘ಟ'] - ], - 'encodeOffsets': [ - [[ - 123613, - -10485 - ]], - [[ - 127423, - -10383 - ]], - [[ - 120730, - -8289 - ]], - [[ - 125854, - -8288 - ]], - [[ - 111231, - -6940 - ]], - [[ - 137959, - -6363 - ]], - [[ - 130304, - -3542 - ]], - [[ - 133603, - -3168 - ]], - [[ - 137363, - -1179 - ]], - [[ - 128247, - 1454 - ]], - [[ - 131777, - 1160 - ]], - [[ - 120705, - 1872 - ]], - [[ - 108358, - -5992 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'IND', - 'properties': { 'name': 'India' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ࣚটďۅͮїѕ׽ŒɾएࠜՑ୞חՑϟ͛޻ࠀͅߊЭરһସʼnӜёٮāৠȝ۪bĪͪŋՖÞβԠǮìڋlǙކ͉Ոƀ܀Çۈ|ÐԪ΁ˎڴŀވشॸ՘۶ȷ״ΞЀԹ˳Λ࣠űÜ͇̍Ʒèԫ׷Ʋછׅ~ӓҩ۵§ХϏۗځȒࢇȏ˹ĚΣгȥѵ೰ɵEƍ՝ҡѦʸӎϖ¶ϰ܆ӝƜީ]ߝŚóאБ¤ڕζ֭̓؆ѻԿ̻ȅ̩Ԭɣƛԑ̆كžەţֱ̫Zਛǩ´ك҃ӻ௃֡ळ঩كՋ࠷ջCϭлȹݳ̝Ͻ«ʥٙǪધ®ۡΣߙI෗ѣ¡ϣٙʰˣދʃ˱֯͵ʍߑ޸ϳ୴͑ࡒ̍Јѿ߰ȻੂơՀޅ଼Α࿀ʣ੾HৰǍ޾௣ԉףĶ઱৲И̤ʝͤড܊֖֔ᇜCǗܞҽюĩ٨ջϘऒࢢঊÙ࢞ࢢՄ࡞ࠄࡈ_״ܒӠڳд֪݂̇̕Ьβ౤ȱपŰߺ۸'], - 'encodeOffsets': [[ - 79706, - 36346 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'IRL', - 'properties': { 'name': 'Ireland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƒ׷ًݣ๯ӹ஑Ŷڼ࢚ѭࡢତڄٌϼǦ҇ǥ҉Բ\\ٌǥ'], - 'encodeOffsets': [[ - -6346, - 55161 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'IRN', - 'properties': { 'name': 'Iran' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@݈njװӔ֚{τƾװýघэڤğ।ݓظ‰òۻ΁਷ɱؑκŭΫҡˠڡàՓِƙæեݿݿжѵ͸ԓߦυx݉ДƋêϯ௉ѡ̓উཌྷʪࣷȖेŊΧਐЕƪ٣ƭࡑНਇ˦ࡑ٦߳ʈ֗ߘا૪ҍƋՕ˦̻͝ҭѴS҂ˍ@Ɛ،ѝٔ਍Ң׉ߜȜپц̂ÙӬտʨխ৊ҟڨǐʼʿ६ּʈƄͅъϯ־ő̤~রئ̀Øʞʙ́гԼѱȾ¦ˈإߖǩ׎у஠ƟಾɞĄȞ'], - 'encodeOffsets': [[ - 55216, - 38092 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'IRQ', - 'properties': { 'name': 'Iraq' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@րʧÚӫх́țٽ׊ߛ਎ҡўٓƏ؋ˎ@TҁҮѳӿ¤֟ê؝߭༟äᛍၖఫךৡɪ͹৾ᇶ࢔͆৬āؘҢȺјԾΰž঎Ň̐ɉЖƚծ৉'], - 'encodeOffsets': [[ - 46511, - 36842 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ISL', - 'properties': { 'name': 'Iceland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@șիॊֵથٙᝓֹܣƵૉŮᚑˈࠠψᆧЪ๪ǎ—ʘᄋȜ֨նౠŰಸ֭౨Ҝ੒ʃൌ҄ආÑ'], - 'encodeOffsets': [[ - -14856, - 68051 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ISR', - 'properties': { 'name': 'Israel' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƥ˅̣Ŝǫ֓ɂĥɋř—ɛЄŖp͛нഉց෾ʔˢ˶ɞϼǠيŤɆzVˬCþƦɤ\\`·ŕŵhM'], - 'encodeOffsets': [[ - 36578, - 33495 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ITA', - 'properties': { 'name': 'Italy' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@̟ڋŲʹǭѝٝ̈́ёĞ୩ѐŞќজûࡪĠْò'], - ['@@Ԍ׭ş૕ϣÂ΁˫͇ɞ‘২ȓӒҨ¥рʼ'], - ['@@ரɏĝЯȬΧڝŪہ̗²зĻʇˠё߀чцۛदڱچLȲȃɽǗݪ̥ؠʩܜѫĔƿƽ̛үϼܳƐΝի؈̷ıѫΗ¹҅ܛΕÝHʲǢҊǼǶ͝ӤʱшΑŀʛδգƴεͶثÆٿϜޑմ֯ӜʿࠪйĮہˤϯŕӝϵΓÕĪθҕńɏٲ̆ʰʙ̀”ʂβǵМ¢Ҽ˶ƢƃА€ǼͺتĿψƚâΆԘšĮdžࠨƤȊ̉'] - ], - 'encodeOffsets': [ - [[ - 15893, - 39149 - ]], - [[ - 9432, - 42200 - ]], - [[ - 12674, - 47890 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'JAM', - 'properties': { 'name': 'Jamaica' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@֢÷ҀȫƔɯןeʭƗҹƊӑ̪ĶȔΜÎȒƒ'], - 'encodeOffsets': [[ - -79431, - 18935 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'JOR', - 'properties': { 'name': 'Jordan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ʀˆपͫ࿪ࣆͺ৽Džų၅у࠸࠿ˣƛƑ˭ٙřȩ̡εʵधƆƒŨоഊo͜Ůʚ@Ԥ'], - 'encodeOffsets': [[ - 36399, - 33172 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'JPN', - 'properties': { 'name': 'Japan' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ņ˽ҿԕΉːљțɝӭշʈRЊҬԆӌīΊΜؠǹ'], - ['@@́ڡƤсѩף੹Ѓ๏½ணॡ͔֡“غษȃষЃঝe࡞أ֗෗իΝН͜ȶݶՏʒͿ־ߐʶѲՈࡌѢ؞ָာʤ࣎ǣࢠ๺֔Б௾ࡀӌ͜ՈਈƟा΢ՎࣀƸҞୗ}ڻޥࡍbࢁ'], - ['@@נǵרΤȈहఝɯ݁࠱೓ָқँण]ř࠴д٨࣌²ʖ୐ʜټন࢓٤˯'] - ], - 'encodeOffsets': [ - [[ - 137870, - 34969 - ]], - [[ - 144360, - 38034 - ]], - [[ - 147365, - 45235 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'KAZ', - 'properties': { 'name': 'Kazakhstan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ӕƹ્דο׹̹KɱЊ੫‚ǡێХNÚࡆ৓ؘ෷ßডũߣݶۋ͆ಥ׼ƽðᓗӹᶽљ£יچ֧ɼॕǩχ˧±ȲȶΖDž̊অ˺ϛݮҩɆ…˜ࠊāŽؘ܎ƎܼűƲࠎƭԲ࠿£܍ȴঃσ޵ǭяƌĐўՙ֘دw܉֬ӞِʕǢڢऊࡺӣŀؘჄࣴಾtᇢ׉঺ͻࢼΠ೰j੺ѥʔʠ୼—ɂЊഷ׀߮Цƿɮ߮ɔ؅ֺϬ˼Ḯ̈ШȺᑆ̴ݰΒຢǹ˄ࢉ࢚Ȳઆ˹éҝ߮´ᑌߎ̭ˁ੶٭ሠᒑ҄ѰୄӛீɎҪƯКӟטNjΨΥ઎ŒѾԣٕ֓ۥÿ¡ࡅұϝဟˢ؅ຑїȇဗͱݲลֻɓäӏԭŬу̠ఝĖඃx̧ġ஥ΞӉǧŽӹ൩̂փşȉρ'], - 'encodeOffsets': [[ - 72666, - 43281 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'KEN', - 'properties': { 'name': 'Kenya' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ӾۙיͱȹΕ̿Õšףˑ͹Ǐ֑ͷ˥஻ࡀËӤᵁႌƙĢSࢺʊ;а֌̨ؔσ॰įтЉ׎ԬԈ֬ֆѨƗ@ҽ˺ˡג@੠܋ˈSȠxȄī֖ßʞΔގΚͺ˳ָAܽ॑Xᵣ'], - 'encodeOffsets': [[ - 41977, - -878 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'KGZ', - 'properties': { 'name': 'Kyrgyzstan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ȊςքŠ൪́žӺӊǨ஦Ν̨Ģ඄wఞĕф̟Ԯūşȏ೛ғ̙ͭઁıͅ՛ࢷŒׇǏߣЇŜȟʇȓཟŵਡ˘࣫ÝĂӜࣴƕ̮ʸٖĉ੾؂঻ѸױȽإ͂۶ծʟĊ'], - 'encodeOffsets': [[ - 72666, - 43281 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'KHM', - 'properties': { 'name': 'Cambodia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@΁Ѭыࢄȣ২ՠۨઘdž߀ťۚ͡Ϟׄݖ̱Ȝ֕Ļ৕ඳ٧τԙࢥÓܫͷ۱Ū'], - 'encodeOffsets': [[ - 105982, - 10888 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'KOR', - 'properties': { 'name': 'South Korea' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ܨযȺխPॷ̓ҥݽljڥΏݳïĥҚƼـχ࢔ذƚֻܘÂúϒ‡͞Ϝצ¢ΨÈŨȮ'], - 'encodeOffsets': [[ - 131431, - 39539 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CS-KM', - 'properties': { 'name': 'Kosovo' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@›ǣŃPĘ́ȩĐdzɦƾȌȪÒŜ˨ư²Ţşƾ¿ŌƅƒŸǎƻŢLĥȳijij„×ȉӹŻ'], - 'encodeOffsets': [[ - 21261, - 43062 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'KWT', - 'properties': { 'name': 'Kuwait' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ǭχõȓ˔هשuȽАݟĆ؞߮֠é'], - 'encodeOffsets': [[ - 49126, - 30696 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LAO', - 'properties': { 'name': 'Laos' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˚Ϝœ܆ڹܸ¿ٕࠦھٍÎǛ̉ӯyʣƨࢯԅoݬȸࢮ֧ž³ԎηʸǴ̲ܐնøȡ҄wŵ०ѦŬӮڏϖޅਚO͚ܹ՝ɗʉ̟৔ԉۦ঳Ռ݋َ׏ɄץƵ࠿ݕ̲ϝ׃ۙ͢'], - 'encodeOffsets': [[ - 107745, - 14616 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LBN', - 'properties': { 'name': 'Lebanon' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɣ[ýƥ˫D̘ۄмעfˆϘ§Ɛͣқ̓ȷҟ'], - 'encodeOffsets': [[ - 36681, - 34077 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LBR', - 'properties': { 'name': 'Liberia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɗQࡽАޅٖ܏Ң֣ըȪː¬ʔϜҘϺϺǶnɖĨΘԧÇ͵ǐdzʂIǢ͸ʄsŸʓĎНǽύʖɱˊÇΤΙ~ͧăĿÝە'], - 'encodeOffsets': [[ - -7897, - 4470 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LBY', - 'properties': { 'name': 'Libya' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ק̷ҿҤ೧βρՄڑϸϻƷ̗ҶήӹؔͬΘñՈńҠÓϦƨۈ¯϶˕ݐШȜðΠėΒ־͔ʶːЦʌ´٦দ́ΜðۮƓ૞ϓЀݛݮǍஆΙࣆйЦɔЖϮț٠˂Ф؄ЀׂŘ଒ǣ˺ϑ̺Iˌƛ࠴ıȲˣ̣ЕżΫɏԯʦڱ@Ჳ@ᶵ@့ॱGYΙ‧ྐ‧ྒࡓҟ'], - 'encodeOffsets': [[ - 15208, - 23412 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LKA', - 'properties': { 'name': 'Sri Lanka' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ų࢓ΙʇܵȓЍڜƫீϠ഼׆ұϺסО࢓'], - 'encodeOffsets': [[ - 83751, - 7704 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LSO', - 'properties': { 'name': 'Lesotho' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̆ʩʳУƛ˛ҳſƹˍ̛ċؿ٨҄ՐҖ͢ϼǠξʵ'], - 'encodeOffsets': [[ - 29674, - -29650 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LTU', - 'properties': { 'name': 'Lithuania' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ãɊĚɲχƄࢡƨDZ۸२ʴඬÁࠜĊŞǩ҂Ã߲СĀϓۏˏșӃ࣯̓߻NȫʶљĜ'], - 'encodeOffsets': [[ - 23277, - 55632 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LUX', - 'properties': { 'name': 'Luxembourg' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ǘȏ³ρʍiȉòĞҼɖŽ'], - 'encodeOffsets': [[ - 6189, - 51332 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LVA', - 'properties': { 'name': 'Latvia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@†نЮՆߊ˼ڜعڪhNJ٤ܐƪςĻܢ̷ۚCКȕîС˒ӷ͕ࣗԛƙ߱ТҁÄŝǪࠛĉණÂ१ʳ'], - 'encodeOffsets': [[ - 21562, - 57376 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MAR', - 'properties': { 'name': 'Morocco' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ԒΥߜÎࢊȃκU͂՟ºԝ̄ࢱɜDZƷ͛ષƙϝ̵ӡñ—ثঙ͍ͩсۍɥ࠻ŷഫاRহŷ@@@p҉Ա˓ȑϡ@̥Ŋ۹ě˛ٻʿÕЁ੕ୟ࣡ˣୋ΅ϗĵ̡ቅãaD ϶͒ɮ˞ѪÃ˶̀פҴՖ˲ƊɞӬp҂̤Բ̪֔Ւ࡬f\\ц͔ްĢڎָтɠۮۮȿਸ਼͊ܢŔѶդ֨ࡈϦخΐ֘࢈˄ԪؤI'], - 'encodeOffsets': [[ - -5318, - 36614 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MDA', - 'properties': { 'name': 'Moldova' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ȨŮ֒ĊؤʽΊϞɥÑ˵̪ƏŨΗ̊ɇÏűƾčɝ×ӷ|ĉŜǫãÒƭɱˍƥ˽ɁĝƯϦĘΪςӝԂˉΠʹʠʯĈ'], - 'encodeOffsets': [[ - 27259, - 49379 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MDG', - 'properties': { 'name': 'Madagascar' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɠΥȺ։Ɗঢ়ɒϽĉЗƩʙ˷ӰǁʝLjثõΥɵȗ¿܅ͧওб୅ԯཧ͑ୟϛইہȣܻΡӛɊڙ̜ɳѺÇݘ̑ڠù؂Ʈ؄ϰƢD˪Дِø՚șЈǃՌãޠ̊ҺŔՒмŒҶǤ̶Ʋτ\\ӐӎۖԮʦцŗάΦĵҪ׎fԐ˦ϔ̊ί'], - 'encodeOffsets': [[ - 50733, - -12769 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MEX', - 'properties': { 'name': 'Mexico' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@͙݅ƥ؁Õ૷ąЧƤқʺЧǚٳ֎سȞӏ͢бࢾɝΐΙ݄ɾٚĎؼưՊƠՖ΂ȨӬè۸Ƣʖ֬ɚࢶȚݔ‡ԚîȬDZ…ЙҋԁȥԝƸƥűγɁٽɅɎǭcǃY̝ԓƳIJķPŭޥV޷AAӁϛC̺˫̶șĢǹƌ½s˷ઃEЙۅŢƽĭȟqʕ्ࣞџ˘ۇɖҷÓګ́чĉץɜؿDŽ޹ϬؿŠ्ϸ۱ВɃɤҹº࡯ˈΓϦࣗӊсՌȧЦ˪ĈđʈȖɔJ̄˱Ϙùͮ˭ъ݋࠴ࡋڀУԼܝ΄ƷȴŸԲѓȞӹФȽהҍæӣѸϿФ™ˀҍو̓٠^͔؇ͬ˫™ӑɴƇͿƔЕĆف̀΋خׁƒȡŸÓŎ˽Ƭ\\ǜթʮɇǴ̕Նё˨ޯʠρɸϿ²ѷКƒͶϡ̨ϑqƭΝ̱ƫJɛԞջӎ؃РїɈ„ؚŵҖЏʺֿϒŏŇɃɖԭȰӷӦÖÚΊ³̸̼ŽϜ٩׶ӱɶ̱Հ̷վϳڦͿݲॖÞ੪ĞÿǑ౔СኀףဪPژ@DΌผ@̪̕јˇԀσ˨ѭȾҥѢʩۤʥՊڒۊhפͱфֹ̄ӯӸӏȂחɾЃپʹ׮ȁ͞|'], - 'encodeOffsets': [[ - -99471, - 26491 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MKD', - 'properties': { 'name': 'Macedonia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ńOœǤӺżȊ˺¶ϴbтˏÒ։DžƒƑƥҕh͋ǿջõΑȴšήń˸'], - 'encodeOffsets': [[ - 21085, - 42860 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MLI', - 'properties': { 'name': 'Mali' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˰ƶƘӶˊpזɻӄǖ͖ÇŴȈ⁚^ȈךƣļЛ⋈Л⋆౾dᬼᆳᬼᆳȨϿԺʉ϶ƋV՗ठĈFካҟ֗íԭݛƃ଩ï̳̗ա՟IȿLjҥš޻ΑDžʿٳϕŗɍΙǡНŔɱȳūֻڙۡp˳ɭΣÆӥ΋ůȝŁŽάʍĥơhƷʕ٭PɷŴʼnùʱʎ¬ʢĿİdzĉ˚Ǥɐ΅ΚijɴȇȂǙvȫş˕őɱǹΫäɷɈƓ„ɕőƅAµ̮žʾí̽͘ʀǓӔԺ'], - 'encodeOffsets': [[ - -12462, - 14968 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MMR', - 'properties': { 'name': 'Myanmar' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ӫηץ›ϥࣥΟƳО݅ՔؗΈօ̭ܵ̃ƹȪу֖ڙĪҷ_ϵ͠ދң޵Сࡷăذʴ٠˯ӼæࣸͽѤ˛৔Ʊਗ਼εۢօуॕ׳ҽöԳȠ̂ਪǫ޾څॺļ̢ӭņ׭ۆÅڰ̊ŵj׾дȦęΤȐ˺Ž࢈ڂȑϐۘ¨ЦҪ۶}Ӕજ׆׸ƱçԬ̎ƸÛ͈ӮÚˮӵξȧ|ٟ“ۙߓۭijঽࢲƔȨޛՐǍʓۣز́ζƷ؞ʔ~΍܏յdẕӓȗ'], - 'encodeOffsets': [[ - 101933, - 20672 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MNE', - 'properties': { 'name': 'Montenegro' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÁǀηЯÊˋǫÞɽ˞εǖĢƜŬҦ˚ȜƾüɠƟŬśˠě͌ǧçïƽȋɧó'], - 'encodeOffsets': [[ - 20277, - 43521 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MNG', - 'properties': { 'name': 'Mongolia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ࢮƢ྄ܤ౬Єܴʳ࢚]֘Ͻ࠼‰ௐɁࠈגͿӶࢊࢊश΍ނįনɍLjؿஜΛߐƺਫ਼ŌࡆōࠖЗԚѕެT੒Ƌޜȼૈƒ௸פԌĝѰ˭ৌêХهק࠽ɐ΅ӈńࠤŽ٦̴ڬˏހוğ̗ڏĦ௟ŏןʅ؝։౱͙࠷ѽࡹǞҿúѳէˎ͓ƌˣי˯׽҇গ̑ఽ‹ഫ̇এҋϋʾ৭AఓԜࠥŰૣśჃȊऑmӱԀϣޠԱĢ৩ԼଅŞুƞ̡θ͖চׅڲன̀۷Ѿəז'], - 'encodeOffsets': [[ - 89858, - 50481 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MOZ', - 'properties': { 'name': 'Mozambique' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@لæ৞ʁɖńגt̚ʦԌaऀ͜ڞӤƊϕ“࠷ľ݅ಿƨЫʣ׷͙׍՗Եޏ͉ृСॉ͓ࣕƵוׯ΋ȗí׳ЌُǔӱZʣƪ¦{ࠗƋϷȤƝűΓΗ̗ۗ˳য়ҕρ̳ðΟɊÉíѵّRïϊůϖí̠ƬपɓװГஂࢬ॔ɜ؆ŶúĨӶƉʞ˜غǐ׌E੠ѥ˒ЏÔǹȼϳǰ۫gÅ̼āװᢈۘӚЕɴüͨɅ¸͵ǯϷØסոԱʲ׌ζǰíઊΙ؈̣˖̅]ɽદɾٔ'], - 'encodeOffsets': [[ - 35390, - -11796 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MRT', - 'properties': { 'name': 'Mauritania' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@և־ԗؤ֍ɞГʚҵUЧǽйð˽ˏïҐɺаŀߊģࠨĵкČмɑЎѵδǾˬᾔMǃ௎ȴќ߀øᒸ᪂©F౞Ṗ᎟౽cМ⋅М⋇ƤĻȇי⁙]ųȇ͕ÈӃǕוɼˉoƗӵ˯Ƶ'], - 'encodeOffsets': [[ - -12462, - 14968 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MWI', - 'properties': { 'name': 'Malawi' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɽٓɾથ̆^̤˕Κ؇îઉεǯʱ׋շԲ×עǰϸ·ͶͧɆɳûәЖѵɔʮޮ˄̈LJۢǚڼƞɪɉ܌Ѕϐ࠘ƽǜɵ˶Ϲɾଡ'], - 'encodeOffsets': [[ - 35390, - -11796 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MYS', - 'properties': { 'name': 'Malaysia' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@àћֈĶ˞ΈȘýӸԓΜ֛¶֣ęϡĆ˿Öӻ̒ɵͤݑe˳׫Éߑخ঵ښįђӟ֚ś̡۠ҜĠؔȃΤƤƮۈρ'], - ['@@أ˹ܯƚॱ@̅ॗ͓̇љୟۅǵߑɾЕóөщ՛Òէǟַӆƕ֘؜˽ٮǀǜ܆άǂ৖Ǻ׾ڔЬՐϦѥǮ˺В¸՜œа٪אшڀͼHќыžιֆɻ۬ʧÑ֝͡¥ƮЧ'] - ], - 'encodeOffsets': [ - [[ - 103502, - 6354 - ]], - [[ - 121466, - 4586 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'NAM', - 'properties': { 'name': 'Namibia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@رٌؖ͡ȃࠊȷ،˯ಒm৒ŅҞ͛Όѡۜѳ৘ǽՆۃࠐ»٢КdžԊƞհ}ԄϝŶÐ₮˜׌Е᎞ş໴΂یȒհµͨȍPéӁȍʭC՛͍ͣΎಕ̍سƒ{Ჽࠣ‡BយA᷋ݣѕҋÕՇDŽϗÔƗάͩɰГг'], - 'encodeOffsets': [[ - 16738, - -29262 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NCL', - 'properties': { 'name': 'New Caledonia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ېԵѨϭ͉ȫҥɪ׹ϚէѼ։פś˶β[Һ˹φ˷ˎɻ'], - 'encodeOffsets': [[ - 169759, - -21585 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NER', - 'properties': { 'name': 'Niger' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nּॹȐОҿպœϤâТբ̴̘ପðݜƄîԮҠ֘Eኬஈϒᝪ࿸᮪ཾ೨αӀңר̸ȸಯ̾ɓ`ˋΔ˽ǻί͕ၻ«ધੳߋγૉΔ̵CեբmčЃʁµˋƻm֩ंȟ’ځҷٱʔҍ¸ʏşӯ~ӷΧѓq৯ѢЉȵѓb̿͆ࡅ̼ࣗıɕǻşӗʋ͹ÍݣٗӚ̟E˭ʗ'], - 'encodeOffsets': [[ - 2207, - 12227 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NGA', - 'properties': { 'name': 'Nigeria' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ࢍ̡͉¬͓ȉڥl҇Ղˡ؊שֆكYݍB¶തs՘ǂՊʶʴТԴėɨǔ͸ȍӾ˪ÎݤʌͺŠӘɖǼࣘIJࡆ̻̀ͅєaЊȶৰѡєrӸΨӰ}ʐŠҎ·ٲʓڂҸȠ‘֪ँƼnͬͯğƱ«˧۽ٱɛՙšѧDZȉǝי҅ΉŽыȋ͹ÿΓֽ˱ҽΊ͇aԃӭʑQЍ߷ɍש'], - 'encodeOffsets': [[ - 8705, - 4887 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NIC', - 'properties': { 'name': 'Nicaragua' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̃ˆϽͺȁ˲Ο˄сϜĤžƒŵÚÒʾ”ŀȔŬRkЮȠrǬOǺɤʜǝĒľƺIJ̊ɴbǦĄQňȪĖ|ƜŹǚ›ȆńɄB̈ŌŜŖ˾iïă§ȉĐ̫ȗ˹ěͷυ®ɏtϙŹĉýΫÌɛǣɋ ɩźƏȩDZʛÈƓǦˉêȕʼnօɞųŇ'], - 'encodeOffsets': [[ - -87769, - 11355 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NLD', - 'properties': { 'name': 'Netherlands' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ۦyǀ˳Ƚޓɇ́ԍ@ƘࢡҥȞՏπީǩ؛âѠɲ݀ఆଲΘ'], - 'encodeOffsets': [[ - 6220, - 54795 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NOR', - 'properties': { 'name': 'Norway' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@᥆ؙઍɣऄՅෛ͵ڵû΢לઃͰಫ˵Ы؝ߟωࣗȮ઱¥णѼԉɝԷ“ūփནƊɝҵ߭Hևױ࠿झಫ஁̨˹̇ͫ࠯bձ޿¾૟՞э˥ধֻۧυӛ֝Ԫဋঁ૫ȟ୏є̛ࣚˇ኶ޞզᕠ۶ဌࢂ໤୦፺ྴඦلᘼ੊ᇎπ൪­౮ۢ໖›ພǘ'], - ['@@ም΅๝Ȝ׆ɐԕˎეǚͮ̿ொȍ'], - ['@@᪖صᑟͥұأ݅ǁЍۡৣᅵԢނ̘ఽʐ࿕܂ٷڄᘎ̜Ң̋஦\\͊˼௾ˆ੖̋'], - ['@@࿮̏ఝҍ᝱ı៙ƖƫɴஹdँϬᣴɼ௞ȫࡘʤᑺȽ'] - ], - 'encodeOffsets': [ - [[ - 28842, - 72894 - ]], - [[ - 25318, - 79723 - ]], - [[ - 18690, - 81615 - ]], - [[ - 26059, - 82338 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'NPL', - 'properties': { 'name': 'Nepal' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÝαŌՕĩͩ۩aয়Ȟ٭ĂӛђଷŊયҼ߉Ю߿͆͜޼ՒϠΒȪڪʳࡔշҾť˰ЕٶǓۀσौȕঔć'], - 'encodeOffsets': [[ - 90236, - 28546 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NZL', - 'properties': { 'name': 'New Zealand' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Ȓ΋װ;ʐΡBΝ̹ϳչإїͷ̴З٭Yܗ̓ɣջӋࡗڇϓнʇޝlխˢࣱÐƗ̰Ҍذ੐ࠦժǀ׾͌ܜѰԎѦώظ͈ɆŰҶלϴȆΧ'], - ['@@،ࢫlָϜɯŲًڰ˛֨ãӒ͎юĭȯݗʯӫٛjɡʭþαūƻͅҏзֹ٭ͯƟɘΕŨӞ۔˟ҨࣛͲz̦؈̌ƚ٨Ÿլͻ֜vƪБΎڋݔΗת̸àҚұٺɑʂݡ'] - ], - 'encodeOffsets': [ - [[ - 177173, - -41901 - ]], - [[ - 178803, - -37024 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'OMN', - 'properties': { 'name': 'Oman' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ֹ̻ϟªǩȧƉэļ֗ÿĻϯFԽ̻ćХȓǯԹP͡ɃJͻПɷҩĂ֗˳ϱ³˝טٿ൴ᠾ࠾֖၂ϩתv͸ʔΐFΆϞǒƩŞèմіHϖֵҸ̧؞ŋӼƳϜӕɨ˧̞ŃCȉ̩ԃƅɽΟˏ'], - ['@@ʼnƳDž˺ʔ˺ľñā΍'] - ], - 'encodeOffsets': [ - [[ - 60274, - 21621 - ]], - [[ - 57745, - 26518 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'PAK', - 'properties': { 'name': 'Pakistan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@تϻʞ٥൨ͻ߹۷ऩůౣȲЫα̖݁̈֩ڴгܑӟ`׳ࠃࡇՃ࡝࢝ࢡউÚऑࢡռϗĪ٧ҾэǘܝᇛD֓֕؛Ɇʣ؀٭٘໻ǁിeஃŝ̈́ঊொѢéϰГƌw݊ߥφͷԔеѶඨѕࡀŲԈŅǞȂגóદĈ܎ҶӈشCĠɼٞŌ̴ý͢ʀ±ԌΦԖ՘Ɇͥ֊ߜɴ̢•͒мΜĩмȣΤӬμࣘǮ८ĮѐƺӨĦ'], - 'encodeOffsets': [[ - 76962, - 38025 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PAN', - 'properties': { 'name': 'Panama' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˫ʎǵҒȺɢɅÎƿˤлɸοÁǝ̇ͻɁǽ‡ĉǩВҗɯŅŧŭϷ©ơԈŋƛˡ¸ǝ͸·ÈɓİέCǻĩŶªǖìǠƲŲIJǩŲK͸͘ö̠̝iDZͲ›ĀæɴȵЮÔΨɄԜǞ˺ʤҬ·‹ĉҶ…ώơ˜ʧ̈́ɵĹūȜӵǁʟ˓ÒŅС'], - 'encodeOffsets': [[ - -79750, - 7398 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PER', - 'properties': { 'name': 'Peru' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɥљћɋࡅӘñΈရࡊທࣾ٫԰ΏۜƐʎ܅ાࠣ༄ߍီ΅Ϥ˃ؤٷպױͼ˖ϒПߢʼךڢՎIJΓʇȧx̭ΎâͼĝΚщӆΌDŽ֤ԦܶৠͨࣸࢠʾմŝٔɢĂ֒ЉˎЅϴɏӶࢣضĿҨɞ̤ƣԎð٠Ͻթࡣʤoрҁݳ œųۍlj॥ֱÓϻɉ̇ČғԕʍBΡɛƵΔݳҲԝDZί֐µ͆҃ݐuېӸÇ౧ϢĩӄƠܪടǷ˵£ןg܍͟пƮ̵ȕ˯β۹Ջ࣡'], - 'encodeOffsets': [[ - -71260, - -18001 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PHL', - 'properties': { 'name': 'Philippines' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Đ֏ºҽ˹ޑ̫ࡨϽэˎإʉϿ঩Ӧɿ؊ʰЎՑЈˁΑЃثҵƑʖ͢۾ՌʀҜ̈́̔ϝٔɰƎϒרv·ٰڼЋêхÐ̱'], - ['@@̟ˡˁՍ˃ʝԫ׈ǦɤɂɾĢԸҨ¸Ɖ֣جߺāߡ'], - ['@@ૣߕЬט؈԰Ԏ׊Ѱ࠲Ʈۅևҧѳֿ'], - ['@@Ԏʹ՘BgΗϳΣՕʧ‡ϸÒєŽА'], - ['@@ʀभ٫ɞj˭ȶԯЍȋ•עʧªƁԘӶãY͈ԣٜ߮mɴ̻'], - ['@@ɟܩέоѓ٘ܚ‰̡̈'], - ['@@ԮʉʶɖüɇƍΑ˼׻ɛۥӷ˥ƁڳȊڝѾġϊIJਾүăҙ˜ȫēϯٻЮ̵Ѵɍ̯՗ԊރůлȆ¨ΎˀɊʣȘŇ̡бӚűμߨͺˡĔೄ˜ހԘA'] - ], - 'encodeOffsets': [ - [[ - 129410, - 8617 - ]], - [[ - 126959, - 10526 - ]], - [[ - 121349, - 9540 - ]], - [[ - 124809, - 12178 - ]], - [[ - 128515, - 12455 - ]], - [[ - 124445, - 13384 - ]], - [[ - 124234, - 18949 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'PNG', - 'properties': { 'name': 'Papua New Guinea' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ɽčε͔ρՔǷ٘ŜĆĜʡʬȏРՑЈ˵ŝɽ'], - ['@@ѯçƃɽҟȱћȟѽBۏʔӑɺêʺݬũҠàŶЖŦrĆѽӐÜʂ˼Ҹ̚ġӸԌfǜƏgү˯ԡ'], - ['@@ݤտղࢻӖ„‘ω٬ƛʥǁࣀΝġʏ֋ÏȷɔܟĦࡕŴٷ՚ӉҦѧ݀ભπ܇ʇԡˣńإڇ˿һƖࢅ–aᩒaᩒภ׃༊ӓׄїҴхŸӵඔԱȲѽޛěȄ֕'], - ['@@ʿɡǁӸȝ͘ϝ˞ӍΪ؇ʚɺȮҒɻ˸ȁΜȫʹΛ͊ˏĶѧ'] - ], - 'encodeOffsets': [ - [[ - 159622, - -6983 - ]], - [[ - 155631, - -5609 - ]], - [[ - 150725, - -7565 - ]], - [[ - 156816, - -4607 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'POL', - 'properties': { 'name': 'Poland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@·՜à̂ȹ̧҆̚ɺɤȝђָʘ಼ϴ੒˴࠼ƙÚȱ߸Yਚħ໶^њěȬʵšωɸ͋KͯԋǡʸϳfϏцܻěɽзįރۥɒϗǿ¶ߙ͔؁šЇĒӹǵч̖Ήŕ³¼ϭаر¼ăˀֻĦűɑҗǨÀɴػòЉ˔'], - 'encodeOffsets': [[ - 15378, - 52334 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PRI', - 'properties': { 'name': 'Puerto Rico' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@јõưǕɋɃمLӫ‡·άŢŬیK'], - 'encodeOffsets': [[ - -67873, - 18960 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PRK', - 'properties': { 'name': 'North Korea' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Şƥ͉ºη˵ʣ˷Ž׽ѣȅƫƧ̓ʝ֓ƏηɥηįġͰƋӈσŧȭΧÇץ¡͝ϛϑˆÁùСdžĵƿʙé‡ǀɑüɥƆɰφȤİõƶɆҒÅƎөĠЇɤۄբऒҌ־׮Ўˁܪ‹ſѺಚβͰҼժӹ'], - 'encodeOffsets': [[ - 133776, - 43413 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PRT', - 'properties': { 'name': 'Portugal' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̦Ɉ΄ŬɂЫӺDƞłӪ‡ɼуϱɩYٽƍū‘Їγçʹԋɵտ̄ʡřɫ̵̿ê˥ͷɓѷŠџġŸڂÿԬϓþȩ͈äռͰ̨ÒͼǪԎkΤǙ̠™˲'], - 'encodeOffsets': [[ - -9251, - 42886 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PRY', - 'properties': { 'name': 'Paraguay' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ͦ৖tҌЖ݌าʔޮ]޴їbʵʞҳÇଛࢲLJ΄ǐ֦ɩǀʣþޓİ͓̼›̀ƌ̢ƳAҥŕӻǑӛƍݏށ١ړƇऻŸࡑɮࠢ౨ťψࡽ͢ਅبۉŸ໵ൌ'], - 'encodeOffsets': [[ - -64189, - -22783 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'QAT', - 'properties': { 'name': 'Qatar' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÇؔɨѲɰĜʬˁdӯǽӳɵÑʫǖ'], - 'encodeOffsets': [[ - 52030, - 25349 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ROU', - 'properties': { 'name': 'Romania' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@δǶԴġՠGϸȳ˺źبĄɄȠΠ@ʰćʺʟˊΟӞԁ€ρėΩưϥϒƹЂƊϠƟpɏПǹʯĀɻ৥ӳĖ̪ؑফțзɋ௽¬٥ƀ͙ÕʍΊƵƦȚƘȷŀ˃ȋөʔßΌԟȢĥˌҕͤڪǂԖ֮Њ֬ԢǮ'], - 'encodeOffsets': [[ - 23256, - 49032 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'RUS', - 'properties': { 'name': 'Russia' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ࡌ๫కˤԫ்ࠌࡳyוُԒսٱƻ۸Ĥࠊħ࣢Țٌš૴ӯࠜôରަϮͭϴϐŠɔ։̆ߵuࠟΎࡑ'], - ['@@໵]ਙĨȒτ୊˚ࢢƧψƃęɱäɉ'], - ['@@֦Ƚțؐᗸű࿨޻࠭λ൛ēsࠑͳǩ޽~ٗ̊ૣʖȉθ࡟Ǝॗʼnҗ̎Ǽ̸৓ȥϚЃӉΣ@„Ꮪٛᔺ࠳ïԷ'], - ['@@ः©ƭˌੲΖ@ַ'], - ['@@ળ»@ָň–܈E௒ʉïŗࡽȩ'], - ['@@ౡMႣĤƧ¬ߘͪੀþஞ͏ĸə'], - ['@@ॿͩഉø༛ͨȪ˖༨ųᑔɗ'], - ['@@ډرᶽzඃȣမղҎ׀૎ǂᕞ™ᴬѽ'], - ['@@ӹóᩣŊɟώູɦūҒ࡮Ƕ…Ҟသܒޙĺ፨݆ɩϢሤѺ᪪բ᫠ǀ෴̸࿐Ŋאͩ֟ʻᲗз᢭Џᤙߝఫࠍ೉߱Ǡۥྎۏ'], - ['@@ɨгސȲឤYቈЧڬ̿ȽѧङʝᕅүفʟਬşఖɃݴDŽєաτɔഊƂ᧪ƑȴϽ↲ů´ٜᄼƥഄLബѷϮ՝ӹΙੌڋ೔Ϳ߸ࢦഖϙ෢ɦྼʵؤʀൖş؅ޮૐζ䢀ձܐӿᔲٛ₎DŽာƑ۪΍Ĺؙਜʇ૴Ǥ๰vཚǑཪĢะݛਪˎڷ՞ϐώᧆɻფºᝂБ୲ν@”MKઇσઝÖݶҁԄەϲɧĮΏɑɝ༧Ǿ᚝مݛĭ౽ן௛ԧ̱ϣய׊ᔗڇϣ̸ߵΫ૱Ř˓ց৙߽Šͻड़ȋő௣ޭ‹Ϋ۱Δα฽ѕ̅ॡభȳʥ࡟ே޳ׂ̳έ௬ҵለИ୘܀ԆªϾರȊຊ੒คࡺຢڢڮஆ৷ëԍۗᒉइۍਖᓧ˷ᑃටۚԧሙɕಝēÔ؊ಯŶ਩ЭᢵƠ᪏ʟᨩ࿛ủጝ೚ŁаՃࠄȅ՞оईÃௌऍ†܍ځ࠽ë্ϛഉ్௓˯ׇଙ঑ଇॻթӹ૩ӱՉYՇФૻؙſ˩ŝƦKѐіxŦ঴ɛܚܞ̒৶Ʃ֢ࠈ˾ऄ͚̮Ѵݲ൷ʛܯͧ౧Dͻ߄হװหˎ̵ࠖ̉Ԫ̿βԯࡐ̲݇షʢ૛uਯƱۛлҤȥXҩұˑݷࢻRσஅՍ৙̈́োéѯˮԋĞ௷ףેƑޛȻੑƌޫSԙіࠕИࡅŎ੝ŋߏƹ஛ΜLJـধɎށİवΎࢉࢉ΀ӵࠇב௏ɂ࠻Š֗Ͼ࢙^ܳʴ౫Ѓྃܣࢭơ͡çѽԤઍőΧΦחnjЙӠҩưிɍୃӜ҃ѯሟᒒੵٮ̮˂ᑋߍ߭³êҞઅ˺࢙ȱ˃ࢊມǺݯΑᑅ̳Чȹḭ̇ϫ˻؆ֹ߭ɓǀɭ߭ХസֿɁЉ୻˜ʓʟ੹Ѧ೯iࢻΟহͼᇡ׊ಽsჃࣳĿؗࡹӤڡउʖǡӝُ܊֫ذx՚֗ďѝѐƋϥӽ߿Ƒ࠳ࢁކߕĉ֣ࣼফԇ͹ƝɇωÌֿԚɿ†ՅȚʳΈ޵ǮԙƁƥƼଥЖఅƌ܃ƞĹıੱ܂य़̈́ܩӴؒƈۤ۰ҹͪఌ΄uȀݯƉ‚ώѠɼ߼ÖƄ˪ȅҪ΀ѰWʚఉ˚ӭUԯЀ١ƃ੩̐lǒ̗θڟ¤éʼɀǞ՝ӈࢋąʭ¦Ƀȑ̽”ȷ՞ȟ˨NJĀڴ‡͞Ȁʍɢ֥ƪ¼Ʋ΁ƴՃվǸɨĉЂࠑȨѱijšȼࢭɂˑӸíТЙȖάˊʝ޶װӞųƤक़ҬࢡЎᅢ੶ޮӠ͂єగּΆնݳش֢ܜ঍ग़ޢي౿֔ŬךڶüොͶࢀ̈൦ԕᘨȧṺो٤ЋÆ֓टѳ൏ɡ⏷ٔ؟Ńൌ؛ÂϵÆ࡫ઌʯڂɓňРԑΰ՘͈᎖Թ۾Ȳ֣؜ዦࠖޢµ޸̋Ӫ׀۫ԄЪԊءԶᚠˑӔҹ੡ĻNҳڌ˽ಜǼȶ՚ჶАᰪܞي£ࠣԙਬĕ׼˼༾xఢΐफ़ԏॖ֌ࢡӢѪˤ២ʫ୒ʿᴾॣ֚ѰࡡѺ{ǴৣĈˢЌ҅ټ}ː༄ݾրކزǒᕮɛǬұߕڽԺˋ˒חȏଵऒԧέ֕࿫஝०ŭ̢ͮऎɎɞжܮЎөӌϼֈࣿêȫҲڢࡈણۆຒ֦șװмnѴүͧ߷࣐Ƶϥ؄ඤͦლ¬༈ӏݛ۪ċࣆศǞ፾™ᆘŌہѮংւॲx࿎иᕠŐ˪ɲᕂþیȋሴҀ໲aɶδߤΨጤΈ෸˗ଥȷበŹ'], - ['@@ⵙ͕ໞીےĦقÃᒈӋʟͿ'], - ['@@૽ōݱÛśƏঙƑ࣫ȦӐʾል~࿞ƶ౨XǢɧӘȬߊƐఞǿ͗ŷ'], - ['@@ᆳĿᚉʎඅ͎٣׾଩ǔᔆָᆎȎ࿌чኬ߻ȹݯ'] - ], - 'encodeOffsets': [ - [[ - 147096, - 51966 - ]], - [[ - 23277, - 55632 - ]], - [[ - -179214, - 68183 - ]], - [[ - 184320, - 72533 - ]], - [[ - -182982, - 72595 - ]], - [[ - 147051, - 74970 - ]], - [[ - 154350, - 76887 - ]], - [[ - 148569, - 77377 - ]], - [[ - 58917, - 72418 - ]], - [[ - 109538, - 78822 - ]], - [[ - 107598, - 80187 - ]], - [[ - 52364, - 82481 - ]], - [[ - 102339, - 80775 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'RWA', - 'properties': { 'name': 'Rwanda' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ͬӃµӵʏŁѿÆʱӍԛàþҠŘތԄʎɺȰďԈʸ'], - 'encodeOffsets': [[ - 31150, - -1161 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ESH', - 'properties': { 'name': 'Western Sahara' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@oҊŸ@@ÉeNjEౝ᪁ª‚ᒷ޿÷ȳћDŽ்ᾓNǽ˫˜΢bCቆäĶ̢ΆϘˤୌୠ࣢Ђ੖ˀÖ˜ټۺĜ̦ʼnϢ@˔ȒԲ‚'], - 'encodeOffsets': [[ - -9005, - 27772 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SAU', - 'properties': { 'name': 'Saudi Arabia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ʼnΪʩʨÝͲѡ̞҃۴ʁۆׇ׀ϑƐ֋ߠīא–ӾӕञϿ͠ґǨˡӖ°ȎɹѦʕȊ͝زԟڴѓ־лIžҦœ̌ļͲनƅζʶȪ̢ٚŚƒˮˤƜ࠷ࡀ၆фdžŴৢɩబיᛎၕ༠ãݠąȾЏתv͠ܥаȓƠִ̏Λ¼΍ċ˩ł˯ʎɽŐ˟ŲȵʬǕɶÒdž͍Žș࡙͐ᡌщǞDzϪש֕၁ᠽ࠽ᝑ͑޷ϙ׻ࢥϹƕɁˬ͏§߻ĎƷČॹmɫùΉɔɝЭĒΟρˋ'], - 'encodeOffsets': [[ - 43807, - 16741 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SDN', - 'properties': { 'name': 'Sudan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@śhdмĵ̀џͨĵ؄ĶبϳÌÍȇԍ©Ȭʕðԍңңл؅џđ۹Ӫͅǥđʓџǃ…ǥ࠵@řǦ؃†̡ƝɳîѝӬƟɲ؃ŗɱϵɏݣ˿ǁʳğå ̅ʎÃʼƌΔE΄ӛՀĩάZȰ̱ʜUӦǭ͖̍µĎ̰ɒΖħΐˢʴǫȞɞ԰ϨئܦÏ¥ ZΚॲH@း@Ὂ@ῼ@˔ࠗȁƳŪࡻ্̰͌ȷҠ̳ыӑأƏ˅ʳĉ֑α௿ĚͳƅܟͿࠟԓзέٛč΃Љɽʝ࢟Dij'], - 'encodeOffsets': [[ - 34779, - 9692 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SDS', - 'properties': { 'name': 'South Sudan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Xٽűʯѿq˷ӏԨÑюХƨͳϦșӼࣳ֫օԫԇԫϭסFگȟՕȊ΋ɭ݉֐ȥάҵDZϱÆɣƕϗĸԗۚƉˊعͪɅԌΕζ֟ѬS˘ҡͼ֯͠ʴĠ̀ǂɐݤɲ϶؄ŘƠɱўӫɴí̢ƞ؄…Śǥ࠶@†ǦѠDŽĒʔ͆ǦۺөѠĒм؆ҤҤïԎȫʖԎªÎȈϴËĵاĶ؃ѠͧĶ˿cлŜg'], - 'encodeOffsets': [[ - 34779, - 9692 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SEN', - 'properties': { 'name': 'Senegal' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@΍ٺн̚φDŽРמȦќ˾ːкïШǾҶVДʙ֎ɝԘأֈֽžԹǔӓ̾ɿî͗ʽŧ³қâÙģȃk׿ȲЛV༇–ɥħ˥‚ѻƋƏ٢ވkȬŞƮR̸ȘήǯκcζȌǝʐˡƙʻJͧȸˉ_ȍȥࣵy'], - 'encodeOffsets': [[ - -17114, - 13922 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SLB', - 'properties': { 'name': 'Solomon Islands' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ɾ˿חN͉ԬԈȯǜ‰'], - ['@@͝mԧĎǫżÀͮֈƁ˜ǭƎə'], - ['@@ųƹحܰǫԈ˺@̠ڥʹЗ'], - ['@@–ǛڅΦҟ̠̿˪ŰĐϮȫېϭȢˉ'], - ['@@Ǘ³οȒ·Ί¨ƖԈΡͰ˛'] - ], - 'encodeOffsets': [ - [[ - 166010, - -10734 - ]], - [[ - 164713, - -10109 - ]], - [[ - 165561, - -9830 - ]], - [[ - 163713, - -8537 - ]], - [[ - 161320, - -7524 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'SLE', - 'properties': { 'name': 'Sierra Leone' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɧØ؁ͺѩ҈Ƨ̬Ĺت҆τĬɺƞǸɶpȜǂڦCɺ̛ǼˁʓƈɗṶɴ´ϹϹϛҗ«ʓȩˏ'], - 'encodeOffsets': [[ - -11713, - 6949 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SLV', - 'properties': { 'name': 'El Salvador' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ġȡӡ^̡Ą΍ǘұÀʃǶ~Ů˾ɄǀĢ«IJȠ¾ʜëǸǙʪƇŒœτĴǤÑŘĝÏͳ'], - 'encodeOffsets': [[ - -89900, - 13706 - ]] - } - }, - { - 'type': 'Feature', - 'id': '-99', - 'properties': { 'name': 'Somaliland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ϛԩד۫۹Mᩧা͍̜̳К̳ҨǾ̖̲҈˚ƹǒΏϜΗкGߊɌࣴĴ݌ʼиÆ̚ƶӎˆKaE΋Aࡑ@ѫ'], - 'encodeOffsets': [[ - 50113, - 9679 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SOM', - 'properties': { 'name': 'Somalia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ѼĎЊ˾͈FpɵýӧHѳǯ̣ʁࣥЙयԱ੷ܝ௷ܓवধ଩ࡁڹష࠯޳ٕँৱȗѷȍȣӽۚWᵤܾ॒ɰˆբfݠפબšᛜᡄה۬ϜԪ@ѬBࡒFΌLbːhϰŰ'], - 'encodeOffsets': [[ - 50923, - 11857 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SRB', - 'properties': { 'name': 'Republic of Serbia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ԡȡà΋Ӫʓ˄ȌȸĿșƗƶƥȷȏø̫Тγ͋ʿƗˋĞijƑšϳa˹µƒØĴĴĦȴšKǍƼƑ ŋƆƽÀšŠƯ±ś˧ȩÑèð͋Ǩ˟ĜūŜɟƠȢšŬЄЛ͔ɀτ̥Ë͔́ˉʈȱ͘٢ɚԾ™ҖͣĦˋ'], - 'encodeOffsets': [[ - 21376, - 46507 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SUR', - 'properties': { 'name': 'Suriname' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@৔ǙĞưڶÔࣚɥѩܟâֹͤӽƥίóϩɉΛӓDzЇđ͹öčʏƘǗ÷ǡҙèԡܴōӄˏBωؐƺѠ¯ȤԜɖƈݲ'], - 'encodeOffsets': [[ - -58518, - 6117 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SVK', - 'properties': { 'name': 'Slovakia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@´»ΊŖш̕ӺǶЈđ؂Ţߚ͓ɷɓǏ͹dzđ࣑ʮ˟»ȟȡЁĿěÄХŽͭ}ãǙ۷Ļ̱ĠёɌċ̆äńŢȂόa˺ĔxþLj¢ÆȒȖ˜žưʢD'], - 'encodeOffsets': [[ - 19306, - 50685 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SVN', - 'properties': { 'name': 'Slovenia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ۜÝъȐܾtLjƘƘUǎ˳ڝɟć͹̇đHɻͣh˷ƎƷƙב†ȈúȫΨĞа'], - 'encodeOffsets': [[ - 14138, - 47626 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SWE', - 'properties': { 'name': 'Sweden' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ࠁוƀԥ೹ڭྱܡؓஃײףߦүޗॅ࢑ȝ͍තӋ޿৳ĆӅڗঃˉߐ۳॔ٓஐφӜּۨ˦ন՝ю½ૠղ߀࠰ä̧ͬ˺ಬஂࡀञֈײ߮GɞҶཔƉŬքԸ”૪Щ಼ֱv಑˴͛ฃʃ'], - 'encodeOffsets': [[ - 22716, - 67302 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SWZ', - 'properties': { 'name': 'Swaziland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ǡύӭěԅҖS̄ɰ̀ĂʔʐÒшƵŰϕðω'], - 'encodeOffsets': [[ - 32842, - -27375 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SYR', - 'properties': { 'name': 'Syria' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@࿩ࣅऩͬgNŖŶ_ΈȸҠҜ̈́Əͤϗ¨ÿٞȶΌɤȀɤȀ°Ҹ˞Ǐऎɺ҂ƿۖFॴ̀Ґaक़žїԽҡȹĂؗͅ৫ᇵ࢓'], - 'encodeOffsets': [[ - 39724, - 34180 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TCD', - 'properties': { 'name': 'Chad' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĎЄաnDզΓ̶δ૊ੴߌ¬ન͖ၼǼΰΓ˾_ˌ̽ɔȷರࡔҠ…ྑ…ྏ¦ ܥÐϧإɝԯǬȝˡʳĨΏɑΕč̯̎¶Ǯ͕Vӥ̲ʛYȯՏƛэͽ؉ࣹ߅ϳ߹¾ʁûĊ̏ѫ̋Σ͟੓͏ȽȐƓhƹɍۛÙƀɪ˅ׄşΐλƜӷӪǼІϦċʂÐҸSқކŒ֐É֐ͭՠ'], - 'encodeOffsets': [[ - 14844, - 13169 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TGO', - 'properties': { 'name': 'Togo' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ڱdzȇ̎ɡՔãкȆݴɁ̬ăڎD؎ΕѠÖˀ݂kŅѵʲʝ̈̋ŽЭǜǥኝȺׅ'], - 'encodeOffsets': [[ - 1911, - 6290 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'THA', - 'properties': { 'name': 'Thailand' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ݭϬܗeŬڈ݉Káऋґ௯˙ݏÌ؋ն΀ދưܭҶӓԚĭѤѧ˝·ևĵßќۇςƣƭͧ͒ƝжҁӄПЌƏӳǃҲĠԾʚ߬ТࡸҤ޶͟ތ`϶ĩҸ֕ښȩф̄ƺ̮ܶ·ֆՓؘН݆ΠƴϦࣦצœӬθӔȘθʷ´ԍ֨ȷࢭpݫࢰԆʤƧӰzǜَ̊ÍٖڽÀࠥںܷ›܅˙ϛ޿ŦગDž՟ۧȤ১'], - 'encodeOffsets': [[ - 105047, - 12480 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TJK', - 'properties': { 'name': 'Tajikistan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̭ʷࣳƖāӛ࣬Þਢ˗འŶɈާˠĐԜȓ‡͛ŴӍࡿBׁØԻϕύĉ̉ǯͩˠþ۸ʩ¢ĞʲғȐα̇ė͹Żūԇj˕ϩ˯nj؋ˑʱĺӀࡘǹض؟ȨɔφۮŸЌҬˌբ૲ȜǩϵŤɹΎv'], - 'encodeOffsets': [[ - 72719, - 41211 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TKM', - 'properties': { 'name': 'Turkmenistan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ñۼطŠॣݔڣĠगюׯþσƽ֙|ׯӓ݇NjƻרŪ࢞ٽ˶Ɏֺ֏¸Ȇ۾ߊȵ݈ˎؓԎʉӔڱɋď؛ʿհψ˨ॖǪ֨ɻךڅњ¤ॆ\\Əцܖ̂۾ӦଆѹĜڡ͐ǣࣦžˮƳаࡽ०ׇոЃ࢞Щ૤Ϋwԥʩ€Ѕɤſ̙۽NjǙڥӁʭڏŵǫϟهŏࡩ͈'], - 'encodeOffsets': [[ - 62680, - 36506 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TLS', - 'properties': { 'name': 'East Timor' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@IJȤܢȌז†ˀŀ͆Ľ̯ɫ࢕ο۳ʋeʬďǔ'], - 'encodeOffsets': [[ - 127968, - -9106 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TTO', - 'properties': { 'name': 'Trinidad and Tobago' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ӚŊǮ‡‘صۭġƯúʒɲiͪ'], - 'encodeOffsets': [[ - -63160, - 11019 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TUN', - 'properties': { 'name': 'Tunisia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ΩພԭͺQȰۉԄóنԮҶȢۚƃߠǠќࣶͺךĵ}ы܊̲ÒljпЫMϱ̆ȽōܫփхDŽқѤaɄЍ͊ſ³٥Хʋʵˏֽ͓ĘΑïΟЧț'], - 'encodeOffsets': [[ - 9710, - 31035 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TUR', - 'properties': { 'name': 'Turkey' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@஺͗ঐżܤõলѬࣆ¢ߴЭƜ̑ăУزȻͨʕֻʇˀ५ǏʻҠڧЕƙ̏Ɋ঍ňίŽॗŽҏbॳ̿ەEҁǀऍɹ˝ǐ¯ҷɣǿɣǿ̱Ϡ͈͂ԟí۱ȖֿәౣĥڹҊࣟ†ȗΑׇij߻҄ࣻeӽ࠶ؗҰЦٸՓВठߨಒ’Μྀٔŏ৞հ঒ʄർlุף'], - ['@@۫ҏ˃Ϻ\\ǦȦĦʺՂХɞࡦ˄ܤőĴ͓ܼ˓Ƶȵি±Ωʷ'] - ], - 'encodeOffsets': [ - [[ - 37800, - 42328 - ]], - [[ - 27845, - 41668 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'TZA', - 'properties': { 'name': 'United Republic of Tanzania' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƚġᵂႋÌӣ஼࠿ϱਙ¸Ӊՠ̩~ɓɳԓ¶ʭÇГ̌Ճΐ̰ࠡǿڝӣࣿ͛ԋb̙ʥבsɕŃঢ়ʂكåɽଢ˵ϺǛɶࠗƾӉʨՕƘͯƘΗɈґ੖ӣҺǗӤČѨƯޞΎ ̨̦͜ѬȺǮS˘ǷȐ·ͨʐł¶Ӷͫӄ̎Ķऄ[ႎà'], - 'encodeOffsets': [[ - 34718, - -972 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'UGA', - 'properties': { 'name': 'Uganda' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ः\\̍ĵԇʷȯĐPوȜ͎²ڬǰϸ͎Ѭ͔ɠ˒̘͵Ŗ¼চΌɮՖȉڰȠעEԬϮЊ׍İсτ९̧ؓЯ֋ʉͽTࢹႍß'], - 'encodeOffsets': [[ - 32631, - -1052 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'UKR', - 'properties': { 'name': 'Ukraine' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̾“ɄȒʮ¥ࢌĆ՞Ӈȿǝêʻڠ£̘ηkǑ੪̏٢Ƅ԰ϿӮVఊ˙XʙͿѯȆҩƃ˩߻Õџɻύڡã֑˕޽«ܣ̻¸ԹЪȭࡨ¼Ǐ̛ँơଛӟұǠȄЂࣽʘƨLjߪ˪ʑȔಯɆË̼ީĻ̷ҧٱةϟƠЁƉϑƺɂĞƦ˾ɲˎÑƮǬäĊśӸ{ɞØƽĎÐŲ̉ɈŧΘ̩ƐÒ˶ϝɦΉŽأʾ֑ĉȧŭΟ@Ƀȟاă˹ŹϷȴ՟HԳĢγǵÍɤұɮǐͺɸɔȀµɑϘބۦиİĜɾхܼДҢɪٲnࡖßबȫڎi͂ŧ̀Ʀɚȝݸ¢ͮąÄцʶȂܞº'], - 'encodeOffsets': [[ - 32549, - 53353 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'URY', - 'properties': { 'name': 'Uruguay' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ղĚࡆٯ̺|ࡺ՟ڈҫӠֱχЉɸӇεՇॉұاǚғěޥΰ֫ԟҬÞլǾȈS࠸ɤࡺȾڦ'], - 'encodeOffsets': [[ - -59008, - -30941 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'USA', - 'properties': { 'name': 'United States of America' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ũƕȽŤ|ɾƓ̨¦ĤƤƎÍǔ¸þÜe͐ƙƬñƌőɊ̍q¯͟ǵˏſ'], - ['@@˭ÑƟǮīèQÀĈî̘āɘŹëĵ'], - ['@@ĝ҉|Úĸа•'], - ['@@­µÓŻˆŃȒ’ɤŚêÃʐ˥'], - ['@@ıĉ˱ƴªÖŸĈȘijȝ'], - ['@@Ƭңʼƛז½࡬ƅࠂʹڼŊਖɓ˞Tݨʄ߂̧ࠒ͗ں˩ٶˏĈəȢĉ½ĉɦǎĔ¦ȣǜƅɴ@ŬĹĽƫ࢖ЁǶށǚܳʗӹЁҥȁ̍mēĦť˸Ɓɂ@ঊ҆ࡾƀસмfĐ÷ʰƉǒϜƆࠜHޘAˎ͞ŀàࢶ؄ϜƸ౦N໾BĎȺː¦Φž̖Ϣʲٺٚي˨ə֜ƜώʏAଧռӅƢ˝࣋Пࡷ̃ࢱʝѻӿƛȋSѽˤѽΒsė̬ʦȇãʇ֥ƋЗhةƥλ¥ӥ¥۫ʏఀǂʠǃ୳ʥ՗C|ĺʭɷʚǹ׽ؑ٧×Ɏȁª˟ɀǪҍȼƭ^ͅˏ͛ҿڡûʺֲѕ͎įۦljεǴՑևƀׂ˓˜ߛʊÍĖ̃ŠࡁՕدࢇʝցӱнÁэ̱ţ˭इձӁЍЅӽŻׯƪ׍ˬܗώשLεЊঅ֥—͛ȿԡʣŃЯĺƁς͋ȖѻܢϹٞű͢Ǥ֐ɽҦٻ۲͟źࡑϡƭ¦СϼՃȺोŁݗĤٙÍΏſƲɟaͽǴǓLJō̵Ů́ǃ؍€طѺܻĿ؏ȚԹÏۻȝއح࠳γҝБȕϗUׅ¨ЕDŽ˹͝{׭ȂٽʺɽЄȁטӷӐ̃ӰуֺףͲۉgՉڑۣʦѡʪȽҦ˧Ѯӿτїˈ̩̖ป@C΋ڗ@ဩOቿפ౓ТĀǒ੩ĝॕÝƙіխӚϻĴğʌһ¦̝ɪޭĊɉƌĹҢࠁࡊ۩ୠˆȚχˤٯ۴řۆ҃ҞȀۢ…ܜˍ٢͠ߊĸނĺނƱૼˇܘʓ϶ĸǐ௒˷҂ߋȺɜƇې˷ێᛸ@᠂@ࠜ@ᢢ@៚@ᡀ@ᡄ@᭰@ᮞBაAF͔˴J'], - ['@@࠽͋ѕɐŽЀބ̘҆Ÿ֐ÉΤʻܫЍ'], - ['@@ԧŽսƾԛɮࠦƞښùĂ͑'], - ['@@԰DžԾĒڸɛ࠲őéĝُDZٕǾ͋Ʋݍµȧôº̈́'], - ['@@؊ϛώnjහ»¹ȕ౾ƛࡨČᄚ˅ྤā٨ʼn૦Ǝౢʧࣲŝ@@MᷱIⷍࠠ{ࠌɵהρݜցࠈҺࡈ˖Ҁѡ֤·ޒϙՂ׽࡮य़ේ՗xՋұЙҥ͂ݍˌʃܺએںҍߎ߯Ä೷rটʌ჉ࢎߩDŽ฽̜୑í࿻ϬৃΨटǯǦ׏ҫÁঁǫ݉˱झdzťӶϚࠚࣀʶɱɂੱҵֵ֑௅ױؚСߏ׿ࣗΗࡁʱȻωಽѡ˅ϿছΫֽÞ޷ɻ࡝˹ۧ˫෹ʉſƘऀϾࠔʸࣆҠਬĨвΈ୘ԊȈǚب̒ƢْђӸॹʫ˓Ơҕ̧շюɧ̝̽м࠿ͳԩBïԄƲ̮ե̚થLJ܁ЀַȬIӈ٩Ϊ͘ӘۆҸ̚њںÖ־ƇڴМ؎ï٘ʼƻϨҹưج͖ԩWࢻǽʯȃڏȄஏĥ௷ȬΛ͸੟Ӧ୾ΘመШ۔@ŕнᄢŽڽԶਕ͌ױр߫ΨଽˈҺѲ๰‚ਗ਼ϦȨФ࡬ЎࠊĪཪώޜÉಐ҄ౚǭ'] - ], - 'encodeOffsets': [ - [[ - -159275, - 19542 - ]], - [[ - -159825, - 21140 - ]], - [[ - -160520, - 21686 - ]], - [[ - -161436, - 21834 - ]], - [[ - -163169, - 22510 - ]], - [[ - -97093, - 50575 - ]], - [[ - -156678, - 58487 - ]], - [[ - -169553, - 61348 - ]], - [[ - -175853, - 65314 - ]], - [[ - -158789, - 72856 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'UZB', - 'properties': { 'name': 'Uzbekistan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@xԦૣά࢝ЪշЄ॥׈Яࡾ˭ƴࣥ͏ǤěڢଅѺ۽ӥܕ́Ɛхॅ[ᶾᓘӺƾïದ׻یͅߤݵঢŪ෸à৔ؗÙࡅЦMǢۍ੬ɲЉ̺Lπ׺૎הӖƺʠĉ۵խئ́ײȾ়ѷ੽؁ٕĊ΍uţɺǪ϶૱țˋաЋҫۭ ɓυؠȧǺصҿࡗهǰҳN'], - 'encodeOffsets': [[ - 68116, - 38260 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'VEN', - 'properties': { 'name': 'Venezuela' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@yȣӱĭ˜ϡYѭυӥ͆ڙδÆȌ؈ʻ̒§َਸ਼΀řІ̎ˆ̞ןל_մҵ˧ݮQ࣌ĔӖϕٞĻҼʾXɄਨ¼৖\\܉ʛ˼Їڦ×ِЯƆڧѬn͢ȣڕӱó̫˾̷ȽƽԫƉjϱɫɱّ֪Őʁ̭͍ऱ̽׿Žʏȣڛɀثņƿýϔɑ‘֝ŜՉ܆ï°ǭ׷ʅĭΣΉƏسȝNjʱٷÅҧѼʯ࠺ɟ̧̌Ȅюм…ȊʅʠǛ֒à׼Ȉ˰ƲҎ̓Ơӏĩ؁®ͻęסܢӥńઉăȧ̊ȷê‡ǬĴ̶áͺȃȂŅϮѡÈɸӮĺ׶ʔ̸͘ʌɈрդƖ'], - 'encodeOffsets': [[ - -73043, - 12059 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'VNM', - 'properties': { 'name': 'Vietnam' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@૭ܗ۫ߍȁ׍٠ࢭ޺ળނԱԞګϪ།ŕ๓۫փ१եۇ۫਷ޱ̧ՠʀ֬دӌܬ͸ࢦÔσԚප٨ļ৖ț֖ƶࡀɃצٍאՋ݌ۥ঴৓Ԋʊ̠՞ɘ͙ܺਙPϕކӭڐҊȴڢIࠈĬܒ҄К̿ސƵƃӛАͿࡎɓ'], - 'encodeOffsets': [[ - 110644, - 22070 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'VUT', - 'properties': { 'name': 'Vanuatu' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ˣō˭ςŒɤՆӗ'], - ['@@ƌڱɥŀǩ­ťɴi٢Дʵ'] - ], - 'encodeOffsets': [ - [[ - 171874, - -16861 - ]], - [[ - 171119, - -15292 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'PSE', - 'properties': { 'name': 'West Bank' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@ԣŭʙЃŕ˜ɜɌŚɁĦǬ̤֔ś'], - 'encodeOffsets': [[ - 36399, - 33172 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'YEM', - 'properties': { 'name': 'Yemen' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@؉ɥNjύo˹࠷Οഇϻݩףυ±ʥºӭΑ՗lj۷©ɃµǿɛəÕŻɇеlˍœ׉¨ɓӬzҠƍʜǑتʋΊǚ¤đϨĸNJ™ξςˌđΠɞЮΊɓɬúॺnƸċ߼č͐¨ɂ˫ϺƖ׼ࢦ޸Ϛᝒ͒ڀ൳˞ח'], - 'encodeOffsets': [[ - 54384, - 17051 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ZAF', - 'properties': { 'name': 'South Africa' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@ǏŧΣяɻћӇ׻ोࢁףԋًϣ࢛͙ѓ«ŇɷԛŰеDž࣫NJԙĹΏ¬ࡿͩܓƃԱͅϡoΣ̚˳fαϒŸśŏɦLӰ˙֞˔ƴs٤ս޼х܈AF׽તДдͪɯƘΫϘÓՈǃҌÖݤіB᷌ɨűӾߙûԟȈ̏׼ĒрϒЊʨȶДЦȚΠķВɽۂ£՞ȜĐʾƨДҚäʨ͂˪֔ݮغஒؤ΂UОƛ˲Ķ҂ċД஁ɔׯƫऩî̟чƶʏÑāʓɯ̿T̃ԆҕӮĜǢώْQȿؑıۥɑϛֵщ', - '@@νʶϻǟҕ҃͡Տـ٧̜ČƺˎҴƀƜ˜ʴФ̅ʪ' - ], - 'encodeOffsets': [ - [ - 32278, - -29959 - ], - [ - 29674, - -29650 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': 'ZMB', - 'properties': { 'name': 'Zambia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ІϏɊ܋ƝɩǙڻLjۡ˃̇ʭޭѶɓᢇۗĂׯٍřӍͯĹ̛̅ßܵۓҭխ˳o˗ĬऱĠƯÚOêͧȎկ¶ۋȑչԾ֣یžᦶშYí̂Ű̀ƧЀĪТėʺ̂q¶ʽϾrՖûˬϡڨŝԤˆȌѯ٠ş̴ΧΈҥ٠Që࣠ɱƳח͞ɧƬļࡈƬসȉψʈ՚ɤĶ଀ƚͦđΘɇͰƗՖƗӊʧ'], - 'encodeOffsets': [[ - 33546, - -9452 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ZWE', - 'properties': { 'name': 'Zimbabwe' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ҁČ˱ĵНƜ΁VՙϞٯźʙՒC̒έĞ्ई˃ӢǛƮ͓ڤलğ˘ī˴pҮծܶ۔̜àĺ̆ӎͰَŚÆ̻۬hϴǯǺȻАÓѦˑF੟Ǐ׋—عƊʝħӵŵùɛ؅ࢫ॓'], - 'encodeOffsets': [[ - 31941, - -22785 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/xiang_gang_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [{ - 'type': 'Feature', - 'id': '8100', - 'properties': { - 'name': '香港', - 'cp': [ - 114.2784, - 22.3057 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@™@}ScTʟ@cWuJÁ–]„l¦RLj¼BĄà˜ ŽH@TOHCTDDDHDNAT@PEHDDNJLX@BABALHFF@DKHADBBLDHHFBLEJB@GDBBFBADDB@@KFAFBBJJA@BB@@FFDDADFF@FADDDBJC@AFBD@@DDD@DAA@D@DB@DHHBFJBBFEHDFAN@DGDC@DLCBDDCFDlAFBFCBEF@BC@GDAB@FD@DZJ‚X´HĐMja@Ý`p_PCZ@lLnRGSDMFK|a\\Y}­ƒ§™Mën'], - 'encodeOffsets': [[ - 117078, - 22678 - ]] - } - }], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/xin_jiang_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '6528', - 'properties': { - 'name': '巴音郭楞蒙古自治州', - 'cp': [ - 88.1653, - 39.6002 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˜@ÈÒĊanwŎV„™Ȯ¦ͪŃĢ„ÜōȂçČéƐżLɆóĊ‚Ċaʊٱ¯²Um»ˌmÈ»V™ʠţWÑůǓ郙ôƑƒğÆīŎī@Ƿ™wô™˺LÞ¯ƨVǪуšĢ™ȘV°wĢŽôk°¯ƒ»΀@Ȃ»ĸŽǔ@΀ƒ͔ôôLɆó̐ÝɜLɲōͪƒƨóŤK@ī@IU܃ÛmȻţǩÝ˹ÛljťǓǫō@Ɲ²¯VçōKͿŁΗÇţ»ƽ™ɅƑLÓŏÅÅɱV@ÝĊU¯ÑĊĭÞLšÞŎJ±̃XȣˌōlƒUÈ¯ŎKÆƅ°™XÑܱnŗġV¯™óaUƒƧUōŁ„Ñ™±„çɲ¥lĉkğ°ƒk¥˜ƒnğţL¯ÝÝUƽĬ΁lķ°@„ō„XÿݯV»ŹLʉÞɱŤĉó°ÝJ™¦ÝKÝ£ţܙÈĉ@ƒxǩUċƑ@ky͓¹™`U²ĉVġ»ğa¯¥ť@ĉ™‚ó@ŻÛÛJƒw¯nó¯ġWƽʩķÝɛwĉĕݼȭÞķō@ó£Å΀ƑޝôȯÞ¯Ȱ™ÆōèĉXǼó@ݚnºƒĸ„ÞVƜĸȚUʶõˀĵĖɱŎÝĖVࢰӒѢ°˘nϚVˌ™ÈmɼĵŦW¤öʊõʔ@°ÈXVŽ™ènŎȁb¯ǫĉ„±Èğ`ġwōÔğ»mVVށ„Ý¥ó@™ĸķô@ššbX„ĶmV²²`Þ_˜˜ɴbͪȰ„ÞWĸÈŌmބškɲŽÈUÆ»n¼ǬVķĸźô¯°n¦ɄǜÈ'], - 'encodeOffsets': [[ - 86986, - 44534 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6532', - 'properties': { - 'name': '和田地区', - 'cp': [ - 81.167, - 36.9855 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƨ¥šèź٨ΘƑᩄbUࢯÞĕɲōĶĕöʿVʵķșUƛƒÝ„ķm¹Þ™ô@È»ĊWŎçšÅ°ȯȰÝ°óƒÆͿĉ»̽çnƒmɱĵƧºóU™™ƽ@±wóL¯°̻L±Æ¯Vƴķb¯VÇ¥ğ²Ǖbk¥ÇKlÅɱġ@у™óK@™ÇaÝXğţxĉČǫķê¯K@уaŹ„ƑKƒ¼¯Vóaónġw™óÞéU™ġbóĉğÇl¹™aUóğKW„Vůn›ÇŋƑ›ķnʇ»óxĉw™çǰÅw™°ċ„XŽ™„ób±ƒkÈÇJ—ƒm²ţx@ÒݎšŦǺn„ó¼n°ÇbUÒ±¼XĸĠłƽXmwĉºƒzÈÜmnxmx²ĖmҚbnŽƧêUºĊêÆVóĖóUĉ¼ÅĬƑ°ɆƆŻŚlłÞLš¼nĠƒ¼@ޙšÞź@ŎÞ°VšɄɴжϼِ͈Ŏ„'], - 'encodeOffsets': [[ - 81293, - 39764 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6522', - 'properties': { - 'name': '哈密地区', - 'cp': [ - 93.7793, - 42.9236 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@WnŐÆĶL̦ţºź„lxÅĸƽŚ‚Ʉ—Į˜è@ô²ÞUĔƐńV°¯ĸX¦Ɛm̐bƒ»Ɇa΀šĢ™ƐLˤ™ȘÑnƒІljĸÿn¯ĶaŎ¯ĢĕȘ¯°΂œla¯¥™ǕǔwˤӱlťО̻nŻmɃĕċţUw°WUóƨÅţķ°ýV±óÅǓéʉ¯ƽكéōǖȁÝƏůǕw˹ǫȗǓƧǕVý™é@ĬţLƧôͩ„ɱŎɛK̏ÞɅôóK@²@°ōؚ¼lŦ¯ŰóƜÛlV¼ķ¼ƒ°kȰ™Ű„ĠƒǬ™ŚÝŎmˁ`@ÇÜn„'], - 'encodeOffsets': [[ - 93387, - 44539 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6529', - 'properties': { - 'name': '阿克苏地区', - 'cp': [ - 82.9797, - 41.0229 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@VƚxˌŎÞŎƒ°n„ȂÒ°²VĊ¯VğƾˍǬƨÞÞKÈÞĊVźôɆÞĢèԐôWȲŤVÞĸʶbl‚¯ôn_VÆĸlmÞnVź_ĸ¼Ȯmǖ„šéĸW°°„ĸJ„kʠ¼Æw°¤ÈƒlxɆzČºĶI²ÆǔUš°ô@Þ¦‚ƒUnUĠ¼ŎÓĢxĠ_²ÇĊƒǬ°ŽȂamōšçUÇW@¯öʓõʉX£ĶťnɻšÇUˋmϙ¯˗ӑѡᩃaΗƒœɜ°xWƴUxɃÒˣ¤Ʌwğ„ʉōóÝŹ±°ȗ@¯„ƃ²¼', - '@@ō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘnIÇŃÛÝĊÑĠƏ' - ], - 'encodeOffsets': [ - [ - 80022, - 41294 - ], - [ - 83914, - 41474 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '6543', - 'properties': { - 'name': '阿勒泰地区', - 'cp': [ - 88.2971, - 47.0929 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɲˣĊIÈ¥‚ÅU±Ċýkō°ƒĉƽó»ĶƽXóʵʵ™ȯƑÅȁɅ¯ĉ@ÇሗK֛@@ˤV֜ʵрƒǬVĸƑŎ@ƆϯÑóŽķ@ʇ»ķ¦έmlÈĸĊX¼WźÛÞÝѸ‚ĢČþ„ĀĊôάVö¼ĊUƨ°°èŎČUÜÆóôVôô޲êȘlˌç°`n²ǬŽĊaš™ƒÛ°±kğmm»š@°ÝɆÛÅÇVaݍVm͔ğôÝÈb‚„@„ƒ™n¯š™ÜUĢÑĊ@źīżWŤÈǖWôŁÆI²ÓƨL@ŽĊX„mmÑÆ»ȰÑkƒĶō@ý°m—¯'], - 'encodeOffsets': [[ - 92656, - 48460 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6531', - 'properties': { - 'name': '喀什地区', - 'cp': [ - 77.168, - 37.8534 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@Č@°ƒĠ„ôÓô@Ŏĉ@Ƴĸ@Ť£ĢlVôWVóřXĉŤêÞ@ƐÒĢÑlèÈV@šĠIk°ÆŘ@ÈÈĀ@ǶťÒğ@š„@ÒĉlŻ_@šƧĖÅĬōÆ@bźÞnƒƒlVœÝĬšWƼʇ„ƒÝÅ@ÇÅÈwWóĉ±ğz‚ĬČƨƂÝIĉݯbÇÑĉƒ¯ʈV°xUŰĊ¤ƪ_ôÓɚI@lȚXȮ™ŎlɴȘ՘š„¦ɲÆʈ_ɴŽźŽôÞʊŎĠƒɆxˤ£ɄÑVwXƳ¯w›ɛŹ٧™çƧ¦ōƒُ͇еϻɃɳU™Ý¯@ōÝŹš™@݄»mğ™»ÝKkŁżřɅƅƒ¯ÆīĊ»ôVôĕÅUĉéV¹ƨém™anѱĕnwmwnÇۄyĉ¹ŹlŏkĵèķmōÞġKñÔċKÅèĉzƒŽ„ômxȗÿƿI@þÅČÝKݰ@¼ÈVºš@Å̚ÆUċłn„ÝÆǕČĵJm£ÝJ¦@ĊƒxV°ƏLċ¼ǩ™@™m@ÅĢómÇÆğ¹Çš™ÆšĖÞKšx„wô¦ÆÑÆL²ÆƾŽU„ޱŚÅŻĖ@ĬŤÈñ„@ǔÇx„Èǃ', - '@@VÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁVé' - ], - 'encodeOffsets': [ - [ - 76624, - 39196 - ], - [ - 81507, - 40877 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '6542', - 'properties': { - 'name': '塔城地区', - 'cp': [ - 86.6272, - 45.8514 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@ήnĸ¥ʈ¼ĸ@ôϰÒ@ƅƒōUķƑǫʶпU֛܃LګK@΋ĸ@Æ£ÞġÅĠċšLV݄»™@Å»Ýnm¯š»nŻĊ@nķŃ@¯ómóÛÝǟ¯aÝóȭ¥ƒšōUmxĉbÇї@›bUº¯X¯ÆƧbVÒĉnǕw¯°ƑŽV„—ŽÇ@kx±Uƒšɱn™ŽÅKƒ„¯ƒĠǠU°ɜL@°ƒxnĬ‚ĀŋŎÇLƒŽğšϱÞέƜkôÅĀǕłƒĸĊŤUṴ̋„¦ȂϰÜɨ°x@°żǠÆƈČVĠ»ČL°ÇšbĊÑ̐óÞlĶwބɆVÞwǬxǪţȼÜLŐĶˢ@', - '@@óKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°ɜÞʊĠğŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒašƒċƨbš™Vğ—w›ġ¯@Uōa™ĉÝJğÑÆŎkŎÞĀlꃦ' - ], - 'encodeOffsets': [ - [ - 87593, - 48184 - ], - [ - 86884, - 45760 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '6523', - 'properties': { - 'name': '昌吉回族自治州', - 'cp': [ - 89.6814, - 44.4507 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@መL@ȰĊȂɆƒÆĊ£„ťôWÓɆbĢÅŎƒÆ¦ČÑW¥°ķU¯ƏŃVē±Ý@ó—ç˜ĭɃƾřÆķkwʃŤ¹ġ¥ĵKŏÅXmˍщwǓ¤Ƒ@wóōVķ£ɱšġôÛa±Òȁ„óèţIVŽƽ¼k¤ó¹ġJmx—»ÝUƒ²™@ÅÆƒĸǫŎ„ĊmŎǬ՘'], - ['@@Þô°bÞǠôÜôn@°ĸń˜Ƕkłƒ¼UޙKğȂÆÝĢŤķ@@ΌڬL܄K@ˣȂ˭lĉńW¥ĵVÆý@ŃÞēUŃȗƅ@ŹƩǕĉ»k»Ç™VğóřX™ŻKƏŽċêȁèÛŎġƒͩń'] - ], - 'encodeOffsets': [ - [[ - 90113, - 46080 - ]], - [[ - 87638, - 44579 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '6530', - 'properties': { - 'name': '克孜勒苏柯尔克孜自治州', - 'cp': [ - 74.6301, - 39.5233 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ˎǫĠƽ°UUĉ¯±ȁÑmƒ„¯Ýōˋō™wUű»ÅƑ°ƒȘ@²¯ɳʇ`ɱŃ¥՗™ɳȗōkȭšșW@kəJóÔƩ`ĉ£Vů¯wU°ʇĊ„ÈÒ°aĊÞÞJŁċƧīĠyĊ²XôÇxÈÆÆ@„ÞʈƒÅ»™XÞīU›Ƒkm„ŹÝ@aŎÅÆīƨĕ@™ż`Ċk@љƒĠ@ŦÑ@ǵÇÿ@ÇÅŗl¯ğJ@™ÇUkçġÒƏÑÝ@ţéWĊôŚUŽóXUġkţ¤ķ@@ƴōĊó@óÔğƒ¯„ċ@@Қ¤kôˣŰ͓„k»ƒKX¯ċwƧôğɐšÒôIVƙš¯UķǬķšnŽ™¼ôb°ÒȰVVÈÞ°ƒĸó¤V¼°„V°²êƒlĢ҂Uƨ¦ôȰƴĊVV¼ǖIċĊ„ÞɜéšnČW˸Ǹša„řÈw±īšçĸ¤ĊšôšwšŽĸU̦˜éǖĬ„Āô¼lÞkÒ°x°ƆÞx„šÆV²ǔ»„b°wގȘ¥°n„šŎV@°„„ʠè‚ŰȂb'], - 'encodeOffsets': [[ - 80269, - 42396 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6521', - 'properties': { - 'name': '吐鲁番地区', - 'cp': [ - 89.6375, - 42.4127 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôK„ĉǪa²¼lÜô@ʠê°Ĭ™ôȂƒ²ÑÜbĢóɲ™ĸ¤ŎUô@xƒŽǔ£ъxˎmƒÈÛ@‚_nĕÞōšř„ǫƒğšůlȯ„¯ĸ»U»Ükôƛ°ůkť™»Ŏŗ@¯@±͓óͿ„Ǔ@ķȁ¼Ϳ@Ƒ¼¯°ólġ¯xȗUġšƑ™ǩÒƧUݰ˹Kóššx@ǸōĬÅĬƑĠ󃄚ǔêÆ°XÒʟŤUšÇ¼ˋnn¼±V²°ȂUŌݜbʟǔɅô@żǬaҎÈ'], - 'encodeOffsets': [[ - 90248, - 44371 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6540', - 'properties': { - 'name': '伊犁哈萨克自治州', - 'cp': [ - 82.5513, - 43.5498 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ĉ„ÆŘȁ̐mÞ¯ĀX°±¼@ƾ¯ƴ°ŎÝþŋ¦WÜÞbȂĉźUœÇmwVUȂóô@ȰÝ΀nÆJn™ƾ™ʠ™ŌLČóǪ¯œ¥ǔaǖšŌaôÝĢLšx„ƒÆLšɲm„™²VlwÈ@˜Uƒƒ°¯ǖxĊmUÑƨa°Å°WV¹œa›ÇɃÈm¥°¯ŹóĸķǫUm»Å¼ÇVɱ™l݃ŋnķÇÝX¯ƒͩÇɳa——Ý`±_U±ĵnWƒ™a@™ĸóšķ™¯ǓV±ÅĵJċ¹ɅykwDޝ£Åxʟ»ƒlķI¯ƒX¯ķ‚™êǕƒȭnķ»Ź`±„kÞ@Žš„Ýô@Þ°xšŤŎIƨÆUxōš¯²ǔĬǬlUŚ'], - ['@@ÞĀlꃦ¯ĸŤKޙšƒċƨbš™Vğ—w›ġ¯@ţƽJ'] - ], - 'encodeOffsets': [ - [[ - 82722, - 44337 - ]], - [[ - 86817, - 45456 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '6527', - 'properties': { - 'name': '博尔塔拉蒙古自治州', - 'cp': [ - 81.8481, - 44.6979 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ήƛϲÝĠ™„ÈKŌōÿmī„w@¯ɛKV¯ğǟ°Ƒ™wġKóÞŋbǕ™Ǔb›¦ǩ°ċôŋKʟšƽšmšÅImŽͿŽȯÞó@ȁôUVnx›ÈŹVȁĊÝabŻ£¯°l„óxȂŤĸkĊšÞyĊêĊmĢxV„ƨÈŽĠX„ŽΘÆĠÔź‚Ɇţ°LXƾŤŤb'], - 'encodeOffsets': [[ - 84555, - 46311 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6501', - 'properties': { - 'name': '乌鲁木齐市', - 'cp': [ - 87.9236, - 43.5883 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šŽWŽôŚUĠȚl¼Ċ¼ƪǖ@źȘƆ@ýlܚXVŘޙš¦V¼kĖó҃èkĊȁˮ֜@ǫ՗nōƒĉǬō„ķÆÅš@„±ÞV˜¼nwĢIôºl£ƾ»UŤJôçšó¯īʟéó@kÛ±»ǩbƒĊóLҍÇǫb@ŻɆóʠǓ›aŋÞȁVʉłĉbĉɅô'], - 'encodeOffsets': [[ - 88887, - 44146 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6502', - 'properties': { - 'name': '克拉玛依市', - 'cp': [ - 85.2869, - 45.5054 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ɜÞʊĊýVaŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒaݚţL°ķóKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°'], - ['@@ƾIŤ@UUwōa™ĉÝJğÑÆŎkŎ'] - ], - 'encodeOffsets': [ - [[ - 87424, - 47245 - ]], - [[ - 86817, - 45456 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '659002', - 'properties': { - 'name': '阿拉尔市', - 'cp': [ - 81.2769, - 40.6549 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nIÇŃÛÝĊÑĠƏō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘ'], - 'encodeOffsets': [[ - 83824, - 41929 - ]] - } - }, - { - 'type': 'Feature', - 'id': '659003', - 'properties': { - 'name': '图木舒克市', - 'cp': [ - 79.1345, - 39.8749 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VéVÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁ'], - 'encodeOffsets': [[ - 81496, - 40962 - ]] - } - }, - { - 'type': 'Feature', - 'id': '659004', - 'properties': { - 'name': '五家渠市', - 'cp': [ - 87.5391, - 44.3024 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„çôÑlĕU»™¥ÝšUŗ™WkÛ@þVńÝĔ@ńÅþĶUX¦Æƒ'], - 'encodeOffsets': [[ - 89674, - 45636 - ]] - } - }, - { - 'type': 'Feature', - 'id': '659001', - 'properties': { - 'name': '石河子市', - 'cp': [ - 86.0229, - 44.2914 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lŁ—ǵm‚ĉ@mż™¼n°ÞmƼš@'], - 'encodeOffsets': [[ - 88178, - 45529 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/xi_zang_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '5424', - 'properties': { - 'name': '那曲地区', - 'cp': [ - 88.1982, - 33.3215 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƨʔĸbܺÞwnxźbÞ°ô@„ĶŽĸIȼĊJŎÈôUšÝƒ¤ǔLސŎ@ĢŽȘblƒôL„ÇźçȤôLš¥ÞIÞ¯Ķxʊťƨ™ƿÑĉXVķŦ¯ȂKÇǕšÑ¯IUš£¯Óƿ£VĕōÞÿÆwƒƑ„£ǖxÞĕ±ÇÝaUÑȃU¯‚UōÈ݃wWŁĵ™±Ý„óĢÿ°IÞ±mÅ̝mÿ„¥°UnÑŤĢĕĶwǬŻͪwŎ¼źÇĢ„Ġĕˎٰóƨ¼Èa‚m@¥°wǔ„ǖ°ŽƨÇŤœšġƨ„ŎŃôbÈÛŎĊ°@Ġw²ÑÞJƃÆb²ƒ°êĊUނlȲƒV„ÈKĊÒĸĉ›»ÅôťUÅǃk¯@ǂÑklǁÅl™Ģ™VÑóƒ@°@„ÛĸƒV¯ƒÇĊ™n¯Uĕšƽ¯m›¯b™È@Ò°Ĭƒbĵ›¼„‚kxķýÇJk£ÝaUÑÅóĶǟkÓʉnĉƒÝ¼Ƒ„ó»Þmn£m™Č¯@ƒȮÿV¯ĸƒ™k@Ýówƒ»ğ„ġ±ǓLō„ƒšV¼Əèķĉ™è±b@Òţ„UÑóakƒl£™Ó@¯L@™ÇlUóȁš¯aġÈÅĕÝLķ¯Ė¯@WĬ—x‚ÒÈnW°ţôU²ǓÓġ²V°¯ôƒǔÝL—ċšk™š»Ý»Ýš¯ÞƒVƒwۄÝÇōͩÈĉċ»ĉm¯£W¥ţKkóġƏW@¯±kōŽÈ›b@җšÇaƒÆ¯a™„ƒkóŽÛƒÇ¦Ýa¯šÝ™ĉ@ǻۄmƒǓxķƛ¯lVĀÅÞġb™™ÇJUÅV™ĖƑW™zō»ōšƒW™n@è¯ÞóVkwƩnkźÇބҙޯƒƒýğÇUxÆÈnè±bĉÝ»ÈуwšwÞ@m»ÈV@ýÇ°ķ™xƒa„ݯXċ¥ƒÈóW@ôkxlnxVÈóĊkŤġ¼@°¯ŰƑL̻۱ŎÝV—Þ›VƒÇÞŎÇakƞ‚š@èğŎĸżšƾ°ÒšLÞôĠKȰĖźVÈÒĠ„¤™VôšŽU„ÈþťL@ôǬÞlÜÈnÇÒUŚ™@šĊƨW°™°Xƒ‚@ČÇþ„ƴĉÒķ¦@ŽĢôWĀôłUÞĢǬ™ź°¼š@ƒôV°„bUÆnzm¤ƽĸƒÈ'], - 'encodeOffsets': [[ - 88133, - 36721 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5425', - 'properties': { - 'name': '阿里地区', - 'cp': [ - 82.3645, - 32.7667 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„Çƾķn£myVŃaU¯„ó™@¯»šŹġǫVÝóŁXÿġó@ĸ¥ĊуƳÈý@ċ„Wš¯X¯ĉƧ‚™š@VřÈÑÇmkÛǫÝ@óŦKÇýVƒ™U󚏃£ğÇÑŹUȯĕğLÝó™K¯Ñ™ƽķŻĠō@灙lƝÈbƍÈ݂„œU˜ÝÞU²ō̼ůƒK°ů@¯UK±—ĊƧbōÇmçÈġƒóšÅób™™źóš¥kól™ç™KôĵUƒÅ„VŃķ¥nÅŏm¯¹Å‚™»@ÑǍóxÝkʇȤU¤ķb@ƒ¯ĊÇx¯ĸĉKm°šĀk¦l„„KnĬȀƾÛ¦WÆÅmNJĉ°ōUţ¤UšŎ°šŎKÞłÆ„Ǔ¦ƒÞ™‚™„ř¯bmUÝl¯Um™ğl¯£șwŎǫaÝnĉ̓k@¯™K™šō»ĉn™aÞ»ťnkml™ĸ¥UŚŻkÑťƒĉV™ôó°LôīĠU„ÿĉǕÅz±Kƒ¤„²ō¤¯Ė¯UÝ¥Vĵ™óÈťÝwķșÑk¤ó„™ƒWýĵĕ™„VĠƒV󍃎Ǔ„ķ°k±VU±ţ¦UǟÝřJVљ¥XUċUŎlÛƆǕÆȗƆ¯wŏÞÅ@™šĉl݁óŽƒÒ™nUôńlxólÝôێ±™™LÛôÝL@‚ġ¯X¯ÇUżóa󤛼XÒġŎóLk¦‚ôżĸĠ™¼™KġƆô¦„ÆƑÔĉ͝ImÒ°¦n°¯Þl˜ÝČn„ƒÒšKĠޚĕkƒlýƾťœšôI‚ĖŤÒnƜm¼¯lnżóÞ@Ůó¦™ôƽĖċŚn°Ý°ôÈUƜƒblÞóŽ@Žǖô°UÈƆ°X„þôŽô‚lѢšŽ²Ėm¦°š@¤™XŽĊblܚzkºƒĖmX„šŎWVšóÞn°lĠxȚa°»żLźƒ„b@ưXĠÝȚxĊĕŤaȚ‚°È@„„@èŤ¦Ü¼œW˜ÞkŽÈ@V°lŤkŎ±²¦ƐUšlj°aÈÑŎb̃ŎbÆ¥ÞIȘlššôVÈU‚™šb„kɲĶn„mnXb̼òƾĖŎ@̐ȂÑôÓĠĖʊšĊÔ'], - 'encodeOffsets': [[ - 88133, - 36721 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5423', - 'properties': { - 'name': '日喀则地区', - 'cp': [ - 86.2427, - 29.5093 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĶĖXþš„ôƒl£šÒĸÇÞxÇŦšôUĶÞ¦°V°ĕŎ£ƒ±„£²LÆyĊǖƒĀğVóĬ¯KóôUš‚ĊŦ„lҙżVÆķ¦kšlnŦmݼšbĊmŎ¼š™šL@°„lĊĵÞmǬbƍȚx°¤Ġknš°VÞkVn°aƒŚš‚š„Ýǔ¥ÅƒÝŁōL¯™ōV™Ť£ŎVĊ¯nljƏXÅÜ¥ǿƽmīƒLkƒl¥™ÿn¯ĊL°ķÈw°ĉ@ƑĸaV£ʈȣÞlôwȎ@Қ¼Æ°ºŐnmÆĸ¦UńƃV„ó͚LšèôkŰlĬ™¦Źôššôa™Æ„ôÇĢnèŎÈƨa˜ĉ²‚VLĢ»lţôĉUǂwkmlw@óôX„ÇȦ°WƒÞ„b‚wĸšÈ¯@þÇUn¼Ý@™x„xÇńÞ¼Ċ޲amçÅÇVwĠȄþ°„šÝƒÑÈÝlŹƪmlxôU°Ý@çšm„XŎ™Ŏ¼šyƒXšĕÆUVÈIššĢaÆÝUÿ°kĸƜǔwn„܃ȼĊ@ޚ°™Þbȥ܄ô„lšƒ°b„ÅÈb˜™@ќa‚ǯUU¯Vġš»ƒ™¯aV¯Ç°Å™mnÑŤçǬVǬ™±ĉ¯¥Vĕ¯Ýk£˜ō—w@±ġÛ°ÇVїƒ@ۘa@ČL™Ƴ™„ƒÇa¯¤ÝIĵ¼U¥ƿōķÅţŻókÝóĕ‚¥¯™U»Æ£X¯ġŃÛkݰV°ó¼¯èWôÞĖ„ȎƒŽkĀƧĀówm¥¯JŹÝJݙōVVŁaݐƑ@ƒ˜ğŭǂ¯_ƒ˜ĵ—›VnxŃón›ƒĵxÇĖĉVÝÈğV™Ò󃯐±Żĉ£ķÆÅL™Ljĉý˜ţۃ¯VƒnV¤ÝÈ@°ÅÞݤ™ŰğŁm¦ÝxóKƒ¥ɱÈUĠôêVôÛ¼ÇWÝçĵaō¦óĖƧlÇĢƑŽnŎDŽV¼¼‚ºÛ@m¦ƽ„ĉmm¯ÝKÛç¯bŏłĬ™bƒ¼ÅLmŽ„xť°ÅU™šÝXkŽÝmĉ¦W„¯K„ÒknÝaV„Ýè¯KɅńÝKnÞ¯¼'], - 'encodeOffsets': [[ - 84117, - 30927 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5426', - 'properties': { - 'name': '林芝地区', - 'cp': [ - 95.4602, - 29.1138 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚VÈłVôÈk@š°K@ŽšÔk¤l„ôbVÒŤƒ@ѲašçĸĊƐçU»„™ŎƒǔK̲Ġƒ„¼ôx@ޚlƨĬ„Ul¯ÈLV‚šÞJ„°Ünʊ„wÜbXê‚VÞ¯°ššanaU°wƼɴÑWѰmÈýÈam¥Þ£Ť@„¥ôblÞĢ„ź¥ôxÈÅmݚ™ƒĕŃV»ĉōŤōnóƒ»ÈīķIUƒĠѰġĸLÞ¯VÒÆ‚@bš¼WôÈ@V¼ôóŤKÈÑU»šwVǫżnWÒÈx™¼‚lŦ£ĊōŤx²¯@ƒÆƒU¯šçÆ@„¤°£„é°k°lšůÈó@¯ŤÇÈĉƒkkÿó¥ÝXķљÜ@ÒóŚÝ¯°ĉówÇ±¦ÅJUÒĉĀķw¯°m˝„±akxÝÅnƒ™»lуK@¯lU™¯UVѯóĊ¯mōğVǓƅƒÞƒWÝÈÛ@ƿô¯ÜġzÅþ¯ólmôʇġĊÅUͿřŏȁˋŁóÇˡōƧƒÇb™w°Ķôk¦šÒƒnUþġҙÔkǔķèó@ƒ²@ŘōńĵyƒzġaݤÅIƒ¤Ƀť¦ğѯ¤ķbóš¯ó±ŽU²°¤ČÜVnÈÆ‚„ŚŎ°ôĢ„þÆzèVĀǎĀǘƒXŹÑ¯¤ówċķk¦šłUÒġzÇ@ƒ™ÆÝx@²Þ@Ƥ„Uô¦Uš°x„U'], - 'encodeOffsets': [[ - 94737, - 30809 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5421', - 'properties': { - 'name': '昌都地区', - 'cp': [ - 97.0203, - 30.7068 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@™ŽVĖm°ĉš„ÈU°ķ„ƒÜ¯@@ô„UÒġškš‚ÆkÈlށÒ@Èl°È„VÆóŦƂœ¼‚a„ÅĢ™Ʉwnōw@¥Ŏ¦°ŹÞmVš°wnÿƒw„wÝw@¯šmÞŗ°wĠ˜ĸkÞğlĔ²¦°@„ĕĸwVóšal@nĢÇĊn°@¦šŽźUXçǔůĸVš™ÆK„ÈÝĠš²ÅĔô@lšŽÈ_m˜„zǖl„šaU¼ôwV°¯¦‚ĬÈa„l@Čǎ„¼™„nŽ˜I„xô»ɜ@ƨ¥ɆŁ„ŃǪȁkƛƨȍʊȡóĭ›@—ÈÇVƒůރĸƅmēƨť™ÅÈʉVǵ°ġVŭÅɧ°ÿnɛš£mƒķ²ŃóÑUĉ°mÇ»¯@mxUèţ°ȁÝç„ġU¯ÆÇţÈ@°Çô™Ű¯k¯lƒê¯¤ƒ£Å@™èV°Å„@„±°ţwĉŎť¤kš»ÇwXÑŻmUǬ™xV¼ÇÒţLóôU»Ç@X󙻂a@ÿŁUÑݰķK¯ĢğÒV„ĸJÇĬ„¼môţŎĊŎU¼Æ„„Ė™šnÞÇÆówʦġƒkÝóaƒ¦ţ@ݤn¦ÇbÇþ¯nXÒɳÒÅ»¯xVmb™b¯™Ý°UWéÛaƒxʉÛmƒ¯ÝI™‚UÇKk°ƒVƧīķ„U°ȭĀ@„ċ°nšm¤Ýnô¼ƒƒÞ»Ċ„ʊmlÔĵǠÆôVÒÞbl¤ÈIĸþlwƒœ»ĶŽ„a¯ī@њǰanœƾ°'], - 'encodeOffsets': [[ - 97302, - 31917 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5422', - 'properties': { - 'name': '山南地区', - 'cp': [ - 92.2083, - 28.3392 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°ÞU˰¦²ĊôÇÜLǖĀɜŽȘŰÞLĸźêÞ@UÜUŤ°ɞ¯Ü„°WŦĀmŎ„¦ĢyVљŁl¥Čĸôx°£źÒ„Wȗ‚ÿȍUÿ‚çÅyƒýóġō¯ƒřŁmÇÛUċޝ£V±²°ôô™ĸa°£ĠÒŦ¥ɄŽ„£ÆJÞ£Ģb„yĶzŎŃ@ŗ„±ô@ĸçlǓšÓĢÑVý„m™Ñl¥ĵó‚¯̻̥™ƛǫÝһÇƧĉyţ¼ҍēVĶĉŎ°ĸmšÞVÝĸ™ÒÛaċ„ó™ŹĖƒèÈÈl¼k¤ÝX@`ސŏ¼Æō¼ÇçĉKUÝÝ£ğ¤@¦ġl¯Òġĉ¯óš™móxÝÞğVšƴċK@—b@ܘ„UÒ¯ÈĢÜ@²˜x—Ŏl¤'], - 'encodeOffsets': [[ - 92363, - 29672 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5401', - 'properties': { - 'name': '拉萨市', - 'cp': [ - 91.1865, - 30.1465 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ŏ²l@°‚XĢƐlôŤLX¦°¤ĊnȼÇĊŎͪÞÈ܃„x„U°Ýޙ޼™¼lšČ™˜ŽÞK„Ǔ°óU¯Ģ±ǔÔV±ŤóX¯ÇmÑ˜wXī°@°ĕĸÞKÆĖĢǰbȂ™ÇفUƒV¯wV™ó¥ƒVÅ£Ý@@±ÞwšÅ‚„È@ƒ¥nōťÿ¯Xۃɝ°ţ¯ÛVVÝ@ŹéķÝKȗůɛǕÿÛKóÈǫšǫUţèmҚn¯Æ°ÈU‚°b„š™¼UĢV°°V'], - 'encodeOffsets': [[ - 92059, - 30696 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/yun_nan_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '5308', - 'properties': { - 'name': '普洱市', - 'cp': [ - 100.7446, - 23.4229 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@U‚ô²‚a@޲²Ķ¥œV°šĶ²bl¤kVxl‚@œ°‚ڲ@˜„„y„@ô¦¯„@xƒxVxU„VššbVšÜm¼Ŏ„„ĢmºXXWÆ@œšmŽmXU°ÅÒm¼Þx°w„@°‚XêĠ°»nV°U„l@k„@V±ôī@£‚ƒČŃÆ£„KÞý@¥‚k@y„a@—nWV„UVƒšwƒmƒ£Jƒknm@wmkn‚X„˜šX„¥mUUlUnbš¯°ŽnkƒVInlIUw°n™mk@@mlanXlanmšk@wVWUw™_@éĠašnmUaÜ£ƒmXƒ¥¯@@„óUmݯ¯ÞÝlKnxô£š»„»Ġ„J°aV„UÝÿV¥ÛbƒI@wmŽón¯yÛL@ƒWkŎmș`IWa¯K@¯mUnmaXm™bmak„¯ŽƒĢ™ÒÝm¯mV¯KÇb¯KۜWW™X@a™V™knċLUWV™kXóW@k™a@ƒób¯Uƒwmb¥UUlaU¥U£ma횃KXkƒmÝ@kwmѯk±ċbUUVakaġ¦ƒƒkL@`ƒœ™a¯xƒm™Åƒ™LUWƒ@ċnŎUV°LkL@b°°@¤š²ƒ‚šnôôk„l°kè›ÒÈzV¤È„WôôƒnV@„ƒ¦@¼Ux'], - 'encodeOffsets': [[ - 101903, - 23637 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5325', - 'properties': { - 'name': '红河哈尼族彝族自治州', - 'cp': [ - 103.0408, - 23.6041 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°°nÞôV@ƒ°@„¦WŽ„nÛ¤Vbmn™ğb@êš`VxUX@xš„ÆÞUnn˜WÞĸ̃šÈ@ŽÇè@zÛÜWšÅêlš²„˜KnV¯ĖĊx@bk@@„°JÆ£Èbl„nnm°nlUkVUUwVm„Kn„‚nVŽÞxVLX¥laX@@xl@VzȎVmšk@b°šÈĸmŽV¦`W„XšƒbUb‚bX¼°x@ašVVkn@lþnXUlVxŤÅ„y‚IUƒka‚IŎĊ@lXx@b„z@‚ô„ƒ¥„_V@l‚n@„ôy@al_l`nmƒÈ»@kƒmXwWK™U¯»™a™Å@wƒmUÝKUa™UUƒ™wWƒ@w²»@kƃV£—mm£VKkÑV@@»nwƒ¥™ƒ@kƙnllIVlnLVakalknJšWmnaUaVÑVVލn¥m@ƒ„¯Uÿl™@™™™VçƒaXaV¯UyVLVkš@nJlšXLlŽkxlbla²Òl@nVJVkšx„KlkUaVķÝÑU@Åm¯@±™Uó°ğńķĠmU™Ñ@ǯ¯Å¼@nml@°¯¯`@w™£@¯Çƒk@ƒ»nmċ¯U»™I™Ž¯LÇĶÛn@bó°™U›šwmޝ„™Umǯa„™ƒ™ƒI@ykIƒVUޝbƒIğŽƒ¼™¼ó¤mwkLÝÞ'], - 'encodeOffsets': [[ - 104243, - 23429 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5326', - 'properties': { - 'name': '文山壮族苗族自治州', - 'cp': [ - 104.8865, - 23.5712 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šwô„š@²¯maUmôUÆxš@Xš˜bÞInlVUVw„JVaU„K°¥„xmÞXnlKlnna°@ĊČ„ÆwUmnkl@°ƒƒ£nyn@VV@Vak™ƒ@@kÞ݄bmx°Vnw°klÞInĖÞVlKl™@Xa°„„KlV„U@šJnx‚U@ÈĢbUKlm@ak_‚wšanWUk°ƒl»„k@Wk@lwU_ƒ@UalóU¥ƒÇnƒ™kJWƒ@mVXx±bƒK@nV±a@™Åa™£ÝK²ƒWknamKknǏk¯ƒaV™™V¯ĀƒU™„™Ò¥ƒI@mm¯¯xōW@@`k@ó»ƒUU¯lm£ÅWlĵ„w@mmwÅmWU@y±U—xmwU„¯Uƒ¥Ý¥¯£m@kŽÇVUV°VbklƒL™wUlUIm‚k@±ÑkbkalwkWKk™mI™@UlUKVzU°Wb„bU蚚@škšVƒ°@„n‚m¦ÝŽUUUÒVbmbXn™‚mIkllbUbmKUkkJmkŚ@lš„„¦mx@¼U@lÒULn¤˜nU¤Å„@l±¼@xX„šxV„šVVbÞLVŽ„n@xšÆšb°¼šV'], - 'encodeOffsets': [[ - 106504, - 25037 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5303', - 'properties': { - 'name': '曲靖市', - 'cp': [ - 103.9417, - 25.7025 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ȦlKÞĕUV¯Um¯„ÇVUnVVUƒĉn™ĊÇƾLn°°È„JÆw„@lbÞa„¦V„XJ°¯W¯„aÞJVkUša„ƒ@lKnÅmWUk¯a¯»@m±@уkkbWWX_WÓU»_l™kÑm@U»m@l@IWċn¯l@VanV„UV™UVwVx„KȄVmUē‚@„ƒn@VÝÆL„w„VVwnVlmkUVÑǰka@k™ÿÝaÞUl£™›—ċĕX±±ĉƒa@UnVnalónk@wl™UVmkÝJ—aW™™@ÅwóVVnnb±°™@óƒ™xXLWx„n@lǼn„m‚k_k`@bózƒ‚m@kU@ƒ`„¦óƒ@nWš@ÜÅXWw@ƒyƒb¦@ÒlnUb@x™lܐk‚@²Ç@Uƒ¯bmy@kV@bƒb„¦U`lLVx@b—Ll¼Þ¤@„°VVބU@WސUb›J@nnš@lnnm„šxUŽƒUUbƒK@šÇwklkUƒVWakn@ŽlbU@@„ULVxkKUn‚°¯Ò@¼™„kmƒ¦m@kl™Ȱ@lU„l¦„@Vl°wšnnþĊUÆbUx™b„ŽV„šĖU°„a‚nnašV„al@@b'], - 'encodeOffsets': [[ - 106099, - 27653 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5323', - 'properties': { - 'name': '楚雄彝族自治州', - 'cp': [ - 101.6016, - 25.3619 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@mҁXU`Wnšš™@Xl±¦š„Uxnbl°knmKUx„„ƒxVôUx°¼ôÒȄ°JlnÞKĠœW°¦ƒ„Vx²JVwš_°¥@UV@@wnymknK¯I@‚™²b°ƒš£V¥šwU‚V„¤nLškÆJÈwôô°„l»Č¯ƒġVƒUU@@ƒ°ƒƒÝXl@U»°Å„@U„¯@w±¯VmUUlm@m™„ÑnIVyUwmak£Vwm±—@Çw@nƒ@UxkwlÇnL‚mkř@±Žk™ka@kóJV¯Ç»U£lw¯™Xalbl¥¯UXƒ@a˜™UaÈL@ÇVIVƒkaU¯mm™akLWkUJ¯Umxnšƒ@ƒkUx¯xƒ„mWÅīÝkkbƒŤƒbkxWmXwWk¯wƒKkƒƒLŤċń„@¤óĬU²ƒ@@lƒk¯VmU¯¼@xV@k°l°kbUš°nm‚VnUš@°„š„UVèރÆbUÒÞnU¦›V—¼lô„@Vl'], - 'encodeOffsets': [[ - 103433, - 26196 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5329', - 'properties': { - 'name': '大理白族自治州', - 'cp': [ - 99.9536, - 25.6805 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lbœKVIUa˜@²m@b™xôÒÜxXLmbnšl@š„„K°šš¼k„Uô‚xôlV¦nJ„Uš™Ænšm„@šx„ÆwšbXšÆôô„LUVwôK@wlmšaVwœ@WknmƒIUmlnJla@_™@kÝmKUašÑm¯Xw°aUaVl»²JV„bÆJkôͲVVk„mšbVwUó„wƒƒVwnLlmk¯maVw™ƒ²¥Wkš@™™XmV_‚WnÑUkƒ@k󘻜UV¥ÝmVÑÅa݄UçƒVƒ™@¯V™Umn¯mV™lak¯l¯U@@wğŽW鯁ƒ@¯xÝw¯š¯Jċa¯U¥mLU¤„bÞȤƒbÇLWUwmIUVW¼kbš`U„Vb¯L±ĊÛkƒÿÝKkwƒKţê™UĉþƒÈƒV¯ÞVbUްKVšk²Ý‚mI—ƒmV@kƒm™UkšVxm„¯KXÈķJU¦V°ULWxšL@môƒšb@bkx±LnVUŽVLnkÜWnwlLŃmW@kkJU_ƒV„šWĊ„Þ'], - 'encodeOffsets': [[ - 101408, - 26770 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5309', - 'properties': { - 'name': '临沧市', - 'cp': [ - 99.613, - 24.0546 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚xĢ„l`²X°ŽV„šx@x°Þ°KXašğUњW‚bnIl`X²°b„xl°„„šV@xVxk¦mb„l@xšXV‚ÆzX¤™Æ˜k°„kx@lźêlaX»VUnJVx‚XÈK„aÝȣƒaV£nKV¦°‚Čb°I°™n»ÆÑV¯nWn›™@ÿXÅWWn¹ƒġōƒn»‚ÛU™™aU™VƒUw„w@w°ƒó¥ƒ@ƒz—ƒ±@ř›¯@kUwlk£±aĵޝ™›Uĵ¦±±@bó±VÝ@ó¤ƒw¯I@mńóm±XޝIólƒK@š°Ullb™zkKlln@@ԙºƒUmVk²ôҙx™ŎUVóLƒb„ŽmÈnŽmbnl‚a„x@z„@Ǝ„¦kš'], - 'encodeOffsets': [[ - 101251, - 24734 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5334', - 'properties': { - 'name': '迪庆藏族自治州', - 'cp': [ - 99.4592, - 27.9327 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@W™Xwƒ™@akk@y›—k°īX¥›Uóķ¯w@n»UaVaUۃ¯ƒmV¼k‚™Þċô@n¯xÛÒm„V‚¯Ô@xƒ‚@šk™wm™Åa@ƒUa‚݁¯VŃyV„a@ÿšn»ÝVmank™mmÞÅôƒ@n£±›ğzÇmU¦™Vm„nÜmbn@°nV@xmzÅ@mºV¦k°ln¤š¼õô„n@xkƃIUxUš@Ťƒ¦VšmVkmkXW¤XzVx@ƚx™¼ƒÞ¯b@lVš™ĸގV„m¼XŽm¦V„ŽÞ@Ǝš¹Vón¥ÆKn„‚KX¯x@èĊȱłXšaÆxnlV@UÛlȻkğV¥„m²ljmÅÞĕƒƛm°„ÆmX¤mznƃŽV¦ÞVVb°bnÞWbnްl@V„È@„‚VĵĊ±@ó„InxÆw„¥@£Þ›W¯ĸ£UƒUK‚ƒk±akkkbmWmÈķ„aÆÇU—ȃÆW@wmknmU¯'], - 'encodeOffsets': [[ - 102702, - 28401 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5306', - 'properties': { - 'name': '昭通市', - 'cp': [ - 104.0955, - 27.6031 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@mƒnK@wmƒUř¥mšóXǓŏmX@Ž—VƒmL@xţ™nk@mlUšŻÒğŋ@ƒL@mmLkm™š@b™XŎW¼ka¯lÇŹ¯aÇ»™ÝÝ_@m„@@a™@UklwUm@ak@ƒb™UmbmƒbV¯™ĕUƒƒšaVwÅaĉVmý™m¯xUkƒ@k¥VƒUXƒ¤VÈm`@„—ńÇÜ@Ākn‚ĔkƞÆĠ„™Þš‚U„VôƆÞI@ŽUxƦn„l@ĊĊnxUÒ°¦Vb¯WUnWށIml@xn„Ubô¤‚¼ÈxlI„»šKVš„@ÈԂJkšU˱ÆVb@nœ„VÜVUVƒšL„wĠl„kn„Ġ@nx°¥Æ„²mUwƒ@m™mÅUl¯UњÑUm„Lll„Il±š@VkwƒW@w°@U»™kUóI°ƒ„»ĢтL„™š`nUĠ²lm„bôV@n„JUxƦX¦l@š‚ŎUƒV„@lV„KVřV£UaÞU™ƒnW@¯VU@ó™'], - 'encodeOffsets': [[ - 107787, - 28244 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5301', - 'properties': { - 'name': '昆明市', - 'cp': [ - 102.9199, - 25.4663 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n@Vk‚VUn²°@xƒ°Vƒ@¯ÆV¼k@WŽ„Þ¯„@„@‚VVU„„Ģċ°k¼V„Ċxœ¤Ōœx°mVkƒÑȏšL‚°„x°Xœ°VmĊLVxU˰bX¦VW@kšȯlkn@„¥lnšƒ@»°Ñ¯VmlLUwVK@ƒV@ka@lmXb„UlVlkÈx@™„LVa„VV™wnƒmm@km™@mœIVaݏ@XƒVUݯU@ƒÝ£k»˜K@aUwkKV_ƒ¥„a@alU@nz°aV„È@@±lÛšk@wVakm@т¥„a„z‚@XxÆW@ÛX™@m@ƒy@aWw@kōĉJlbV„JƒzţÆUwVkmWkým@Ul™U@b¯wVºƒU™VUêšĠƒXUaUbVĊUŽWXUmkK™™WnUUU™V™ƒƒVV™Ý@kk±‚™¯ƒƒLkƒš±WkXlVklƒ@ƒwXbmLƒ›VUIVmk@Ubma@kkaVKUƒ™kmlXLWn™J¯ÒĊ°@zkºlLUŤn@@n›ô@lƁnmKkÈlxVw„@@mÈx˜@n²Uxl¤nbVxUzmJƒÒnš'], - 'encodeOffsets': [[ - 104828, - 25999 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5307', - 'properties': { - 'name': '丽江市', - 'cp': [ - 100.448, - 26.955 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l@™„@w°ÓUnƒÜѰw@mČóšÝlU»n°„„VÜUbVbm¼@ްxôĸœVW¦¯Ĭlœ˜@zll@b„šWxXš‚a„X@ÆĠÆaXwl@XaƦn¼˜Jn@mnKW¯È»V¯°ak™VanXVwl@VyUĕVU„bÈīlaUk°ƒk¯lƒ²V˜Ukƛô@ƒ„I@mVwĊa„™ƒVaka„™ÆbUŽVLšaXIWKUw™ƒ„aWÑÅKUaVk°ƒ@Uw„ƒ¯¥›XğÝLkm¯Iǃóѯ»™aƒnUl±UĵÿlóÅIƒaU‚±Ik¼UŽVb¯bWxn°™ÒVbnLlޚ@@`kbmIkŽVn„JmnXl›@Ux™bkn@xóLUxVŽƒKóóŐW™™aÅxƒŽ™wƒ@™nÅm™šƒV™„ƒôX„ƒLlVU¤ƒb¦m¼™Ž@ƒbU‚„zUƂ°ÞVb@„Æbnššx'], - 'encodeOffsets': [[ - 101937, - 28227 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5328', - 'properties': { - 'name': '西双版纳傣族自治州', - 'cp': [ - 100.8984, - 21.8628 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l²°ŽnÒlxÞ@„nWl„Lĸ™nbV¤V¦kbVV‚¦na„x°Vôa@„šb@lôXlWUšVXČKlmššU@bšWXXܛ°LÈa°LnU°‚ÞnšÑ„ġ°lƒnbšaƒ¯¯KWƒœó@kmK@UšĉV@k°„VV¹„a@y‚_ċl_nÓlL@anI@ƒóWl£VU—ƒl™kĕl™šKVw„U@™kVƒam¯ÅL@bƒ‚Ýk@Vn„UbÇbÝwÅ@ċ¥¯lk‚¼ÅŽ™Ò°b@¦nlUn@ŽÇV„mƁbWôU@ÝÅōm™¯ƒaU™™mk™WWw—@±ƒ™n¯U™è™a™Lƒ¯mƒL™škwƒl@°mnÈÒ¯šów@V™xƒĀU¤°Įƒ°Xl'], - 'encodeOffsets': [[ - 102376, - 22579 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5305', - 'properties': { - 'name': '保山市', - 'cp': [ - 99.0637, - 24.9884 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@X°„Il‚@¦ƒŽÈ¼m¼ÞaÞÅl„ÈxV¼šlVôÈÆlLޣȺlkUƒ‚ƒUw„¯UĕVwĊ@n¦mlnVĸIWǰLnƒUwl™šV„n@lnU˜„nJށl±U™¯LVUa°Ý„U„ÇĊýšVŤé„LlxÞL„ĀÜl²ĉ°KUaVƒ™_Źé@klw¯ƒlÅ—šW£ÅyU™W@wƒknal¥Uw@w™Uƒƒk¯ƒw¯aW±k_mJa™XVҙĠWb¯L¯Ý@w™wUƒ¯±Wk_ġƒwƒwōKmb@¤„bk°l˃ô„UJƒšVnÅlťUš¯°VbnbWxX„m„ÞššWUĀ™L™yWzÛKmbUxVKkn݃kŽVšĀċ¤Ux„@ޝŽm@ƒ¦'], - 'encodeOffsets': [[ - 100440, - 25943 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5304', - 'properties': { - 'name': '玉溪市', - 'cp': [ - 101.9312, - 23.8898 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l„„L°xXlWxXnlw„a„ţlaÞlÆĬnX„ƒ°wVw„l„@m™nw°VVIXllKšbnnV°lbU„UJ@ÈÇKVb—š@bW„°Vk¦kaWb°škxV¤È¼U°ôI@llblš²š@‚@œó@mm@VţkKl¹@yĉ¯°ÑšIXmWKnkšlV„ULlb@lnbVal@UnVJœU‚„nKWa„x„@lkkUlW²X„™‚l„K°„šl²@lšÞUŽ„U‚„UšVšVVXmššlLVnXWVUĉVaVb„W™ğVéšU„VU¹W»aVa„aW™Xƒ‚_U¥nÇ흙@a™lUnǍUyk@@wW@kbW¦UKÝwUmmƒƒLUnVxUVVlk¯mmnƒmkÇaŤ¯I@ƒl@@aĉw°ĕmU—L±ƒk™ÆéX™ÜÛ@yÈç@™Çġ„Ýķ—XmmÝVՙƒ™lmnkbmWkb@nl@nŽmš¯VxkJmUJ„ml¯™°makVVnVƒ¦™Wƒ—Wmnl@xmn„l‚I„¤„n™xU„ƒVUŽmX@˜ƒb@zl@¦Ýþ'], - 'encodeOffsets': [[ - 103703, - 24874 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5333', - 'properties': { - 'name': '怒江傈僳族自治州', - 'cp': [ - 99.1516, - 26.5594 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@WyX£lWlnnUU™„¥@ţV™Vw„JlÅ@wƒmö󙻂£kml¯U¥n¹Æ@ny@wmU@¯mnamÛnƒšUV¥ÈnĠy²œm¤„@ÆónݚnmlnbÞU‚¥„aV£kU„KWƒ„óšƒmIU¥ókwVólƒ™»¯™ƒL™ƒk@m™naWKÛwóњw@a±n—@VbUJ›LkaƒÝXĉƒ™„UV`lI@lnXÆƑkKmxÛXmlUKVmU²Klw@a™aó„@n™KXwVKU¯V¥mUnkm¥ĉ@UxV˃°Vx„V„klmޙkKWĀkVWšnl°Lnm@°ŽUxlV@nk¦™JVȰŽVÒ@nX°@ÆlUômlnôƒ²nxmłnVV„¯x@Èm°XblVUšl°@xkXU¤WXX‚W„Xƃ„mkÅJmށw±bƒxUīkKmÅVUĖÝèV„kx@š›lX„lnk¤ƒLkŽ‚Ėk¦‚xUššL°‚¯Ė@LnK@b°xVI„¥Ua°Ñ@»nm@¹‚KŎÞÈWln²n'], - 'encodeOffsets': [[ - 101071, - 28891 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5331', - 'properties': { - 'name': '德宏傣族景颇族自治州', - 'cp': [ - 98.1299, - 24.5874 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„¥n@°@ƒVwČ£™ÿUlÞ„lmULVwnaÜLXyšzšKVÿ™XݙnƒWƒXwmaUa°¯V™ŦŽÆkUm„™VIƒ„ókĕl¯ƒa@£nama™@¯m¯œó@óyţbġkÅm±ÛammVkƒLwU`Wk@VƒkUmŃlUUKmbkkUVUwƒ¦óް¼šbn°ô¦lºƒz@xšŽ¯„™@UްnƒšU¤ţU„°VƆ@ÈmlnzÞl°¦Æa„xUxƒLkxWƒn@‚š²ŰšW„™‚@°ÈXl°Llx'], - 'encodeOffsets': [[ - 100440, - 25943 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/zhe_jiang_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '3311', - 'properties': { - 'name': '丽水市', - 'cp': [ - 119.5642, - 28.1854 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@V‚bVl@Xn‚UXƒKVŽ@¦nxlUXV‚n„KVmnL‚UV@bn¤lLXK˜²„`nnlJXIVJ‚I„Vnn°KnnVll@VLXWV@UkVaVK„zV@„ƒšVVaUK@U»VUl@@WnUUƒ@wVLn@Vwl@XW°LVbn@VU‚@X„l`@XnKVbkl@XVJlUnlV„„xlL@lnXl„@VšUnV°°„@a„UVLXblWVXn@VVUV@Lš¤VLV„U‚VbnalLUUVX_laVa„WVzXKV@@a@KUmImmXama@kU@yVIUK‚aVa@kXK@aWU@VIUmW@kkVm„Uš@VwUa@K@k@Uƒ`@kUKVk@UV@VaUm²Vy@klUUWUkVmUa@_ƒKVaXa›XmƒU@mUlWkaUXƒ@mmkL@w™JƒnVVÅbWKXa™@@I@aƒJUUÇ@V„UL™W@akLmb@K@a™XXw@mƒVmUVkUy@£@aU@@VkUWm@kUKƒXUWU_mW@wkkmJUUkLWWUXƒW@IkJ@k@mW_kӃ_Ul™Lƒm@I@aUa¯m@kƒa¯LUJƒ@mVVxUb™a@LUKkXƒbm@Uak@@a@Um`ƒIUbUJ@nUVW@@LnVV@lšUbVlUX@`š@blXklW„Ušm„Xlm¦U@@V¯bml@š@nUb@llnn@VbX@lV@ŽUVULmU@JVn„bVbkb™VWxU@@nUVk@'], - 'encodeOffsets': [[ - 121546, - 28992 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3301', - 'properties': { - 'name': '杭州市', - 'cp': [ - 119.5313, - 29.8773 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@X@l„°KXXlW„b@²„`šššb‚I„šX`l@„@bWl@n@VnLUV@V„@°¦@šl@XVlU@š@xVbUb@Vkb@‚@XVJVz™J@Lޚ@VmLUxUJ@LU„Vx‚b„xXUl@VaÈw„b‚aÞa@Vl@XUVx@V@V„LlbnV„al@lb„Vnn‚LnKnL@VlbVJXalIšb@KUU@mVInJ˜„U„Vl@xUšVLnUš@UÞaV@lkV@UanK„L@UlKVUnbÆmn@@nUlVnVJl@@UXU„L@WVIVJVxVLXV@IÜKnbn@V¥V@@I@ƒƒ„y°b@UUwnk°ÆƨVlUšçXm›£aƒÇ™IkVƒ@WV@@aWIUWUIkb@WW@UnƒK@UU@kaWVkƒVIVVnU@UWVUV@VmVkKkWIkVWaULU`UImJUImm—U@ƒƒwmwUV™IUWVkUamaU@mV—kƒb@KVU@aVU@anKULVJ‚U@kÛU™JUV›kkƒVakU@ƒaVwkW@UWkXmWaULUaUK@XƒJUUmƒVU@UVƒUkJ@ImwmKU@k„@lU„W@@akKm„kamIkWl_UwVm@UkaVUUaƒ@UamakbWlkL@aUalU@mkL@U@U™lmK@XkKm@Ýakb@xƒnXbƒ`ƒnUUU@›™U@™wU@@ƒmKkkƒV¯U@lULUbVbUb@V‚a@L™ºÝb@bLmK™x@VUL@bk@mxULWl'], - 'encodeOffsets': [[ - 121185, - 30184 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3303', - 'properties': { - 'name': '温州市', - 'cp': [ - 120.498, - 27.8119 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ll@xnXV`VX„WVL@lXnlV@UV@@b@¤VzUlnV„U@nWxšW@b@LnalK@bšXVKUƒÈ@VV„I@b@Jš@WbXLÆaUU„mšI@xlKnn„@VWlbkXV‚@n„VWnœ‚WbUb„L@`VbUnVlVXkV@lUz±‚VnUbU@@VUlVL@l„_@V@l@LVbV@XLV`VÈlxn@lU@aœaVV‚k„@XJ@nl@@LU`°LVb„L°a@a„UVy@anI@a„a‚nV@²wÜJX@VšVV°k„na@WVk„aWwU@m@™ƒkƒaUĕ™ÝšÝŤnÈa„aóI›»@±X™WkUķ@kV±kw™ƒUkWw„™UƒÝ»ÛkɳlImaUaWóXÿǬk‚UnWVmmk™KţnŏÞğl™„UlUx@XWb„V@JkXƒ°mb@VULVxUVk@@LWWk@WIkšƒUkJmUkVmI@yƒ@Ua™kLm‚U@mUUUkaVk™@mK@UlUU@UmKmbUUUJ@n@KVLUL@VkJWXX`mnULWlkL@JVLVb@°kxkU@LVŽ™V@„VLV`UL@VUX'], - 'encodeOffsets': [[ - 122502, - 28334 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3302', - 'properties': { - 'name': '宁波市', - 'cp': [ - 121.5967, - 29.6466 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ċ¦ĸ°‚nXÞVšKškƨƑźÿ°»n„@wô¥ÜbœU°ÆXÞWóçĉݱIUƒÈ¥@U°wÆ»²mm_@aXƒVKÞVlk@akk›̅@£X»VwƏXWa¯aȗb™KƽۃĊ™xƒLóŽk@ƒƒƒ@¯nƒKUL@xkL›ÑkWULUUmJUXVŽU@mŽUX¯@V`mbXbV@@nn¤WXšx@škJ@nVVUVl²UbÝVUVk@Wx@V@„ƒVXzmlaƒL@VlLU`„XUVVVUnl@VbnJlnUVVnƒlUKkbmnn„VxlJnxmbU@UL@KUV™X@xmb@lk@mnVVUš™è'], - 'encodeOffsets': [[ - 123784, - 30977 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3309', - 'properties': { - 'name': '舟山市', - 'cp': [ - 122.2559, - 30.2234 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l΢ƒʠþÆVĢLĊƒǬXĊ܄XôV„ÑÆw„ƒlšƏÈóVĭVǓ@ƒĉwɛkmK@ĉXīWaĉUĵÝmƒ¯ĉƒwĉ±±nż¯x@VǦV„²JĊÞôèÝXÅW¯›VÛaó¦@xƒŽmޝ¼ŹĀ'], - 'encodeOffsets': [[ - 124437, - 30983 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3310', - 'properties': { - 'name': '台州市', - 'cp': [ - 121.1353, - 28.6688 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lV„IVWVz@bXJl@Xal@°„nLll@nVxnV„K@UJVbƒ¦°„k`UIWJXnƚ@bUJ„Xl@lb„Wn@UzVV@bVVšmVnnJVXna‚bšKUKnUVVUnVLlKVLXa„Jm£@mU@WanaU_°@VWnV@UVWnIVVVKlXœÒlK@wVK„L°m„@„„l@ô„Kšw„ĉƾůUƒl£@»UƒVk„m@ƅUƒƒaÛIŏmUk@m„w@a™£ƒWk@ţšƒIm±@ankôUlaU™Uw¯ƒōaƒbÇbţm™ÞšÞVĖ„b„l@š@n‚VXxƒbUl@XmbƒŽ¯lUUU™W@ÛI±xU@mƒb@bmJ@bUzƒV@b¯bƒKUa¯KV_@Kk@@mWIƒ@lUU›b@bkVm@kwUÇU_WKU@Ux™@ƒVUnllX@Vn‚J@UXV@bWL@lUbbVLUJ@z‚V@lnbWbnnnJVŽ@L'], - 'encodeOffsets': [[ - 123312, - 29526 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3307', - 'properties': { - 'name': '金华市', - 'cp': [ - 120.0037, - 29.1028 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nbVb„@VbUVlb@VUnVxk`lXnJlbnƒlL@bX@Vƒ@klƒV@nLnx@JlI„V‚U@VUVn„VV„I@WVLVbVKXbWnXl@VlXUx„b@ŽlVUbl„œlVUšIÜVnalKX@@bV@@aUUlUƒwUw„@naWW„UVaUUšaVb„LlxXJVk°ƒUƒlkU¥@k„a@LVlXLVlšVWznVn@lxšJl_@WX_@mVa„a@alU@kVVna„KVLlK„b@UUaVašbnUWmXU@k@yVI@ařWmXIVJl_¯ƒ„¥UaVI@ƒLmUUw@mkkmK¯ƒk@Wbk@WI@aUyUXƒJkU@bU@WLUyƒXUbkbW`UVVkKmbUaVUƒUK™£@KVUUUm@UWkXWaUKƒV@b¯ƒ¯mU™V@UkƒmW@kkKƒwUƒmkkVUI@WlkUamL@Wk_Wƒ@UVm@Ua¯KWXk@Uxm@UK@xV„mV@Xk@UVV¼@‚VLUb™Uƒ„U@ƒyULUbVlU@@XlVUVVbƒU@lXXVW@XUVl@@VUVƒÈn@VVU„@lVa@„U„mL@`X@`WL@VUX@lUL@xlx'], - 'encodeOffsets': [[ - 122119, - 29948 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3308', - 'properties': { - 'name': '衢州市', - 'cp': [ - 118.6853, - 28.8666 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XkVKnwl@@aVK@UšwnL‚K@aÞaš¹@Kb@UVaUaVaVK@k°V„UllnL@„V@šxV@œšV@VV„m„_Wa„m@wlaÞbn@lL@WnLšk@V@VlK@nkVVb@blKXklakw@wVK@kVW@UXK@_‚W@_nKVƒ@ƒUb@kVƒUUm@„ÇVU@Uk@VU@WUXWW@k„VUaVUkU@WWXUKk@Ukmm¯LmmƒUJUIWJkImmƒ_—±WLkKm£@aVUmKUnƒLmWUkVmw@¥U„LVWm@WUka@UmmLmm@@bUX™@@WUIm@UVUK@UVUUU™VVJmb@b„Xn‚mVƒ¼nnn¦mJUVƒL„V@VW@UzUlVnUbl`UnVl@XU@kl@bmÈUx™Vk@@J@„ƒ¼W@ÅaVVnzmVƒ„@WJk@kWJ@ƒlXbWbXxmVnšlLXb@°lKVXnWšbWV„„X„mbV@Xl‚bšI@Kn@@x@šVLlm'], - 'encodeOffsets': [[ - 121185, - 30184 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3306', - 'properties': { - 'name': '绍兴市', - 'cp': [ - 120.564, - 29.7565 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„x@„˜VnnVJnIVJV_VKXblUXJlŽlLUŽUnU@UVVX@ŽmVUUUJl„XUlbV@@V„LVmX@@XlaVJVXXJ@b‚@XU„@lUšJ„È‚bœ¤Ō„JšçV™UUnml@@kna@wšWVU@LVKV@namwkIUwmƒnmlaVL„kUmVUkmmIUak@VmUUVUƒWV_kK@U„K‚bnkWy„U@ƒ@UXwl@VUÞUVak±VUUU@mlI@™™wXWƒIWbUKkLUKVmUUmVVL™LambUWmIUm™nUU@aUUVym@ƒXkak@ƒW@z@lWVXnmV™aUbVb@VƒakLUKƒLmbUU@lkV@bƒbUb@nW`@Xk`™Ikwm@mUXy™UUkWKUk@Kƒb@lV¦klV„¯„UlWIkwƒKUa™bVVUbƒVXXmbƒ@Vx„xkVVV@bU@@aW@kLmb@lVUIVKmL@bUV@bUV@L„a˜lnUV@nbVbUlVXšJVUnx'], - 'encodeOffsets': [[ - 122997, - 30561 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3304', - 'properties': { - 'name': '嘉兴市', - 'cp': [ - 120.9155, - 30.6354 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@blIX@@VÜVUnn@l‚k„lKnI°Þl`²LVKVbnbVaVLUVn@W¦@VkVVb„@VI„`@blLnL‚aX@„VVb@U‚@XlVa„@@kVaUKV»U_lWXUƒƒ@alb„k@VllnLVKn@@UVIUw@y°IVVXU@VV@lw„m@wVkƾaœJ‚LkΡƧƒ™l™LÝUmW¯ķÿĉ¥ƒIŋŽWn™èkVƧU¯ÅmlVx@V¯aƒz„Ž@„@JU@U¦m@@šnVmn@V„LV‚'], - 'encodeOffsets': [[ - 123233, - 31382 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3305', - 'properties': { - 'name': '湖州市', - 'cp': [ - 119.8608, - 30.7782 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@kLlƒkm@VmÛU@UW@kJ@aUƒK@UnmmU@™maÛL@JWUUKUwUIUJ@XƒKWV@Vk@UIUmVk@mm@ÅnmaUVkL@VƒKmLVbU@klU@ÝbV™@mVUKV™@wUkVƒ—ƒmIUJ@nVV@L™akJWbUIka@UmKmLKmmƒUUVk@@nmLX`WXUV@Ž@nUl™kmlU@Ub„„ƒxVVšIlV„Žšnn„@@n˜„UҚ@„°n@@xmb@„VbnV@šš„@b@`@L@L@x@blVklVbnnV@‚aXb°VlU@W„b°U„LXWVUV™„™VwÈwÜ»ĸaĠnUVw²X@V@lVU@wlaUUVm@knUV›'], - 'encodeOffsets': [[ - 123379, - 31500 - ]] - } - } - ], - 'UTF8Encoding': true - }; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/pie.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/pie.js deleted file mode 100644 index f852025..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/pie.js +++ /dev/null @@ -1,746 +0,0 @@ -define('echarts/chart/pie', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Ring', - 'zrender/shape/Circle', - 'zrender/shape/Sector', - 'zrender/shape/Polyline', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/math', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var TextShape = require('zrender/shape/Text'); - var RingShape = require('zrender/shape/Ring'); - var CircleShape = require('zrender/shape/Circle'); - var SectorShape = require('zrender/shape/Sector'); - var PolylineShape = require('zrender/shape/Polyline'); - var ecConfig = require('../config'); - ecConfig.pie = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - center: [ - '50%', - '50%' - ], - radius: [ - 0, - '75%' - ], - clockWise: true, - startAngle: 90, - minAngle: 0, - selectedOffset: 10, - itemStyle: { - normal: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - label: { - show: true, - position: 'outer' - }, - labelLine: { - show: true, - length: 20, - lineStyle: { - width: 1, - type: 'solid' - } - } - }, - emphasis: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - label: { show: false }, - labelLine: { - show: false, - length: 20, - lineStyle: { - width: 1, - type: 'solid' - } - } - } - } - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrMath = require('zrender/tool/math'); - var zrColor = require('zrender/tool/color'); - function Pie(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self.shapeHandler.onmouseover = function (param) { - var shape = param.target; - var seriesIndex = ecData.get(shape, 'seriesIndex'); - var dataIndex = ecData.get(shape, 'dataIndex'); - var percent = ecData.get(shape, 'special'); - var center = [ - shape.style.x, - shape.style.y - ]; - var startAngle = shape.style.startAngle; - var endAngle = shape.style.endAngle; - var midAngle = ((endAngle + startAngle) / 2 + 360) % 360; - var defaultColor = shape.highlightStyle.color; - var label = self.getLabel(seriesIndex, dataIndex, percent, center, midAngle, defaultColor, true); - if (label) { - self.zr.addHoverShape(label); - } - var labelLine = self.getLabelLine(seriesIndex, dataIndex, center, shape.style.r0, shape.style.r, midAngle, defaultColor, true); - if (labelLine) { - self.zr.addHoverShape(labelLine); - } - }; - this.refresh(option); - } - Pie.prototype = { - type: ecConfig.CHART_TYPE_PIE, - _buildShape: function () { - var series = this.series; - var legend = this.component.legend; - this.selectedMap = {}; - this._selected = {}; - var center; - var radius; - var pieCase; - this._selectedMode = false; - var serieName; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === ecConfig.CHART_TYPE_PIE) { - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - serieName = series[i].name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (!this.selectedMap[serieName]) { - continue; - } - center = this.parseCenter(this.zr, series[i].center); - radius = this.parseRadius(this.zr, series[i].radius); - this._selectedMode = this._selectedMode || series[i].selectedMode; - this._selected[i] = []; - if (this.deepQuery([ - series[i], - this.option - ], 'calculable')) { - pieCase = { - zlevel: series[i].zlevel, - z: series[i].z, - hoverable: false, - style: { - x: center[0], - y: center[1], - r0: radius[0] <= 10 ? 0 : radius[0] - 10, - r: radius[1] + 10, - brushType: 'stroke', - lineWidth: 1, - strokeColor: series[i].calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor - } - }; - ecData.pack(pieCase, series[i], i, undefined, -1); - this.setCalculable(pieCase); - pieCase = radius[0] <= 10 ? new CircleShape(pieCase) : new RingShape(pieCase); - this.shapeList.push(pieCase); - } - this._buildSinglePie(i); - this.buildMark(i); - } - } - this.addShapeList(); - }, - _buildSinglePie: function (seriesIndex) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data; - var legend = this.component.legend; - var itemName; - var totalSelected = 0; - var totalSelectedValue0 = 0; - var totalValue = 0; - var maxValue = Number.NEGATIVE_INFINITY; - var singleShapeList = []; - for (var i = 0, l = data.length; i < l; i++) { - itemName = data[i].name; - this.selectedMap[itemName] = legend ? legend.isSelected(itemName) : true; - if (this.selectedMap[itemName] && !isNaN(data[i].value)) { - if (+data[i].value !== 0) { - totalSelected++; - } else { - totalSelectedValue0++; - } - totalValue += +data[i].value; - maxValue = Math.max(maxValue, +data[i].value); - } - } - if (totalValue === 0) { - return; - } - var percent = 100; - var clockWise = serie.clockWise; - var startAngle = (serie.startAngle.toFixed(2) - 0 + 360) % 360; - var endAngle; - var minAngle = serie.minAngle || 0.01; - var totalAngle = 360 - minAngle * totalSelected - 0.01 * totalSelectedValue0; - var defaultColor; - var roseType = serie.roseType; - var center; - var radius; - var r0; - var r1; - for (var i = 0, l = data.length; i < l; i++) { - itemName = data[i].name; - if (!this.selectedMap[itemName] || isNaN(data[i].value)) { - continue; - } - defaultColor = legend ? legend.getColor(itemName) : this.zr.getColor(i); - percent = data[i].value / totalValue; - if (roseType != 'area') { - endAngle = clockWise ? startAngle - percent * totalAngle - (percent !== 0 ? minAngle : 0.01) : percent * totalAngle + startAngle + (percent !== 0 ? minAngle : 0.01); - } else { - endAngle = clockWise ? startAngle - 360 / l : 360 / l + startAngle; - } - endAngle = endAngle.toFixed(2) - 0; - percent = (percent * 100).toFixed(2); - center = this.parseCenter(this.zr, serie.center); - radius = this.parseRadius(this.zr, serie.radius); - r0 = +radius[0]; - r1 = +radius[1]; - if (roseType === 'radius') { - r1 = data[i].value / maxValue * (r1 - r0) * 0.8 + (r1 - r0) * 0.2 + r0; - } else if (roseType === 'area') { - r1 = Math.sqrt(data[i].value / maxValue) * (r1 - r0) + r0; - } - if (clockWise) { - var temp; - temp = startAngle; - startAngle = endAngle; - endAngle = temp; - } - this._buildItem(singleShapeList, seriesIndex, i, percent, data[i].selected, center, r0, r1, startAngle, endAngle, defaultColor); - if (!clockWise) { - startAngle = endAngle; - } - } - this._autoLabelLayout(singleShapeList, center, r1); - for (var i = 0, l = singleShapeList.length; i < l; i++) { - this.shapeList.push(singleShapeList[i]); - } - singleShapeList = null; - }, - _buildItem: function (singleShapeList, seriesIndex, dataIndex, percent, isSelected, center, r0, r1, startAngle, endAngle, defaultColor) { - var series = this.series; - var midAngle = ((endAngle + startAngle) / 2 + 360) % 360; - var sector = this.getSector(seriesIndex, dataIndex, percent, isSelected, center, r0, r1, startAngle, endAngle, defaultColor); - ecData.pack(sector, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name, percent); - singleShapeList.push(sector); - var label = this.getLabel(seriesIndex, dataIndex, percent, center, midAngle, defaultColor, false); - var labelLine = this.getLabelLine(seriesIndex, dataIndex, center, r0, r1, midAngle, defaultColor, false); - if (labelLine) { - ecData.pack(labelLine, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name, percent); - singleShapeList.push(labelLine); - } - if (label) { - ecData.pack(label, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name, percent); - label._labelLine = labelLine; - singleShapeList.push(label); - } - }, - getSector: function (seriesIndex, dataIndex, percent, isSelected, center, r0, r1, startAngle, endAngle, defaultColor) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var queryTarget = [ - data, - serie - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor; - var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor); - var sector = { - zlevel: serie.zlevel, - z: serie.z, - clickable: this.deepQuery(queryTarget, 'clickable'), - style: { - x: center[0], - y: center[1], - r0: r0, - r: r1, - startAngle: startAngle, - endAngle: endAngle, - brushType: 'both', - color: normalColor, - lineWidth: normal.borderWidth, - strokeColor: normal.borderColor, - lineJoin: 'round' - }, - highlightStyle: { - color: emphasisColor, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor, - lineJoin: 'round' - }, - _seriesIndex: seriesIndex, - _dataIndex: dataIndex - }; - if (isSelected) { - var midAngle = ((sector.style.startAngle + sector.style.endAngle) / 2).toFixed(2) - 0; - sector.style._hasSelected = true; - sector.style._x = sector.style.x; - sector.style._y = sector.style.y; - var offset = this.query(serie, 'selectedOffset'); - sector.style.x += zrMath.cos(midAngle, true) * offset; - sector.style.y -= zrMath.sin(midAngle, true) * offset; - this._selected[seriesIndex][dataIndex] = true; - } else { - this._selected[seriesIndex][dataIndex] = false; - } - if (this._selectedMode) { - sector.onclick = this.shapeHandler.onclick; - } - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - this.setCalculable(sector); - sector.draggable = true; - } - if (this._needLabel(serie, data, true) || this._needLabelLine(serie, data, true)) { - sector.onmouseover = this.shapeHandler.onmouseover; - } - sector = new SectorShape(sector); - return sector; - }, - getLabel: function (seriesIndex, dataIndex, percent, center, midAngle, defaultColor, isEmphasis) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - if (!this._needLabel(serie, data, isEmphasis)) { - return; - } - var status = isEmphasis ? 'emphasis' : 'normal'; - var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle); - var labelControl = itemStyle[status].label; - var textStyle = labelControl.textStyle || {}; - var centerX = center[0]; - var centerY = center[1]; - var x; - var y; - var radius = this.parseRadius(this.zr, serie.radius); - var textAlign; - var textBaseline = 'middle'; - labelControl.position = labelControl.position || itemStyle.normal.label.position; - if (labelControl.position === 'center') { - x = centerX; - y = centerY; - textAlign = 'center'; - } else if (labelControl.position === 'inner' || labelControl.position === 'inside') { - radius = (radius[0] + radius[1]) * (labelControl.distance || 0.5); - x = Math.round(centerX + radius * zrMath.cos(midAngle, true)); - y = Math.round(centerY - radius * zrMath.sin(midAngle, true)); - defaultColor = '#fff'; - textAlign = 'center'; - } else { - radius = radius[1] - -itemStyle[status].labelLine.length; - x = Math.round(centerX + radius * zrMath.cos(midAngle, true)); - y = Math.round(centerY - radius * zrMath.sin(midAngle, true)); - textAlign = midAngle >= 90 && midAngle <= 270 ? 'right' : 'left'; - } - if (labelControl.position != 'center' && labelControl.position != 'inner' && labelControl.position != 'inside') { - x += textAlign === 'left' ? 20 : -20; - } - data.__labelX = x - (textAlign === 'left' ? 5 : -5); - data.__labelY = y; - var ts = new TextShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - x: x, - y: y, - color: textStyle.color || defaultColor, - text: this.getLabelText(seriesIndex, dataIndex, percent, status), - textAlign: textStyle.align || textAlign, - textBaseline: textStyle.baseline || textBaseline, - textFont: this.getFont(textStyle) - }, - highlightStyle: { brushType: 'fill' } - }); - ts._radius = radius; - ts._labelPosition = labelControl.position || 'outer'; - ts._rect = ts.getRect(ts.style); - ts._seriesIndex = seriesIndex; - ts._dataIndex = dataIndex; - return ts; - }, - getLabelText: function (seriesIndex, dataIndex, percent, status) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var formatter = this.deepQuery([ - data, - serie - ], 'itemStyle.' + status + '.label.formatter'); - if (formatter) { - if (typeof formatter === 'function') { - return formatter.call(this.myChart, { - seriesIndex: seriesIndex, - seriesName: serie.name || '', - series: serie, - dataIndex: dataIndex, - data: data, - name: data.name, - value: data.value, - percent: percent - }); - } else if (typeof formatter === 'string') { - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{d}', '{d0}'); - formatter = formatter.replace('{a0}', serie.name).replace('{b0}', data.name).replace('{c0}', data.value).replace('{d0}', percent); - return formatter; - } - } else { - return data.name; - } - }, - getLabelLine: function (seriesIndex, dataIndex, center, r0, r1, midAngle, defaultColor, isEmphasis) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - if (this._needLabelLine(serie, data, isEmphasis)) { - var status = isEmphasis ? 'emphasis' : 'normal'; - var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle); - var labelLineControl = itemStyle[status].labelLine; - var lineStyle = labelLineControl.lineStyle || {}; - var centerX = center[0]; - var centerY = center[1]; - var minRadius = r1; - var maxRadius = this.parseRadius(this.zr, serie.radius)[1] - -labelLineControl.length; - var cosValue = zrMath.cos(midAngle, true); - var sinValue = zrMath.sin(midAngle, true); - return new PolylineShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - pointList: [ - [ - centerX + minRadius * cosValue, - centerY - minRadius * sinValue - ], - [ - centerX + maxRadius * cosValue, - centerY - maxRadius * sinValue - ], - [ - data.__labelX, - data.__labelY - ] - ], - strokeColor: lineStyle.color || defaultColor, - lineType: lineStyle.type, - lineWidth: lineStyle.width - }, - _seriesIndex: seriesIndex, - _dataIndex: dataIndex - }); - } else { - return; - } - }, - _needLabel: function (serie, data, isEmphasis) { - return this.deepQuery([ - data, - serie - ], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.label.show'); - }, - _needLabelLine: function (serie, data, isEmphasis) { - return this.deepQuery([ - data, - serie - ], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.labelLine.show'); - }, - _autoLabelLayout: function (sList, center, r) { - var leftList = []; - var rightList = []; - for (var i = 0, l = sList.length; i < l; i++) { - if (sList[i]._labelPosition === 'outer' || sList[i]._labelPosition === 'outside') { - sList[i]._rect._y = sList[i]._rect.y; - if (sList[i]._rect.x < center[0]) { - leftList.push(sList[i]); - } else { - rightList.push(sList[i]); - } - } - } - this._layoutCalculate(leftList, center, r, -1); - this._layoutCalculate(rightList, center, r, 1); - }, - _layoutCalculate: function (tList, center, r, direction) { - tList.sort(function (a, b) { - return a._rect.y - b._rect.y; - }); - function _changeDown(start, end, delta, direction) { - for (var j = start; j < end; j++) { - tList[j]._rect.y += delta; - tList[j].style.y += delta; - if (tList[j]._labelLine) { - tList[j]._labelLine.style.pointList[1][1] += delta; - tList[j]._labelLine.style.pointList[2][1] += delta; - } - if (j > start && j + 1 < end && tList[j + 1]._rect.y > tList[j]._rect.y + tList[j]._rect.height) { - _changeUp(j, delta / 2); - return; - } - } - _changeUp(end - 1, delta / 2); - } - function _changeUp(end, delta) { - for (var j = end; j >= 0; j--) { - tList[j]._rect.y -= delta; - tList[j].style.y -= delta; - if (tList[j]._labelLine) { - tList[j]._labelLine.style.pointList[1][1] -= delta; - tList[j]._labelLine.style.pointList[2][1] -= delta; - } - if (j > 0 && tList[j]._rect.y > tList[j - 1]._rect.y + tList[j - 1]._rect.height) { - break; - } - } - } - function _changeX(sList, isDownList, center, r, direction) { - var x = center[0]; - var y = center[1]; - var deltaX; - var deltaY; - var length; - var lastDeltaX = direction > 0 ? isDownList ? Number.MAX_VALUE : 0 : isDownList ? Number.MAX_VALUE : 0; - for (var i = 0, l = sList.length; i < l; i++) { - deltaY = Math.abs(sList[i]._rect.y - y); - length = sList[i]._radius - r; - deltaX = deltaY < r + length ? Math.sqrt((r + length + 20) * (r + length + 20) - Math.pow(sList[i]._rect.y - y, 2)) : Math.abs(sList[i]._rect.x + (direction > 0 ? 0 : sList[i]._rect.width) - x); - if (isDownList && deltaX >= lastDeltaX) { - deltaX = lastDeltaX - 10; - } - if (!isDownList && deltaX <= lastDeltaX) { - deltaX = lastDeltaX + 10; - } - sList[i]._rect.x = sList[i].style.x = x + deltaX * direction; - if (sList[i]._labelLine) { - sList[i]._labelLine.style.pointList[2][0] = x + (deltaX - 5) * direction; - sList[i]._labelLine.style.pointList[1][0] = x + (deltaX - 20) * direction; - } - lastDeltaX = deltaX; - } - } - var lastY = 0; - var delta; - var len = tList.length; - var upList = []; - var downList = []; - for (var i = 0; i < len; i++) { - delta = tList[i]._rect.y - lastY; - if (delta < 0) { - _changeDown(i, len, -delta, direction); - } - lastY = tList[i]._rect.y + tList[i]._rect.height; - } - if (this.zr.getHeight() - lastY < 0) { - _changeUp(len - 1, lastY - this.zr.getHeight()); - } - for (var i = 0; i < len; i++) { - if (tList[i]._rect.y >= center[1]) { - downList.push(tList[i]); - } else { - upList.push(tList[i]); - } - } - _changeX(downList, true, center, r, direction); - _changeX(upList, false, center, r, direction); - }, - reformOption: function (opt) { - var _merge = zrUtil.merge; - opt = _merge(_merge(opt || {}, zrUtil.clone(this.ecTheme.pie || {})), zrUtil.clone(ecConfig.pie)); - opt.itemStyle.normal.label.textStyle = this.getTextStyle(opt.itemStyle.normal.label.textStyle); - opt.itemStyle.emphasis.label.textStyle = this.getTextStyle(opt.itemStyle.emphasis.label.textStyle); - this.z = opt.z; - this.zlevel = opt.zlevel; - return opt; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - }, - addDataAnimation: function (params, done) { - var series = this.series; - var aniMap = {}; - for (var i = 0, l = params.length; i < l; i++) { - aniMap[params[i][0]] = params[i]; - } - var aniCount = 0; - function animationDone() { - aniCount--; - if (aniCount === 0) { - done && done(); - } - } - var sectorMap = {}; - var textMap = {}; - var lineMap = {}; - var backupShapeList = this.shapeList; - this.shapeList = []; - var seriesIndex; - var isHead; - var dataGrow; - var deltaIdxMap = {}; - for (var i = 0, l = params.length; i < l; i++) { - seriesIndex = params[i][0]; - isHead = params[i][2]; - dataGrow = params[i][3]; - if (series[seriesIndex] && series[seriesIndex].type === ecConfig.CHART_TYPE_PIE) { - if (isHead) { - if (!dataGrow) { - sectorMap[seriesIndex + '_' + series[seriesIndex].data.length] = 'delete'; - } - deltaIdxMap[seriesIndex] = 1; - } else { - if (!dataGrow) { - sectorMap[seriesIndex + '_-1'] = 'delete'; - deltaIdxMap[seriesIndex] = -1; - } else { - deltaIdxMap[seriesIndex] = 0; - } - } - this._buildSinglePie(seriesIndex); - } - } - var dataIndex; - var key; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - seriesIndex = this.shapeList[i]._seriesIndex; - dataIndex = this.shapeList[i]._dataIndex; - key = seriesIndex + '_' + dataIndex; - switch (this.shapeList[i].type) { - case 'sector': - sectorMap[key] = this.shapeList[i]; - break; - case 'text': - textMap[key] = this.shapeList[i]; - break; - case 'polyline': - lineMap[key] = this.shapeList[i]; - break; - } - } - this.shapeList = []; - var targeSector; - for (var i = 0, l = backupShapeList.length; i < l; i++) { - seriesIndex = backupShapeList[i]._seriesIndex; - if (aniMap[seriesIndex]) { - dataIndex = backupShapeList[i]._dataIndex + deltaIdxMap[seriesIndex]; - key = seriesIndex + '_' + dataIndex; - targeSector = sectorMap[key]; - if (!targeSector) { - continue; - } - if (backupShapeList[i].type === 'sector') { - if (targeSector != 'delete') { - aniCount++; - this.zr.animate(backupShapeList[i].id, 'style').when(400, { - startAngle: targeSector.style.startAngle, - endAngle: targeSector.style.endAngle - }).done(animationDone).start(); - } else { - aniCount++; - this.zr.animate(backupShapeList[i].id, 'style').when(400, deltaIdxMap[seriesIndex] < 0 ? { startAngle: backupShapeList[i].style.startAngle } : { endAngle: backupShapeList[i].style.endAngle }).done(animationDone).start(); - } - } else if (backupShapeList[i].type === 'text' || backupShapeList[i].type === 'polyline') { - if (targeSector === 'delete') { - this.zr.delShape(backupShapeList[i].id); - } else { - switch (backupShapeList[i].type) { - case 'text': - aniCount++; - targeSector = textMap[key]; - this.zr.animate(backupShapeList[i].id, 'style').when(400, { - x: targeSector.style.x, - y: targeSector.style.y - }).done(animationDone).start(); - break; - case 'polyline': - aniCount++; - targeSector = lineMap[key]; - this.zr.animate(backupShapeList[i].id, 'style').when(400, { pointList: targeSector.style.pointList }).done(animationDone).start(); - break; - } - } - } - } - } - this.shapeList = backupShapeList; - if (!aniCount) { - done && done(); - } - }, - onclick: function (param) { - var series = this.series; - if (!this.isClick || !param.target) { - return; - } - this.isClick = false; - var offset; - var target = param.target; - var style = target.style; - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - for (var i = 0, len = this.shapeList.length; i < len; i++) { - if (this.shapeList[i].id === target.id) { - seriesIndex = ecData.get(target, 'seriesIndex'); - dataIndex = ecData.get(target, 'dataIndex'); - if (!style._hasSelected) { - var midAngle = ((style.startAngle + style.endAngle) / 2).toFixed(2) - 0; - target.style._hasSelected = true; - this._selected[seriesIndex][dataIndex] = true; - target.style._x = target.style.x; - target.style._y = target.style.y; - offset = this.query(series[seriesIndex], 'selectedOffset'); - target.style.x += zrMath.cos(midAngle, true) * offset; - target.style.y -= zrMath.sin(midAngle, true) * offset; - } else { - target.style.x = target.style._x; - target.style.y = target.style._y; - target.style._hasSelected = false; - this._selected[seriesIndex][dataIndex] = false; - } - this.zr.modShape(target.id); - } else if (this.shapeList[i].style._hasSelected && this._selectedMode === 'single') { - seriesIndex = ecData.get(this.shapeList[i], 'seriesIndex'); - dataIndex = ecData.get(this.shapeList[i], 'dataIndex'); - this.shapeList[i].style.x = this.shapeList[i].style._x; - this.shapeList[i].style.y = this.shapeList[i].style._y; - this.shapeList[i].style._hasSelected = false; - this._selected[seriesIndex][dataIndex] = false; - this.zr.modShape(this.shapeList[i].id); - } - } - this.messageCenter.dispatch(ecConfig.EVENT.PIE_SELECTED, param.event, { - selected: this._selected, - target: ecData.get(target, 'name') - }, this.myChart); - this.zr.refreshNextFrame(); - } - }; - zrUtil.inherits(Pie, ChartBase); - require('../chart').define('pie', Pie); - return Pie; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/radar.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/radar.js deleted file mode 100644 index 47059e6..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/radar.js +++ /dev/null @@ -1,942 +0,0 @@ -define('echarts/chart/radar', [ - 'require', - './base', - 'zrender/shape/Polygon', - '../component/polar', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/color', - '../util/accMath', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var PolygonShape = require('zrender/shape/Polygon'); - require('../component/polar'); - var ecConfig = require('../config'); - ecConfig.radar = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - polarIndex: 0, - itemStyle: { - normal: { - label: { show: false }, - lineStyle: { - width: 2, - type: 'solid' - } - }, - emphasis: { label: { show: false } } - }, - symbolSize: 2 - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function Radar(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Radar.prototype = { - type: ecConfig.CHART_TYPE_RADAR, - _buildShape: function () { - this.selectedMap = {}; - this._symbol = this.option.symbolList; - this._queryTarget; - this._dropBoxList = []; - this._radarDataCounter = 0; - var series = this.series; - var legend = this.component.legend; - var serieName; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === ecConfig.CHART_TYPE_RADAR) { - this.serie = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - serieName = this.serie.name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (this.selectedMap[serieName]) { - this._queryTarget = [ - this.serie, - this.option - ]; - if (this.deepQuery(this._queryTarget, 'calculable')) { - this._addDropBox(i); - } - this._buildSingleRadar(i); - this.buildMark(i); - } - } - } - this.addShapeList(); - }, - _buildSingleRadar: function (index) { - var legend = this.component.legend; - var iconShape; - var data = this.serie.data; - var defaultColor; - var name; - var pointList; - var calculable = this.deepQuery(this._queryTarget, 'calculable'); - for (var i = 0; i < data.length; i++) { - name = data[i].name || ''; - this.selectedMap[name] = legend ? legend.isSelected(name) : true; - if (!this.selectedMap[name]) { - continue; - } - if (legend) { - defaultColor = legend.getColor(name); - iconShape = legend.getItemShape(name); - if (iconShape) { - iconShape.style.brushType = this.deepQuery([ - data[i], - this.serie - ], 'itemStyle.normal.areaStyle') ? 'both' : 'stroke'; - legend.setItemShape(name, iconShape); - } - } else { - defaultColor = this.zr.getColor(i); - } - pointList = this._getPointList(this.serie.polarIndex, data[i]); - this._addSymbol(pointList, defaultColor, i, index, this.serie.polarIndex); - this._addDataShape(pointList, defaultColor, data[i], index, i, calculable); - this._radarDataCounter++; - } - }, - _getPointList: function (polarIndex, dataArr) { - var pointList = []; - var vector; - var polar = this.component.polar; - var value; - for (var i = 0, l = dataArr.value.length; i < l; i++) { - value = this.getDataFromOption(dataArr.value[i]); - vector = value != '-' ? polar.getVector(polarIndex, i, value) : false; - if (vector) { - pointList.push(vector); - } - } - return pointList; - }, - _addSymbol: function (pointList, defaultColor, dataIndex, seriesIndex, polarIndex) { - var series = this.series; - var itemShape; - var polar = this.component.polar; - for (var i = 0, l = pointList.length; i < l; i++) { - itemShape = this.getSymbolShape(this.deepMerge([ - series[seriesIndex].data[dataIndex], - series[seriesIndex] - ]), seriesIndex, series[seriesIndex].data[dataIndex].value[i], i, polar.getIndicatorText(polarIndex, i), pointList[i][0], pointList[i][1], this._symbol[this._radarDataCounter % this._symbol.length], defaultColor, '#fff', 'vertical'); - itemShape.zlevel = this.getZlevelBase(); - itemShape.z = this.getZBase() + 1; - ecData.set(itemShape, 'data', series[seriesIndex].data[dataIndex]); - ecData.set(itemShape, 'value', series[seriesIndex].data[dataIndex].value); - ecData.set(itemShape, 'dataIndex', dataIndex); - ecData.set(itemShape, 'special', i); - this.shapeList.push(itemShape); - } - }, - _addDataShape: function (pointList, defaultColor, data, seriesIndex, dataIndex, calculable) { - var series = this.series; - var queryTarget = [ - data, - this.serie - ]; - var nColor = this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color'), seriesIndex, dataIndex, data); - var nLineWidth = this.deepQuery(queryTarget, 'itemStyle.normal.lineStyle.width'); - var nLineType = this.deepQuery(queryTarget, 'itemStyle.normal.lineStyle.type'); - var nAreaColor = this.deepQuery(queryTarget, 'itemStyle.normal.areaStyle.color'); - var nIsAreaFill = this.deepQuery(queryTarget, 'itemStyle.normal.areaStyle'); - var shape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - pointList: pointList, - brushType: nIsAreaFill ? 'both' : 'stroke', - color: nAreaColor || nColor || (typeof defaultColor === 'string' ? zrColor.alpha(defaultColor, 0.5) : defaultColor), - strokeColor: nColor || defaultColor, - lineWidth: nLineWidth, - lineType: nLineType - }, - highlightStyle: { - brushType: this.deepQuery(queryTarget, 'itemStyle.emphasis.areaStyle') || nIsAreaFill ? 'both' : 'stroke', - color: this.deepQuery(queryTarget, 'itemStyle.emphasis.areaStyle.color') || nAreaColor || nColor || (typeof defaultColor === 'string' ? zrColor.alpha(defaultColor, 0.5) : defaultColor), - strokeColor: this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), seriesIndex, dataIndex, data) || nColor || defaultColor, - lineWidth: this.deepQuery(queryTarget, 'itemStyle.emphasis.lineStyle.width') || nLineWidth, - lineType: this.deepQuery(queryTarget, 'itemStyle.emphasis.lineStyle.type') || nLineType - } - }; - ecData.pack(shape, series[seriesIndex], seriesIndex, data, dataIndex, data.name, this.component.polar.getIndicator(series[seriesIndex].polarIndex)); - if (calculable) { - shape.draggable = true; - this.setCalculable(shape); - } - shape = new PolygonShape(shape); - this.shapeList.push(shape); - }, - _addDropBox: function (index) { - var series = this.series; - var polarIndex = this.deepQuery(this._queryTarget, 'polarIndex'); - if (!this._dropBoxList[polarIndex]) { - var shape = this.component.polar.getDropBox(polarIndex); - shape.zlevel = this.getZlevelBase(); - shape.z = this.getZBase(); - this.setCalculable(shape); - ecData.pack(shape, series, index, undefined, -1); - this.shapeList.push(shape); - this._dropBoxList[polarIndex] = true; - } - }, - ondragend: function (param, status) { - var series = this.series; - if (!this.isDragend || !param.target) { - return; - } - var target = param.target; - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - this.component.legend && this.component.legend.del(series[seriesIndex].data[dataIndex].name); - series[seriesIndex].data.splice(dataIndex, 1); - status.dragOut = true; - status.needRefresh = true; - this.isDragend = false; - return; - }, - ondrop: function (param, status) { - var series = this.series; - if (!this.isDrop || !param.target) { - return; - } - var target = param.target; - var dragged = param.dragged; - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - var data; - var legend = this.component.legend; - var value; - if (dataIndex === -1) { - data = { - value: ecData.get(dragged, 'value'), - name: ecData.get(dragged, 'name') - }; - series[seriesIndex].data.push(data); - legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor); - } else { - var accMath = require('../util/accMath'); - data = series[seriesIndex].data[dataIndex]; - legend && legend.del(data.name); - data.name += this.option.nameConnector + ecData.get(dragged, 'name'); - value = ecData.get(dragged, 'value'); - for (var i = 0; i < value.length; i++) { - data.value[i] = accMath.accAdd(data.value[i], value[i]); - } - legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor); - } - status.dragIn = status.dragIn || true; - this.isDrop = false; - return; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - } - }; - zrUtil.inherits(Radar, ChartBase); - require('../chart').define('radar', Radar); - return Radar; -});define('echarts/component/polar', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Line', - 'zrender/shape/Polygon', - 'zrender/shape/Circle', - 'zrender/shape/Ring', - '../config', - 'zrender/tool/util', - '../util/coordinates', - '../util/accMath', - '../util/smartSteps', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var PolygonShape = require('zrender/shape/Polygon'); - var Circle = require('zrender/shape/Circle'); - var Ring = require('zrender/shape/Ring'); - var ecConfig = require('../config'); - ecConfig.polar = { - zlevel: 0, - z: 0, - center: [ - '50%', - '50%' - ], - radius: '75%', - startAngle: 90, - boundaryGap: [ - 0, - 0 - ], - splitNumber: 5, - name: { - show: true, - textStyle: { color: '#333' } - }, - axisLine: { - show: true, - lineStyle: { - color: '#ccc', - width: 1, - type: 'solid' - } - }, - axisLabel: { - show: false, - textStyle: { color: '#333' } - }, - splitArea: { - show: true, - areaStyle: { - color: [ - 'rgba(250,250,250,0.3)', - 'rgba(200,200,200,0.3)' - ] - } - }, - splitLine: { - show: true, - lineStyle: { - width: 1, - color: '#ccc' - } - }, - type: 'polygon' - }; - var zrUtil = require('zrender/tool/util'); - var ecCoordinates = require('../util/coordinates'); - function Polar(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Polar.prototype = { - type: ecConfig.COMPONENT_TYPE_POLAR, - _buildShape: function () { - for (var i = 0; i < this.polar.length; i++) { - this._index = i; - this.reformOption(this.polar[i]); - this._queryTarget = [ - this.polar[i], - this.option - ]; - this._createVector(i); - this._buildSpiderWeb(i); - this._buildText(i); - this._adjustIndicatorValue(i); - this._addAxisLabel(i); - } - for (var i = 0; i < this.shapeList.length; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _createVector: function (index) { - var item = this.polar[index]; - var indicator = this.deepQuery(this._queryTarget, 'indicator'); - var length = indicator.length; - var startAngle = item.startAngle; - var dStep = 2 * Math.PI / length; - var radius = this._getRadius(); - var __ecIndicator = item.__ecIndicator = []; - var vector; - for (var i = 0; i < length; i++) { - vector = ecCoordinates.polar2cartesian(radius, startAngle * Math.PI / 180 + dStep * i); - __ecIndicator.push({ - vector: [ - vector[1], - -vector[0] - ] - }); - } - }, - _getRadius: function () { - var item = this.polar[this._index]; - return this.parsePercent(item.radius, Math.min(this.zr.getWidth(), this.zr.getHeight()) / 2); - }, - _buildSpiderWeb: function (index) { - var item = this.polar[index]; - var __ecIndicator = item.__ecIndicator; - var splitArea = item.splitArea; - var splitLine = item.splitLine; - var center = this.getCenter(index); - var splitNumber = item.splitNumber; - var strokeColor = splitLine.lineStyle.color; - var lineWidth = splitLine.lineStyle.width; - var show = splitLine.show; - var axisLine = this.deepQuery(this._queryTarget, 'axisLine'); - this._addArea(__ecIndicator, splitNumber, center, splitArea, strokeColor, lineWidth, show); - axisLine.show && this._addLine(__ecIndicator, center, axisLine); - }, - _addAxisLabel: function (index) { - var accMath = require('../util/accMath'); - var item = this.polar[index]; - var indicator = this.deepQuery(this._queryTarget, 'indicator'); - var __ecIndicator = item.__ecIndicator; - var axisLabel; - var vector; - var style; - var newStyle; - var splitNumber = this.deepQuery(this._queryTarget, 'splitNumber'); - var center = this.getCenter(index); - var vector; - var value; - var text; - var theta; - var offset; - var interval; - for (var i = 0; i < indicator.length; i++) { - axisLabel = this.deepQuery([ - indicator[i], - item, - this.option - ], 'axisLabel'); - if (axisLabel.show) { - var textStyle = this.deepQuery([ - axisLabel, - item, - this.option - ], 'textStyle'); - var formatter = this.deepQuery([ - axisLabel, - item - ], 'formatter'); - style = {}; - style.textFont = this.getFont(textStyle); - style.color = textStyle.color; - style = zrUtil.merge(style, axisLabel); - style.lineWidth = style.width; - vector = __ecIndicator[i].vector; - value = __ecIndicator[i].value; - theta = i / indicator.length * 2 * Math.PI; - offset = axisLabel.offset || 10; - interval = axisLabel.interval || 0; - if (!value) { - return; - } - for (var j = 1; j <= splitNumber; j += interval + 1) { - newStyle = zrUtil.merge({}, style); - text = accMath.accAdd(value.min, accMath.accMul(value.step, j)); - if (typeof formatter === 'function') { - text = formatter(text); - } else if (typeof formatter === 'string') { - text = formatter.replace('{a}', '{a0}').replace('{a0}', text); - } else { - text = this.numAddCommas(text); - } - newStyle.text = text; - newStyle.x = j * vector[0] / splitNumber + Math.cos(theta) * offset + center[0]; - newStyle.y = j * vector[1] / splitNumber + Math.sin(theta) * offset + center[1]; - this.shapeList.push(new TextShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: newStyle, - draggable: false, - hoverable: false - })); - } - } - } - }, - _buildText: function (index) { - var item = this.polar[index]; - var __ecIndicator = item.__ecIndicator; - var vector; - var indicator = this.deepQuery(this._queryTarget, 'indicator'); - var center = this.getCenter(index); - var style; - var textAlign; - var name; - var rotation; - var x = 0; - var y = 0; - var margin; - var textStyle; - for (var i = 0; i < indicator.length; i++) { - name = this.deepQuery([ - indicator[i], - item, - this.option - ], 'name'); - if (!name.show) { - continue; - } - textStyle = this.deepQuery([ - name, - item, - this.option - ], 'textStyle'); - style = {}; - style.textFont = this.getFont(textStyle); - style.color = textStyle.color; - if (typeof name.formatter == 'function') { - style.text = name.formatter.call(this.myChart, indicator[i].text, i); - } else if (typeof name.formatter == 'string') { - style.text = name.formatter.replace('{value}', indicator[i].text); - } else { - style.text = indicator[i].text; - } - __ecIndicator[i].text = style.text; - vector = __ecIndicator[i].vector; - if (Math.round(vector[0]) > 0) { - textAlign = 'left'; - } else if (Math.round(vector[0]) < 0) { - textAlign = 'right'; - } else { - textAlign = 'center'; - } - if (name.margin == null) { - vector = this._mapVector(vector, center, 1.1); - } else { - margin = name.margin; - x = vector[0] > 0 ? margin : -margin; - y = vector[1] > 0 ? margin : -margin; - x = vector[0] === 0 ? 0 : x; - y = vector[1] === 0 ? 0 : y; - vector = this._mapVector(vector, center, 1); - } - style.textAlign = textAlign; - style.x = vector[0] + x; - style.y = vector[1] + y; - if (name.rotate) { - rotation = [ - name.rotate / 180 * Math.PI, - vector[0], - vector[1] - ]; - } else { - rotation = [ - 0, - 0, - 0 - ]; - } - this.shapeList.push(new TextShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: style, - draggable: false, - hoverable: false, - rotation: rotation - })); - } - }, - getIndicatorText: function (polarIndex, indicatorIndex) { - return this.polar[polarIndex] && this.polar[polarIndex].__ecIndicator[indicatorIndex] && this.polar[polarIndex].__ecIndicator[indicatorIndex].text; - }, - getDropBox: function (index) { - var index = index || 0; - var item = this.polar[index]; - var center = this.getCenter(index); - var __ecIndicator = item.__ecIndicator; - var len = __ecIndicator.length; - var pointList = []; - var vector; - var shape; - var type = item.type; - if (type == 'polygon') { - for (var i = 0; i < len; i++) { - vector = __ecIndicator[i].vector; - pointList.push(this._mapVector(vector, center, 1.2)); - } - shape = this._getShape(pointList, 'fill', 'rgba(0,0,0,0)', '', 1); - } else if (type == 'circle') { - shape = this._getCircle('', 1, 1.2, center, 'fill', 'rgba(0,0,0,0)'); - } - return shape; - }, - _addArea: function (__ecIndicator, splitNumber, center, splitArea, strokeColor, lineWidth, show) { - var shape; - var scale; - var scale1; - var pointList; - var type = this.deepQuery(this._queryTarget, 'type'); - for (var i = 0; i < splitNumber; i++) { - scale = (splitNumber - i) / splitNumber; - if (show) { - if (type == 'polygon') { - pointList = this._getPointList(__ecIndicator, scale, center); - shape = this._getShape(pointList, 'stroke', '', strokeColor, lineWidth); - } else if (type == 'circle') { - shape = this._getCircle(strokeColor, lineWidth, scale, center, 'stroke'); - } - this.shapeList.push(shape); - } - if (splitArea.show) { - scale1 = (splitNumber - i - 1) / splitNumber; - this._addSplitArea(__ecIndicator, splitArea, scale, scale1, center, i); - } - } - }, - _getCircle: function (strokeColor, lineWidth, scale, center, brushType, color) { - var radius = this._getRadius(); - return new Circle({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: center[0], - y: center[1], - r: radius * scale, - brushType: brushType, - strokeColor: strokeColor, - lineWidth: lineWidth, - color: color - }, - hoverable: false, - draggable: false - }); - }, - _getRing: function (color, scale0, scale1, center) { - var radius = this._getRadius(); - return new Ring({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: center[0], - y: center[1], - r: scale0 * radius, - r0: scale1 * radius, - color: color, - brushType: 'fill' - }, - hoverable: false, - draggable: false - }); - }, - _getPointList: function (__ecIndicator, scale, center) { - var pointList = []; - var len = __ecIndicator.length; - var vector; - for (var i = 0; i < len; i++) { - vector = __ecIndicator[i].vector; - pointList.push(this._mapVector(vector, center, scale)); - } - return pointList; - }, - _getShape: function (pointList, brushType, color, strokeColor, lineWidth) { - return new PolygonShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - pointList: pointList, - brushType: brushType, - color: color, - strokeColor: strokeColor, - lineWidth: lineWidth - }, - hoverable: false, - draggable: false - }); - }, - _addSplitArea: function (__ecIndicator, splitArea, scale, scale1, center, colorInd) { - var indLen = __ecIndicator.length; - var color; - var colorArr = splitArea.areaStyle.color; - var colorLen; - var vector; - var vector1; - var pointList = []; - var indLen = __ecIndicator.length; - var shape; - var type = this.deepQuery(this._queryTarget, 'type'); - if (typeof colorArr == 'string') { - colorArr = [colorArr]; - } - colorLen = colorArr.length; - color = colorArr[colorInd % colorLen]; - if (type == 'polygon') { - for (var i = 0; i < indLen; i++) { - pointList = []; - vector = __ecIndicator[i].vector; - vector1 = __ecIndicator[(i + 1) % indLen].vector; - pointList.push(this._mapVector(vector, center, scale)); - pointList.push(this._mapVector(vector, center, scale1)); - pointList.push(this._mapVector(vector1, center, scale1)); - pointList.push(this._mapVector(vector1, center, scale)); - shape = this._getShape(pointList, 'fill', color, '', 1); - this.shapeList.push(shape); - } - } else if (type == 'circle') { - shape = this._getRing(color, scale, scale1, center); - this.shapeList.push(shape); - } - }, - _mapVector: function (vector, center, scale) { - return [ - vector[0] * scale + center[0], - vector[1] * scale + center[1] - ]; - }, - getCenter: function (index) { - var index = index || 0; - return this.parseCenter(this.zr, this.polar[index].center); - }, - _addLine: function (__ecIndicator, center, axisLine) { - var indLen = __ecIndicator.length; - var line; - var vector; - var lineStyle = axisLine.lineStyle; - var strokeColor = lineStyle.color; - var lineWidth = lineStyle.width; - var lineType = lineStyle.type; - for (var i = 0; i < indLen; i++) { - vector = __ecIndicator[i].vector; - line = this._getLine(center[0], center[1], vector[0] + center[0], vector[1] + center[1], strokeColor, lineWidth, lineType); - this.shapeList.push(line); - } - }, - _getLine: function (xStart, yStart, xEnd, yEnd, strokeColor, lineWidth, lineType) { - return new LineShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - xStart: xStart, - yStart: yStart, - xEnd: xEnd, - yEnd: yEnd, - strokeColor: strokeColor, - lineWidth: lineWidth, - lineType: lineType - }, - hoverable: false - }); - }, - _adjustIndicatorValue: function (index) { - var item = this.polar[index]; - var indicator = this.deepQuery(this._queryTarget, 'indicator'); - var len = indicator.length; - var __ecIndicator = item.__ecIndicator; - var max; - var min; - var data = this._getSeriesData(index); - var boundaryGap = item.boundaryGap; - var splitNumber = item.splitNumber; - var scale = item.scale; - var opts; - var smartSteps = require('../util/smartSteps'); - for (var i = 0; i < len; i++) { - if (typeof indicator[i].max == 'number') { - max = indicator[i].max; - min = indicator[i].min || 0; - opts = { - max: max, - min: min - }; - } else { - var value = this._findValue(data, i, splitNumber, boundaryGap); - min = value.min; - max = value.max; - } - if (!scale && min >= 0 && max >= 0) { - min = 0; - } - if (!scale && min <= 0 && max <= 0) { - max = 0; - } - var stepOpt = smartSteps(min, max, splitNumber, opts); - __ecIndicator[i].value = { - min: stepOpt.min, - max: stepOpt.max, - step: stepOpt.step - }; - } - }, - _getSeriesData: function (index) { - var data = []; - var serie; - var serieData; - var legend = this.component.legend; - var polarIndex; - for (var i = 0; i < this.series.length; i++) { - serie = this.series[i]; - if (serie.type != ecConfig.CHART_TYPE_RADAR) { - continue; - } - serieData = serie.data || []; - for (var j = 0; j < serieData.length; j++) { - polarIndex = this.deepQuery([ - serieData[j], - serie, - this.option - ], 'polarIndex') || 0; - if (polarIndex == index && (!legend || legend.isSelected(serieData[j].name))) { - data.push(serieData[j]); - } - } - } - return data; - }, - _findValue: function (data, index, splitNumber, boundaryGap) { - var max; - var min; - var one; - if (!data || data.length === 0) { - return; - } - function _compare(item) { - (item > max || max === undefined) && (max = item); - (item < min || min === undefined) && (min = item); - } - if (data.length == 1) { - min = 0; - } - if (data.length != 1) { - for (var i = 0; i < data.length; i++) { - _compare(this.getDataFromOption(data[i].value[index])); - } - } else { - one = data[0]; - for (var i = 0; i < one.value.length; i++) { - _compare(this.getDataFromOption(one.value[i])); - } - } - var gap = Math.abs(max - min); - min = min - Math.abs(gap * boundaryGap[0]); - max = max + Math.abs(gap * boundaryGap[1]); - if (min === max) { - if (max === 0) { - max = 1; - } else if (max > 0) { - min = max / splitNumber; - } else { - max = max / splitNumber; - } - } - return { - max: max, - min: min - }; - }, - getVector: function (polarIndex, indicatorIndex, value) { - polarIndex = polarIndex || 0; - indicatorIndex = indicatorIndex || 0; - var __ecIndicator = this.polar[polarIndex].__ecIndicator; - if (indicatorIndex >= __ecIndicator.length) { - return; - } - var indicator = this.polar[polarIndex].__ecIndicator[indicatorIndex]; - var center = this.getCenter(polarIndex); - var vector = indicator.vector; - var max = indicator.value.max; - var min = indicator.value.min; - var alpha; - if (typeof value == 'undefined') { - return center; - } - switch (value) { - case 'min': - value = min; - break; - case 'max': - value = max; - break; - case 'center': - value = (max + min) / 2; - break; - } - if (max != min) { - alpha = (value - min) / (max - min); - } else { - alpha = 0.5; - } - return this._mapVector(vector, center, alpha); - }, - isInside: function (vector) { - var polar = this.getNearestIndex(vector); - if (polar) { - return polar.polarIndex; - } - return -1; - }, - getNearestIndex: function (vector) { - var item; - var center; - var radius; - var polarVector; - var startAngle; - var indicator; - var len; - var angle; - var finalAngle; - for (var i = 0; i < this.polar.length; i++) { - item = this.polar[i]; - center = this.getCenter(i); - if (vector[0] == center[0] && vector[1] == center[1]) { - return { - polarIndex: i, - valueIndex: 0 - }; - } - radius = this._getRadius(); - startAngle = item.startAngle; - indicator = item.indicator; - len = indicator.length; - angle = 2 * Math.PI / len; - polarVector = ecCoordinates.cartesian2polar(vector[0] - center[0], center[1] - vector[1]); - if (vector[0] - center[0] < 0) { - polarVector[1] += Math.PI; - } - if (polarVector[1] < 0) { - polarVector[1] += 2 * Math.PI; - } - finalAngle = polarVector[1] - startAngle / 180 * Math.PI + Math.PI * 2; - if (Math.abs(Math.cos(finalAngle % (angle / 2))) * radius > polarVector[0]) { - return { - polarIndex: i, - valueIndex: Math.floor((finalAngle + angle / 2) / angle) % len - }; - } - } - }, - getIndicator: function (index) { - var index = index || 0; - return this.polar[index].indicator; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.polar = this.option.polar; - this.series = this.option.series; - } - this.clear(); - this._buildShape(); - } - }; - zrUtil.inherits(Polar, Base); - require('../component').define('polar', Polar); - return Polar; -});define('echarts/util/coordinates', [ - 'require', - 'zrender/tool/math' -], function (require) { - var zrMath = require('zrender/tool/math'); - function polar2cartesian(r, theta) { - return [ - r * zrMath.sin(theta), - r * zrMath.cos(theta) - ]; - } - function cartesian2polar(x, y) { - return [ - Math.sqrt(x * x + y * y), - Math.atan(y / x) - ]; - } - return { - polar2cartesian: polar2cartesian, - cartesian2polar: cartesian2polar - }; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/scatter.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/scatter.js deleted file mode 100644 index 86045e0..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/scatter.js +++ /dev/null @@ -1,1708 +0,0 @@ -define('echarts/chart/scatter', [ - 'require', - './base', - '../util/shape/Symbol', - '../component/axis', - '../component/grid', - '../component/dataZoom', - '../component/dataRange', - '../config', - 'zrender/tool/util', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var SymbolShape = require('../util/shape/Symbol'); - require('../component/axis'); - require('../component/grid'); - require('../component/dataZoom'); - require('../component/dataRange'); - var ecConfig = require('../config'); - ecConfig.scatter = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - xAxisIndex: 0, - yAxisIndex: 0, - symbolSize: 4, - large: false, - largeThreshold: 2000, - itemStyle: { - normal: { label: { show: false } }, - emphasis: { label: { show: false } } - } - }; - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function Scatter(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Scatter.prototype = { - type: ecConfig.CHART_TYPE_SCATTER, - _buildShape: function () { - var series = this.series; - this._sIndex2ColorMap = {}; - this._symbol = this.option.symbolList; - this._sIndex2ShapeMap = {}; - this.selectedMap = {}; - this.xMarkMap = {}; - var legend = this.component.legend; - var seriesArray = []; - var serie; - var serieName; - var iconShape; - var iconType; - for (var i = 0, l = series.length; i < l; i++) { - serie = series[i]; - serieName = serie.name; - if (serie.type === ecConfig.CHART_TYPE_SCATTER) { - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - this._sIndex2ShapeMap[i] = this.query(serie, 'symbol') || this._symbol[i % this._symbol.length]; - if (legend) { - this.selectedMap[serieName] = legend.isSelected(serieName); - this._sIndex2ColorMap[i] = zrColor.alpha(legend.getColor(serieName), 0.5); - iconShape = legend.getItemShape(serieName); - if (iconShape) { - var iconType = this._sIndex2ShapeMap[i]; - iconShape.style.brushType = iconType.match('empty') ? 'stroke' : 'both'; - iconType = iconType.replace('empty', '').toLowerCase(); - if (iconType.match('rectangle')) { - iconShape.style.x += Math.round((iconShape.style.width - iconShape.style.height) / 2); - iconShape.style.width = iconShape.style.height; - } - if (iconType.match('star')) { - iconShape.style.n = iconType.replace('star', '') - 0 || 5; - iconType = 'star'; - } - if (iconType.match('image')) { - iconShape.style.image = iconType.replace(new RegExp('^image:\\/\\/'), ''); - iconShape.style.x += Math.round((iconShape.style.width - iconShape.style.height) / 2); - iconShape.style.width = iconShape.style.height; - iconType = 'image'; - } - iconShape.style.iconType = iconType; - legend.setItemShape(serieName, iconShape); - } - } else { - this.selectedMap[serieName] = true; - this._sIndex2ColorMap[i] = zrColor.alpha(this.zr.getColor(i), 0.5); - } - if (this.selectedMap[serieName]) { - seriesArray.push(i); - } - } - } - this._buildSeries(seriesArray); - this.addShapeList(); - }, - _buildSeries: function (seriesArray) { - if (seriesArray.length === 0) { - return; - } - var series = this.series; - var seriesIndex; - var serie; - var data; - var value; - var xAxis; - var yAxis; - var pointList = {}; - var x; - var y; - for (var j = 0, k = seriesArray.length; j < k; j++) { - seriesIndex = seriesArray[j]; - serie = series[seriesIndex]; - if (serie.data.length === 0) { - continue; - } - xAxis = this.component.xAxis.getAxis(serie.xAxisIndex || 0); - yAxis = this.component.yAxis.getAxis(serie.yAxisIndex || 0); - pointList[seriesIndex] = []; - for (var i = 0, l = serie.data.length; i < l; i++) { - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - if (value === '-' || value.length < 2) { - continue; - } - x = xAxis.getCoord(value[0]); - y = yAxis.getCoord(value[1]); - pointList[seriesIndex].push([ - x, - y, - i, - data.name || '' - ]); - } - this.xMarkMap[seriesIndex] = this._markMap(xAxis, yAxis, serie.data, pointList[seriesIndex]); - this.buildMark(seriesIndex); - } - this._buildPointList(pointList); - }, - _markMap: function (xAxis, yAxis, data, pointList) { - var xMarkMap = { - min0: Number.POSITIVE_INFINITY, - max0: Number.NEGATIVE_INFINITY, - sum0: 0, - counter0: 0, - average0: 0, - min1: Number.POSITIVE_INFINITY, - max1: Number.NEGATIVE_INFINITY, - sum1: 0, - counter1: 0, - average1: 0 - }; - var value; - for (var i = 0, l = pointList.length; i < l; i++) { - value = data[pointList[i][2]].value || data[pointList[i][2]]; - if (xMarkMap.min0 > value[0]) { - xMarkMap.min0 = value[0]; - xMarkMap.minY0 = pointList[i][1]; - xMarkMap.minX0 = pointList[i][0]; - } - if (xMarkMap.max0 < value[0]) { - xMarkMap.max0 = value[0]; - xMarkMap.maxY0 = pointList[i][1]; - xMarkMap.maxX0 = pointList[i][0]; - } - xMarkMap.sum0 += value[0]; - xMarkMap.counter0++; - if (xMarkMap.min1 > value[1]) { - xMarkMap.min1 = value[1]; - xMarkMap.minY1 = pointList[i][1]; - xMarkMap.minX1 = pointList[i][0]; - } - if (xMarkMap.max1 < value[1]) { - xMarkMap.max1 = value[1]; - xMarkMap.maxY1 = pointList[i][1]; - xMarkMap.maxX1 = pointList[i][0]; - } - xMarkMap.sum1 += value[1]; - xMarkMap.counter1++; - } - var gridX = this.component.grid.getX(); - var gridXend = this.component.grid.getXend(); - var gridY = this.component.grid.getY(); - var gridYend = this.component.grid.getYend(); - xMarkMap.average0 = xMarkMap.sum0 / xMarkMap.counter0; - var x = xAxis.getCoord(xMarkMap.average0); - xMarkMap.averageLine0 = [ - [ - x, - gridYend - ], - [ - x, - gridY - ] - ]; - xMarkMap.minLine0 = [ - [ - xMarkMap.minX0, - gridYend - ], - [ - xMarkMap.minX0, - gridY - ] - ]; - xMarkMap.maxLine0 = [ - [ - xMarkMap.maxX0, - gridYend - ], - [ - xMarkMap.maxX0, - gridY - ] - ]; - xMarkMap.average1 = xMarkMap.sum1 / xMarkMap.counter1; - var y = yAxis.getCoord(xMarkMap.average1); - xMarkMap.averageLine1 = [ - [ - gridX, - y - ], - [ - gridXend, - y - ] - ]; - xMarkMap.minLine1 = [ - [ - gridX, - xMarkMap.minY1 - ], - [ - gridXend, - xMarkMap.minY1 - ] - ]; - xMarkMap.maxLine1 = [ - [ - gridX, - xMarkMap.maxY1 - ], - [ - gridXend, - xMarkMap.maxY1 - ] - ]; - return xMarkMap; - }, - _buildPointList: function (pointList) { - var series = this.series; - var serie; - var seriesPL; - var singlePoint; - var shape; - for (var seriesIndex in pointList) { - serie = series[seriesIndex]; - seriesPL = pointList[seriesIndex]; - if (serie.large && serie.data.length > serie.largeThreshold) { - this.shapeList.push(this._getLargeSymbol(serie, seriesPL, this.getItemStyleColor(this.query(serie, 'itemStyle.normal.color'), seriesIndex, -1) || this._sIndex2ColorMap[seriesIndex])); - continue; - } - for (var i = 0, l = seriesPL.length; i < l; i++) { - singlePoint = seriesPL[i]; - shape = this._getSymbol(seriesIndex, singlePoint[2], singlePoint[3], singlePoint[0], singlePoint[1]); - shape && this.shapeList.push(shape); - } - } - }, - _getSymbol: function (seriesIndex, dataIndex, name, x, y) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var dataRange = this.component.dataRange; - var rangColor; - if (dataRange) { - rangColor = isNaN(data[2]) ? this._sIndex2ColorMap[seriesIndex] : dataRange.getColor(data[2]); - if (!rangColor) { - return null; - } - } else { - rangColor = this._sIndex2ColorMap[seriesIndex]; - } - var itemShape = this.getSymbolShape(serie, seriesIndex, data, dataIndex, name, x, y, this._sIndex2ShapeMap[seriesIndex], rangColor, 'rgba(0,0,0,0)', 'vertical'); - itemShape.zlevel = serie.zlevel; - itemShape.z = serie.z; - itemShape._main = true; - return itemShape; - }, - _getLargeSymbol: function (serie, pointList, nColor) { - return new SymbolShape({ - zlevel: serie.zlevel, - z: serie.z, - _main: true, - hoverable: false, - style: { - pointList: pointList, - color: nColor, - strokeColor: nColor - }, - highlightStyle: { pointList: [] } - }); - }, - getMarkCoord: function (seriesIndex, mpData) { - var serie = this.series[seriesIndex]; - var xMarkMap = this.xMarkMap[seriesIndex]; - var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex); - var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex); - var pos; - if (mpData.type && (mpData.type === 'max' || mpData.type === 'min' || mpData.type === 'average')) { - var valueIndex = mpData.valueIndex != null ? mpData.valueIndex : 1; - pos = [ - xMarkMap[mpData.type + 'X' + valueIndex], - xMarkMap[mpData.type + 'Y' + valueIndex], - xMarkMap[mpData.type + 'Line' + valueIndex], - xMarkMap[mpData.type + valueIndex] - ]; - } else { - pos = [ - typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0), - typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0) - ]; - } - return pos; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - }, - ondataRange: function (param, status) { - if (this.component.dataRange) { - this.refresh(); - status.needRefresh = true; - } - return; - } - }; - zrUtil.inherits(Scatter, ChartBase); - require('../chart').define('scatter', Scatter); - return Scatter; -});define('echarts/component/dataRange', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Rectangle', - '../util/shape/HandlePolygon', - '../config', - 'zrender/tool/util', - 'zrender/tool/event', - 'zrender/tool/area', - 'zrender/tool/color', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var RectangleShape = require('zrender/shape/Rectangle'); - var HandlePolygonShape = require('../util/shape/HandlePolygon'); - var ecConfig = require('../config'); - ecConfig.dataRange = { - zlevel: 0, - z: 4, - show: true, - orient: 'vertical', - x: 'left', - y: 'bottom', - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - itemGap: 10, - itemWidth: 20, - itemHeight: 14, - precision: 0, - splitNumber: 5, - splitList: null, - calculable: false, - selectedMode: true, - hoverLink: true, - realtime: true, - color: [ - '#006edd', - '#e0ffff' - ], - textStyle: { color: '#333' } - }; - var zrUtil = require('zrender/tool/util'); - var zrEvent = require('zrender/tool/event'); - var zrArea = require('zrender/tool/area'); - var zrColor = require('zrender/tool/color'); - function DataRange(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._ondrift = function (dx, dy) { - return self.__ondrift(this, dx, dy); - }; - self._ondragend = function () { - return self.__ondragend(); - }; - self._dataRangeSelected = function (param) { - return self.__dataRangeSelected(param); - }; - self._dispatchHoverLink = function (param) { - return self.__dispatchHoverLink(param); - }; - self._onhoverlink = function (params) { - return self.__onhoverlink(params); - }; - this._selectedMap = {}; - this._range = {}; - this.refresh(option); - messageCenter.bind(ecConfig.EVENT.HOVER, this._onhoverlink); - } - DataRange.prototype = { - type: ecConfig.COMPONENT_TYPE_DATARANGE, - _textGap: 10, - _buildShape: function () { - this._itemGroupLocation = this._getItemGroupLocation(); - this._buildBackground(); - if (this._isContinuity()) { - this._buildGradient(); - } else { - this._buildItem(); - } - if (this.dataRangeOption.show) { - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - } - this._syncShapeFromRange(); - }, - _buildItem: function () { - var data = this._valueTextList; - var dataLength = data.length; - var itemName; - var itemShape; - var textShape; - var font = this.getFont(this.dataRangeOption.textStyle); - var lastX = this._itemGroupLocation.x; - var lastY = this._itemGroupLocation.y; - var itemWidth = this.dataRangeOption.itemWidth; - var itemHeight = this.dataRangeOption.itemHeight; - var itemGap = this.dataRangeOption.itemGap; - var textHeight = zrArea.getTextHeight('国', font); - var color; - if (this.dataRangeOption.orient == 'vertical' && this.dataRangeOption.x == 'right') { - lastX = this._itemGroupLocation.x + this._itemGroupLocation.width - itemWidth; - } - var needValueText = true; - if (this.dataRangeOption.text) { - needValueText = false; - if (this.dataRangeOption.text[0]) { - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[0]); - if (this.dataRangeOption.orient == 'horizontal') { - lastX += zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap; - } else { - lastY += textHeight + this._textGap; - textShape.style.y += textHeight / 2 + this._textGap; - textShape.style.textBaseline = 'bottom'; - } - this.shapeList.push(new TextShape(textShape)); - } - } - for (var i = 0; i < dataLength; i++) { - itemName = data[i]; - color = this.getColorByIndex(i); - itemShape = this._getItemShape(lastX, lastY, itemWidth, itemHeight, this._selectedMap[i] ? color : '#ccc'); - itemShape._idx = i; - itemShape.onmousemove = this._dispatchHoverLink; - if (this.dataRangeOption.selectedMode) { - itemShape.clickable = true; - itemShape.onclick = this._dataRangeSelected; - } - this.shapeList.push(new RectangleShape(itemShape)); - if (needValueText) { - textShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX + itemWidth + 5, - y: lastY, - color: this._selectedMap[i] ? this.dataRangeOption.textStyle.color : '#ccc', - text: data[i], - textFont: font, - textBaseline: 'top' - }, - highlightStyle: { brushType: 'fill' } - }; - if (this.dataRangeOption.orient == 'vertical' && this.dataRangeOption.x == 'right') { - textShape.style.x -= itemWidth + 10; - textShape.style.textAlign = 'right'; - } - textShape._idx = i; - textShape.onmousemove = this._dispatchHoverLink; - if (this.dataRangeOption.selectedMode) { - textShape.clickable = true; - textShape.onclick = this._dataRangeSelected; - } - this.shapeList.push(new TextShape(textShape)); - } - if (this.dataRangeOption.orient == 'horizontal') { - lastX += itemWidth + (needValueText ? 5 : 0) + (needValueText ? zrArea.getTextWidth(itemName, font) : 0) + itemGap; - } else { - lastY += itemHeight + itemGap; - } - } - if (!needValueText && this.dataRangeOption.text[1]) { - if (this.dataRangeOption.orient == 'horizontal') { - lastX = lastX - itemGap + this._textGap; - } else { - lastY = lastY - itemGap + this._textGap; - } - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[1]); - if (this.dataRangeOption.orient != 'horizontal') { - textShape.style.y -= 5; - textShape.style.textBaseline = 'top'; - } - this.shapeList.push(new TextShape(textShape)); - } - }, - _buildGradient: function () { - var itemShape; - var textShape; - var font = this.getFont(this.dataRangeOption.textStyle); - var lastX = this._itemGroupLocation.x; - var lastY = this._itemGroupLocation.y; - var itemWidth = this.dataRangeOption.itemWidth; - var itemHeight = this.dataRangeOption.itemHeight; - var textHeight = zrArea.getTextHeight('国', font); - var mSize = 10; - var needValueText = true; - if (this.dataRangeOption.text) { - needValueText = false; - if (this.dataRangeOption.text[0]) { - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[0]); - if (this.dataRangeOption.orient == 'horizontal') { - lastX += zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap; - } else { - lastY += textHeight + this._textGap; - textShape.style.y += textHeight / 2 + this._textGap; - textShape.style.textBaseline = 'bottom'; - } - this.shapeList.push(new TextShape(textShape)); - } - } - var zrColor = require('zrender/tool/color'); - var per = 1 / (this.dataRangeOption.color.length - 1); - var colorList = []; - for (var i = 0, l = this.dataRangeOption.color.length; i < l; i++) { - colorList.push([ - i * per, - this.dataRangeOption.color[i] - ]); - } - if (this.dataRangeOption.orient == 'horizontal') { - itemShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX, - y: lastY, - width: itemWidth * mSize, - height: itemHeight, - color: zrColor.getLinearGradient(lastX, lastY, lastX + itemWidth * mSize, lastY, colorList) - }, - hoverable: false - }; - lastX += itemWidth * mSize + this._textGap; - } else { - itemShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX, - y: lastY, - width: itemWidth, - height: itemHeight * mSize, - color: zrColor.getLinearGradient(lastX, lastY, lastX, lastY + itemHeight * mSize, colorList) - }, - hoverable: false - }; - lastY += itemHeight * mSize + this._textGap; - } - this.shapeList.push(new RectangleShape(itemShape)); - this._calculableLocation = itemShape.style; - if (this.dataRangeOption.calculable) { - this._buildFiller(); - this._bulidMask(); - this._bulidHandle(); - } - this._buildIndicator(); - if (!needValueText && this.dataRangeOption.text[1]) { - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[1]); - this.shapeList.push(new TextShape(textShape)); - } - }, - _buildIndicator: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - var size = 5; - var pointList; - var textPosition; - if (this.dataRangeOption.orient == 'horizontal') { - if (this.dataRangeOption.y != 'bottom') { - pointList = [ - [ - x, - y + height - ], - [ - x - size, - y + height + size - ], - [ - x + size, - y + height + size - ] - ]; - textPosition = 'bottom'; - } else { - pointList = [ - [ - x, - y - ], - [ - x - size, - y - size - ], - [ - x + size, - y - size - ] - ]; - textPosition = 'top'; - } - } else { - if (this.dataRangeOption.x != 'right') { - pointList = [ - [ - x + width, - y - ], - [ - x + width + size, - y - size - ], - [ - x + width + size, - y + size - ] - ]; - textPosition = 'right'; - } else { - pointList = [ - [ - x, - y - ], - [ - x - size, - y - size - ], - [ - x - size, - y + size - ] - ]; - textPosition = 'left'; - } - } - this._indicatorShape = { - style: { - pointList: pointList, - color: '#fff', - __rect: { - x: Math.min(pointList[0][0], pointList[1][0]), - y: Math.min(pointList[0][1], pointList[1][1]), - width: size * (this.dataRangeOption.orient == 'horizontal' ? 2 : 1), - height: size * (this.dataRangeOption.orient == 'horizontal' ? 1 : 2) - } - }, - highlightStyle: { - brushType: 'fill', - textPosition: textPosition, - textColor: this.dataRangeOption.textStyle.color - }, - hoverable: false - }; - this._indicatorShape = new HandlePolygonShape(this._indicatorShape); - }, - _buildFiller: function () { - this._fillerShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - x: this._calculableLocation.x, - y: this._calculableLocation.y, - width: this._calculableLocation.width, - height: this._calculableLocation.height, - color: 'rgba(255,255,255,0)' - }, - highlightStyle: { - strokeColor: 'rgba(255,255,255,0.5)', - lineWidth: 1 - }, - draggable: true, - ondrift: this._ondrift, - ondragend: this._ondragend, - onmousemove: this._dispatchHoverLink, - _type: 'filler' - }; - this._fillerShape = new RectangleShape(this._fillerShape); - this.shapeList.push(this._fillerShape); - }, - _bulidHandle: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - var font = this.getFont(this.dataRangeOption.textStyle); - var textHeight = zrArea.getTextHeight('国', font); - var textWidth = Math.max(zrArea.getTextWidth(this._textFormat(this.dataRangeOption.max), font), zrArea.getTextWidth(this._textFormat(this.dataRangeOption.min), font)) + 2; - var pointListStart; - var textXStart; - var textYStart; - var coverRectStart; - var pointListEnd; - var textXEnd; - var textYEnd; - var coverRectEnd; - if (this.dataRangeOption.orient == 'horizontal') { - if (this.dataRangeOption.y != 'bottom') { - pointListStart = [ - [ - x, - y - ], - [ - x, - y + height + textHeight - ], - [ - x - textHeight, - y + height + textHeight - ], - [ - x - 1, - y + height - ], - [ - x - 1, - y - ] - ]; - textXStart = x - textWidth / 2 - textHeight; - textYStart = y + height + textHeight / 2 + 2; - coverRectStart = { - x: x - textWidth - textHeight, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x + width, - y - ], - [ - x + width, - y + height + textHeight - ], - [ - x + width + textHeight, - y + height + textHeight - ], - [ - x + width + 1, - y + height - ], - [ - x + width + 1, - y - ] - ]; - textXEnd = x + width + textWidth / 2 + textHeight; - textYEnd = textYStart; - coverRectEnd = { - x: x + width, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - } else { - pointListStart = [ - [ - x, - y + height - ], - [ - x, - y - textHeight - ], - [ - x - textHeight, - y - textHeight - ], - [ - x - 1, - y - ], - [ - x - 1, - y + height - ] - ]; - textXStart = x - textWidth / 2 - textHeight; - textYStart = y - textHeight / 2 - 2; - coverRectStart = { - x: x - textWidth - textHeight, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x + width, - y + height - ], - [ - x + width, - y - textHeight - ], - [ - x + width + textHeight, - y - textHeight - ], - [ - x + width + 1, - y - ], - [ - x + width + 1, - y + height - ] - ]; - textXEnd = x + width + textWidth / 2 + textHeight; - textYEnd = textYStart; - coverRectEnd = { - x: x + width, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - } - } else { - textWidth += textHeight; - if (this.dataRangeOption.x != 'right') { - pointListStart = [ - [ - x, - y - ], - [ - x + width + textHeight, - y - ], - [ - x + width + textHeight, - y - textHeight - ], - [ - x + width, - y - 1 - ], - [ - x, - y - 1 - ] - ]; - textXStart = x + width + textWidth / 2 + textHeight / 2; - textYStart = y - textHeight / 2; - coverRectStart = { - x: x + width, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x, - y + height - ], - [ - x + width + textHeight, - y + height - ], - [ - x + width + textHeight, - y + textHeight + height - ], - [ - x + width, - y + 1 + height - ], - [ - x, - y + height + 1 - ] - ]; - textXEnd = textXStart; - textYEnd = y + height + textHeight / 2; - coverRectEnd = { - x: x + width, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - } else { - pointListStart = [ - [ - x + width, - y - ], - [ - x - textHeight, - y - ], - [ - x - textHeight, - y - textHeight - ], - [ - x, - y - 1 - ], - [ - x + width, - y - 1 - ] - ]; - textXStart = x - textWidth / 2 - textHeight / 2; - textYStart = y - textHeight / 2; - coverRectStart = { - x: x - textWidth - textHeight, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x + width, - y + height - ], - [ - x - textHeight, - y + height - ], - [ - x - textHeight, - y + textHeight + height - ], - [ - x, - y + 1 + height - ], - [ - x + width, - y + height + 1 - ] - ]; - textXEnd = textXStart; - textYEnd = y + height + textHeight / 2; - coverRectEnd = { - x: x - textWidth - textHeight, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - } - } - this._startShape = { - style: { - pointList: pointListStart, - text: this._textFormat(this.dataRangeOption.max), - textX: textXStart, - textY: textYStart, - textFont: font, - color: this.getColor(this.dataRangeOption.max), - rect: coverRectStart, - x: pointListStart[0][0], - y: pointListStart[0][1], - _x: pointListStart[0][0], - _y: pointListStart[0][1] - } - }; - this._startShape.highlightStyle = { - strokeColor: this._startShape.style.color, - lineWidth: 1 - }; - this._endShape = { - style: { - pointList: pointListEnd, - text: this._textFormat(this.dataRangeOption.min), - textX: textXEnd, - textY: textYEnd, - textFont: font, - color: this.getColor(this.dataRangeOption.min), - rect: coverRectEnd, - x: pointListEnd[0][0], - y: pointListEnd[0][1], - _x: pointListEnd[0][0], - _y: pointListEnd[0][1] - } - }; - this._endShape.highlightStyle = { - strokeColor: this._endShape.style.color, - lineWidth: 1 - }; - this._startShape.zlevel = this._endShape.zlevel = this.getZlevelBase(); - this._startShape.z = this._endShape.z = this.getZBase() + 1; - this._startShape.draggable = this._endShape.draggable = true; - this._startShape.ondrift = this._endShape.ondrift = this._ondrift; - this._startShape.ondragend = this._endShape.ondragend = this._ondragend; - this._startShape.style.textColor = this._endShape.style.textColor = this.dataRangeOption.textStyle.color; - this._startShape.style.textAlign = this._endShape.style.textAlign = 'center'; - this._startShape.style.textPosition = this._endShape.style.textPosition = 'specific'; - this._startShape.style.textBaseline = this._endShape.style.textBaseline = 'middle'; - this._startShape.style.width = this._endShape.style.width = 0; - this._startShape.style.height = this._endShape.style.height = 0; - this._startShape.style.textPosition = this._endShape.style.textPosition = 'specific'; - this._startShape = new HandlePolygonShape(this._startShape); - this._endShape = new HandlePolygonShape(this._endShape); - this.shapeList.push(this._startShape); - this.shapeList.push(this._endShape); - }, - _bulidMask: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - this._startMask = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - x: x, - y: y, - width: this.dataRangeOption.orient == 'horizontal' ? 0 : width, - height: this.dataRangeOption.orient == 'horizontal' ? height : 0, - color: '#ccc' - }, - hoverable: false - }; - this._endMask = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - x: this.dataRangeOption.orient == 'horizontal' ? x + width : x, - y: this.dataRangeOption.orient == 'horizontal' ? y : y + height, - width: this.dataRangeOption.orient == 'horizontal' ? 0 : width, - height: this.dataRangeOption.orient == 'horizontal' ? height : 0, - color: '#ccc' - }, - hoverable: false - }; - this._startMask = new RectangleShape(this._startMask); - this._endMask = new RectangleShape(this._endMask); - this.shapeList.push(this._startMask); - this.shapeList.push(this._endMask); - }, - _buildBackground: function () { - var padding = this.reformCssArray(this.dataRangeOption.padding); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._itemGroupLocation.x - padding[3], - y: this._itemGroupLocation.y - padding[0], - width: this._itemGroupLocation.width + padding[3] + padding[1], - height: this._itemGroupLocation.height + padding[0] + padding[2], - brushType: this.dataRangeOption.borderWidth === 0 ? 'fill' : 'both', - color: this.dataRangeOption.backgroundColor, - strokeColor: this.dataRangeOption.borderColor, - lineWidth: this.dataRangeOption.borderWidth - } - })); - }, - _getItemGroupLocation: function () { - var data = this._valueTextList; - var dataLength = data.length; - var itemGap = this.dataRangeOption.itemGap; - var itemWidth = this.dataRangeOption.itemWidth; - var itemHeight = this.dataRangeOption.itemHeight; - var totalWidth = 0; - var totalHeight = 0; - var font = this.getFont(this.dataRangeOption.textStyle); - var textHeight = zrArea.getTextHeight('国', font); - var mSize = 10; - if (this.dataRangeOption.orient == 'horizontal') { - if (this.dataRangeOption.text || this._isContinuity()) { - totalWidth = (this._isContinuity() ? itemWidth * mSize + itemGap : dataLength * (itemWidth + itemGap)) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[0] != 'undefined' ? zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap : 0) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[1] != 'undefined' ? zrArea.getTextWidth(this.dataRangeOption.text[1], font) + this._textGap : 0); - } else { - itemWidth += 5; - for (var i = 0; i < dataLength; i++) { - totalWidth += itemWidth + zrArea.getTextWidth(data[i], font) + itemGap; - } - } - totalWidth -= itemGap; - totalHeight = Math.max(textHeight, itemHeight); - } else { - var maxWidth; - if (this.dataRangeOption.text || this._isContinuity()) { - totalHeight = (this._isContinuity() ? itemHeight * mSize + itemGap : dataLength * (itemHeight + itemGap)) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[0] != 'undefined' ? this._textGap + textHeight : 0) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[1] != 'undefined' ? this._textGap + textHeight : 0); - maxWidth = Math.max(zrArea.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[0] || '', font), zrArea.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[1] || '', font)); - totalWidth = Math.max(itemWidth, maxWidth); - } else { - totalHeight = (itemHeight + itemGap) * dataLength; - itemWidth += 5; - maxWidth = 0; - for (var i = 0; i < dataLength; i++) { - maxWidth = Math.max(maxWidth, zrArea.getTextWidth(data[i], font)); - } - totalWidth = itemWidth + maxWidth; - } - totalHeight -= itemGap; - } - var padding = this.reformCssArray(this.dataRangeOption.padding); - var x; - var zrWidth = this.zr.getWidth(); - switch (this.dataRangeOption.x) { - case 'center': - x = Math.floor((zrWidth - totalWidth) / 2); - break; - case 'left': - x = padding[3] + this.dataRangeOption.borderWidth; - break; - case 'right': - x = zrWidth - totalWidth - padding[1] - this.dataRangeOption.borderWidth; - break; - default: - x = this.parsePercent(this.dataRangeOption.x, zrWidth); - x = isNaN(x) ? 0 : x; - break; - } - var y; - var zrHeight = this.zr.getHeight(); - switch (this.dataRangeOption.y) { - case 'top': - y = padding[0] + this.dataRangeOption.borderWidth; - break; - case 'bottom': - y = zrHeight - totalHeight - padding[2] - this.dataRangeOption.borderWidth; - break; - case 'center': - y = Math.floor((zrHeight - totalHeight) / 2); - break; - default: - y = this.parsePercent(this.dataRangeOption.y, zrHeight); - y = isNaN(y) ? 0 : y; - break; - } - if (this.dataRangeOption.calculable) { - var handlerWidth = Math.max(zrArea.getTextWidth(this.dataRangeOption.max, font), zrArea.getTextWidth(this.dataRangeOption.min, font)) + textHeight; - if (this.dataRangeOption.orient == 'horizontal') { - if (x < handlerWidth) { - x = handlerWidth; - } - if (x + totalWidth + handlerWidth > zrWidth) { - x -= handlerWidth; - } - } else { - if (y < textHeight) { - y = textHeight; - } - if (y + totalHeight + textHeight > zrHeight) { - y -= textHeight; - } - } - } - return { - x: x, - y: y, - width: totalWidth, - height: totalHeight - }; - }, - _getTextShape: function (x, y, text) { - return { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: this.dataRangeOption.orient == 'horizontal' ? x : this._itemGroupLocation.x + this._itemGroupLocation.width / 2, - y: this.dataRangeOption.orient == 'horizontal' ? this._itemGroupLocation.y + this._itemGroupLocation.height / 2 : y, - color: this.dataRangeOption.textStyle.color, - text: text, - textFont: this.getFont(this.dataRangeOption.textStyle), - textBaseline: this.dataRangeOption.orient == 'horizontal' ? 'middle' : 'top', - textAlign: this.dataRangeOption.orient == 'horizontal' ? 'left' : 'center' - }, - hoverable: false - }; - }, - _getItemShape: function (x, y, width, height, color) { - return { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: x, - y: y + 1, - width: width, - height: height - 2, - color: color - }, - highlightStyle: { - strokeColor: color, - lineWidth: 1 - } - }; - }, - __ondrift: function (shape, dx, dy) { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - if (this.dataRangeOption.orient == 'horizontal') { - if (shape.style.x + dx <= x) { - shape.style.x = x; - } else if (shape.style.x + dx + shape.style.width >= x + width) { - shape.style.x = x + width - shape.style.width; - } else { - shape.style.x += dx; - } - } else { - if (shape.style.y + dy <= y) { - shape.style.y = y; - } else if (shape.style.y + dy + shape.style.height >= y + height) { - shape.style.y = y + height - shape.style.height; - } else { - shape.style.y += dy; - } - } - if (shape._type == 'filler') { - this._syncHandleShape(); - } else { - this._syncFillerShape(shape); - } - if (this.dataRangeOption.realtime) { - this._dispatchDataRange(); - } - return true; - }, - __ondragend: function () { - this.isDragend = true; - }, - ondragend: function (param, status) { - if (!this.isDragend || !param.target) { - return; - } - status.dragOut = true; - status.dragIn = true; - if (!this.dataRangeOption.realtime) { - this._dispatchDataRange(); - } - status.needRefresh = false; - this.isDragend = false; - return; - }, - _syncShapeFromRange: function () { - var range = this.dataRangeOption.range || {}; - var optRangeStart = range.start; - var optRangeEnd = range.end; - if (optRangeEnd < optRangeStart) { - optRangeStart = [ - optRangeEnd, - optRangeEnd = optRangeStart - ][0]; - } - this._range.end = optRangeStart != null ? optRangeStart : this._range.end != null ? this._range.end : 0; - this._range.start = optRangeEnd != null ? optRangeEnd : this._range.start != null ? this._range.start : 100; - if (this._range.start != 100 || this._range.end !== 0) { - if (this.dataRangeOption.orient == 'horizontal') { - var width = this._fillerShape.style.width; - this._fillerShape.style.x += width * (100 - this._range.start) / 100; - this._fillerShape.style.width = width * (this._range.start - this._range.end) / 100; - } else { - var height = this._fillerShape.style.height; - this._fillerShape.style.y += height * (100 - this._range.start) / 100; - this._fillerShape.style.height = height * (this._range.start - this._range.end) / 100; - } - this.zr.modShape(this._fillerShape.id); - this._syncHandleShape(); - } - }, - _syncHandleShape: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - if (this.dataRangeOption.orient == 'horizontal') { - this._startShape.style.x = this._fillerShape.style.x; - this._startMask.style.width = this._startShape.style.x - x; - this._endShape.style.x = this._fillerShape.style.x + this._fillerShape.style.width; - this._endMask.style.x = this._endShape.style.x; - this._endMask.style.width = x + width - this._endShape.style.x; - this._range.start = Math.ceil(100 - (this._startShape.style.x - x) / width * 100); - this._range.end = Math.floor(100 - (this._endShape.style.x - x) / width * 100); - } else { - this._startShape.style.y = this._fillerShape.style.y; - this._startMask.style.height = this._startShape.style.y - y; - this._endShape.style.y = this._fillerShape.style.y + this._fillerShape.style.height; - this._endMask.style.y = this._endShape.style.y; - this._endMask.style.height = y + height - this._endShape.style.y; - this._range.start = Math.ceil(100 - (this._startShape.style.y - y) / height * 100); - this._range.end = Math.floor(100 - (this._endShape.style.y - y) / height * 100); - } - this._syncShape(); - }, - _syncFillerShape: function (e) { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - var a; - var b; - if (this.dataRangeOption.orient == 'horizontal') { - a = this._startShape.style.x; - b = this._endShape.style.x; - if (e.id == this._startShape.id && a >= b) { - b = a; - this._endShape.style.x = a; - } else if (e.id == this._endShape.id && a >= b) { - a = b; - this._startShape.style.x = a; - } - this._fillerShape.style.x = a; - this._fillerShape.style.width = b - a; - this._startMask.style.width = a - x; - this._endMask.style.x = b; - this._endMask.style.width = x + width - b; - this._range.start = Math.ceil(100 - (a - x) / width * 100); - this._range.end = Math.floor(100 - (b - x) / width * 100); - } else { - a = this._startShape.style.y; - b = this._endShape.style.y; - if (e.id == this._startShape.id && a >= b) { - b = a; - this._endShape.style.y = a; - } else if (e.id == this._endShape.id && a >= b) { - a = b; - this._startShape.style.y = a; - } - this._fillerShape.style.y = a; - this._fillerShape.style.height = b - a; - this._startMask.style.height = a - y; - this._endMask.style.y = b; - this._endMask.style.height = y + height - b; - this._range.start = Math.ceil(100 - (a - y) / height * 100); - this._range.end = Math.floor(100 - (b - y) / height * 100); - } - this._syncShape(); - }, - _syncShape: function () { - this._startShape.position = [ - this._startShape.style.x - this._startShape.style._x, - this._startShape.style.y - this._startShape.style._y - ]; - this._startShape.style.text = this._textFormat(this._gap * this._range.start + this.dataRangeOption.min); - this._startShape.style.color = this._startShape.highlightStyle.strokeColor = this.getColor(this._gap * this._range.start + this.dataRangeOption.min); - this._endShape.position = [ - this._endShape.style.x - this._endShape.style._x, - this._endShape.style.y - this._endShape.style._y - ]; - this._endShape.style.text = this._textFormat(this._gap * this._range.end + this.dataRangeOption.min); - this._endShape.style.color = this._endShape.highlightStyle.strokeColor = this.getColor(this._gap * this._range.end + this.dataRangeOption.min); - this.zr.modShape(this._startShape.id); - this.zr.modShape(this._endShape.id); - this.zr.modShape(this._startMask.id); - this.zr.modShape(this._endMask.id); - this.zr.modShape(this._fillerShape.id); - this.zr.refreshNextFrame(); - }, - _dispatchDataRange: function () { - this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE, null, { - range: { - start: this._range.end, - end: this._range.start - } - }, this.myChart); - }, - __dataRangeSelected: function (param) { - if (this.dataRangeOption.selectedMode === 'single') { - for (var k in this._selectedMap) { - this._selectedMap[k] = false; - } - } - var idx = param.target._idx; - this._selectedMap[idx] = !this._selectedMap[idx]; - var valueMax; - var valueMin; - if (this._useCustomizedSplit()) { - valueMax = this._splitList[idx].max; - valueMin = this._splitList[idx].min; - } else { - valueMax = (this._colorList.length - idx) * this._gap + this.dataRangeOption.min; - valueMin = valueMax - this._gap; - } - this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE_SELECTED, param.event, { - selected: this._selectedMap, - target: idx, - valueMax: valueMax, - valueMin: valueMin - }, this.myChart); - this.messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this.myChart); - }, - __dispatchHoverLink: function (param) { - var valueMin; - var valueMax; - if (this.dataRangeOption.calculable) { - var totalValue = this.dataRangeOption.max - this.dataRangeOption.min; - var curValue; - if (this.dataRangeOption.orient == 'horizontal') { - curValue = (1 - (zrEvent.getX(param.event) - this._calculableLocation.x) / this._calculableLocation.width) * totalValue; - } else { - curValue = (1 - (zrEvent.getY(param.event) - this._calculableLocation.y) / this._calculableLocation.height) * totalValue; - } - valueMin = curValue - totalValue * 0.05; - valueMax = curValue + totalValue * 0.05; - } else if (this._useCustomizedSplit()) { - var idx = param.target._idx; - valueMax = this._splitList[idx].max; - valueMin = this._splitList[idx].min; - } else { - var idx = param.target._idx; - valueMax = (this._colorList.length - idx) * this._gap + this.dataRangeOption.min; - valueMin = valueMax - this._gap; - } - this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE_HOVERLINK, param.event, { - valueMin: valueMin, - valueMax: valueMax - }, this.myChart); - }, - __onhoverlink: function (param) { - if (this.dataRangeOption.show && this.dataRangeOption.hoverLink && this._indicatorShape && param && param.seriesIndex != null && param.dataIndex != null) { - var curValue = param.value; - if (curValue === '' || isNaN(curValue)) { - return; - } - if (curValue < this.dataRangeOption.min) { - curValue = this.dataRangeOption.min; - } else if (curValue > this.dataRangeOption.max) { - curValue = this.dataRangeOption.max; - } - if (this.dataRangeOption.orient == 'horizontal') { - this._indicatorShape.position = [ - (this.dataRangeOption.max - curValue) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.width, - 0 - ]; - } else { - this._indicatorShape.position = [ - 0, - (this.dataRangeOption.max - curValue) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.height - ]; - } - this._indicatorShape.style.text = this._textFormat(param.value); - this._indicatorShape.style.color = this.getColor(curValue); - this.zr.addHoverShape(this._indicatorShape); - } - }, - _textFormat: function (valueStart, valueEnd) { - var dataRangeOption = this.dataRangeOption; - if (valueStart !== -Number.MAX_VALUE) { - valueStart = (+valueStart).toFixed(dataRangeOption.precision); - } - if (valueEnd != null && valueEnd !== Number.MAX_VALUE) { - valueEnd = (+valueEnd).toFixed(dataRangeOption.precision); - } - if (dataRangeOption.formatter) { - if (typeof dataRangeOption.formatter == 'string') { - return dataRangeOption.formatter.replace('{value}', valueStart === -Number.MAX_VALUE ? 'min' : valueStart).replace('{value2}', valueEnd === Number.MAX_VALUE ? 'max' : valueEnd); - } else if (typeof dataRangeOption.formatter == 'function') { - return dataRangeOption.formatter.call(this.myChart, valueStart, valueEnd); - } - } - if (valueEnd == null) { - return valueStart; - } else { - if (valueStart === -Number.MAX_VALUE) { - return '< ' + valueEnd; - } else if (valueEnd === Number.MAX_VALUE) { - return '> ' + valueStart; - } else { - return valueStart + ' - ' + valueEnd; - } - } - }, - _isContinuity: function () { - var dataRangeOption = this.dataRangeOption; - return !(dataRangeOption.splitList ? dataRangeOption.splitList.length > 0 : dataRangeOption.splitNumber > 0) || dataRangeOption.calculable; - }, - _useCustomizedSplit: function () { - var dataRangeOption = this.dataRangeOption; - return dataRangeOption.splitList && dataRangeOption.splitList.length > 0; - }, - _buildColorList: function (splitNumber) { - this._colorList = zrColor.getGradientColors(this.dataRangeOption.color, Math.max((splitNumber - this.dataRangeOption.color.length) / (this.dataRangeOption.color.length - 1), 0) + 1); - if (this._colorList.length > splitNumber) { - var len = this._colorList.length; - var newColorList = [this._colorList[0]]; - var step = len / (splitNumber - 1); - for (var i = 1; i < splitNumber - 1; i++) { - newColorList.push(this._colorList[Math.floor(i * step)]); - } - newColorList.push(this._colorList[len - 1]); - this._colorList = newColorList; - } - if (this._useCustomizedSplit()) { - var splitList = this._splitList; - for (var i = 0, len = splitList.length; i < len; i++) { - if (splitList[i].color) { - this._colorList[i] = splitList[i].color; - } - } - } - }, - _buildGap: function (splitNumber) { - if (!this._useCustomizedSplit()) { - var precision = this.dataRangeOption.precision; - this._gap = (this.dataRangeOption.max - this.dataRangeOption.min) / splitNumber; - while (this._gap.toFixed(precision) - 0 != this._gap && precision < 5) { - precision++; - } - this.dataRangeOption.precision = precision; - this._gap = ((this.dataRangeOption.max - this.dataRangeOption.min) / splitNumber).toFixed(precision) - 0; - } - }, - _buildDataList: function (splitNumber) { - var valueTextList = this._valueTextList = []; - var dataRangeOption = this.dataRangeOption; - var useCustomizedSplit = this._useCustomizedSplit(); - for (var i = 0; i < splitNumber; i++) { - this._selectedMap[i] = true; - var text = ''; - if (useCustomizedSplit) { - var splitListItem = this._splitList[splitNumber - 1 - i]; - if (splitListItem.label != null) { - text = splitListItem.label; - } else if (splitListItem.single != null) { - text = this._textFormat(splitListItem.single); - } else { - text = this._textFormat(splitListItem.min, splitListItem.max); - } - } else { - text = this._textFormat(i * this._gap + dataRangeOption.min, (i + 1) * this._gap + dataRangeOption.min); - } - valueTextList.unshift(text); - } - }, - _buildSplitList: function () { - if (!this._useCustomizedSplit()) { - return; - } - var splitList = this.dataRangeOption.splitList; - var splitRangeList = this._splitList = []; - for (var i = 0, len = splitList.length; i < len; i++) { - var splitListItem = splitList[i]; - if (!splitListItem || splitListItem.start == null && splitListItem.end == null) { - throw new Error('Empty item exists in splitList!'); - } - var reformedItem = { - label: splitListItem.label, - color: splitListItem.color - }; - reformedItem.min = splitListItem.start; - reformedItem.max = splitListItem.end; - if (reformedItem.min > reformedItem.max) { - reformedItem.min = [ - reformedItem.max, - reformedItem.max = reformedItem.min - ][0]; - } - if (reformedItem.min === reformedItem.max) { - reformedItem.single = reformedItem.max; - } - if (reformedItem.min == null) { - reformedItem.min = -Number.MAX_VALUE; - } - if (reformedItem.max == null) { - reformedItem.max = Number.MAX_VALUE; - } - splitRangeList.push(reformedItem); - } - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.option.dataRange = this.reformOption(this.option.dataRange); - var dataRangeOption = this.dataRangeOption = this.option.dataRange; - if (!this._useCustomizedSplit() && (dataRangeOption.min == null || dataRangeOption.max == null)) { - throw new Error('option.dataRange.min or option.dataRange.max has not been defined.'); - } - if (!this.myChart.canvasSupported) { - dataRangeOption.realtime = false; - } - var splitNumber = this._isContinuity() ? 100 : this._useCustomizedSplit() ? dataRangeOption.splitList.length : dataRangeOption.splitNumber; - this._buildSplitList(); - this._buildColorList(splitNumber); - this._buildGap(splitNumber); - this._buildDataList(splitNumber); - } - this.clear(); - this._buildShape(); - }, - getColor: function (value) { - if (isNaN(value)) { - return null; - } - var idx; - if (!this._useCustomizedSplit()) { - if (this.dataRangeOption.min == this.dataRangeOption.max) { - return this._colorList[0]; - } - if (value < this.dataRangeOption.min) { - value = this.dataRangeOption.min; - } else if (value > this.dataRangeOption.max) { - value = this.dataRangeOption.max; - } - if (this.dataRangeOption.calculable) { - if (value - (this._gap * this._range.start + this.dataRangeOption.min) > 0.00005 || value - (this._gap * this._range.end + this.dataRangeOption.min) < -0.00005) { - return null; - } - } - idx = this._colorList.length - Math.ceil((value - this.dataRangeOption.min) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._colorList.length); - if (idx == this._colorList.length) { - idx--; - } - } else { - var splitRangeList = this._splitList; - for (var i = 0, len = splitRangeList.length; i < len; i++) { - if (splitRangeList[i].min <= value && splitRangeList[i].max >= value) { - idx = i; - break; - } - } - } - if (this._selectedMap[idx]) { - return this._colorList[idx]; - } else { - return null; - } - }, - getColorByIndex: function (idx) { - if (idx >= this._colorList.length) { - idx = this._colorList.length - 1; - } else if (idx < 0) { - idx = 0; - } - return this._colorList[idx]; - }, - onbeforDispose: function () { - this.messageCenter.unbind(ecConfig.EVENT.HOVER, this._onhoverlink); - } - }; - zrUtil.inherits(DataRange, Base); - require('../component').define('dataRange', DataRange); - return DataRange; -});define('echarts/util/shape/HandlePolygon', [ - 'require', - 'zrender/shape/Base', - 'zrender/shape/Polygon', - 'zrender/tool/util' -], function (require) { - var Base = require('zrender/shape/Base'); - var PolygonShape = require('zrender/shape/Polygon'); - var zrUtil = require('zrender/tool/util'); - function HandlePolygon(options) { - Base.call(this, options); - } - HandlePolygon.prototype = { - type: 'handle-polygon', - buildPath: function (ctx, style) { - PolygonShape.prototype.buildPath(ctx, style); - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - var rect = this.style.rect; - if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) { - return true; - } else { - return false; - } - } - }; - zrUtil.inherits(HandlePolygon, Base); - return HandlePolygon; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/tree.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/tree.js deleted file mode 100644 index 5eb729b..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/tree.js +++ /dev/null @@ -1,625 +0,0 @@ -define('echarts/chart/tree', [ - 'require', - './base', - '../util/shape/Icon', - 'zrender/shape/Image', - 'zrender/shape/Line', - 'zrender/shape/BezierCurve', - '../layout/Tree', - '../data/Tree', - '../config', - '../util/ecData', - 'zrender/config', - 'zrender/tool/event', - 'zrender/tool/util', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var GOLDEN_SECTION = 0.618; - var IconShape = require('../util/shape/Icon'); - var ImageShape = require('zrender/shape/Image'); - var LineShape = require('zrender/shape/Line'); - var BezierCurveShape = require('zrender/shape/BezierCurve'); - var TreeLayout = require('../layout/Tree'); - var TreeData = require('../data/Tree'); - var ecConfig = require('../config'); - ecConfig.tree = { - zlevel: 1, - z: 2, - calculable: false, - clickable: true, - rootLocation: {}, - orient: 'vertical', - symbol: 'circle', - symbolSize: 20, - nodePadding: 30, - layerPadding: 100, - itemStyle: { - normal: { - label: { show: true }, - lineStyle: { - width: 1, - color: '#777', - type: 'curve' - } - }, - emphasis: {} - } - }; - var ecData = require('../util/ecData'); - var zrConfig = require('zrender/config'); - var zrEvent = require('zrender/tool/event'); - var zrUtil = require('zrender/tool/util'); - function Tree(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Tree.prototype = { - type: ecConfig.CHART_TYPE_TREE, - _buildShape: function (series, seriesIndex) { - var data = series.data[0]; - this.tree = TreeData.fromOptionData(data.name, data.children); - this.tree.root.data = data; - this._setTreeShape(series); - this.tree.traverse(function (treeNode) { - this._buildItem(treeNode, series, seriesIndex); - if (treeNode.children.length > 0) { - this._buildLink(treeNode, series); - } - }, this); - var panable = series.roam === true || series.roam === 'move'; - var zoomable = series.roam === true || series.roam === 'scale'; - this.zr.modLayer(this.getZlevelBase(), { - panable: panable, - zoomable: zoomable - }); - if (this.query('markPoint.effect.show') || this.query('markLine.effect.show')) { - this.zr.modLayer(ecConfig.EFFECT_ZLEVEL, { - panable: panable, - zoomable: zoomable - }); - } - this.addShapeList(); - }, - _buildItem: function (treeNode, serie, seriesIndex) { - var queryTarget = [ - treeNode.data, - serie - ]; - var symbol = this.deepQuery(queryTarget, 'symbol'); - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = normal.color || this.zr.getColor(); - var emphasisColor = emphasis.color || this.zr.getColor(); - var angle = -treeNode.layout.angle || 0; - if (treeNode.id === this.tree.root.id) { - angle = 0; - } - var textPosition = 'right'; - if (Math.abs(angle) >= Math.PI / 2 && Math.abs(angle) < Math.PI * 3 / 2) { - angle += Math.PI; - textPosition = 'left'; - } - var rotation = [ - angle, - treeNode.layout.position[0], - treeNode.layout.position[1] - ]; - var shape = new IconShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - rotation: rotation, - clickable: this.deepQuery(queryTarget, 'clickable'), - style: { - x: treeNode.layout.position[0] - treeNode.layout.width * 0.5, - y: treeNode.layout.position[1] - treeNode.layout.height * 0.5, - width: treeNode.layout.width, - height: treeNode.layout.height, - iconType: symbol, - color: normalColor, - brushType: 'both', - lineWidth: normal.borderWidth, - strokeColor: normal.borderColor - }, - highlightStyle: { - color: emphasisColor, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor - } - }); - if (shape.style.iconType.match('image')) { - shape.style.image = shape.style.iconType.replace(new RegExp('^image:\\/\\/'), ''); - shape = new ImageShape({ - rotation: rotation, - style: shape.style, - highlightStyle: shape.highlightStyle, - clickable: shape.clickable, - zlevel: this.getZlevelBase(), - z: this.getZBase() - }); - } - if (this.deepQuery(queryTarget, 'itemStyle.normal.label.show')) { - shape.style.text = treeNode.data.label == null ? treeNode.id : treeNode.data.label; - shape.style.textPosition = this.deepQuery(queryTarget, 'itemStyle.normal.label.position'); - if (serie.orient === 'radial' && shape.style.textPosition !== 'inside') { - shape.style.textPosition = textPosition; - } - shape.style.textColor = this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle.color'); - shape.style.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle') || {}); - } - if (this.deepQuery(queryTarget, 'itemStyle.emphasis.label.show')) { - shape.highlightStyle.textPosition = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.position'); - shape.highlightStyle.textColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle.color'); - shape.highlightStyle.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle') || {}); - } - ecData.pack(shape, serie, seriesIndex, treeNode.data, 0, treeNode.id); - this.shapeList.push(shape); - }, - _buildLink: function (parentNode, serie) { - var lineStyle = serie.itemStyle.normal.lineStyle; - if (lineStyle.type === 'broken') { - this._buildBrokenLine(parentNode, lineStyle, serie); - return; - } - for (var i = 0; i < parentNode.children.length; i++) { - var xStart = parentNode.layout.position[0]; - var yStart = parentNode.layout.position[1]; - var xEnd = parentNode.children[i].layout.position[0]; - var yEnd = parentNode.children[i].layout.position[1]; - switch (lineStyle.type) { - case 'curve': - this._buildBezierCurve(parentNode, parentNode.children[i], lineStyle, serie); - break; - case 'broken': - break; - default: - var shape = this._getLine(xStart, yStart, xEnd, yEnd, lineStyle); - this.shapeList.push(shape); - } - } - }, - _buildBrokenLine: function (parentNode, lineStyle, serie) { - var solidLineStyle = zrUtil.clone(lineStyle); - solidLineStyle.type = 'solid'; - var shapes = []; - var xStart = parentNode.layout.position[0]; - var yStart = parentNode.layout.position[1]; - var orient = serie.orient; - var yEnd = parentNode.children[0].layout.position[1]; - var xMiddle = xStart; - var yMiddle = yStart + (yEnd - yStart) * (1 - GOLDEN_SECTION); - var xMiddleStart = parentNode.children[0].layout.position[0]; - var yMiddleStart = yMiddle; - var xMiddleEnd = parentNode.children[parentNode.children.length - 1].layout.position[0]; - var yMiddleEnd = yMiddle; - if (orient === 'horizontal') { - var xEnd = parentNode.children[0].layout.position[0]; - xMiddle = xStart + (xEnd - xStart) * (1 - GOLDEN_SECTION); - yMiddle = yStart; - xMiddleStart = xMiddle; - yMiddleStart = parentNode.children[0].layout.position[1]; - xMiddleEnd = xMiddle; - yMiddleEnd = parentNode.children[parentNode.children.length - 1].layout.position[1]; - } - shapes.push(this._getLine(xStart, yStart, xMiddle, yMiddle, solidLineStyle)); - shapes.push(this._getLine(xMiddleStart, yMiddleStart, xMiddleEnd, yMiddleEnd, solidLineStyle)); - for (var i = 0; i < parentNode.children.length; i++) { - xEnd = parentNode.children[i].layout.position[0]; - yEnd = parentNode.children[i].layout.position[1]; - if (orient === 'horizontal') { - yMiddleStart = yEnd; - } else { - xMiddleStart = xEnd; - } - shapes.push(this._getLine(xMiddleStart, yMiddleStart, xEnd, yEnd, solidLineStyle)); - } - this.shapeList = this.shapeList.concat(shapes); - }, - _getLine: function (xStart, yStart, xEnd, yEnd, lineStyle) { - if (xStart === xEnd) { - xStart = xEnd = this.subPixelOptimize(xStart, lineStyle.width); - } - if (yStart === yEnd) { - yStart = yEnd = this.subPixelOptimize(yStart, lineStyle.width); - } - return new LineShape({ - zlevel: this.getZlevelBase(), - hoverable: false, - style: zrUtil.merge({ - xStart: xStart, - yStart: yStart, - xEnd: xEnd, - yEnd: yEnd, - lineType: lineStyle.type, - strokeColor: lineStyle.color, - lineWidth: lineStyle.width - }, lineStyle, true) - }); - }, - _buildBezierCurve: function (parentNode, treeNode, lineStyle, serie) { - var offsetRatio = GOLDEN_SECTION; - var orient = serie.orient; - var xStart = parentNode.layout.position[0]; - var yStart = parentNode.layout.position[1]; - var xEnd = treeNode.layout.position[0]; - var yEnd = treeNode.layout.position[1]; - var cpX1 = xStart; - var cpY1 = (yEnd - yStart) * offsetRatio + yStart; - var cpX2 = xEnd; - var cpY2 = (yEnd - yStart) * (1 - offsetRatio) + yStart; - if (orient === 'horizontal') { - cpX1 = (xEnd - xStart) * offsetRatio + xStart; - cpY1 = yStart; - cpX2 = (xEnd - xStart) * (1 - offsetRatio) + xStart; - cpY2 = yEnd; - } else if (orient === 'radial') { - if (parentNode.id === this.tree.root.id) { - cpX1 = (xEnd - xStart) * offsetRatio + xStart; - cpY1 = (yEnd - yStart) * offsetRatio + yStart; - cpX2 = (xEnd - xStart) * (1 - offsetRatio) + xStart; - cpY2 = (yEnd - yStart) * (1 - offsetRatio) + yStart; - } else { - var xStartOrigin = parentNode.layout.originPosition[0]; - var yStartOrigin = parentNode.layout.originPosition[1]; - var xEndOrigin = treeNode.layout.originPosition[0]; - var yEndOrigin = treeNode.layout.originPosition[1]; - var rootX = this.tree.root.layout.position[0]; - var rootY = this.tree.root.layout.position[1]; - cpX1 = xStartOrigin; - cpY1 = (yEndOrigin - yStartOrigin) * offsetRatio + yStartOrigin; - cpX2 = xEndOrigin; - cpY2 = (yEndOrigin - yStartOrigin) * (1 - offsetRatio) + yStartOrigin; - var rad = (cpX1 - this.minX) / this.width * Math.PI * 2; - cpX1 = cpY1 * Math.cos(rad) + rootX; - cpY1 = cpY1 * Math.sin(rad) + rootY; - rad = (cpX2 - this.minX) / this.width * Math.PI * 2; - cpX2 = cpY2 * Math.cos(rad) + rootX; - cpY2 = cpY2 * Math.sin(rad) + rootY; - } - } - var shape = new BezierCurveShape({ - zlevel: this.getZlevelBase(), - hoverable: false, - style: zrUtil.merge({ - xStart: xStart, - yStart: yStart, - cpX1: cpX1, - cpY1: cpY1, - cpX2: cpX2, - cpY2: cpY2, - xEnd: xEnd, - yEnd: yEnd, - strokeColor: lineStyle.color, - lineWidth: lineStyle.width - }, lineStyle, true) - }); - this.shapeList.push(shape); - }, - _setTreeShape: function (serie) { - var treeLayout = new TreeLayout({ - nodePadding: serie.nodePadding, - layerPadding: serie.layerPadding - }); - this.tree.traverse(function (treeNode) { - var queryTarget = [ - treeNode.data, - serie - ]; - var symbolSize = this.deepQuery(queryTarget, 'symbolSize'); - if (typeof symbolSize === 'number') { - symbolSize = [ - symbolSize, - symbolSize - ]; - } - treeNode.layout = { - width: symbolSize[0], - height: symbolSize[1] - }; - }, this); - treeLayout.run(this.tree); - var orient = serie.orient; - var rootX = serie.rootLocation.x; - var rootY = serie.rootLocation.y; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - if (rootX === 'center') { - rootX = zrWidth * 0.5; - } else { - rootX = this.parsePercent(rootX, zrWidth); - } - if (rootY === 'center') { - rootY = zrHeight * 0.5; - } else { - rootY = this.parsePercent(rootY, zrHeight); - } - rootY = this.parsePercent(rootY, zrHeight); - if (orient === 'horizontal') { - rootX = isNaN(rootX) ? 10 : rootX; - rootY = isNaN(rootY) ? zrHeight * 0.5 : rootY; - } - if (orient === 'radial') { - rootX = isNaN(rootX) ? zrWidth * 0.5 : rootX; - rootY = isNaN(rootY) ? zrHeight * 0.5 : rootY; - } else { - rootX = isNaN(rootX) ? zrWidth * 0.5 : rootX; - rootY = isNaN(rootY) ? 10 : rootY; - } - var originRootX = this.tree.root.layout.position[0]; - if (orient === 'radial') { - var minX = Infinity; - var maxX = 0; - var maxWidth = 0; - this.tree.traverse(function (treeNode) { - maxX = Math.max(maxX, treeNode.layout.position[0]); - minX = Math.min(minX, treeNode.layout.position[0]); - maxWidth = Math.max(maxWidth, treeNode.layout.width); - }); - this.width = maxX - minX + 2 * maxWidth; - this.minX = minX; - } - this.tree.traverse(function (treeNode) { - var x; - var y; - if (orient === 'vertical' && serie.direction === 'inverse') { - x = treeNode.layout.position[0] - originRootX + rootX; - y = rootY - treeNode.layout.position[1]; - } else if (orient === 'vertical') { - x = treeNode.layout.position[0] - originRootX + rootX; - y = treeNode.layout.position[1] + rootY; - } else if (orient === 'horizontal' && serie.direction === 'inverse') { - y = treeNode.layout.position[0] - originRootX + rootY; - x = rootX - treeNode.layout.position[1]; - } else if (orient === 'horizontal') { - y = treeNode.layout.position[0] - originRootX + rootY; - x = treeNode.layout.position[1] + rootX; - } else { - x = treeNode.layout.position[0]; - y = treeNode.layout.position[1]; - treeNode.layout.originPosition = [ - x, - y - ]; - var r = y; - var angle = (x - minX) / this.width * Math.PI * 2; - x = r * Math.cos(angle) + rootX; - y = r * Math.sin(angle) + rootY; - treeNode.layout.angle = angle; - } - treeNode.layout.position[0] = x; - treeNode.layout.position[1] = y; - }, this); - }, - refresh: function (newOption) { - this.clear(); - if (newOption) { - this.option = newOption; - this.series = this.option.series; - } - var series = this.series; - var legend = this.component.legend; - for (var i = 0; i < series.length; i++) { - if (series[i].type === ecConfig.CHART_TYPE_TREE) { - series[i] = this.reformOption(series[i]); - var seriesName = series[i].name || ''; - this.selectedMap[seriesName] = legend ? legend.isSelected(seriesName) : true; - if (!this.selectedMap[seriesName]) { - continue; - } - this._buildSeries(series[i], i); - } - } - }, - _buildSeries: function (series, seriesIndex) { - this._buildShape(series, seriesIndex); - } - }; - zrUtil.inherits(Tree, ChartBase); - require('../chart').define('tree', Tree); - return Tree; -});define('echarts/layout/Tree', [ - 'require', - 'zrender/tool/vector' -], function (require) { - var vec2 = require('zrender/tool/vector'); - function TreeLayout(opts) { - opts = opts || {}; - this.nodePadding = opts.nodePadding || 30; - this.layerPadding = opts.layerPadding || 100; - this._layerOffsets = []; - this._layers = []; - } - TreeLayout.prototype.run = function (tree) { - this._layerOffsets.length = 0; - for (var i = 0; i < tree.root.height + 1; i++) { - this._layerOffsets[i] = 0; - this._layers[i] = []; - } - this._updateNodeXPosition(tree.root); - var root = tree.root; - this._updateNodeYPosition(root, 0, root.layout.height); - }; - TreeLayout.prototype._updateNodeXPosition = function (node) { - var minX = Infinity; - var maxX = -Infinity; - node.layout.position = node.layout.position || vec2.create(); - for (var i = 0; i < node.children.length; i++) { - var child = node.children[i]; - this._updateNodeXPosition(child); - var x = child.layout.position[0]; - if (x < minX) { - minX = x; - } - if (x > maxX) { - maxX = x; - } - } - if (node.children.length > 0) { - node.layout.position[0] = (minX + maxX) / 2; - } else { - node.layout.position[0] = 0; - } - var off = this._layerOffsets[node.depth] || 0; - if (off > node.layout.position[0]) { - var shift = off - node.layout.position[0]; - this._shiftSubtree(node, shift); - for (var i = node.depth + 1; i < node.height + node.depth; i++) { - this._layerOffsets[i] += shift; - } - } - this._layerOffsets[node.depth] = node.layout.position[0] + node.layout.width + this.nodePadding; - this._layers[node.depth].push(node); - }; - TreeLayout.prototype._shiftSubtree = function (root, offset) { - root.layout.position[0] += offset; - for (var i = 0; i < root.children.length; i++) { - this._shiftSubtree(root.children[i], offset); - } - }; - TreeLayout.prototype._updateNodeYPosition = function (node, y, prevLayerHeight) { - node.layout.position[1] = y; - var layerHeight = 0; - for (var i = 0; i < node.children.length; i++) { - layerHeight = Math.max(node.children[i].layout.height, layerHeight); - } - var layerPadding = this.layerPadding; - if (typeof layerPadding === 'function') { - layerPadding = layerPadding(node.depth); - } - for (var i = 0; i < node.children.length; i++) { - this._updateNodeYPosition(node.children[i], y + layerPadding + prevLayerHeight, layerHeight); - } - }; - return TreeLayout; -});define('echarts/data/Tree', [ - 'require', - 'zrender/tool/util' -], function (require) { - var zrUtil = require('zrender/tool/util'); - function TreeNode(id, data) { - this.id = id; - this.depth = 0; - this.height = 0; - this.children = []; - this.parent = null; - this.data = data || null; - } - TreeNode.prototype.add = function (child) { - var children = this.children; - if (child.parent === this) { - return; - } - children.push(child); - child.parent = this; - }; - TreeNode.prototype.remove = function (child) { - var children = this.children; - var idx = zrUtil.indexOf(children, child); - if (idx >= 0) { - children.splice(idx, 1); - child.parent = null; - } - }; - TreeNode.prototype.traverse = function (cb, context) { - cb.call(context, this); - for (var i = 0; i < this.children.length; i++) { - this.children[i].traverse(cb, context); - } - }; - TreeNode.prototype.updateDepthAndHeight = function (depth) { - var height = 0; - this.depth = depth; - for (var i = 0; i < this.children.length; i++) { - var child = this.children[i]; - child.updateDepthAndHeight(depth + 1); - if (child.height > height) { - height = child.height; - } - } - this.height = height + 1; - }; - TreeNode.prototype.getNodeById = function (id) { - if (this.id === id) { - return this; - } - for (var i = 0; i < this.children.length; i++) { - var res = this.children[i].getNodeById(id); - if (res) { - return res; - } - } - }; - function Tree(id) { - this.root = new TreeNode(id); - } - Tree.prototype.traverse = function (cb, context) { - this.root.traverse(cb, context); - }; - Tree.prototype.getSubTree = function (id) { - var root = this.getNodeById(id); - if (root) { - var tree = new Tree(root.id); - tree.root = root; - return tree; - } - }; - Tree.prototype.getNodeById = function (id) { - return this.root.getNodeById(id); - }; - Tree.fromOptionData = function (id, data) { - var tree = new Tree(id); - var rootNode = tree.root; - rootNode.data = { - name: id, - children: data - }; - function buildHierarchy(dataNode, parentNode) { - var node = new TreeNode(dataNode.name, dataNode); - parentNode.add(node); - var children = dataNode.children; - if (children) { - for (var i = 0; i < children.length; i++) { - buildHierarchy(children[i], node); - } - } - } - for (var i = 0; i < data.length; i++) { - buildHierarchy(data[i], rootNode); - } - tree.root.updateDepthAndHeight(0); - return tree; - }; - Tree.fromGraph = function (graph) { - function buildHierarchy(root) { - var graphNode = graph.getNodeById(root.id); - for (var i = 0; i < graphNode.outEdges.length; i++) { - var edge = graphNode.outEdges[i]; - var childTreeNode = treeNodesMap[edge.node2.id]; - root.children.push(childTreeNode); - buildHierarchy(childTreeNode); - } - } - var treeMap = {}; - var treeNodesMap = {}; - for (var i = 0; i < graph.nodes.length; i++) { - var node = graph.nodes[i]; - var treeNode; - if (node.inDegree() === 0) { - treeMap[node.id] = new Tree(node.id); - treeNode = treeMap[node.id].root; - } else { - treeNode = new TreeNode(node.id); - } - treeNode.data = node.data; - treeNodesMap[node.id] = treeNode; - } - var treeList = []; - for (var id in treeMap) { - buildHierarchy(treeMap[id].root); - treeMap[id].root.updateDepthAndHeight(0); - treeList.push(treeMap[id]); - } - return treeList; - }; - return Tree; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/treemap.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/treemap.js deleted file mode 100644 index 76be107..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/treemap.js +++ /dev/null @@ -1,632 +0,0 @@ -define('echarts/chart/treemap', [ - 'require', - './base', - 'zrender/tool/area', - 'zrender/shape/Rectangle', - 'zrender/shape/Text', - 'zrender/shape/Line', - '../layout/TreeMap', - '../data/Tree', - '../config', - '../util/ecData', - 'zrender/config', - 'zrender/tool/event', - 'zrender/tool/util', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var toolArea = require('zrender/tool/area'); - var RectangleShape = require('zrender/shape/Rectangle'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var TreeMapLayout = require('../layout/TreeMap'); - var Tree = require('../data/Tree'); - var ecConfig = require('../config'); - ecConfig.treemap = { - zlevel: 0, - z: 1, - calculable: false, - clickable: true, - center: [ - '50%', - '50%' - ], - size: [ - '80%', - '80%' - ], - root: '', - itemStyle: { - normal: { - label: { - show: true, - x: 5, - y: 12, - textStyle: { - align: 'left', - color: '#000', - fontFamily: 'Arial', - fontSize: 13, - fontStyle: 'normal', - fontWeight: 'normal' - } - }, - breadcrumb: { - show: true, - textStyle: {} - }, - borderWidth: 1, - borderColor: '#ccc', - childBorderWidth: 1, - childBorderColor: '#ccc' - }, - emphasis: {} - } - }; - var ecData = require('../util/ecData'); - var zrConfig = require('zrender/config'); - var zrEvent = require('zrender/tool/event'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function Treemap(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - var self = this; - self._onclick = function (params) { - return self.__onclick(params); - }; - self.zr.on(zrConfig.EVENT.CLICK, self._onclick); - } - Treemap.prototype = { - type: ecConfig.CHART_TYPE_TREEMAP, - refresh: function (newOption) { - this.clear(); - if (newOption) { - this.option = newOption; - this.series = this.option.series; - } - this._treesMap = {}; - var series = this.series; - var legend = this.component.legend; - for (var i = 0; i < series.length; i++) { - if (series[i].type === ecConfig.CHART_TYPE_TREEMAP) { - series[i] = this.reformOption(series[i]); - var seriesName = series[i].name || ''; - this.selectedMap[seriesName] = legend ? legend.isSelected(seriesName) : true; - if (!this.selectedMap[seriesName]) { - continue; - } - this._buildSeries(series[i], i); - } - } - }, - _buildSeries: function (series, seriesIndex) { - var tree = Tree.fromOptionData(series.name, series.data); - this._treesMap[seriesIndex] = tree; - var treeRoot = series.root && tree.getNodeById(series.root) || tree.root; - this._buildTreemap(treeRoot, seriesIndex); - }, - _buildTreemap: function (treeRoot, seriesIndex) { - var shapeList = this.shapeList; - for (var i = 0; i < shapeList.length;) { - var shape = shapeList[i]; - if (ecData.get(shape, 'seriesIndex') === seriesIndex) { - this.zr.delShape(shapeList[i]); - shapeList.splice(i, 1); - } else { - i++; - } - } - var currentShapeLen = shapeList.length; - var series = this.series[seriesIndex]; - var itemStyle = series.itemStyle; - var treemapWidth = this.parsePercent(series.size[0], this.zr.getWidth()) || 400; - var treemapHeight = this.parsePercent(series.size[1], this.zr.getHeight()) || 500; - var center = this.parseCenter(this.zr, series.center); - var treemapX = center[0] - treemapWidth * 0.5; - var treemapY = center[1] - treemapHeight * 0.5; - var treemapArea = treemapWidth * treemapHeight; - var sum = 0; - var areaArr = []; - var children = treeRoot.children; - for (var i = 0; i < children.length; i++) { - sum += children[i].data.value; - } - for (var j = 0; j < children.length; j++) { - areaArr.push(children[j].data.value * treemapArea / sum); - } - var treeMapLayout = new TreeMapLayout({ - x: treemapX, - y: treemapY, - width: treemapWidth, - height: treemapHeight - }); - var locationArr = treeMapLayout.run(areaArr); - for (var k = 0; k < locationArr.length; k++) { - var dataItem = children[k].data; - var rect = locationArr[k]; - var queryTarget = [ - dataItem.itemStyle, - itemStyle - ]; - var itemStyleMerged = this.deepMerge(queryTarget); - if (!itemStyleMerged.normal.color) { - itemStyleMerged.normal.color = this.zr.getColor(k); - } - if (!itemStyleMerged.emphasis.color) { - itemStyleMerged.emphasis.color = itemStyleMerged.normal.color; - } - this._buildItem(dataItem, itemStyleMerged, rect, seriesIndex, k); - if (dataItem.children) { - this._buildChildrenTreemap(dataItem.children, itemStyleMerged, rect, seriesIndex); - } - } - if (this.query(series, 'itemStyle.normal.breadcrumb.show')) { - this._buildBreadcrumb(treeRoot, seriesIndex, treemapX, treemapY + treemapHeight); - } - for (var i = currentShapeLen; i < shapeList.length; i++) { - this.zr.addShape(shapeList[i]); - } - }, - _buildItem: function (dataItem, itemStyle, rect, seriesIndex, dataIndex) { - var series = this.series; - var rectangle = this.getRectangle(dataItem, itemStyle, rect); - ecData.pack(rectangle, series[seriesIndex], seriesIndex, dataItem, dataIndex, dataItem.name); - this.shapeList.push(rectangle); - }, - getRectangle: function (dataItem, itemStyle, rect) { - var emphasis = itemStyle.emphasis; - var normal = itemStyle.normal; - var textShape = this.getLabel(itemStyle, rect, dataItem.name, dataItem.value); - var hoverable = this.option.hoverable; - var rectangleShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: hoverable, - clickable: true, - style: zrUtil.merge({ - x: rect.x, - y: rect.y, - width: rect.width, - height: rect.height, - brushType: 'both', - color: normal.color, - lineWidth: normal.borderWidth, - strokeColor: normal.borderColor - }, textShape.style, true), - highlightStyle: zrUtil.merge({ - color: emphasis.color, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor - }, textShape.highlightStyle, true) - }; - return new RectangleShape(rectangleShape); - }, - getLabel: function (itemStyle, rect, name, value) { - var normalTextStyle = itemStyle.normal.label.textStyle; - var queryTarget = [ - itemStyle.emphasis.label.textStyle, - normalTextStyle - ]; - var emphasisTextStyle = this.deepMerge(queryTarget); - var formatter = itemStyle.normal.label.formatter; - var text = this.getLabelText(name, value, formatter); - var textFont = this.getFont(normalTextStyle); - var textWidth = toolArea.getTextWidth(text, textFont); - var textHeight = toolArea.getTextHeight(text, textFont); - var emphasisFormatter = this.deepQuery([ - itemStyle.emphasis, - itemStyle.normal - ], 'label.formatter'); - var emphasisText = this.getLabelText(name, value, emphasisFormatter); - var emphasisTextFont = this.getFont(emphasisTextStyle); - var emphasisTextWidth = toolArea.getTextWidth(text, emphasisTextFont); - var emphasisTextHeight = toolArea.getTextHeight(text, emphasisTextFont); - if (!itemStyle.normal.label.show) { - text = ''; - } else if (itemStyle.normal.label.x + textWidth > rect.width || itemStyle.normal.label.y + textHeight > rect.height) { - text = ''; - } - if (!itemStyle.emphasis.label.show) { - emphasisText = ''; - } else if (emphasisTextStyle.x + emphasisTextWidth > rect.width || emphasisTextStyle.y + emphasisTextHeight > rect.height) { - emphasisText = ''; - } - var textShape = { - style: { - textX: rect.x + itemStyle.normal.label.x, - textY: rect.y + itemStyle.normal.label.y, - text: text, - textPosition: 'specific', - textColor: normalTextStyle.color, - textFont: textFont - }, - highlightStyle: { - textX: rect.x + itemStyle.emphasis.label.x, - textY: rect.y + itemStyle.emphasis.label.y, - text: emphasisText, - textColor: emphasisTextStyle.color, - textPosition: 'specific' - } - }; - return textShape; - }, - getLabelText: function (name, value, formatter) { - if (formatter) { - if (typeof formatter === 'function') { - return formatter.call(this.myChart, name, value); - } else if (typeof formatter === 'string') { - formatter = formatter.replace('{b}', '{b0}').replace('{c}', '{c0}'); - formatter = formatter.replace('{b0}', name).replace('{c0}', value); - return formatter; - } - } else { - return name; - } - }, - _buildChildrenTreemap: function (data, itemStyle, rect, seriesIndex) { - var treemapArea = rect.width * rect.height; - var sum = 0; - var areaArr = []; - for (var i = 0; i < data.length; i++) { - sum += data[i].value; - } - for (var j = 0; j < data.length; j++) { - areaArr.push(data[j].value * treemapArea / sum); - } - var treeMapLayout = new TreeMapLayout({ - x: rect.x, - y: rect.y, - width: rect.width, - height: rect.height - }); - var locationArr = treeMapLayout.run(areaArr); - var lineWidth = itemStyle.normal.childBorderWidth; - var lineColor = itemStyle.normal.childBorderColor; - for (var k = 0; k < locationArr.length; k++) { - var item = locationArr[k]; - var lines = []; - if (rect.y.toFixed(2) !== item.y.toFixed(2)) { - lines.push(this._getLine(item.x, item.y, item.x + item.width, item.y, lineWidth, lineColor)); - } - if (rect.x.toFixed(2) !== item.x.toFixed(2)) { - lines.push(this._getLine(item.x, item.y, item.x, item.y + item.height, lineWidth, lineColor)); - } - if ((rect.y + rect.height).toFixed(2) !== (item.y + item.height).toFixed(2)) { - lines.push(this._getLine(item.x, item.y + item.height, item.x + item.width, item.y + item.height, lineWidth, lineColor)); - } - if ((rect.x + rect.width).toFixed(2) !== (item.x + item.width).toFixed(2)) { - lines.push(this._getLine(item.x + item.width, item.y, item.x + item.width, item.y + item.height, lineWidth, lineColor)); - } - for (var l = 0; l < lines.length; l++) { - ecData.set(lines[l], 'seriesIndex', seriesIndex); - this.shapeList.push(lines[l]); - } - } - }, - _getLine: function (xStart, yStart, xEnd, yEnd, lineWidth, lineColor) { - var lineShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: xStart, - yStart: yStart, - xEnd: xEnd, - yEnd: yEnd, - lineWidth: lineWidth, - strokeColor: lineColor - } - }; - return new LineShape(lineShape); - }, - _buildBreadcrumb: function (treeRoot, seriesIndex, x, y) { - var stack = []; - var current = treeRoot; - while (current) { - stack.unshift(current.data.name); - current = current.parent; - } - var series = this.series[seriesIndex]; - var textStyle = this.query(series, 'itemStyle.normal.breadcrumb.textStyle') || {}; - var textEmphasisStyle = this.query(series, 'itemStyle.emphasis.breadcrumb.textStyle') || {}; - var commonStyle = { - y: y + 10, - textBaseline: 'top', - textAlign: 'left', - color: textStyle.color, - textFont: this.getFont(textStyle) - }; - var commonHighlightStyle = { - brushType: 'fill', - color: textEmphasisStyle.color || zrColor.lift(textStyle.color, -0.3), - textFont: this.getFont(textEmphasisStyle) - }; - for (var i = 0; i < stack.length; i++) { - var textShape = new TextShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: zrUtil.merge({ - x: x, - text: stack[i] + (stack.length - 1 - i ? ' > ' : '') - }, commonStyle), - clickable: true, - highlightStyle: commonHighlightStyle - }); - ecData.set(textShape, 'seriesIndex', seriesIndex); - ecData.set(textShape, 'name', stack[i]); - x += textShape.getRect(textShape.style).width; - this.shapeList.push(textShape); - } - }, - __onclick: function (params) { - var target = params.target; - if (target) { - var seriesIndex = ecData.get(target, 'seriesIndex'); - var name = ecData.get(target, 'name'); - var tree = this._treesMap[seriesIndex]; - var root = tree.getNodeById(name); - if (root && root.children.length) { - this._buildTreemap(root, seriesIndex); - } - } - } - }; - zrUtil.inherits(Treemap, ChartBase); - require('../chart').define('treemap', Treemap); - return Treemap; -});define('echarts/layout/TreeMap', ['require'], function (require) { - function TreeMapLayout(opts) { - var row = { - x: opts.x, - y: opts.y, - width: opts.width, - height: opts.height - }; - this.x = opts.x; - this.y = opts.y; - this.width = opts.width; - this.height = opts.height; - } - TreeMapLayout.prototype.run = function (areas) { - var out = []; - this._squarify(areas, { - x: this.x, - y: this.y, - width: this.width, - height: this.height - }, out); - return out; - }; - TreeMapLayout.prototype._squarify = function (areas, row, out) { - var layoutDirection = 'VERTICAL'; - var width = row.width; - var height = row.height; - if (row.width < row.height) { - layoutDirection = 'HORIZONTAL'; - width = row.height; - height = row.width; - } - var shapeArr = this._getShapeListInAbstractRow(areas, width, height); - for (var i = 0; i < shapeArr.length; i++) { - shapeArr[i].x = 0; - shapeArr[i].y = 0; - for (var j = 0; j < i; j++) { - shapeArr[i].y += shapeArr[j].height; - } - } - var nextRow = {}; - if (layoutDirection == 'VERTICAL') { - for (var k = 0; k < shapeArr.length; k++) { - out.push({ - x: shapeArr[k].x + row.x, - y: shapeArr[k].y + row.y, - width: shapeArr[k].width, - height: shapeArr[k].height - }); - } - nextRow = { - x: shapeArr[0].width + row.x, - y: row.y, - width: row.width - shapeArr[0].width, - height: row.height - }; - } else { - for (var l = 0; l < shapeArr.length; l++) { - out.push({ - x: shapeArr[l].y + row.x, - y: shapeArr[l].x + row.y, - width: shapeArr[l].height, - height: shapeArr[l].width - }); - } - nextRow = { - x: row.x, - y: row.y + shapeArr[0].width, - width: row.width, - height: row.height - shapeArr[0].width - }; - } - var nextAreaArr = areas.slice(shapeArr.length); - if (nextAreaArr.length === 0) { - return; - } else { - this._squarify(nextAreaArr, nextRow, out); - } - }; - TreeMapLayout.prototype._getShapeListInAbstractRow = function (areas, width, height) { - if (areas.length === 1) { - return [{ - width: width, - height: height - }]; - } - for (var count = 1; count < areas.length; count++) { - var shapeArr0 = this._placeFixedNumberRectangles(areas.slice(0, count), width, height); - var shapeArr1 = this._placeFixedNumberRectangles(areas.slice(0, count + 1), width, height); - if (this._isFirstBetter(shapeArr0, shapeArr1)) { - return shapeArr0; - } - } - }; - TreeMapLayout.prototype._placeFixedNumberRectangles = function (areaSubArr, width, height) { - var count = areaSubArr.length; - var shapeArr = []; - var sum = 0; - for (var i = 0; i < areaSubArr.length; i++) { - sum += areaSubArr[i]; - } - var cellWidth = sum / height; - for (var j = 0; j < count; j++) { - var cellHeight = height * areaSubArr[j] / sum; - shapeArr.push({ - width: cellWidth, - height: cellHeight - }); - } - return shapeArr; - }; - TreeMapLayout.prototype._isFirstBetter = function (shapeArr0, shapeArr1) { - var ratio0 = shapeArr0[0].height / shapeArr0[0].width; - ratio0 = ratio0 > 1 ? 1 / ratio0 : ratio0; - var ratio1 = shapeArr1[0].height / shapeArr1[0].width; - ratio1 = ratio1 > 1 ? 1 / ratio1 : ratio1; - if (Math.abs(ratio0 - 1) <= Math.abs(ratio1 - 1)) { - return true; - } - return false; - }; - return TreeMapLayout; -});define('echarts/data/Tree', [ - 'require', - 'zrender/tool/util' -], function (require) { - var zrUtil = require('zrender/tool/util'); - function TreeNode(id, data) { - this.id = id; - this.depth = 0; - this.height = 0; - this.children = []; - this.parent = null; - this.data = data || null; - } - TreeNode.prototype.add = function (child) { - var children = this.children; - if (child.parent === this) { - return; - } - children.push(child); - child.parent = this; - }; - TreeNode.prototype.remove = function (child) { - var children = this.children; - var idx = zrUtil.indexOf(children, child); - if (idx >= 0) { - children.splice(idx, 1); - child.parent = null; - } - }; - TreeNode.prototype.traverse = function (cb, context) { - cb.call(context, this); - for (var i = 0; i < this.children.length; i++) { - this.children[i].traverse(cb, context); - } - }; - TreeNode.prototype.updateDepthAndHeight = function (depth) { - var height = 0; - this.depth = depth; - for (var i = 0; i < this.children.length; i++) { - var child = this.children[i]; - child.updateDepthAndHeight(depth + 1); - if (child.height > height) { - height = child.height; - } - } - this.height = height + 1; - }; - TreeNode.prototype.getNodeById = function (id) { - if (this.id === id) { - return this; - } - for (var i = 0; i < this.children.length; i++) { - var res = this.children[i].getNodeById(id); - if (res) { - return res; - } - } - }; - function Tree(id) { - this.root = new TreeNode(id); - } - Tree.prototype.traverse = function (cb, context) { - this.root.traverse(cb, context); - }; - Tree.prototype.getSubTree = function (id) { - var root = this.getNodeById(id); - if (root) { - var tree = new Tree(root.id); - tree.root = root; - return tree; - } - }; - Tree.prototype.getNodeById = function (id) { - return this.root.getNodeById(id); - }; - Tree.fromOptionData = function (id, data) { - var tree = new Tree(id); - var rootNode = tree.root; - rootNode.data = { - name: id, - children: data - }; - function buildHierarchy(dataNode, parentNode) { - var node = new TreeNode(dataNode.name, dataNode); - parentNode.add(node); - var children = dataNode.children; - if (children) { - for (var i = 0; i < children.length; i++) { - buildHierarchy(children[i], node); - } - } - } - for (var i = 0; i < data.length; i++) { - buildHierarchy(data[i], rootNode); - } - tree.root.updateDepthAndHeight(0); - return tree; - }; - Tree.fromGraph = function (graph) { - function buildHierarchy(root) { - var graphNode = graph.getNodeById(root.id); - for (var i = 0; i < graphNode.outEdges.length; i++) { - var edge = graphNode.outEdges[i]; - var childTreeNode = treeNodesMap[edge.node2.id]; - root.children.push(childTreeNode); - buildHierarchy(childTreeNode); - } - } - var treeMap = {}; - var treeNodesMap = {}; - for (var i = 0; i < graph.nodes.length; i++) { - var node = graph.nodes[i]; - var treeNode; - if (node.inDegree() === 0) { - treeMap[node.id] = new Tree(node.id); - treeNode = treeMap[node.id].root; - } else { - treeNode = new TreeNode(node.id); - } - treeNode.data = node.data; - treeNodesMap[node.id] = treeNode; - } - var treeList = []; - for (var id in treeMap) { - buildHierarchy(treeMap[id].root); - treeMap[id].root.updateDepthAndHeight(0); - treeList.push(treeMap[id]); - } - return treeList; - }; - return Tree; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/venn.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/venn.js deleted file mode 100644 index d0a819d..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/venn.js +++ /dev/null @@ -1,686 +0,0 @@ -define('echarts/chart/venn', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Circle', - 'zrender/shape/Path', - '../config', - '../util/ecData', - 'zrender/tool/util', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var TextShape = require('zrender/shape/Text'); - var CircleShape = require('zrender/shape/Circle'); - var PathShape = require('zrender/shape/Path'); - var ecConfig = require('../config'); - ecConfig.venn = { - zlevel: 0, - z: 1, - calculable: false - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - function Venn(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Venn.prototype = { - type: ecConfig.CHART_TYPE_VENN, - _buildShape: function () { - this.selectedMap = {}; - this._symbol = this.option.symbolList; - this._queryTarget; - this._dropBoxList = []; - this._vennDataCounter = 0; - var series = this.series; - var legend = this.component.legend; - for (var i = 0; i < series.length; i++) { - if (series[i].type === ecConfig.CHART_TYPE_VENN) { - series[i] = this.reformOption(series[i]); - var serieName = series[i].name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (!this.selectedMap[serieName]) { - continue; - } - this._buildVenn(i); - } - } - this.addShapeList(); - }, - _buildVenn: function (seriesIndex) { - var r0; - var r1; - var serie = this.series[seriesIndex]; - var data = serie.data; - if (data[0].value > data[1].value) { - r0 = this.zr.getHeight() / 3; - r1 = r0 * Math.sqrt(data[1].value) / Math.sqrt(data[0].value); - } else { - r1 = this.zr.getHeight() / 3; - r0 = r1 * Math.sqrt(data[0].value) / Math.sqrt(data[1].value); - } - var x0 = this.zr.getWidth() / 2 - r0; - var coincideLengthAnchor = (r0 + r1) / 2 * Math.sqrt(data[2].value) / Math.sqrt((data[0].value + data[1].value) / 2); - var coincideLength = r0 + r1; - if (data[2].value !== 0) { - coincideLength = this._getCoincideLength(data[0].value, data[1].value, data[2].value, r0, r1, coincideLengthAnchor, Math.abs(r0 - r1), r0 + r1); - } - var x1 = x0 + coincideLength; - var y = this.zr.getHeight() / 2; - this._buildItem(seriesIndex, 0, data[0], x0, y, r0); - this._buildItem(seriesIndex, 1, data[1], x1, y, r1); - if (data[2].value !== 0 && data[2].value !== data[0].value && data[2].value !== data[1].value) { - var xLeft = (r0 * r0 - r1 * r1) / (2 * coincideLength) + coincideLength / 2; - var xRight = coincideLength / 2 - (r0 * r0 - r1 * r1) / (2 * coincideLength); - var h = Math.sqrt(r0 * r0 - xLeft * xLeft); - var rightLargeArcFlag = 0; - var leftLargeArcFlag = 0; - if (data[0].value > data[1].value && x1 < x0 + xLeft) { - leftLargeArcFlag = 1; - } - if (data[0].value < data[1].value && x1 < x0 + xRight) { - rightLargeArcFlag = 1; - } - this._buildCoincideItem(seriesIndex, 2, data[2], x0 + xLeft, y - h, y + h, r0, r1, rightLargeArcFlag, leftLargeArcFlag); - } - }, - _getCoincideLength: function (value0, value1, value2, r0, r1, coincideLengthAnchor, coincideLengthAnchorMin, coincideLengthAnchorMax) { - var x = (r0 * r0 - r1 * r1) / (2 * coincideLengthAnchor) + coincideLengthAnchor / 2; - var y = coincideLengthAnchor / 2 - (r0 * r0 - r1 * r1) / (2 * coincideLengthAnchor); - var alfa = Math.acos(x / r0); - var beta = Math.acos(y / r1); - var area0 = r0 * r0 * Math.PI; - var area2 = alfa * r0 * r0 - x * r0 * Math.sin(alfa) + beta * r1 * r1 - y * r1 * Math.sin(beta); - var scaleAnchor = area2 / area0; - var scale = value2 / value0; - var approximateValue = Math.abs(scaleAnchor / scale); - if (approximateValue > 0.999 && approximateValue < 1.001) { - return coincideLengthAnchor; - } else if (approximateValue <= 0.999) { - coincideLengthAnchorMax = coincideLengthAnchor; - coincideLengthAnchor = (coincideLengthAnchor + coincideLengthAnchorMin) / 2; - return this._getCoincideLength(value0, value1, value2, r0, r1, coincideLengthAnchor, coincideLengthAnchorMin, coincideLengthAnchorMax); - } else { - coincideLengthAnchorMin = coincideLengthAnchor; - coincideLengthAnchor = (coincideLengthAnchor + coincideLengthAnchorMax) / 2; - return this._getCoincideLength(value0, value1, value2, r0, r1, coincideLengthAnchor, coincideLengthAnchorMin, coincideLengthAnchorMax); - } - }, - _buildItem: function (seriesIndex, dataIndex, dataItem, x, y, r) { - var series = this.series; - var serie = series[seriesIndex]; - var circle = this.getCircle(seriesIndex, dataIndex, dataItem, x, y, r); - ecData.pack(circle, serie, seriesIndex, dataItem, dataIndex, dataItem.name); - this.shapeList.push(circle); - if (serie.itemStyle.normal.label.show) { - var label = this.getLabel(seriesIndex, dataIndex, dataItem, x, y, r); - ecData.pack(label, serie, seriesIndex, serie.data[dataIndex], dataIndex, serie.data[dataIndex].name); - this.shapeList.push(label); - } - }, - _buildCoincideItem: function (seriesIndex, dataIndex, dataItem, x, y0, y1, r0, r1, rightLargeArcFlag, leftLargeArcFlag) { - var series = this.series; - var serie = series[seriesIndex]; - var queryTarget = [ - dataItem, - serie - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = normal.color || this.zr.getColor(dataIndex); - var emphasisColor = emphasis.color || this.zr.getColor(dataIndex); - var path = 'M' + x + ',' + y0 + 'A' + r0 + ',' + r0 + ',0,' + rightLargeArcFlag + ',1,' + x + ',' + y1 + 'A' + r1 + ',' + r1 + ',0,' + leftLargeArcFlag + ',1,' + x + ',' + y0; - var style = { - color: normalColor, - path: path - }; - var shape = { - zlevel: serie.zlevel, - z: serie.z, - style: style, - highlightStyle: { - color: emphasisColor, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor - } - }; - shape = new PathShape(shape); - if (shape.buildPathArray) { - shape.style.pathArray = shape.buildPathArray(style.path); - } - ecData.pack(shape, series[seriesIndex], 0, dataItem, dataIndex, dataItem.name); - this.shapeList.push(shape); - }, - getCircle: function (seriesIndex, dataIndex, dataItem, x, y, r) { - var serie = this.series[seriesIndex]; - var queryTarget = [ - dataItem, - serie - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = normal.color || this.zr.getColor(dataIndex); - var emphasisColor = emphasis.color || this.zr.getColor(dataIndex); - var circle = { - zlevel: serie.zlevel, - z: serie.z, - clickable: true, - style: { - x: x, - y: y, - r: r, - brushType: 'fill', - opacity: 1, - color: normalColor - }, - highlightStyle: { - color: emphasisColor, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor - } - }; - if (this.deepQuery([ - dataItem, - serie, - this.option - ], 'calculable')) { - this.setCalculable(circle); - circle.draggable = true; - } - return new CircleShape(circle); - }, - getLabel: function (seriesIndex, dataIndex, dataItem, x, y, r) { - var serie = this.series[seriesIndex]; - var itemStyle = serie.itemStyle; - var queryTarget = [ - dataItem, - serie - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var status = 'normal'; - var labelControl = itemStyle[status].label; - var textStyle = labelControl.textStyle || {}; - var text = this.getLabelText(dataIndex, dataItem, status); - var textFont = this.getFont(textStyle); - var textColor = normal.color || this.zr.getColor(dataIndex); - var textSize = textStyle.fontSize || 12; - var textShape = { - zlevel: serie.zlevel, - z: serie.z, - style: { - x: x, - y: y - r - textSize, - color: textStyle.color || textColor, - text: text, - textFont: textFont, - textAlign: 'center' - } - }; - return new TextShape(textShape); - }, - getLabelText: function (dataIndex, dataItem, status) { - var series = this.series; - var serie = series[0]; - var formatter = this.deepQuery([ - dataItem, - serie - ], 'itemStyle.' + status + '.label.formatter'); - if (formatter) { - if (typeof formatter == 'function') { - return formatter(serie.name, dataItem.name, dataItem.value); - } else if (typeof formatter == 'string') { - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}'); - formatter = formatter.replace('{a0}', serie.name).replace('{b0}', dataItem.name).replace('{c0}', dataItem.value); - return formatter; - } - } else { - return dataItem.name; - } - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this._buildShape(); - } - }; - zrUtil.inherits(Venn, ChartBase); - require('../chart').define('venn', Venn); - return Venn; -});define('zrender/shape/Path', [ - 'require', - './Base', - './util/PathProxy', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var PathProxy = require('./util/PathProxy'); - var PathSegment = PathProxy.PathSegment; - var vMag = function (v) { - return Math.sqrt(v[0] * v[0] + v[1] * v[1]); - }; - var vRatio = function (u, v) { - return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v)); - }; - var vAngle = function (u, v) { - return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v)); - }; - var Path = function (options) { - Base.call(this, options); - }; - Path.prototype = { - type: 'path', - buildPathArray: function (data, x, y) { - if (!data) { - return []; - } - x = x || 0; - y = y || 0; - var cs = data; - var cc = [ - 'm', - 'M', - 'l', - 'L', - 'v', - 'V', - 'h', - 'H', - 'z', - 'Z', - 'c', - 'C', - 'q', - 'Q', - 't', - 'T', - 's', - 'S', - 'a', - 'A' - ]; - cs = cs.replace(/-/g, ' -'); - cs = cs.replace(/ /g, ' '); - cs = cs.replace(/ /g, ','); - cs = cs.replace(/,,/g, ','); - var n; - for (n = 0; n < cc.length; n++) { - cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]); - } - var arr = cs.split('|'); - var ca = []; - var cpx = 0; - var cpy = 0; - for (n = 1; n < arr.length; n++) { - var str = arr[n]; - var c = str.charAt(0); - str = str.slice(1); - str = str.replace(new RegExp('e,-', 'g'), 'e-'); - var p = str.split(','); - if (p.length > 0 && p[0] === '') { - p.shift(); - } - for (var i = 0; i < p.length; i++) { - p[i] = parseFloat(p[i]); - } - while (p.length > 0) { - if (isNaN(p[0])) { - break; - } - var cmd = null; - var points = []; - var ctlPtx; - var ctlPty; - var prevCmd; - var rx; - var ry; - var psi; - var fa; - var fs; - var x1 = cpx; - var y1 = cpy; - switch (c) { - case 'l': - cpx += p.shift(); - cpy += p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'L': - cpx = p.shift(); - cpy = p.shift(); - points.push(cpx, cpy); - break; - case 'm': - cpx += p.shift(); - cpy += p.shift(); - cmd = 'M'; - points.push(cpx, cpy); - c = 'l'; - break; - case 'M': - cpx = p.shift(); - cpy = p.shift(); - cmd = 'M'; - points.push(cpx, cpy); - c = 'L'; - break; - case 'h': - cpx += p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'H': - cpx = p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'v': - cpy += p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'V': - cpy = p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'C': - points.push(p.shift(), p.shift(), p.shift(), p.shift()); - cpx = p.shift(); - cpy = p.shift(); - points.push(cpx, cpy); - break; - case 'c': - points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift()); - cpx += p.shift(); - cpy += p.shift(); - cmd = 'C'; - points.push(cpx, cpy); - break; - case 'S': - ctlPtx = cpx; - ctlPty = cpy; - prevCmd = ca[ca.length - 1]; - if (prevCmd.command === 'C') { - ctlPtx = cpx + (cpx - prevCmd.points[2]); - ctlPty = cpy + (cpy - prevCmd.points[3]); - } - points.push(ctlPtx, ctlPty, p.shift(), p.shift()); - cpx = p.shift(); - cpy = p.shift(); - cmd = 'C'; - points.push(cpx, cpy); - break; - case 's': - ctlPtx = cpx, ctlPty = cpy; - prevCmd = ca[ca.length - 1]; - if (prevCmd.command === 'C') { - ctlPtx = cpx + (cpx - prevCmd.points[2]); - ctlPty = cpy + (cpy - prevCmd.points[3]); - } - points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift()); - cpx += p.shift(); - cpy += p.shift(); - cmd = 'C'; - points.push(cpx, cpy); - break; - case 'Q': - points.push(p.shift(), p.shift()); - cpx = p.shift(); - cpy = p.shift(); - points.push(cpx, cpy); - break; - case 'q': - points.push(cpx + p.shift(), cpy + p.shift()); - cpx += p.shift(); - cpy += p.shift(); - cmd = 'Q'; - points.push(cpx, cpy); - break; - case 'T': - ctlPtx = cpx, ctlPty = cpy; - prevCmd = ca[ca.length - 1]; - if (prevCmd.command === 'Q') { - ctlPtx = cpx + (cpx - prevCmd.points[0]); - ctlPty = cpy + (cpy - prevCmd.points[1]); - } - cpx = p.shift(); - cpy = p.shift(); - cmd = 'Q'; - points.push(ctlPtx, ctlPty, cpx, cpy); - break; - case 't': - ctlPtx = cpx, ctlPty = cpy; - prevCmd = ca[ca.length - 1]; - if (prevCmd.command === 'Q') { - ctlPtx = cpx + (cpx - prevCmd.points[0]); - ctlPty = cpy + (cpy - prevCmd.points[1]); - } - cpx += p.shift(); - cpy += p.shift(); - cmd = 'Q'; - points.push(ctlPtx, ctlPty, cpx, cpy); - break; - case 'A': - rx = p.shift(); - ry = p.shift(); - psi = p.shift(); - fa = p.shift(); - fs = p.shift(); - x1 = cpx, y1 = cpy; - cpx = p.shift(), cpy = p.shift(); - cmd = 'A'; - points = this._convertPoint(x1, y1, cpx, cpy, fa, fs, rx, ry, psi); - break; - case 'a': - rx = p.shift(); - ry = p.shift(); - psi = p.shift(); - fa = p.shift(); - fs = p.shift(); - x1 = cpx, y1 = cpy; - cpx += p.shift(); - cpy += p.shift(); - cmd = 'A'; - points = this._convertPoint(x1, y1, cpx, cpy, fa, fs, rx, ry, psi); - break; - } - for (var j = 0, l = points.length; j < l; j += 2) { - points[j] += x; - points[j + 1] += y; - } - ca.push(new PathSegment(cmd || c, points)); - } - if (c === 'z' || c === 'Z') { - ca.push(new PathSegment('z', [])); - } - } - return ca; - }, - _convertPoint: function (x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) { - var psi = psiDeg * (Math.PI / 180); - var xp = Math.cos(psi) * (x1 - x2) / 2 + Math.sin(psi) * (y1 - y2) / 2; - var yp = -1 * Math.sin(psi) * (x1 - x2) / 2 + Math.cos(psi) * (y1 - y2) / 2; - var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry); - if (lambda > 1) { - rx *= Math.sqrt(lambda); - ry *= Math.sqrt(lambda); - } - var f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp))); - if (fa === fs) { - f *= -1; - } - if (isNaN(f)) { - f = 0; - } - var cxp = f * rx * yp / ry; - var cyp = f * -ry * xp / rx; - var cx = (x1 + x2) / 2 + Math.cos(psi) * cxp - Math.sin(psi) * cyp; - var cy = (y1 + y2) / 2 + Math.sin(psi) * cxp + Math.cos(psi) * cyp; - var theta = vAngle([ - 1, - 0 - ], [ - (xp - cxp) / rx, - (yp - cyp) / ry - ]); - var u = [ - (xp - cxp) / rx, - (yp - cyp) / ry - ]; - var v = [ - (-1 * xp - cxp) / rx, - (-1 * yp - cyp) / ry - ]; - var dTheta = vAngle(u, v); - if (vRatio(u, v) <= -1) { - dTheta = Math.PI; - } - if (vRatio(u, v) >= 1) { - dTheta = 0; - } - if (fs === 0 && dTheta > 0) { - dTheta = dTheta - 2 * Math.PI; - } - if (fs === 1 && dTheta < 0) { - dTheta = dTheta + 2 * Math.PI; - } - return [ - cx, - cy, - rx, - ry, - theta, - dTheta, - psi, - fs - ]; - }, - buildPath: function (ctx, style) { - var path = style.path; - var x = style.x || 0; - var y = style.y || 0; - style.pathArray = style.pathArray || this.buildPathArray(path, x, y); - var pathArray = style.pathArray; - var pointList = style.pointList = []; - var singlePointList = []; - for (var i = 0, l = pathArray.length; i < l; i++) { - if (pathArray[i].command.toUpperCase() == 'M') { - singlePointList.length > 0 && pointList.push(singlePointList); - singlePointList = []; - } - var p = pathArray[i].points; - for (var j = 0, k = p.length; j < k; j += 2) { - singlePointList.push([ - p[j], - p[j + 1] - ]); - } - } - singlePointList.length > 0 && pointList.push(singlePointList); - for (var i = 0, l = pathArray.length; i < l; i++) { - var c = pathArray[i].command; - var p = pathArray[i].points; - switch (c) { - case 'L': - ctx.lineTo(p[0], p[1]); - break; - case 'M': - ctx.moveTo(p[0], p[1]); - break; - case 'C': - ctx.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]); - break; - case 'Q': - ctx.quadraticCurveTo(p[0], p[1], p[2], p[3]); - break; - case 'A': - var cx = p[0]; - var cy = p[1]; - var rx = p[2]; - var ry = p[3]; - var theta = p[4]; - var dTheta = p[5]; - var psi = p[6]; - var fs = p[7]; - var r = rx > ry ? rx : ry; - var scaleX = rx > ry ? 1 : rx / ry; - var scaleY = rx > ry ? ry / rx : 1; - ctx.translate(cx, cy); - ctx.rotate(psi); - ctx.scale(scaleX, scaleY); - ctx.arc(0, 0, r, theta, theta + dTheta, 1 - fs); - ctx.scale(1 / scaleX, 1 / scaleY); - ctx.rotate(-psi); - ctx.translate(-cx, -cy); - break; - case 'z': - ctx.closePath(); - break; - } - } - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - var minX = Number.MAX_VALUE; - var maxX = Number.MIN_VALUE; - var minY = Number.MAX_VALUE; - var maxY = Number.MIN_VALUE; - var x = style.x || 0; - var y = style.y || 0; - var pathArray = style.pathArray || this.buildPathArray(style.path); - for (var i = 0; i < pathArray.length; i++) { - var p = pathArray[i].points; - for (var j = 0; j < p.length; j++) { - if (j % 2 === 0) { - if (p[j] + x < minX) { - minX = p[j]; - } - if (p[j] + x > maxX) { - maxX = p[j]; - } - } else { - if (p[j] + y < minY) { - minY = p[j]; - } - if (p[j] + y > maxY) { - maxY = p[j]; - } - } - } - } - var rect; - if (minX === Number.MAX_VALUE || maxX === Number.MIN_VALUE || minY === Number.MAX_VALUE || maxY === Number.MIN_VALUE) { - rect = { - x: 0, - y: 0, - width: 0, - height: 0 - }; - } else { - rect = { - x: Math.round(minX - lineWidth / 2), - y: Math.round(minY - lineWidth / 2), - width: maxX - minX + lineWidth, - height: maxY - minY + lineWidth - }; - } - style.__rect = rect; - return rect; - } - }; - require('../tool/util').inherits(Path, Base); - return Path; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/wordCloud.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/wordCloud.js deleted file mode 100644 index ce76655..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/chart/wordCloud.js +++ /dev/null @@ -1,2120 +0,0 @@ -define('echarts/chart/wordCloud', [ - 'require', - './base', - 'zrender/shape/Text', - '../layout/WordCloud', - '../component/grid', - '../component/dataRange', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var TextShape = require('zrender/shape/Text'); - var CloudLayout = require('../layout/WordCloud'); - require('../component/grid'); - require('../component/dataRange'); - var ecConfig = require('../config'); - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - ecConfig.wordCloud = { - zlevel: 0, - z: 2, - clickable: true, - center: [ - '50%', - '50%' - ], - size: [ - '40%', - '40%' - ], - textRotation: [ - 0, - 90 - ], - textPadding: 0, - autoSize: { - enable: true, - minSize: 12 - }, - itemStyle: { - normal: { - textStyle: { - fontSize: function (data) { - return data.value; - } - } - } - } - }; - function Cloud(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Cloud.prototype = { - type: ecConfig.CHART_TYPE_WORDCLOUD, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this._init(); - }, - _init: function () { - var series = this.series; - this.backupShapeList(); - var legend = this.component.legend; - for (var i = 0; i < series.length; i++) { - if (series[i].type === ecConfig.CHART_TYPE_WORDCLOUD) { - series[i] = this.reformOption(series[i]); - var serieName = series[i].name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (!this.selectedMap[serieName]) { - continue; - } - this.buildMark(i); - this._initSerie(series[i]); - } - } - }, - _initSerie: function (serie) { - var textStyle = serie.itemStyle.normal.textStyle; - var size = [ - this.parsePercent(serie.size[0], this.zr.getWidth()) || 200, - this.parsePercent(serie.size[1], this.zr.getHeight()) || 200 - ]; - var center = this.parseCenter(this.zr, serie.center); - var layoutConfig = { - size: size, - wordletype: { autoSizeCal: serie.autoSize }, - center: center, - rotate: serie.textRotation, - padding: serie.textPadding, - font: textStyle.fontFamily, - fontSize: textStyle.fontSize, - fontWeight: textStyle.fontWeight, - fontStyle: textStyle.fontStyle, - text: function (d) { - return d.name; - }, - data: serie.data - }; - var clouds = new CloudLayout(layoutConfig); - var self = this; - clouds.end(function (d) { - self._buildShapes(d); - }); - clouds.start(); - }, - _buildShapes: function (data) { - var len = data.length; - for (var i = 0; i < len; i++) { - this._buildTextShape(data[i], 0, i); - } - this.addShapeList(); - }, - _buildTextShape: function (oneText, seriesIndex, dataIndex) { - var series = this.series; - var serie = series[seriesIndex]; - var serieName = serie.name || ''; - var data = serie.data[dataIndex]; - var queryTarget = [ - data, - serie - ]; - var legend = this.component.legend; - var defaultColor = legend ? legend.getColor(serieName) : this.zr.getColor(seriesIndex); - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor; - var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor); - var textShape = new TextShape({ - zlevel: serie.zlevel, - z: serie.z, - hoverable: true, - clickable: this.deepQuery(queryTarget, 'clickable'), - style: { - x: 0, - y: 0, - text: oneText.text, - color: normalColor, - textFont: [ - oneText.style, - oneText.weight, - oneText.size + 'px', - oneText.font - ].join(' '), - textBaseline: 'alphabetic', - textAlign: 'center' - }, - highlightStyle: { - brushType: emphasis.borderWidth ? 'both' : 'fill', - color: emphasisColor, - lineWidth: emphasis.borderWidth || 0, - strokeColor: emphasis.borderColor - }, - position: [ - oneText.x, - oneText.y - ], - rotation: [ - -oneText.rotate / 180 * Math.PI, - 0, - 0 - ] - }); - ecData.pack(textShape, serie, seriesIndex, data, dataIndex, data.name); - this.shapeList.push(textShape); - } - }; - zrUtil.inherits(Cloud, ChartBase); - require('../chart').define('wordCloud', Cloud); - return Cloud; -});define('echarts/layout/WordCloud', [ - 'require', - '../layout/WordCloudRectZero', - 'zrender/tool/util' -], function (require) { - var ZeroArray = require('../layout/WordCloudRectZero'); - var zrUtil = require('zrender/tool/util'); - function CloudLayout(option) { - this._init(option); - } - CloudLayout.prototype = { - start: function () { - var board = null; - var maxWit = 0; - var maxHit = 0; - var maxArea = 0; - var i = -1; - var tags = []; - var maxBounds = null; - var data = this.wordsdata; - var dfop = this.defaultOption; - var wordletype = dfop.wordletype; - var size = dfop.size; - var that = this; - var zeroArrayObj = new ZeroArray({ - type: wordletype.type, - width: size[0], - height: size[1] - }); - zeroArrayObj.calculate(function (options) { - board = options.initarr; - maxWit = options.maxWit; - maxHit = options.maxHit; - maxArea = options.area; - maxBounds = options.imgboard; - startStep(); - }, this); - return this; - function startStep() { - that.totalArea = maxArea; - if (wordletype.autoSizeCal.enable) { - that._autoCalTextSize(data, maxArea, maxWit, maxHit, wordletype.autoSizeCal.minSize); - } - if (dfop.timer) { - clearInterval(dfop.timer); - } - dfop.timer = setInterval(step, 0); - step(); - } - function step() { - var start = +new Date(); - var n = data.length; - var d; - while (+new Date() - start < dfop.timeInterval && ++i < n && dfop.timer) { - d = data[i]; - d.x = size[0] >> 1; - d.y = size[1] >> 1; - that._cloudSprite(d, data, i); - if (d.hasText && that._place(board, d, maxBounds)) { - tags.push(d); - d.x -= size[0] >> 1; - d.y -= size[1] >> 1; - } - } - if (i >= n) { - that.stop(); - that._fixTagPosition(tags); - dfop.endcallback(tags); - } - } - }, - _fixTagPosition: function (tags) { - var center = this.defaultOption.center; - for (var i = 0, len = tags.length; i < len; i++) { - tags[i].x += center[0]; - tags[i].y += center[1]; - } - }, - stop: function () { - if (this.defaultOption.timer) { - clearInterval(this.defaultOption.timer); - this.defaultOption.timer = null; - } - return this; - }, - end: function (v) { - if (v) { - this.defaultOption.endcallback = v; - } - return this; - }, - _init: function (option) { - this.defaultOption = {}; - this._initProperty(option); - this._initMethod(option); - this._initCanvas(); - this._initData(option.data); - }, - _initData: function (datas) { - var that = this; - var thatop = that.defaultOption; - this.wordsdata = datas.map(function (d, i) { - d.text = thatop.text.call(that, d, i); - d.font = thatop.font.call(that, d, i); - d.style = thatop.fontStyle.call(that, d, i); - d.weight = thatop.fontWeight.call(that, d, i); - d.rotate = thatop.rotate.call(that, d, i); - d.size = ~~thatop.fontSize.call(that, d, i); - d.padding = thatop.padding.call(that, d, i); - return d; - }).sort(function (a, b) { - return b.value - a.value; - }); - }, - _initMethod: function (option) { - var dfop = this.defaultOption; - dfop.text = option.text ? functor(option.text) : cloudText; - dfop.font = option.font ? functor(option.font) : cloudFont; - dfop.fontSize = option.fontSize ? functor(option.fontSize) : cloudFontSize; - dfop.fontStyle = option.fontStyle ? functor(option.fontStyle) : cloudFontNormal; - dfop.fontWeight = option.fontWeight ? functor(option.fontWeight) : cloudFontNormal; - dfop.rotate = option.rotate ? newCloudRotate(option.rotate) : cloudRotate; - dfop.padding = option.padding ? functor(option.padding) : cloudPadding; - dfop.center = option.center; - dfop.spiral = archimedeanSpiral; - dfop.endcallback = function () { - }; - dfop.rectangularSpiral = rectangularSpiral; - dfop.archimedeanSpiral = archimedeanSpiral; - function cloudText(d) { - return d.name; - } - function cloudFont() { - return 'sans-serif'; - } - function cloudFontNormal() { - return 'normal'; - } - function cloudFontSize(d) { - return d.value; - } - function cloudRotate() { - return 0; - } - function newCloudRotate(rotate) { - return function () { - return rotate[Math.round(Math.random() * (rotate.length - 1))]; - }; - } - function cloudPadding() { - return 0; - } - function archimedeanSpiral(size) { - var e = size[0] / size[1]; - return function (t) { - return [ - e * (t *= 0.1) * Math.cos(t), - t * Math.sin(t) - ]; - }; - } - function rectangularSpiral(size) { - var dy = 4; - var dx = dy * size[0] / size[1]; - var x = 0; - var y = 0; - return function (t) { - var sign = t < 0 ? -1 : 1; - switch (Math.sqrt(1 + 4 * sign * t) - sign & 3) { - case 0: - x += dx; - break; - case 1: - y += dy; - break; - case 2: - x -= dx; - break; - default: - y -= dy; - break; - } - return [ - x, - y - ]; - }; - } - function functor(v) { - return typeof v === 'function' ? v : function () { - return v; - }; - } - }, - _initProperty: function (option) { - var dfop = this.defaultOption; - dfop.size = option.size || [ - 256, - 256 - ]; - dfop.wordletype = option.wordletype; - dfop.words = option.words || []; - dfop.timeInterval = Infinity; - dfop.timer = null; - dfop.spirals = { - archimedean: dfop.archimedeanSpiral, - rectangular: dfop.rectangularSpiral - }; - zrUtil.merge(dfop, { - size: [ - 256, - 256 - ], - wordletype: { - type: 'RECT', - areaPresent: 0.058, - autoSizeCal: { - enable: true, - minSize: 12 - } - } - }); - }, - _initCanvas: function () { - var cloudRadians = Math.PI / 180; - var cw = 1 << 11 >> 5; - var ch = 1 << 11; - var canvas; - var ratio = 1; - if (typeof document !== 'undefined') { - canvas = document.createElement('canvas'); - canvas.width = 1; - canvas.height = 1; - ratio = Math.sqrt(canvas.getContext('2d').getImageData(0, 0, 1, 1).data.length >> 2); - canvas.width = (cw << 5) / ratio; - canvas.height = ch / ratio; - } else { - canvas = new Canvas(cw << 5, ch); - } - var c = canvas.getContext('2d'); - c.fillStyle = c.strokeStyle = 'red'; - c.textAlign = 'center'; - this.defaultOption.c = c; - this.defaultOption.cw = cw; - this.defaultOption.ch = ch; - this.defaultOption.ratio = ratio; - this.defaultOption.cloudRadians = cloudRadians; - }, - _cloudSprite: function (d, data, di) { - if (d.sprite) { - return; - } - var cw = this.defaultOption.cw; - var ch = this.defaultOption.ch; - var c = this.defaultOption.c; - var ratio = this.defaultOption.ratio; - var cloudRadians = this.defaultOption.cloudRadians; - c.clearRect(0, 0, (cw << 5) / ratio, ch / ratio); - var x = 0; - var y = 0; - var maxh = 0; - var n = data.length; - --di; - while (++di < n) { - d = data[di]; - c.save(); - c.font = d.style + ' ' + d.weight + ' ' + ~~((d.size + 1) / ratio) + 'px ' + d.font; - var w = c.measureText(d.text + 'm').width * ratio; - var h = d.size << 1; - if (d.rotate) { - var sr = Math.sin(d.rotate * cloudRadians); - var cr = Math.cos(d.rotate * cloudRadians); - var wcr = w * cr; - var wsr = w * sr; - var hcr = h * cr; - var hsr = h * sr; - w = Math.max(Math.abs(wcr + hsr), Math.abs(wcr - hsr)) + 31 >> 5 << 5; - h = ~~Math.max(Math.abs(wsr + hcr), Math.abs(wsr - hcr)); - } else { - w = w + 31 >> 5 << 5; - } - if (h > maxh) { - maxh = h; - } - if (x + w >= cw << 5) { - x = 0; - y += maxh; - maxh = 0; - } - if (y + h >= ch) { - break; - } - c.translate((x + (w >> 1)) / ratio, (y + (h >> 1)) / ratio); - if (d.rotate) { - c.rotate(d.rotate * cloudRadians); - } - c.fillText(d.text, 0, 0); - if (d.padding) { - c.lineWidth = 2 * d.padding; - c.strokeText(d.text, 0, 0); - } - c.restore(); - d.width = w; - d.height = h; - d.xoff = x; - d.yoff = y; - d.x1 = w >> 1; - d.y1 = h >> 1; - d.x0 = -d.x1; - d.y0 = -d.y1; - d.hasText = true; - x += w; - } - var pixels = c.getImageData(0, 0, (cw << 5) / ratio, ch / ratio).data; - var sprite = []; - while (--di >= 0) { - d = data[di]; - if (!d.hasText) { - continue; - } - var w = d.width; - var w32 = w >> 5; - var h = d.y1 - d.y0; - for (var i = 0; i < h * w32; i++) { - sprite[i] = 0; - } - x = d.xoff; - if (x == null) { - return; - } - y = d.yoff; - var seen = 0; - var seenRow = -1; - for (var j = 0; j < h; j++) { - for (var i = 0; i < w; i++) { - var k = w32 * j + (i >> 5); - var m = pixels[(y + j) * (cw << 5) + (x + i) << 2] ? 1 << 31 - i % 32 : 0; - sprite[k] |= m; - seen |= m; - } - if (seen) { - seenRow = j; - } else { - d.y0++; - h--; - j--; - y++; - } - } - d.y1 = d.y0 + seenRow; - d.sprite = sprite.slice(0, (d.y1 - d.y0) * w32); - } - }, - _place: function (board, tag, maxBounds) { - var size = this.defaultOption.size; - var perimeter = [ - { - x: 0, - y: 0 - }, - { - x: size[0], - y: size[1] - } - ]; - var startX = tag.x; - var startY = tag.y; - var maxDelta = Math.sqrt(size[0] * size[0] + size[1] * size[1]); - var s = this.defaultOption.spiral(size); - var dt = Math.random() < 0.5 ? 1 : -1; - var t = -dt; - var dxdy; - var dx; - var dy; - while (dxdy = s(t += dt)) { - dx = ~~dxdy[0]; - dy = ~~dxdy[1]; - if (Math.min(dx, dy) > maxDelta) { - break; - } - tag.x = startX + dx; - tag.y = startY + dy; - if (tag.x + tag.x0 < 0 || tag.y + tag.y0 < 0 || tag.x + tag.x1 > size[0] || tag.y + tag.y1 > size[1]) { - continue; - } - if (!cloudCollide(tag, board, size[0])) { - if (collideRects(tag, maxBounds)) { - var sprite = tag.sprite; - var w = tag.width >> 5; - var sw = size[0] >> 5; - var lx = tag.x - (w << 4); - var sx = lx & 127; - var msx = 32 - sx; - var h = tag.y1 - tag.y0; - var x = (tag.y + tag.y0) * sw + (lx >> 5); - var last; - for (var j = 0; j < h; j++) { - last = 0; - for (var i = 0; i <= w; i++) { - board[x + i] |= last << msx | (i < w ? (last = sprite[j * w + i]) >>> sx : 0); - } - x += sw; - } - delete tag.sprite; - return true; - } - } - } - return false; - function cloudCollide(tag, board, sw) { - sw >>= 5; - var sprite = tag.sprite; - var w = tag.width >> 5; - var lx = tag.x - (w << 4); - var sx = lx & 127; - var msx = 32 - sx; - var h = tag.y1 - tag.y0; - var x = (tag.y + tag.y0) * sw + (lx >> 5); - var last; - for (var j = 0; j < h; j++) { - last = 0; - for (var i = 0; i <= w; i++) { - if ((last << msx | (i < w ? (last = sprite[j * w + i]) >>> sx : 0)) & board[x + i]) { - return true; - } - } - x += sw; - } - return false; - } - function collideRects(a, maxBounds) { - return maxBounds.row[a.y] && maxBounds.cloumn[a.x] && a.x >= maxBounds.row[a.y].start && a.x <= maxBounds.row[a.y].end && a.y >= maxBounds.cloumn[a.x].start && a.y <= maxBounds.cloumn[a.x].end; - } - }, - _autoCalTextSize: function (data, shapeArea, maxwidth, maxheight, minSize) { - var sizesum = sum(data, function (k) { - return k.size; - }); - var i = data.length; - var maxareapre = 0.25; - var minTextSize = minSize; - var cw = this.defaultOption.cw; - var ch = this.defaultOption.ch; - var c = this.defaultOption.c; - var ratio = this.defaultOption.ratio; - var cloudRadians = this.defaultOption.cloudRadians; - var d; - var dpre; - while (i--) { - d = data[i]; - dpre = d.size / sizesum; - if (maxareapre) { - d.areapre = dpre < maxareapre ? dpre : maxareapre; - } else { - d.areapre = dpre; - } - d.area = shapeArea * d.areapre; - d.totalarea = shapeArea; - measureTextWitHitByarea(d); - } - function measureTextWitHitByarea(d) { - c.clearRect(0, 0, (cw << 5) / ratio, ch / ratio); - c.save(); - c.font = d.style + ' ' + d.weight + ' ' + ~~((d.size + 1) / ratio) + 'px ' + d.font; - var w = c.measureText(d.text + 'm').width * ratio, h = d.size << 1; - w = w + 31 >> 5 << 5; - c.restore(); - d.aw = w; - d.ah = h; - var k, rw, rh; - if (d.rotate) { - var sr = Math.sin(d.rotate * cloudRadians); - var cr = Math.cos(d.rotate * cloudRadians); - var wcr = w * cr; - var wsr = w * sr; - var hcr = h * cr; - var hsr = h * sr; - rw = Math.max(Math.abs(wcr + hsr), Math.abs(wcr - hsr)) + 31 >> 5 << 5; - rh = ~~Math.max(Math.abs(wsr + hcr), Math.abs(wsr - hcr)); - } - if (d.size <= minTextSize || d.rotate && w * h <= d.area && rw <= maxwidth && rh <= maxheight || w * h <= d.area && w <= maxwidth && h <= maxheight) { - d.area = w * h; - return; - } - if (d.rotate && rw > maxwidth && rh > maxheight) { - k = Math.min(maxwidth / rw, maxheight / rh); - } else if (w > maxwidth || h > maxheight) { - k = Math.min(maxwidth / w, maxheight / h); - } else { - k = Math.sqrt(d.area / (d.aw * d.ah)); - } - d.size = ~~(k * d.size); - if (d.size < minSize) { - d.size = minSize; - return; - } - return measureTextWitHitByarea(d); - } - function sum(dts, callback) { - var j = dts.length; - var ressum = 0; - while (j--) { - ressum += callback(dts[j]); - } - return ressum; - } - } - }; - return CloudLayout; -});define('echarts/component/dataRange', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Rectangle', - '../util/shape/HandlePolygon', - '../config', - 'zrender/tool/util', - 'zrender/tool/event', - 'zrender/tool/area', - 'zrender/tool/color', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var RectangleShape = require('zrender/shape/Rectangle'); - var HandlePolygonShape = require('../util/shape/HandlePolygon'); - var ecConfig = require('../config'); - ecConfig.dataRange = { - zlevel: 0, - z: 4, - show: true, - orient: 'vertical', - x: 'left', - y: 'bottom', - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - itemGap: 10, - itemWidth: 20, - itemHeight: 14, - precision: 0, - splitNumber: 5, - splitList: null, - calculable: false, - selectedMode: true, - hoverLink: true, - realtime: true, - color: [ - '#006edd', - '#e0ffff' - ], - textStyle: { color: '#333' } - }; - var zrUtil = require('zrender/tool/util'); - var zrEvent = require('zrender/tool/event'); - var zrArea = require('zrender/tool/area'); - var zrColor = require('zrender/tool/color'); - function DataRange(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._ondrift = function (dx, dy) { - return self.__ondrift(this, dx, dy); - }; - self._ondragend = function () { - return self.__ondragend(); - }; - self._dataRangeSelected = function (param) { - return self.__dataRangeSelected(param); - }; - self._dispatchHoverLink = function (param) { - return self.__dispatchHoverLink(param); - }; - self._onhoverlink = function (params) { - return self.__onhoverlink(params); - }; - this._selectedMap = {}; - this._range = {}; - this.refresh(option); - messageCenter.bind(ecConfig.EVENT.HOVER, this._onhoverlink); - } - DataRange.prototype = { - type: ecConfig.COMPONENT_TYPE_DATARANGE, - _textGap: 10, - _buildShape: function () { - this._itemGroupLocation = this._getItemGroupLocation(); - this._buildBackground(); - if (this._isContinuity()) { - this._buildGradient(); - } else { - this._buildItem(); - } - if (this.dataRangeOption.show) { - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - } - this._syncShapeFromRange(); - }, - _buildItem: function () { - var data = this._valueTextList; - var dataLength = data.length; - var itemName; - var itemShape; - var textShape; - var font = this.getFont(this.dataRangeOption.textStyle); - var lastX = this._itemGroupLocation.x; - var lastY = this._itemGroupLocation.y; - var itemWidth = this.dataRangeOption.itemWidth; - var itemHeight = this.dataRangeOption.itemHeight; - var itemGap = this.dataRangeOption.itemGap; - var textHeight = zrArea.getTextHeight('国', font); - var color; - if (this.dataRangeOption.orient == 'vertical' && this.dataRangeOption.x == 'right') { - lastX = this._itemGroupLocation.x + this._itemGroupLocation.width - itemWidth; - } - var needValueText = true; - if (this.dataRangeOption.text) { - needValueText = false; - if (this.dataRangeOption.text[0]) { - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[0]); - if (this.dataRangeOption.orient == 'horizontal') { - lastX += zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap; - } else { - lastY += textHeight + this._textGap; - textShape.style.y += textHeight / 2 + this._textGap; - textShape.style.textBaseline = 'bottom'; - } - this.shapeList.push(new TextShape(textShape)); - } - } - for (var i = 0; i < dataLength; i++) { - itemName = data[i]; - color = this.getColorByIndex(i); - itemShape = this._getItemShape(lastX, lastY, itemWidth, itemHeight, this._selectedMap[i] ? color : '#ccc'); - itemShape._idx = i; - itemShape.onmousemove = this._dispatchHoverLink; - if (this.dataRangeOption.selectedMode) { - itemShape.clickable = true; - itemShape.onclick = this._dataRangeSelected; - } - this.shapeList.push(new RectangleShape(itemShape)); - if (needValueText) { - textShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX + itemWidth + 5, - y: lastY, - color: this._selectedMap[i] ? this.dataRangeOption.textStyle.color : '#ccc', - text: data[i], - textFont: font, - textBaseline: 'top' - }, - highlightStyle: { brushType: 'fill' } - }; - if (this.dataRangeOption.orient == 'vertical' && this.dataRangeOption.x == 'right') { - textShape.style.x -= itemWidth + 10; - textShape.style.textAlign = 'right'; - } - textShape._idx = i; - textShape.onmousemove = this._dispatchHoverLink; - if (this.dataRangeOption.selectedMode) { - textShape.clickable = true; - textShape.onclick = this._dataRangeSelected; - } - this.shapeList.push(new TextShape(textShape)); - } - if (this.dataRangeOption.orient == 'horizontal') { - lastX += itemWidth + (needValueText ? 5 : 0) + (needValueText ? zrArea.getTextWidth(itemName, font) : 0) + itemGap; - } else { - lastY += itemHeight + itemGap; - } - } - if (!needValueText && this.dataRangeOption.text[1]) { - if (this.dataRangeOption.orient == 'horizontal') { - lastX = lastX - itemGap + this._textGap; - } else { - lastY = lastY - itemGap + this._textGap; - } - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[1]); - if (this.dataRangeOption.orient != 'horizontal') { - textShape.style.y -= 5; - textShape.style.textBaseline = 'top'; - } - this.shapeList.push(new TextShape(textShape)); - } - }, - _buildGradient: function () { - var itemShape; - var textShape; - var font = this.getFont(this.dataRangeOption.textStyle); - var lastX = this._itemGroupLocation.x; - var lastY = this._itemGroupLocation.y; - var itemWidth = this.dataRangeOption.itemWidth; - var itemHeight = this.dataRangeOption.itemHeight; - var textHeight = zrArea.getTextHeight('国', font); - var mSize = 10; - var needValueText = true; - if (this.dataRangeOption.text) { - needValueText = false; - if (this.dataRangeOption.text[0]) { - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[0]); - if (this.dataRangeOption.orient == 'horizontal') { - lastX += zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap; - } else { - lastY += textHeight + this._textGap; - textShape.style.y += textHeight / 2 + this._textGap; - textShape.style.textBaseline = 'bottom'; - } - this.shapeList.push(new TextShape(textShape)); - } - } - var zrColor = require('zrender/tool/color'); - var per = 1 / (this.dataRangeOption.color.length - 1); - var colorList = []; - for (var i = 0, l = this.dataRangeOption.color.length; i < l; i++) { - colorList.push([ - i * per, - this.dataRangeOption.color[i] - ]); - } - if (this.dataRangeOption.orient == 'horizontal') { - itemShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX, - y: lastY, - width: itemWidth * mSize, - height: itemHeight, - color: zrColor.getLinearGradient(lastX, lastY, lastX + itemWidth * mSize, lastY, colorList) - }, - hoverable: false - }; - lastX += itemWidth * mSize + this._textGap; - } else { - itemShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX, - y: lastY, - width: itemWidth, - height: itemHeight * mSize, - color: zrColor.getLinearGradient(lastX, lastY, lastX, lastY + itemHeight * mSize, colorList) - }, - hoverable: false - }; - lastY += itemHeight * mSize + this._textGap; - } - this.shapeList.push(new RectangleShape(itemShape)); - this._calculableLocation = itemShape.style; - if (this.dataRangeOption.calculable) { - this._buildFiller(); - this._bulidMask(); - this._bulidHandle(); - } - this._buildIndicator(); - if (!needValueText && this.dataRangeOption.text[1]) { - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[1]); - this.shapeList.push(new TextShape(textShape)); - } - }, - _buildIndicator: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - var size = 5; - var pointList; - var textPosition; - if (this.dataRangeOption.orient == 'horizontal') { - if (this.dataRangeOption.y != 'bottom') { - pointList = [ - [ - x, - y + height - ], - [ - x - size, - y + height + size - ], - [ - x + size, - y + height + size - ] - ]; - textPosition = 'bottom'; - } else { - pointList = [ - [ - x, - y - ], - [ - x - size, - y - size - ], - [ - x + size, - y - size - ] - ]; - textPosition = 'top'; - } - } else { - if (this.dataRangeOption.x != 'right') { - pointList = [ - [ - x + width, - y - ], - [ - x + width + size, - y - size - ], - [ - x + width + size, - y + size - ] - ]; - textPosition = 'right'; - } else { - pointList = [ - [ - x, - y - ], - [ - x - size, - y - size - ], - [ - x - size, - y + size - ] - ]; - textPosition = 'left'; - } - } - this._indicatorShape = { - style: { - pointList: pointList, - color: '#fff', - __rect: { - x: Math.min(pointList[0][0], pointList[1][0]), - y: Math.min(pointList[0][1], pointList[1][1]), - width: size * (this.dataRangeOption.orient == 'horizontal' ? 2 : 1), - height: size * (this.dataRangeOption.orient == 'horizontal' ? 1 : 2) - } - }, - highlightStyle: { - brushType: 'fill', - textPosition: textPosition, - textColor: this.dataRangeOption.textStyle.color - }, - hoverable: false - }; - this._indicatorShape = new HandlePolygonShape(this._indicatorShape); - }, - _buildFiller: function () { - this._fillerShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - x: this._calculableLocation.x, - y: this._calculableLocation.y, - width: this._calculableLocation.width, - height: this._calculableLocation.height, - color: 'rgba(255,255,255,0)' - }, - highlightStyle: { - strokeColor: 'rgba(255,255,255,0.5)', - lineWidth: 1 - }, - draggable: true, - ondrift: this._ondrift, - ondragend: this._ondragend, - onmousemove: this._dispatchHoverLink, - _type: 'filler' - }; - this._fillerShape = new RectangleShape(this._fillerShape); - this.shapeList.push(this._fillerShape); - }, - _bulidHandle: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - var font = this.getFont(this.dataRangeOption.textStyle); - var textHeight = zrArea.getTextHeight('国', font); - var textWidth = Math.max(zrArea.getTextWidth(this._textFormat(this.dataRangeOption.max), font), zrArea.getTextWidth(this._textFormat(this.dataRangeOption.min), font)) + 2; - var pointListStart; - var textXStart; - var textYStart; - var coverRectStart; - var pointListEnd; - var textXEnd; - var textYEnd; - var coverRectEnd; - if (this.dataRangeOption.orient == 'horizontal') { - if (this.dataRangeOption.y != 'bottom') { - pointListStart = [ - [ - x, - y - ], - [ - x, - y + height + textHeight - ], - [ - x - textHeight, - y + height + textHeight - ], - [ - x - 1, - y + height - ], - [ - x - 1, - y - ] - ]; - textXStart = x - textWidth / 2 - textHeight; - textYStart = y + height + textHeight / 2 + 2; - coverRectStart = { - x: x - textWidth - textHeight, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x + width, - y - ], - [ - x + width, - y + height + textHeight - ], - [ - x + width + textHeight, - y + height + textHeight - ], - [ - x + width + 1, - y + height - ], - [ - x + width + 1, - y - ] - ]; - textXEnd = x + width + textWidth / 2 + textHeight; - textYEnd = textYStart; - coverRectEnd = { - x: x + width, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - } else { - pointListStart = [ - [ - x, - y + height - ], - [ - x, - y - textHeight - ], - [ - x - textHeight, - y - textHeight - ], - [ - x - 1, - y - ], - [ - x - 1, - y + height - ] - ]; - textXStart = x - textWidth / 2 - textHeight; - textYStart = y - textHeight / 2 - 2; - coverRectStart = { - x: x - textWidth - textHeight, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x + width, - y + height - ], - [ - x + width, - y - textHeight - ], - [ - x + width + textHeight, - y - textHeight - ], - [ - x + width + 1, - y - ], - [ - x + width + 1, - y + height - ] - ]; - textXEnd = x + width + textWidth / 2 + textHeight; - textYEnd = textYStart; - coverRectEnd = { - x: x + width, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - } - } else { - textWidth += textHeight; - if (this.dataRangeOption.x != 'right') { - pointListStart = [ - [ - x, - y - ], - [ - x + width + textHeight, - y - ], - [ - x + width + textHeight, - y - textHeight - ], - [ - x + width, - y - 1 - ], - [ - x, - y - 1 - ] - ]; - textXStart = x + width + textWidth / 2 + textHeight / 2; - textYStart = y - textHeight / 2; - coverRectStart = { - x: x + width, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x, - y + height - ], - [ - x + width + textHeight, - y + height - ], - [ - x + width + textHeight, - y + textHeight + height - ], - [ - x + width, - y + 1 + height - ], - [ - x, - y + height + 1 - ] - ]; - textXEnd = textXStart; - textYEnd = y + height + textHeight / 2; - coverRectEnd = { - x: x + width, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - } else { - pointListStart = [ - [ - x + width, - y - ], - [ - x - textHeight, - y - ], - [ - x - textHeight, - y - textHeight - ], - [ - x, - y - 1 - ], - [ - x + width, - y - 1 - ] - ]; - textXStart = x - textWidth / 2 - textHeight / 2; - textYStart = y - textHeight / 2; - coverRectStart = { - x: x - textWidth - textHeight, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x + width, - y + height - ], - [ - x - textHeight, - y + height - ], - [ - x - textHeight, - y + textHeight + height - ], - [ - x, - y + 1 + height - ], - [ - x + width, - y + height + 1 - ] - ]; - textXEnd = textXStart; - textYEnd = y + height + textHeight / 2; - coverRectEnd = { - x: x - textWidth - textHeight, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - } - } - this._startShape = { - style: { - pointList: pointListStart, - text: this._textFormat(this.dataRangeOption.max), - textX: textXStart, - textY: textYStart, - textFont: font, - color: this.getColor(this.dataRangeOption.max), - rect: coverRectStart, - x: pointListStart[0][0], - y: pointListStart[0][1], - _x: pointListStart[0][0], - _y: pointListStart[0][1] - } - }; - this._startShape.highlightStyle = { - strokeColor: this._startShape.style.color, - lineWidth: 1 - }; - this._endShape = { - style: { - pointList: pointListEnd, - text: this._textFormat(this.dataRangeOption.min), - textX: textXEnd, - textY: textYEnd, - textFont: font, - color: this.getColor(this.dataRangeOption.min), - rect: coverRectEnd, - x: pointListEnd[0][0], - y: pointListEnd[0][1], - _x: pointListEnd[0][0], - _y: pointListEnd[0][1] - } - }; - this._endShape.highlightStyle = { - strokeColor: this._endShape.style.color, - lineWidth: 1 - }; - this._startShape.zlevel = this._endShape.zlevel = this.getZlevelBase(); - this._startShape.z = this._endShape.z = this.getZBase() + 1; - this._startShape.draggable = this._endShape.draggable = true; - this._startShape.ondrift = this._endShape.ondrift = this._ondrift; - this._startShape.ondragend = this._endShape.ondragend = this._ondragend; - this._startShape.style.textColor = this._endShape.style.textColor = this.dataRangeOption.textStyle.color; - this._startShape.style.textAlign = this._endShape.style.textAlign = 'center'; - this._startShape.style.textPosition = this._endShape.style.textPosition = 'specific'; - this._startShape.style.textBaseline = this._endShape.style.textBaseline = 'middle'; - this._startShape.style.width = this._endShape.style.width = 0; - this._startShape.style.height = this._endShape.style.height = 0; - this._startShape.style.textPosition = this._endShape.style.textPosition = 'specific'; - this._startShape = new HandlePolygonShape(this._startShape); - this._endShape = new HandlePolygonShape(this._endShape); - this.shapeList.push(this._startShape); - this.shapeList.push(this._endShape); - }, - _bulidMask: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - this._startMask = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - x: x, - y: y, - width: this.dataRangeOption.orient == 'horizontal' ? 0 : width, - height: this.dataRangeOption.orient == 'horizontal' ? height : 0, - color: '#ccc' - }, - hoverable: false - }; - this._endMask = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - x: this.dataRangeOption.orient == 'horizontal' ? x + width : x, - y: this.dataRangeOption.orient == 'horizontal' ? y : y + height, - width: this.dataRangeOption.orient == 'horizontal' ? 0 : width, - height: this.dataRangeOption.orient == 'horizontal' ? height : 0, - color: '#ccc' - }, - hoverable: false - }; - this._startMask = new RectangleShape(this._startMask); - this._endMask = new RectangleShape(this._endMask); - this.shapeList.push(this._startMask); - this.shapeList.push(this._endMask); - }, - _buildBackground: function () { - var padding = this.reformCssArray(this.dataRangeOption.padding); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._itemGroupLocation.x - padding[3], - y: this._itemGroupLocation.y - padding[0], - width: this._itemGroupLocation.width + padding[3] + padding[1], - height: this._itemGroupLocation.height + padding[0] + padding[2], - brushType: this.dataRangeOption.borderWidth === 0 ? 'fill' : 'both', - color: this.dataRangeOption.backgroundColor, - strokeColor: this.dataRangeOption.borderColor, - lineWidth: this.dataRangeOption.borderWidth - } - })); - }, - _getItemGroupLocation: function () { - var data = this._valueTextList; - var dataLength = data.length; - var itemGap = this.dataRangeOption.itemGap; - var itemWidth = this.dataRangeOption.itemWidth; - var itemHeight = this.dataRangeOption.itemHeight; - var totalWidth = 0; - var totalHeight = 0; - var font = this.getFont(this.dataRangeOption.textStyle); - var textHeight = zrArea.getTextHeight('国', font); - var mSize = 10; - if (this.dataRangeOption.orient == 'horizontal') { - if (this.dataRangeOption.text || this._isContinuity()) { - totalWidth = (this._isContinuity() ? itemWidth * mSize + itemGap : dataLength * (itemWidth + itemGap)) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[0] != 'undefined' ? zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap : 0) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[1] != 'undefined' ? zrArea.getTextWidth(this.dataRangeOption.text[1], font) + this._textGap : 0); - } else { - itemWidth += 5; - for (var i = 0; i < dataLength; i++) { - totalWidth += itemWidth + zrArea.getTextWidth(data[i], font) + itemGap; - } - } - totalWidth -= itemGap; - totalHeight = Math.max(textHeight, itemHeight); - } else { - var maxWidth; - if (this.dataRangeOption.text || this._isContinuity()) { - totalHeight = (this._isContinuity() ? itemHeight * mSize + itemGap : dataLength * (itemHeight + itemGap)) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[0] != 'undefined' ? this._textGap + textHeight : 0) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[1] != 'undefined' ? this._textGap + textHeight : 0); - maxWidth = Math.max(zrArea.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[0] || '', font), zrArea.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[1] || '', font)); - totalWidth = Math.max(itemWidth, maxWidth); - } else { - totalHeight = (itemHeight + itemGap) * dataLength; - itemWidth += 5; - maxWidth = 0; - for (var i = 0; i < dataLength; i++) { - maxWidth = Math.max(maxWidth, zrArea.getTextWidth(data[i], font)); - } - totalWidth = itemWidth + maxWidth; - } - totalHeight -= itemGap; - } - var padding = this.reformCssArray(this.dataRangeOption.padding); - var x; - var zrWidth = this.zr.getWidth(); - switch (this.dataRangeOption.x) { - case 'center': - x = Math.floor((zrWidth - totalWidth) / 2); - break; - case 'left': - x = padding[3] + this.dataRangeOption.borderWidth; - break; - case 'right': - x = zrWidth - totalWidth - padding[1] - this.dataRangeOption.borderWidth; - break; - default: - x = this.parsePercent(this.dataRangeOption.x, zrWidth); - x = isNaN(x) ? 0 : x; - break; - } - var y; - var zrHeight = this.zr.getHeight(); - switch (this.dataRangeOption.y) { - case 'top': - y = padding[0] + this.dataRangeOption.borderWidth; - break; - case 'bottom': - y = zrHeight - totalHeight - padding[2] - this.dataRangeOption.borderWidth; - break; - case 'center': - y = Math.floor((zrHeight - totalHeight) / 2); - break; - default: - y = this.parsePercent(this.dataRangeOption.y, zrHeight); - y = isNaN(y) ? 0 : y; - break; - } - if (this.dataRangeOption.calculable) { - var handlerWidth = Math.max(zrArea.getTextWidth(this.dataRangeOption.max, font), zrArea.getTextWidth(this.dataRangeOption.min, font)) + textHeight; - if (this.dataRangeOption.orient == 'horizontal') { - if (x < handlerWidth) { - x = handlerWidth; - } - if (x + totalWidth + handlerWidth > zrWidth) { - x -= handlerWidth; - } - } else { - if (y < textHeight) { - y = textHeight; - } - if (y + totalHeight + textHeight > zrHeight) { - y -= textHeight; - } - } - } - return { - x: x, - y: y, - width: totalWidth, - height: totalHeight - }; - }, - _getTextShape: function (x, y, text) { - return { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: this.dataRangeOption.orient == 'horizontal' ? x : this._itemGroupLocation.x + this._itemGroupLocation.width / 2, - y: this.dataRangeOption.orient == 'horizontal' ? this._itemGroupLocation.y + this._itemGroupLocation.height / 2 : y, - color: this.dataRangeOption.textStyle.color, - text: text, - textFont: this.getFont(this.dataRangeOption.textStyle), - textBaseline: this.dataRangeOption.orient == 'horizontal' ? 'middle' : 'top', - textAlign: this.dataRangeOption.orient == 'horizontal' ? 'left' : 'center' - }, - hoverable: false - }; - }, - _getItemShape: function (x, y, width, height, color) { - return { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: x, - y: y + 1, - width: width, - height: height - 2, - color: color - }, - highlightStyle: { - strokeColor: color, - lineWidth: 1 - } - }; - }, - __ondrift: function (shape, dx, dy) { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - if (this.dataRangeOption.orient == 'horizontal') { - if (shape.style.x + dx <= x) { - shape.style.x = x; - } else if (shape.style.x + dx + shape.style.width >= x + width) { - shape.style.x = x + width - shape.style.width; - } else { - shape.style.x += dx; - } - } else { - if (shape.style.y + dy <= y) { - shape.style.y = y; - } else if (shape.style.y + dy + shape.style.height >= y + height) { - shape.style.y = y + height - shape.style.height; - } else { - shape.style.y += dy; - } - } - if (shape._type == 'filler') { - this._syncHandleShape(); - } else { - this._syncFillerShape(shape); - } - if (this.dataRangeOption.realtime) { - this._dispatchDataRange(); - } - return true; - }, - __ondragend: function () { - this.isDragend = true; - }, - ondragend: function (param, status) { - if (!this.isDragend || !param.target) { - return; - } - status.dragOut = true; - status.dragIn = true; - if (!this.dataRangeOption.realtime) { - this._dispatchDataRange(); - } - status.needRefresh = false; - this.isDragend = false; - return; - }, - _syncShapeFromRange: function () { - var range = this.dataRangeOption.range || {}; - var optRangeStart = range.start; - var optRangeEnd = range.end; - if (optRangeEnd < optRangeStart) { - optRangeStart = [ - optRangeEnd, - optRangeEnd = optRangeStart - ][0]; - } - this._range.end = optRangeStart != null ? optRangeStart : this._range.end != null ? this._range.end : 0; - this._range.start = optRangeEnd != null ? optRangeEnd : this._range.start != null ? this._range.start : 100; - if (this._range.start != 100 || this._range.end !== 0) { - if (this.dataRangeOption.orient == 'horizontal') { - var width = this._fillerShape.style.width; - this._fillerShape.style.x += width * (100 - this._range.start) / 100; - this._fillerShape.style.width = width * (this._range.start - this._range.end) / 100; - } else { - var height = this._fillerShape.style.height; - this._fillerShape.style.y += height * (100 - this._range.start) / 100; - this._fillerShape.style.height = height * (this._range.start - this._range.end) / 100; - } - this.zr.modShape(this._fillerShape.id); - this._syncHandleShape(); - } - }, - _syncHandleShape: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - if (this.dataRangeOption.orient == 'horizontal') { - this._startShape.style.x = this._fillerShape.style.x; - this._startMask.style.width = this._startShape.style.x - x; - this._endShape.style.x = this._fillerShape.style.x + this._fillerShape.style.width; - this._endMask.style.x = this._endShape.style.x; - this._endMask.style.width = x + width - this._endShape.style.x; - this._range.start = Math.ceil(100 - (this._startShape.style.x - x) / width * 100); - this._range.end = Math.floor(100 - (this._endShape.style.x - x) / width * 100); - } else { - this._startShape.style.y = this._fillerShape.style.y; - this._startMask.style.height = this._startShape.style.y - y; - this._endShape.style.y = this._fillerShape.style.y + this._fillerShape.style.height; - this._endMask.style.y = this._endShape.style.y; - this._endMask.style.height = y + height - this._endShape.style.y; - this._range.start = Math.ceil(100 - (this._startShape.style.y - y) / height * 100); - this._range.end = Math.floor(100 - (this._endShape.style.y - y) / height * 100); - } - this._syncShape(); - }, - _syncFillerShape: function (e) { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - var a; - var b; - if (this.dataRangeOption.orient == 'horizontal') { - a = this._startShape.style.x; - b = this._endShape.style.x; - if (e.id == this._startShape.id && a >= b) { - b = a; - this._endShape.style.x = a; - } else if (e.id == this._endShape.id && a >= b) { - a = b; - this._startShape.style.x = a; - } - this._fillerShape.style.x = a; - this._fillerShape.style.width = b - a; - this._startMask.style.width = a - x; - this._endMask.style.x = b; - this._endMask.style.width = x + width - b; - this._range.start = Math.ceil(100 - (a - x) / width * 100); - this._range.end = Math.floor(100 - (b - x) / width * 100); - } else { - a = this._startShape.style.y; - b = this._endShape.style.y; - if (e.id == this._startShape.id && a >= b) { - b = a; - this._endShape.style.y = a; - } else if (e.id == this._endShape.id && a >= b) { - a = b; - this._startShape.style.y = a; - } - this._fillerShape.style.y = a; - this._fillerShape.style.height = b - a; - this._startMask.style.height = a - y; - this._endMask.style.y = b; - this._endMask.style.height = y + height - b; - this._range.start = Math.ceil(100 - (a - y) / height * 100); - this._range.end = Math.floor(100 - (b - y) / height * 100); - } - this._syncShape(); - }, - _syncShape: function () { - this._startShape.position = [ - this._startShape.style.x - this._startShape.style._x, - this._startShape.style.y - this._startShape.style._y - ]; - this._startShape.style.text = this._textFormat(this._gap * this._range.start + this.dataRangeOption.min); - this._startShape.style.color = this._startShape.highlightStyle.strokeColor = this.getColor(this._gap * this._range.start + this.dataRangeOption.min); - this._endShape.position = [ - this._endShape.style.x - this._endShape.style._x, - this._endShape.style.y - this._endShape.style._y - ]; - this._endShape.style.text = this._textFormat(this._gap * this._range.end + this.dataRangeOption.min); - this._endShape.style.color = this._endShape.highlightStyle.strokeColor = this.getColor(this._gap * this._range.end + this.dataRangeOption.min); - this.zr.modShape(this._startShape.id); - this.zr.modShape(this._endShape.id); - this.zr.modShape(this._startMask.id); - this.zr.modShape(this._endMask.id); - this.zr.modShape(this._fillerShape.id); - this.zr.refreshNextFrame(); - }, - _dispatchDataRange: function () { - this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE, null, { - range: { - start: this._range.end, - end: this._range.start - } - }, this.myChart); - }, - __dataRangeSelected: function (param) { - if (this.dataRangeOption.selectedMode === 'single') { - for (var k in this._selectedMap) { - this._selectedMap[k] = false; - } - } - var idx = param.target._idx; - this._selectedMap[idx] = !this._selectedMap[idx]; - var valueMax; - var valueMin; - if (this._useCustomizedSplit()) { - valueMax = this._splitList[idx].max; - valueMin = this._splitList[idx].min; - } else { - valueMax = (this._colorList.length - idx) * this._gap + this.dataRangeOption.min; - valueMin = valueMax - this._gap; - } - this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE_SELECTED, param.event, { - selected: this._selectedMap, - target: idx, - valueMax: valueMax, - valueMin: valueMin - }, this.myChart); - this.messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this.myChart); - }, - __dispatchHoverLink: function (param) { - var valueMin; - var valueMax; - if (this.dataRangeOption.calculable) { - var totalValue = this.dataRangeOption.max - this.dataRangeOption.min; - var curValue; - if (this.dataRangeOption.orient == 'horizontal') { - curValue = (1 - (zrEvent.getX(param.event) - this._calculableLocation.x) / this._calculableLocation.width) * totalValue; - } else { - curValue = (1 - (zrEvent.getY(param.event) - this._calculableLocation.y) / this._calculableLocation.height) * totalValue; - } - valueMin = curValue - totalValue * 0.05; - valueMax = curValue + totalValue * 0.05; - } else if (this._useCustomizedSplit()) { - var idx = param.target._idx; - valueMax = this._splitList[idx].max; - valueMin = this._splitList[idx].min; - } else { - var idx = param.target._idx; - valueMax = (this._colorList.length - idx) * this._gap + this.dataRangeOption.min; - valueMin = valueMax - this._gap; - } - this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE_HOVERLINK, param.event, { - valueMin: valueMin, - valueMax: valueMax - }, this.myChart); - }, - __onhoverlink: function (param) { - if (this.dataRangeOption.show && this.dataRangeOption.hoverLink && this._indicatorShape && param && param.seriesIndex != null && param.dataIndex != null) { - var curValue = param.value; - if (curValue === '' || isNaN(curValue)) { - return; - } - if (curValue < this.dataRangeOption.min) { - curValue = this.dataRangeOption.min; - } else if (curValue > this.dataRangeOption.max) { - curValue = this.dataRangeOption.max; - } - if (this.dataRangeOption.orient == 'horizontal') { - this._indicatorShape.position = [ - (this.dataRangeOption.max - curValue) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.width, - 0 - ]; - } else { - this._indicatorShape.position = [ - 0, - (this.dataRangeOption.max - curValue) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.height - ]; - } - this._indicatorShape.style.text = this._textFormat(param.value); - this._indicatorShape.style.color = this.getColor(curValue); - this.zr.addHoverShape(this._indicatorShape); - } - }, - _textFormat: function (valueStart, valueEnd) { - var dataRangeOption = this.dataRangeOption; - if (valueStart !== -Number.MAX_VALUE) { - valueStart = (+valueStart).toFixed(dataRangeOption.precision); - } - if (valueEnd != null && valueEnd !== Number.MAX_VALUE) { - valueEnd = (+valueEnd).toFixed(dataRangeOption.precision); - } - if (dataRangeOption.formatter) { - if (typeof dataRangeOption.formatter == 'string') { - return dataRangeOption.formatter.replace('{value}', valueStart === -Number.MAX_VALUE ? 'min' : valueStart).replace('{value2}', valueEnd === Number.MAX_VALUE ? 'max' : valueEnd); - } else if (typeof dataRangeOption.formatter == 'function') { - return dataRangeOption.formatter.call(this.myChart, valueStart, valueEnd); - } - } - if (valueEnd == null) { - return valueStart; - } else { - if (valueStart === -Number.MAX_VALUE) { - return '< ' + valueEnd; - } else if (valueEnd === Number.MAX_VALUE) { - return '> ' + valueStart; - } else { - return valueStart + ' - ' + valueEnd; - } - } - }, - _isContinuity: function () { - var dataRangeOption = this.dataRangeOption; - return !(dataRangeOption.splitList ? dataRangeOption.splitList.length > 0 : dataRangeOption.splitNumber > 0) || dataRangeOption.calculable; - }, - _useCustomizedSplit: function () { - var dataRangeOption = this.dataRangeOption; - return dataRangeOption.splitList && dataRangeOption.splitList.length > 0; - }, - _buildColorList: function (splitNumber) { - this._colorList = zrColor.getGradientColors(this.dataRangeOption.color, Math.max((splitNumber - this.dataRangeOption.color.length) / (this.dataRangeOption.color.length - 1), 0) + 1); - if (this._colorList.length > splitNumber) { - var len = this._colorList.length; - var newColorList = [this._colorList[0]]; - var step = len / (splitNumber - 1); - for (var i = 1; i < splitNumber - 1; i++) { - newColorList.push(this._colorList[Math.floor(i * step)]); - } - newColorList.push(this._colorList[len - 1]); - this._colorList = newColorList; - } - if (this._useCustomizedSplit()) { - var splitList = this._splitList; - for (var i = 0, len = splitList.length; i < len; i++) { - if (splitList[i].color) { - this._colorList[i] = splitList[i].color; - } - } - } - }, - _buildGap: function (splitNumber) { - if (!this._useCustomizedSplit()) { - var precision = this.dataRangeOption.precision; - this._gap = (this.dataRangeOption.max - this.dataRangeOption.min) / splitNumber; - while (this._gap.toFixed(precision) - 0 != this._gap && precision < 5) { - precision++; - } - this.dataRangeOption.precision = precision; - this._gap = ((this.dataRangeOption.max - this.dataRangeOption.min) / splitNumber).toFixed(precision) - 0; - } - }, - _buildDataList: function (splitNumber) { - var valueTextList = this._valueTextList = []; - var dataRangeOption = this.dataRangeOption; - var useCustomizedSplit = this._useCustomizedSplit(); - for (var i = 0; i < splitNumber; i++) { - this._selectedMap[i] = true; - var text = ''; - if (useCustomizedSplit) { - var splitListItem = this._splitList[splitNumber - 1 - i]; - if (splitListItem.label != null) { - text = splitListItem.label; - } else if (splitListItem.single != null) { - text = this._textFormat(splitListItem.single); - } else { - text = this._textFormat(splitListItem.min, splitListItem.max); - } - } else { - text = this._textFormat(i * this._gap + dataRangeOption.min, (i + 1) * this._gap + dataRangeOption.min); - } - valueTextList.unshift(text); - } - }, - _buildSplitList: function () { - if (!this._useCustomizedSplit()) { - return; - } - var splitList = this.dataRangeOption.splitList; - var splitRangeList = this._splitList = []; - for (var i = 0, len = splitList.length; i < len; i++) { - var splitListItem = splitList[i]; - if (!splitListItem || splitListItem.start == null && splitListItem.end == null) { - throw new Error('Empty item exists in splitList!'); - } - var reformedItem = { - label: splitListItem.label, - color: splitListItem.color - }; - reformedItem.min = splitListItem.start; - reformedItem.max = splitListItem.end; - if (reformedItem.min > reformedItem.max) { - reformedItem.min = [ - reformedItem.max, - reformedItem.max = reformedItem.min - ][0]; - } - if (reformedItem.min === reformedItem.max) { - reformedItem.single = reformedItem.max; - } - if (reformedItem.min == null) { - reformedItem.min = -Number.MAX_VALUE; - } - if (reformedItem.max == null) { - reformedItem.max = Number.MAX_VALUE; - } - splitRangeList.push(reformedItem); - } - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.option.dataRange = this.reformOption(this.option.dataRange); - var dataRangeOption = this.dataRangeOption = this.option.dataRange; - if (!this._useCustomizedSplit() && (dataRangeOption.min == null || dataRangeOption.max == null)) { - throw new Error('option.dataRange.min or option.dataRange.max has not been defined.'); - } - if (!this.myChart.canvasSupported) { - dataRangeOption.realtime = false; - } - var splitNumber = this._isContinuity() ? 100 : this._useCustomizedSplit() ? dataRangeOption.splitList.length : dataRangeOption.splitNumber; - this._buildSplitList(); - this._buildColorList(splitNumber); - this._buildGap(splitNumber); - this._buildDataList(splitNumber); - } - this.clear(); - this._buildShape(); - }, - getColor: function (value) { - if (isNaN(value)) { - return null; - } - var idx; - if (!this._useCustomizedSplit()) { - if (this.dataRangeOption.min == this.dataRangeOption.max) { - return this._colorList[0]; - } - if (value < this.dataRangeOption.min) { - value = this.dataRangeOption.min; - } else if (value > this.dataRangeOption.max) { - value = this.dataRangeOption.max; - } - if (this.dataRangeOption.calculable) { - if (value - (this._gap * this._range.start + this.dataRangeOption.min) > 0.00005 || value - (this._gap * this._range.end + this.dataRangeOption.min) < -0.00005) { - return null; - } - } - idx = this._colorList.length - Math.ceil((value - this.dataRangeOption.min) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._colorList.length); - if (idx == this._colorList.length) { - idx--; - } - } else { - var splitRangeList = this._splitList; - for (var i = 0, len = splitRangeList.length; i < len; i++) { - if (splitRangeList[i].min <= value && splitRangeList[i].max >= value) { - idx = i; - break; - } - } - } - if (this._selectedMap[idx]) { - return this._colorList[idx]; - } else { - return null; - } - }, - getColorByIndex: function (idx) { - if (idx >= this._colorList.length) { - idx = this._colorList.length - 1; - } else if (idx < 0) { - idx = 0; - } - return this._colorList[idx]; - }, - onbeforDispose: function () { - this.messageCenter.unbind(ecConfig.EVENT.HOVER, this._onhoverlink); - } - }; - zrUtil.inherits(DataRange, Base); - require('../component').define('dataRange', DataRange); - return DataRange; -});define('echarts/layout/WordCloudRectZero', ['require'], function (require) { - function ZeroArray(option) { - this.defaultOption = { type: 'RECT' }; - this._init(option); - } - ZeroArray.prototype = { - RECT: '_calculateRect', - _init: function (option) { - this._initOption(option); - this._initCanvas(); - }, - _initOption: function (option) { - for (k in option) { - this.defaultOption[k] = option[k]; - } - }, - _initCanvas: function () { - var canvas = document.createElement('canvas'); - canvas.width = 1; - canvas.height = 1; - var ratio = Math.sqrt(canvas.getContext('2d').getImageData(0, 0, 1, 1).data.length >> 2); - canvas.width = this.defaultOption.width; - canvas.height = this.defaultOption.height; - if (canvas.getContext) { - var ctx = canvas.getContext('2d'); - } - this.canvas = canvas; - this.ctx = ctx; - this.ratio = ratio; - }, - calculate: function (callback, callbackObj) { - var calType = this.defaultOption.type, calmethod = this[calType]; - this[calmethod].call(this, callback, callbackObj); - }, - _calculateReturn: function (result, callback, callbackObj) { - callback.call(callbackObj, result); - }, - _calculateRect: function (callback, callbackObj) { - var result = {}, width = this.defaultOption.width >> 5 << 5, height = this.defaultOption.height; - result.initarr = this._rectZeroArray(width * height); - result.area = width * height; - result.maxHit = height; - result.maxWit = width; - result.imgboard = this._rectBoard(width, height); - this._calculateReturn(result, callback, callbackObj); - }, - _rectBoard: function (width, height) { - var row = []; - for (var i = 0; i < height; i++) { - row.push({ - y: i, - start: 0, - end: width - }); - } - var cloumn = []; - for (var i = 0; i < width; i++) { - cloumn.push({ - x: i, - start: 0, - end: height - }); - } - return { - row: row, - cloumn: cloumn - }; - }, - _rectZeroArray: function (num) { - var a = [], n = num, i = -1; - while (++i < n) - a[i] = 0; - return a; - } - }; - return ZeroArray; -});define('echarts/util/shape/HandlePolygon', [ - 'require', - 'zrender/shape/Base', - 'zrender/shape/Polygon', - 'zrender/tool/util' -], function (require) { - var Base = require('zrender/shape/Base'); - var PolygonShape = require('zrender/shape/Polygon'); - var zrUtil = require('zrender/tool/util'); - function HandlePolygon(options) { - Base.call(this, options); - } - HandlePolygon.prototype = { - type: 'handle-polygon', - buildPath: function (ctx, style) { - PolygonShape.prototype.buildPath(ctx, style); - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - var rect = this.style.rect; - if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) { - return true; - } else { - return false; - } - } - }; - zrUtil.inherits(HandlePolygon, Base); - return HandlePolygon; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/echarts-all.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/echarts-all.js deleted file mode 100644 index 7dfb8ec..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/echarts-all.js +++ /dev/null @@ -1,49884 +0,0 @@ -(function(_global){ -var require, define; -(function () { - var mods = {}; - - define = function (id, deps, factory) { - mods[id] = { - id: id, - deps: deps, - factory: factory, - defined: 0, - exports: {}, - require: createRequire(id) - }; - }; - - require = createRequire(''); - - function normalize(id, baseId) { - if (!baseId) { - return id; - } - - if (id.indexOf('.') === 0) { - var basePath = baseId.split('/'); - var namePath = id.split('/'); - var baseLen = basePath.length - 1; - var nameLen = namePath.length; - var cutBaseTerms = 0; - var cutNameTerms = 0; - - pathLoop: for (var i = 0; i < nameLen; i++) { - switch (namePath[i]) { - case '..': - if (cutBaseTerms < baseLen) { - cutBaseTerms++; - cutNameTerms++; - } - else { - break pathLoop; - } - break; - case '.': - cutNameTerms++; - break; - default: - break pathLoop; - } - } - - basePath.length = baseLen - cutBaseTerms; - namePath = namePath.slice(cutNameTerms); - - return basePath.concat(namePath).join('/'); - } - - return id; - } - - function createRequire(baseId) { - var cacheMods = {}; - - function localRequire(id, callback) { - if (typeof id === 'string') { - var exports = cacheMods[id]; - if (!exports) { - exports = getModExports(normalize(id, baseId)); - cacheMods[id] = exports; - } - - return exports; - } - else if (id instanceof Array) { - callback = callback || function () {}; - callback.apply(this, getModsExports(id, callback, baseId)); - } - }; - - return localRequire; - } - - function getModsExports(ids, factory, baseId) { - var es = []; - var mod = mods[baseId]; - - for (var i = 0, l = Math.min(ids.length, factory.length); i < l; i++) { - var id = normalize(ids[i], baseId); - var arg; - switch (id) { - case 'require': - arg = (mod && mod.require) || require; - break; - case 'exports': - arg = mod.exports; - break; - case 'module': - arg = mod; - break; - default: - arg = getModExports(id); - } - es.push(arg); - } - - return es; - } - - function getModExports(id) { - var mod = mods[id]; - if (!mod) { - throw new Error('No ' + id); - } - - if (!mod.defined) { - var factory = mod.factory; - var factoryReturn = factory.apply( - this, - getModsExports(mod.deps || [], factory, id) - ); - if (typeof factoryReturn !== 'undefined') { - mod.exports = factoryReturn; - } - mod.defined = 1; - } - - return mod.exports; - } -}()); -define('echarts', ['echarts/echarts'], function (main) {return main;}); -define('echarts/echarts', [ - 'require', - './config', - 'zrender/tool/util', - 'zrender/tool/event', - 'zrender/tool/env', - 'zrender', - 'zrender/config', - './chart/island', - './component/toolbox', - './component', - './component/title', - './component/tooltip', - './component/legend', - './util/ecData', - './chart', - 'zrender/tool/color', - './component/timeline', - 'zrender/shape/Image', - 'zrender/loadingEffect/Bar', - 'zrender/loadingEffect/Bubble', - 'zrender/loadingEffect/DynamicLine', - 'zrender/loadingEffect/Ring', - 'zrender/loadingEffect/Spin', - 'zrender/loadingEffect/Whirling', - './theme/macarons', - './theme/infographic' -], function (require) { - var ecConfig = require('./config'); - var zrUtil = require('zrender/tool/util'); - var zrEvent = require('zrender/tool/event'); - var self = {}; - var _canvasSupported = require('zrender/tool/env').canvasSupported; - var _idBase = new Date() - 0; - var _instances = {}; - var DOM_ATTRIBUTE_KEY = '_echarts_instance_'; - self.version = '2.2.7'; - self.dependencies = { zrender: '2.1.1' }; - self.init = function (dom, theme) { - var zrender = require('zrender'); - if (zrender.version.replace('.', '') - 0 < self.dependencies.zrender.replace('.', '') - 0) { - console.error('ZRender ' + zrender.version + ' is too old for ECharts ' + self.version + '. Current version need ZRender ' + self.dependencies.zrender + '+'); - } - dom = dom instanceof Array ? dom[0] : dom; - var key = dom.getAttribute(DOM_ATTRIBUTE_KEY); - if (!key) { - key = _idBase++; - dom.setAttribute(DOM_ATTRIBUTE_KEY, key); - } - if (_instances[key]) { - _instances[key].dispose(); - } - _instances[key] = new Echarts(dom); - _instances[key].id = key; - _instances[key].canvasSupported = _canvasSupported; - _instances[key].setTheme(theme); - return _instances[key]; - }; - self.getInstanceById = function (key) { - return _instances[key]; - }; - function MessageCenter() { - zrEvent.Dispatcher.call(this); - } - zrUtil.merge(MessageCenter.prototype, zrEvent.Dispatcher.prototype, true); - function Echarts(dom) { - dom.innerHTML = ''; - this._themeConfig = {}; - this.dom = dom; - this._connected = false; - this._status = { - dragIn: false, - dragOut: false, - needRefresh: false - }; - this._curEventType = false; - this._chartList = []; - this._messageCenter = new MessageCenter(); - this._messageCenterOutSide = new MessageCenter(); - this.resize = this.resize(); - this._init(); - } - var ZR_EVENT = require('zrender/config').EVENT; - var ZR_EVENT_LISTENS = [ - 'CLICK', - 'DBLCLICK', - 'MOUSEOVER', - 'MOUSEOUT', - 'DRAGSTART', - 'DRAGEND', - 'DRAGENTER', - 'DRAGOVER', - 'DRAGLEAVE', - 'DROP' - ]; - function callChartListMethodReverse(ecInstance, methodName, arg0, arg1, arg2) { - var chartList = ecInstance._chartList; - var len = chartList.length; - while (len--) { - var chart = chartList[len]; - if (typeof chart[methodName] === 'function') { - chart[methodName](arg0, arg1, arg2); - } - } - } - Echarts.prototype = { - _init: function () { - var self = this; - var _zr = require('zrender').init(this.dom); - this._zr = _zr; - this._messageCenter.dispatch = function (type, event, eventPackage, that) { - eventPackage = eventPackage || {}; - eventPackage.type = type; - eventPackage.event = event; - self._messageCenter.dispatchWithContext(type, eventPackage, that); - self._messageCenterOutSide.dispatchWithContext(type, eventPackage, that); - }; - this._onevent = function (param) { - return self.__onevent(param); - }; - for (var e in ecConfig.EVENT) { - if (e != 'CLICK' && e != 'DBLCLICK' && e != 'HOVER' && e != 'MOUSEOUT' && e != 'MAP_ROAM') { - this._messageCenter.bind(ecConfig.EVENT[e], this._onevent, this); - } - } - var eventBehaviors = {}; - this._onzrevent = function (param) { - return self[eventBehaviors[param.type]](param); - }; - for (var i = 0, len = ZR_EVENT_LISTENS.length; i < len; i++) { - var eventName = ZR_EVENT_LISTENS[i]; - var eventValue = ZR_EVENT[eventName]; - eventBehaviors[eventValue] = '_on' + eventName.toLowerCase(); - _zr.on(eventValue, this._onzrevent); - } - this.chart = {}; - this.component = {}; - var Island = require('./chart/island'); - this._island = new Island(this._themeConfig, this._messageCenter, _zr, {}, this); - this.chart.island = this._island; - var Toolbox = require('./component/toolbox'); - this._toolbox = new Toolbox(this._themeConfig, this._messageCenter, _zr, {}, this); - this.component.toolbox = this._toolbox; - var componentLibrary = require('./component'); - componentLibrary.define('title', require('./component/title')); - componentLibrary.define('tooltip', require('./component/tooltip')); - componentLibrary.define('legend', require('./component/legend')); - if (_zr.getWidth() === 0 || _zr.getHeight() === 0) { - console.error('Dom’s width & height should be ready before init.'); - } - }, - __onevent: function (param) { - param.__echartsId = param.__echartsId || this.id; - var fromMyself = param.__echartsId === this.id; - if (!this._curEventType) { - this._curEventType = param.type; - } - switch (param.type) { - case ecConfig.EVENT.LEGEND_SELECTED: - this._onlegendSelected(param); - break; - case ecConfig.EVENT.DATA_ZOOM: - if (!fromMyself) { - var dz = this.component.dataZoom; - if (dz) { - dz.silence(true); - dz.absoluteZoom(param.zoom); - dz.silence(false); - } - } - this._ondataZoom(param); - break; - case ecConfig.EVENT.DATA_RANGE: - fromMyself && this._ondataRange(param); - break; - case ecConfig.EVENT.MAGIC_TYPE_CHANGED: - if (!fromMyself) { - var tb = this.component.toolbox; - if (tb) { - tb.silence(true); - tb.setMagicType(param.magicType); - tb.silence(false); - } - } - this._onmagicTypeChanged(param); - break; - case ecConfig.EVENT.DATA_VIEW_CHANGED: - fromMyself && this._ondataViewChanged(param); - break; - case ecConfig.EVENT.TOOLTIP_HOVER: - fromMyself && this._tooltipHover(param); - break; - case ecConfig.EVENT.RESTORE: - this._onrestore(); - break; - case ecConfig.EVENT.REFRESH: - fromMyself && this._onrefresh(param); - break; - case ecConfig.EVENT.TOOLTIP_IN_GRID: - case ecConfig.EVENT.TOOLTIP_OUT_GRID: - if (!fromMyself) { - var grid = this.component.grid; - if (grid) { - this._zr.trigger('mousemove', { - connectTrigger: true, - zrenderX: grid.getX() + param.x * grid.getWidth(), - zrenderY: grid.getY() + param.y * grid.getHeight() - }); - } - } else if (this._connected) { - var grid = this.component.grid; - if (grid) { - param.x = (param.event.zrenderX - grid.getX()) / grid.getWidth(); - param.y = (param.event.zrenderY - grid.getY()) / grid.getHeight(); - } - } - break; - } - if (this._connected && fromMyself && this._curEventType === param.type) { - for (var c in this._connected) { - this._connected[c].connectedEventHandler(param); - } - this._curEventType = null; - } - if (!fromMyself || !this._connected && fromMyself) { - this._curEventType = null; - } - }, - _onclick: function (param) { - callChartListMethodReverse(this, 'onclick', param); - if (param.target) { - var ecData = this._eventPackage(param.target); - if (ecData && ecData.seriesIndex != null) { - this._messageCenter.dispatch(ecConfig.EVENT.CLICK, param.event, ecData, this); - } - } - }, - _ondblclick: function (param) { - callChartListMethodReverse(this, 'ondblclick', param); - if (param.target) { - var ecData = this._eventPackage(param.target); - if (ecData && ecData.seriesIndex != null) { - this._messageCenter.dispatch(ecConfig.EVENT.DBLCLICK, param.event, ecData, this); - } - } - }, - _onmouseover: function (param) { - if (param.target) { - var ecData = this._eventPackage(param.target); - if (ecData && ecData.seriesIndex != null) { - this._messageCenter.dispatch(ecConfig.EVENT.HOVER, param.event, ecData, this); - } - } - }, - _onmouseout: function (param) { - if (param.target) { - var ecData = this._eventPackage(param.target); - if (ecData && ecData.seriesIndex != null) { - this._messageCenter.dispatch(ecConfig.EVENT.MOUSEOUT, param.event, ecData, this); - } - } - }, - _ondragstart: function (param) { - this._status = { - dragIn: false, - dragOut: false, - needRefresh: false - }; - callChartListMethodReverse(this, 'ondragstart', param); - }, - _ondragenter: function (param) { - callChartListMethodReverse(this, 'ondragenter', param); - }, - _ondragover: function (param) { - callChartListMethodReverse(this, 'ondragover', param); - }, - _ondragleave: function (param) { - callChartListMethodReverse(this, 'ondragleave', param); - }, - _ondrop: function (param) { - callChartListMethodReverse(this, 'ondrop', param, this._status); - this._island.ondrop(param, this._status); - }, - _ondragend: function (param) { - callChartListMethodReverse(this, 'ondragend', param, this._status); - this._timeline && this._timeline.ondragend(param, this._status); - this._island.ondragend(param, this._status); - if (this._status.needRefresh) { - this._syncBackupData(this._option); - var messageCenter = this._messageCenter; - messageCenter.dispatch(ecConfig.EVENT.DATA_CHANGED, param.event, this._eventPackage(param.target), this); - messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); - } - }, - _onlegendSelected: function (param) { - this._status.needRefresh = false; - callChartListMethodReverse(this, 'onlegendSelected', param, this._status); - if (this._status.needRefresh) { - this._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); - } - }, - _ondataZoom: function (param) { - this._status.needRefresh = false; - callChartListMethodReverse(this, 'ondataZoom', param, this._status); - if (this._status.needRefresh) { - this._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); - } - }, - _ondataRange: function (param) { - this._clearEffect(); - this._status.needRefresh = false; - callChartListMethodReverse(this, 'ondataRange', param, this._status); - if (this._status.needRefresh) { - this._zr.refreshNextFrame(); - } - }, - _onmagicTypeChanged: function () { - this._clearEffect(); - this._render(this._toolbox.getMagicOption()); - }, - _ondataViewChanged: function (param) { - this._syncBackupData(param.option); - this._messageCenter.dispatch(ecConfig.EVENT.DATA_CHANGED, null, param, this); - this._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); - }, - _tooltipHover: function (param) { - var tipShape = []; - callChartListMethodReverse(this, 'ontooltipHover', param, tipShape); - }, - _onrestore: function () { - this.restore(); - }, - _onrefresh: function (param) { - this._refreshInside = true; - this.refresh(param); - this._refreshInside = false; - }, - _syncBackupData: function (curOption) { - this.component.dataZoom && this.component.dataZoom.syncBackupData(curOption); - }, - _eventPackage: function (target) { - if (target) { - var ecData = require('./util/ecData'); - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - dataIndex = seriesIndex != -1 && this.component.dataZoom ? this.component.dataZoom.getRealDataIndex(seriesIndex, dataIndex) : dataIndex; - return { - seriesIndex: seriesIndex, - seriesName: (ecData.get(target, 'series') || {}).name, - dataIndex: dataIndex, - data: ecData.get(target, 'data'), - name: ecData.get(target, 'name'), - value: ecData.get(target, 'value'), - special: ecData.get(target, 'special') - }; - } - return; - }, - _noDataCheck: function (magicOption) { - var series = magicOption.series; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type == ecConfig.CHART_TYPE_MAP || series[i].data && series[i].data.length > 0 || series[i].markPoint && series[i].markPoint.data && series[i].markPoint.data.length > 0 || series[i].markLine && series[i].markLine.data && series[i].markLine.data.length > 0 || series[i].nodes && series[i].nodes.length > 0 || series[i].links && series[i].links.length > 0 || series[i].matrix && series[i].matrix.length > 0 || series[i].eventList && series[i].eventList.length > 0) { - return false; - } - } - var loadOption = this._option && this._option.noDataLoadingOption || this._themeConfig.noDataLoadingOption || ecConfig.noDataLoadingOption || { - text: this._option && this._option.noDataText || this._themeConfig.noDataText || ecConfig.noDataText, - effect: this._option && this._option.noDataEffect || this._themeConfig.noDataEffect || ecConfig.noDataEffect - }; - this.clear(); - this.showLoading(loadOption); - return true; - }, - _render: function (magicOption) { - this._mergeGlobalConifg(magicOption); - if (this._noDataCheck(magicOption)) { - return; - } - var bgColor = magicOption.backgroundColor; - if (bgColor) { - if (!_canvasSupported && bgColor.indexOf('rgba') != -1) { - var cList = bgColor.split(','); - this.dom.style.filter = 'alpha(opacity=' + cList[3].substring(0, cList[3].lastIndexOf(')')) * 100 + ')'; - cList.length = 3; - cList[0] = cList[0].replace('a', ''); - this.dom.style.backgroundColor = cList.join(',') + ')'; - } else { - this.dom.style.backgroundColor = bgColor; - } - } - this._zr.clearAnimation(); - this._chartList = []; - var chartLibrary = require('./chart'); - var componentLibrary = require('./component'); - if (magicOption.xAxis || magicOption.yAxis) { - magicOption.grid = magicOption.grid || {}; - magicOption.dataZoom = magicOption.dataZoom || {}; - } - var componentList = [ - 'title', - 'legend', - 'tooltip', - 'dataRange', - 'roamController', - 'grid', - 'dataZoom', - 'xAxis', - 'yAxis', - 'polar' - ]; - var ComponentClass; - var componentType; - var component; - for (var i = 0, l = componentList.length; i < l; i++) { - componentType = componentList[i]; - component = this.component[componentType]; - if (magicOption[componentType]) { - if (component) { - component.refresh && component.refresh(magicOption); - } else { - ComponentClass = componentLibrary.get(/^[xy]Axis$/.test(componentType) ? 'axis' : componentType); - component = new ComponentClass(this._themeConfig, this._messageCenter, this._zr, magicOption, this, componentType); - this.component[componentType] = component; - } - this._chartList.push(component); - } else if (component) { - component.dispose(); - this.component[componentType] = null; - delete this.component[componentType]; - } - } - var ChartClass; - var chartType; - var chart; - var chartMap = {}; - for (var i = 0, l = magicOption.series.length; i < l; i++) { - chartType = magicOption.series[i].type; - if (!chartType) { - console.error('series[' + i + '] chart type has not been defined.'); - continue; - } - if (!chartMap[chartType]) { - chartMap[chartType] = true; - ChartClass = chartLibrary.get(chartType); - if (ChartClass) { - if (this.chart[chartType]) { - chart = this.chart[chartType]; - chart.refresh(magicOption); - } else { - chart = new ChartClass(this._themeConfig, this._messageCenter, this._zr, magicOption, this); - } - this._chartList.push(chart); - this.chart[chartType] = chart; - } else { - console.error(chartType + ' has not been required.'); - } - } - } - for (chartType in this.chart) { - if (chartType != ecConfig.CHART_TYPE_ISLAND && !chartMap[chartType]) { - this.chart[chartType].dispose(); - this.chart[chartType] = null; - delete this.chart[chartType]; - } - } - this.component.grid && this.component.grid.refixAxisShape(this.component); - this._island.refresh(magicOption); - this._toolbox.refresh(magicOption); - magicOption.animation && !magicOption.renderAsImage ? this._zr.refresh() : this._zr.render(); - var imgId = 'IMG' + this.id; - var img = document.getElementById(imgId); - if (magicOption.renderAsImage && _canvasSupported) { - if (img) { - img.src = this.getDataURL(magicOption.renderAsImage); - } else { - img = this.getImage(magicOption.renderAsImage); - img.id = imgId; - img.style.position = 'absolute'; - img.style.left = 0; - img.style.top = 0; - this.dom.firstChild.appendChild(img); - } - this.un(); - this._zr.un(); - this._disposeChartList(); - this._zr.clear(); - } else if (img) { - img.parentNode.removeChild(img); - } - img = null; - this._option = magicOption; - }, - restore: function () { - this._clearEffect(); - this._option = zrUtil.clone(this._optionRestore); - this._disposeChartList(); - this._island.clear(); - this._toolbox.reset(this._option, true); - this._render(this._option); - }, - refresh: function (param) { - this._clearEffect(); - param = param || {}; - var magicOption = param.option; - if (!this._refreshInside && magicOption) { - magicOption = this.getOption(); - zrUtil.merge(magicOption, param.option, true); - zrUtil.merge(this._optionRestore, param.option, true); - this._toolbox.reset(magicOption); - } - this._island.refresh(magicOption); - this._toolbox.refresh(magicOption); - this._zr.clearAnimation(); - for (var i = 0, l = this._chartList.length; i < l; i++) { - this._chartList[i].refresh && this._chartList[i].refresh(magicOption); - } - this.component.grid && this.component.grid.refixAxisShape(this.component); - this._zr.refresh(); - }, - _disposeChartList: function () { - this._clearEffect(); - this._zr.clearAnimation(); - var len = this._chartList.length; - while (len--) { - var chart = this._chartList[len]; - if (chart) { - var chartType = chart.type; - this.chart[chartType] && delete this.chart[chartType]; - this.component[chartType] && delete this.component[chartType]; - chart.dispose && chart.dispose(); - } - } - this._chartList = []; - }, - _mergeGlobalConifg: function (magicOption) { - var mergeList = [ - 'backgroundColor', - 'calculable', - 'calculableColor', - 'calculableHolderColor', - 'nameConnector', - 'valueConnector', - 'animation', - 'animationThreshold', - 'animationDuration', - 'animationDurationUpdate', - 'animationEasing', - 'addDataAnimation', - 'symbolList', - 'DRAG_ENABLE_TIME' - ]; - var len = mergeList.length; - while (len--) { - var mergeItem = mergeList[len]; - if (magicOption[mergeItem] == null) { - magicOption[mergeItem] = this._themeConfig[mergeItem] != null ? this._themeConfig[mergeItem] : ecConfig[mergeItem]; - } - } - var themeColor = magicOption.color; - if (!(themeColor && themeColor.length)) { - themeColor = this._themeConfig.color || ecConfig.color; - } - this._zr.getColor = function (idx) { - var zrColor = require('zrender/tool/color'); - return zrColor.getColor(idx, themeColor); - }; - if (!_canvasSupported) { - magicOption.animation = false; - magicOption.addDataAnimation = false; - } - }, - setOption: function (option, notMerge) { - if (!option.timeline) { - return this._setOption(option, notMerge); - } else { - return this._setTimelineOption(option); - } - }, - _setOption: function (option, notMerge, keepTimeLine) { - if (!notMerge && this._option) { - this._option = zrUtil.merge(this.getOption(), zrUtil.clone(option), true); - } else { - this._option = zrUtil.clone(option); - !keepTimeLine && this._timeline && this._timeline.dispose(); - } - this._optionRestore = zrUtil.clone(this._option); - if (!this._option.series || this._option.series.length === 0) { - this._zr.clear(); - return; - } - if (this.component.dataZoom && (this._option.dataZoom || this._option.toolbox && this._option.toolbox.feature && this._option.toolbox.feature.dataZoom && this._option.toolbox.feature.dataZoom.show)) { - this.component.dataZoom.syncOption(this._option); - } - this._toolbox.reset(this._option); - this._render(this._option); - return this; - }, - getOption: function () { - var magicOption = zrUtil.clone(this._option); - var self = this; - function restoreOption(prop) { - var restoreSource = self._optionRestore[prop]; - if (restoreSource) { - if (restoreSource instanceof Array) { - var len = restoreSource.length; - while (len--) { - magicOption[prop][len].data = zrUtil.clone(restoreSource[len].data); - } - } else { - magicOption[prop].data = zrUtil.clone(restoreSource.data); - } - } - } - restoreOption('xAxis'); - restoreOption('yAxis'); - restoreOption('series'); - return magicOption; - }, - setSeries: function (series, notMerge) { - if (!notMerge) { - this.setOption({ series: series }); - } else { - this._option.series = series; - this.setOption(this._option, notMerge); - } - return this; - }, - getSeries: function () { - return this.getOption().series; - }, - _setTimelineOption: function (option) { - this._timeline && this._timeline.dispose(); - var Timeline = require('./component/timeline'); - var timeline = new Timeline(this._themeConfig, this._messageCenter, this._zr, option, this); - this._timeline = timeline; - this.component.timeline = this._timeline; - return this; - }, - addData: function (seriesIdx, data, isHead, dataGrow, additionData) { - var params = seriesIdx instanceof Array ? seriesIdx : [[ - seriesIdx, - data, - isHead, - dataGrow, - additionData - ]]; - var magicOption = this.getOption(); - var optionRestore = this._optionRestore; - var self = this; - for (var i = 0, l = params.length; i < l; i++) { - seriesIdx = params[i][0]; - data = params[i][1]; - isHead = params[i][2]; - dataGrow = params[i][3]; - additionData = params[i][4]; - var seriesItem = optionRestore.series[seriesIdx]; - var inMethod = isHead ? 'unshift' : 'push'; - var outMethod = isHead ? 'pop' : 'shift'; - if (seriesItem) { - var seriesItemData = seriesItem.data; - var mSeriesItemData = magicOption.series[seriesIdx].data; - seriesItemData[inMethod](data); - mSeriesItemData[inMethod](data); - if (!dataGrow) { - seriesItemData[outMethod](); - data = mSeriesItemData[outMethod](); - } - if (additionData != null) { - var legend; - var legendData; - if (seriesItem.type === ecConfig.CHART_TYPE_PIE && (legend = optionRestore.legend) && (legendData = legend.data)) { - var mLegendData = magicOption.legend.data; - legendData[inMethod](additionData); - mLegendData[inMethod](additionData); - if (!dataGrow) { - var legendDataIdx = zrUtil.indexOf(legendData, data.name); - legendDataIdx != -1 && legendData.splice(legendDataIdx, 1); - legendDataIdx = zrUtil.indexOf(mLegendData, data.name); - legendDataIdx != -1 && mLegendData.splice(legendDataIdx, 1); - } - } else if (optionRestore.xAxis != null && optionRestore.yAxis != null) { - var axisData; - var mAxisData; - var axisIdx = seriesItem.xAxisIndex || 0; - if (optionRestore.xAxis[axisIdx].type == null || optionRestore.xAxis[axisIdx].type === 'category') { - axisData = optionRestore.xAxis[axisIdx].data; - mAxisData = magicOption.xAxis[axisIdx].data; - axisData[inMethod](additionData); - mAxisData[inMethod](additionData); - if (!dataGrow) { - axisData[outMethod](); - mAxisData[outMethod](); - } - } - axisIdx = seriesItem.yAxisIndex || 0; - if (optionRestore.yAxis[axisIdx].type === 'category') { - axisData = optionRestore.yAxis[axisIdx].data; - mAxisData = magicOption.yAxis[axisIdx].data; - axisData[inMethod](additionData); - mAxisData[inMethod](additionData); - if (!dataGrow) { - axisData[outMethod](); - mAxisData[outMethod](); - } - } - } - } - this._option.series[seriesIdx].data = magicOption.series[seriesIdx].data; - } - } - this._zr.clearAnimation(); - var chartList = this._chartList; - var chartAnimationCount = 0; - var chartAnimationDone = function () { - chartAnimationCount--; - if (chartAnimationCount === 0) { - animationDone(); - } - }; - for (var i = 0, l = chartList.length; i < l; i++) { - if (magicOption.addDataAnimation && chartList[i].addDataAnimation) { - chartAnimationCount++; - chartList[i].addDataAnimation(params, chartAnimationDone); - } - } - this.component.dataZoom && this.component.dataZoom.syncOption(magicOption); - this._option = magicOption; - function animationDone() { - if (!self._zr) { - return; - } - self._zr.clearAnimation(); - for (var i = 0, l = chartList.length; i < l; i++) { - chartList[i].motionlessOnce = magicOption.addDataAnimation && chartList[i].addDataAnimation; - } - self._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, { option: magicOption }, self); - } - if (!magicOption.addDataAnimation) { - setTimeout(animationDone, 0); - } - return this; - }, - addMarkPoint: function (seriesIdx, markData) { - return this._addMark(seriesIdx, markData, 'markPoint'); - }, - addMarkLine: function (seriesIdx, markData) { - return this._addMark(seriesIdx, markData, 'markLine'); - }, - _addMark: function (seriesIdx, markData, markType) { - var series = this._option.series; - var seriesItem; - if (series && (seriesItem = series[seriesIdx])) { - var seriesR = this._optionRestore.series; - var seriesRItem = seriesR[seriesIdx]; - var markOpt = seriesItem[markType]; - var markOptR = seriesRItem[markType]; - markOpt = seriesItem[markType] = markOpt || { data: [] }; - markOptR = seriesRItem[markType] = markOptR || { data: [] }; - for (var key in markData) { - if (key === 'data') { - markOpt.data = markOpt.data.concat(markData.data); - markOptR.data = markOptR.data.concat(markData.data); - } else if (typeof markData[key] != 'object' || markOpt[key] == null) { - markOpt[key] = markOptR[key] = markData[key]; - } else { - zrUtil.merge(markOpt[key], markData[key], true); - zrUtil.merge(markOptR[key], markData[key], true); - } - } - var chart = this.chart[seriesItem.type]; - chart && chart.addMark(seriesIdx, markData, markType); - } - return this; - }, - delMarkPoint: function (seriesIdx, markName) { - return this._delMark(seriesIdx, markName, 'markPoint'); - }, - delMarkLine: function (seriesIdx, markName) { - return this._delMark(seriesIdx, markName, 'markLine'); - }, - _delMark: function (seriesIdx, markName, markType) { - var series = this._option.series; - var seriesItem; - var mark; - var dataArray; - if (!(series && (seriesItem = series[seriesIdx]) && (mark = seriesItem[markType]) && (dataArray = mark.data))) { - return this; - } - markName = markName.split(' > '); - var targetIndex = -1; - for (var i = 0, l = dataArray.length; i < l; i++) { - var dataItem = dataArray[i]; - if (dataItem instanceof Array) { - if (dataItem[0].name === markName[0] && dataItem[1].name === markName[1]) { - targetIndex = i; - break; - } - } else if (dataItem.name === markName[0]) { - targetIndex = i; - break; - } - } - if (targetIndex > -1) { - dataArray.splice(targetIndex, 1); - this._optionRestore.series[seriesIdx][markType].data.splice(targetIndex, 1); - var chart = this.chart[seriesItem.type]; - chart && chart.delMark(seriesIdx, markName.join(' > '), markType); - } - return this; - }, - getDom: function () { - return this.dom; - }, - getZrender: function () { - return this._zr; - }, - getDataURL: function (imgType) { - if (!_canvasSupported) { - return ''; - } - if (this._chartList.length === 0) { - var imgId = 'IMG' + this.id; - var img = document.getElementById(imgId); - if (img) { - return img.src; - } - } - var tooltip = this.component.tooltip; - tooltip && tooltip.hideTip(); - switch (imgType) { - case 'jpeg': - break; - default: - imgType = 'png'; - } - var bgColor = this._option.backgroundColor; - if (bgColor && bgColor.replace(' ', '') === 'rgba(0,0,0,0)') { - bgColor = '#fff'; - } - return this._zr.toDataURL('image/' + imgType, bgColor); - }, - getImage: function (imgType) { - var title = this._optionRestore.title; - var imgDom = document.createElement('img'); - imgDom.src = this.getDataURL(imgType); - imgDom.title = title && title.text || 'ECharts'; - return imgDom; - }, - getConnectedDataURL: function (imgType) { - if (!this.isConnected()) { - return this.getDataURL(imgType); - } - var tempDom = this.dom; - var imgList = { - 'self': { - img: this.getDataURL(imgType), - left: tempDom.offsetLeft, - top: tempDom.offsetTop, - right: tempDom.offsetLeft + tempDom.offsetWidth, - bottom: tempDom.offsetTop + tempDom.offsetHeight - } - }; - var minLeft = imgList.self.left; - var minTop = imgList.self.top; - var maxRight = imgList.self.right; - var maxBottom = imgList.self.bottom; - for (var c in this._connected) { - tempDom = this._connected[c].getDom(); - imgList[c] = { - img: this._connected[c].getDataURL(imgType), - left: tempDom.offsetLeft, - top: tempDom.offsetTop, - right: tempDom.offsetLeft + tempDom.offsetWidth, - bottom: tempDom.offsetTop + tempDom.offsetHeight - }; - minLeft = Math.min(minLeft, imgList[c].left); - minTop = Math.min(minTop, imgList[c].top); - maxRight = Math.max(maxRight, imgList[c].right); - maxBottom = Math.max(maxBottom, imgList[c].bottom); - } - var zrDom = document.createElement('div'); - zrDom.style.position = 'absolute'; - zrDom.style.left = '-4000px'; - zrDom.style.width = maxRight - minLeft + 'px'; - zrDom.style.height = maxBottom - minTop + 'px'; - document.body.appendChild(zrDom); - var zrImg = require('zrender').init(zrDom); - var ImageShape = require('zrender/shape/Image'); - for (var c in imgList) { - zrImg.addShape(new ImageShape({ - style: { - x: imgList[c].left - minLeft, - y: imgList[c].top - minTop, - image: imgList[c].img - } - })); - } - zrImg.render(); - var bgColor = this._option.backgroundColor; - if (bgColor && bgColor.replace(/ /g, '') === 'rgba(0,0,0,0)') { - bgColor = '#fff'; - } - var image = zrImg.toDataURL('image/png', bgColor); - setTimeout(function () { - zrImg.dispose(); - zrDom.parentNode.removeChild(zrDom); - zrDom = null; - }, 100); - return image; - }, - getConnectedImage: function (imgType) { - var title = this._optionRestore.title; - var imgDom = document.createElement('img'); - imgDom.src = this.getConnectedDataURL(imgType); - imgDom.title = title && title.text || 'ECharts'; - return imgDom; - }, - on: function (eventName, eventListener) { - this._messageCenterOutSide.bind(eventName, eventListener, this); - return this; - }, - un: function (eventName, eventListener) { - this._messageCenterOutSide.unbind(eventName, eventListener); - return this; - }, - connect: function (connectTarget) { - if (!connectTarget) { - return this; - } - if (!this._connected) { - this._connected = {}; - } - if (connectTarget instanceof Array) { - for (var i = 0, l = connectTarget.length; i < l; i++) { - this._connected[connectTarget[i].id] = connectTarget[i]; - } - } else { - this._connected[connectTarget.id] = connectTarget; - } - return this; - }, - disConnect: function (connectTarget) { - if (!connectTarget || !this._connected) { - return this; - } - if (connectTarget instanceof Array) { - for (var i = 0, l = connectTarget.length; i < l; i++) { - delete this._connected[connectTarget[i].id]; - } - } else { - delete this._connected[connectTarget.id]; - } - for (var k in this._connected) { - return k, this; - } - this._connected = false; - return this; - }, - connectedEventHandler: function (param) { - if (param.__echartsId != this.id) { - this._onevent(param); - } - }, - isConnected: function () { - return !!this._connected; - }, - showLoading: function (loadingOption) { - var effectList = { - bar: require('zrender/loadingEffect/Bar'), - bubble: require('zrender/loadingEffect/Bubble'), - dynamicLine: require('zrender/loadingEffect/DynamicLine'), - ring: require('zrender/loadingEffect/Ring'), - spin: require('zrender/loadingEffect/Spin'), - whirling: require('zrender/loadingEffect/Whirling') - }; - this._toolbox.hideDataView(); - loadingOption = loadingOption || {}; - var textStyle = loadingOption.textStyle || {}; - loadingOption.textStyle = textStyle; - var finalTextStyle = zrUtil.merge(zrUtil.merge(zrUtil.clone(textStyle), this._themeConfig.textStyle), ecConfig.textStyle); - textStyle.textFont = finalTextStyle.fontStyle + ' ' + finalTextStyle.fontWeight + ' ' + finalTextStyle.fontSize + 'px ' + finalTextStyle.fontFamily; - textStyle.text = loadingOption.text || this._option && this._option.loadingText || this._themeConfig.loadingText || ecConfig.loadingText; - if (loadingOption.x != null) { - textStyle.x = loadingOption.x; - } - if (loadingOption.y != null) { - textStyle.y = loadingOption.y; - } - loadingOption.effectOption = loadingOption.effectOption || {}; - loadingOption.effectOption.textStyle = textStyle; - var Effect = loadingOption.effect; - if (typeof Effect === 'string' || Effect == null) { - Effect = effectList[loadingOption.effect || this._option && this._option.loadingEffect || this._themeConfig.loadingEffect || ecConfig.loadingEffect] || effectList.spin; - } - this._zr.showLoading(new Effect(loadingOption.effectOption)); - return this; - }, - hideLoading: function () { - this._zr.hideLoading(); - return this; - }, - setTheme: function (theme) { - if (theme) { - if (typeof theme === 'string') { - switch (theme) { - case 'macarons': - theme = require('./theme/macarons'); - break; - case 'infographic': - theme = require('./theme/infographic'); - break; - default: - theme = {}; - } - } else { - theme = theme || {}; - } - this._themeConfig = theme; - } - if (!_canvasSupported) { - var textStyle = this._themeConfig.textStyle; - textStyle && textStyle.fontFamily && textStyle.fontFamily2 && (textStyle.fontFamily = textStyle.fontFamily2); - textStyle = ecConfig.textStyle; - textStyle.fontFamily = textStyle.fontFamily2; - } - this._timeline && this._timeline.setTheme(true); - this._optionRestore && this.restore(); - }, - resize: function () { - var self = this; - return function () { - self._clearEffect(); - self._zr.resize(); - if (self._option && self._option.renderAsImage && _canvasSupported) { - self._render(self._option); - return self; - } - self._zr.clearAnimation(); - self._island.resize(); - self._toolbox.resize(); - self._timeline && self._timeline.resize(); - for (var i = 0, l = self._chartList.length; i < l; i++) { - self._chartList[i].resize && self._chartList[i].resize(); - } - self.component.grid && self.component.grid.refixAxisShape(self.component); - self._zr.refresh(); - self._messageCenter.dispatch(ecConfig.EVENT.RESIZE, null, null, self); - return self; - }; - }, - _clearEffect: function () { - this._zr.modLayer(ecConfig.EFFECT_ZLEVEL, { motionBlur: false }); - this._zr.painter.clearLayer(ecConfig.EFFECT_ZLEVEL); - }, - clear: function () { - this._disposeChartList(); - this._zr.clear(); - this._option = {}; - this._optionRestore = {}; - this.dom.style.backgroundColor = null; - return this; - }, - dispose: function () { - var key = this.dom.getAttribute(DOM_ATTRIBUTE_KEY); - key && delete _instances[key]; - this._island.dispose(); - this._toolbox.dispose(); - this._timeline && this._timeline.dispose(); - this._messageCenter.unbind(); - this.clear(); - this._zr.dispose(); - this._zr = null; - } - }; - return self; -});define('echarts/config', [], function () { - var config = { - CHART_TYPE_LINE: 'line', - CHART_TYPE_BAR: 'bar', - CHART_TYPE_SCATTER: 'scatter', - CHART_TYPE_PIE: 'pie', - CHART_TYPE_RADAR: 'radar', - CHART_TYPE_VENN: 'venn', - CHART_TYPE_TREEMAP: 'treemap', - CHART_TYPE_TREE: 'tree', - CHART_TYPE_MAP: 'map', - CHART_TYPE_K: 'k', - CHART_TYPE_ISLAND: 'island', - CHART_TYPE_FORCE: 'force', - CHART_TYPE_CHORD: 'chord', - CHART_TYPE_GAUGE: 'gauge', - CHART_TYPE_FUNNEL: 'funnel', - CHART_TYPE_EVENTRIVER: 'eventRiver', - CHART_TYPE_WORDCLOUD: 'wordCloud', - CHART_TYPE_HEATMAP: 'heatmap', - COMPONENT_TYPE_TITLE: 'title', - COMPONENT_TYPE_LEGEND: 'legend', - COMPONENT_TYPE_DATARANGE: 'dataRange', - COMPONENT_TYPE_DATAVIEW: 'dataView', - COMPONENT_TYPE_DATAZOOM: 'dataZoom', - COMPONENT_TYPE_TOOLBOX: 'toolbox', - COMPONENT_TYPE_TOOLTIP: 'tooltip', - COMPONENT_TYPE_GRID: 'grid', - COMPONENT_TYPE_AXIS: 'axis', - COMPONENT_TYPE_POLAR: 'polar', - COMPONENT_TYPE_X_AXIS: 'xAxis', - COMPONENT_TYPE_Y_AXIS: 'yAxis', - COMPONENT_TYPE_AXIS_CATEGORY: 'categoryAxis', - COMPONENT_TYPE_AXIS_VALUE: 'valueAxis', - COMPONENT_TYPE_TIMELINE: 'timeline', - COMPONENT_TYPE_ROAMCONTROLLER: 'roamController', - backgroundColor: 'rgba(0,0,0,0)', - color: [ - '#ff7f50', - '#87cefa', - '#da70d6', - '#32cd32', - '#6495ed', - '#ff69b4', - '#ba55d3', - '#cd5c5c', - '#ffa500', - '#40e0d0', - '#1e90ff', - '#ff6347', - '#7b68ee', - '#00fa9a', - '#ffd700', - '#6699FF', - '#ff6666', - '#3cb371', - '#b8860b', - '#30e0e0' - ], - markPoint: { - clickable: true, - symbol: 'pin', - symbolSize: 10, - large: false, - effect: { - show: false, - loop: true, - period: 15, - type: 'scale', - scaleSize: 2, - bounceDistance: 10 - }, - itemStyle: { - normal: { - borderWidth: 2, - label: { - show: true, - position: 'inside' - } - }, - emphasis: { label: { show: true } } - } - }, - markLine: { - clickable: true, - symbol: [ - 'circle', - 'arrow' - ], - symbolSize: [ - 2, - 4 - ], - smoothness: 0.2, - precision: 2, - effect: { - show: false, - loop: true, - period: 15, - scaleSize: 2 - }, - bundling: { - enable: false, - maxTurningAngle: 45 - }, - itemStyle: { - normal: { - borderWidth: 1.5, - label: { - show: true, - position: 'end' - }, - lineStyle: { type: 'dashed' } - }, - emphasis: { - label: { show: false }, - lineStyle: {} - } - } - }, - textStyle: { - decoration: 'none', - fontFamily: 'Arial, Verdana, sans-serif', - fontFamily2: '微软雅黑', - fontSize: 12, - fontStyle: 'normal', - fontWeight: 'normal' - }, - EVENT: { - REFRESH: 'refresh', - RESTORE: 'restore', - RESIZE: 'resize', - CLICK: 'click', - DBLCLICK: 'dblclick', - HOVER: 'hover', - MOUSEOUT: 'mouseout', - DATA_CHANGED: 'dataChanged', - DATA_ZOOM: 'dataZoom', - DATA_RANGE: 'dataRange', - DATA_RANGE_SELECTED: 'dataRangeSelected', - DATA_RANGE_HOVERLINK: 'dataRangeHoverLink', - LEGEND_SELECTED: 'legendSelected', - LEGEND_HOVERLINK: 'legendHoverLink', - MAP_SELECTED: 'mapSelected', - PIE_SELECTED: 'pieSelected', - MAGIC_TYPE_CHANGED: 'magicTypeChanged', - DATA_VIEW_CHANGED: 'dataViewChanged', - TIMELINE_CHANGED: 'timelineChanged', - MAP_ROAM: 'mapRoam', - FORCE_LAYOUT_END: 'forceLayoutEnd', - TOOLTIP_HOVER: 'tooltipHover', - TOOLTIP_IN_GRID: 'tooltipInGrid', - TOOLTIP_OUT_GRID: 'tooltipOutGrid', - ROAMCONTROLLER: 'roamController' - }, - DRAG_ENABLE_TIME: 120, - EFFECT_ZLEVEL: 10, - effectBlendAlpha: 0.95, - symbolList: [ - 'circle', - 'rectangle', - 'triangle', - 'diamond', - 'emptyCircle', - 'emptyRectangle', - 'emptyTriangle', - 'emptyDiamond' - ], - loadingEffect: 'spin', - loadingText: '数据读取中...', - noDataEffect: 'bubble', - noDataText: '暂无数据', - calculable: false, - calculableColor: 'rgba(255,165,0,0.6)', - calculableHolderColor: '#ccc', - nameConnector: ' & ', - valueConnector: ': ', - animation: true, - addDataAnimation: true, - animationThreshold: 2000, - animationDuration: 2000, - animationDurationUpdate: 500, - animationEasing: 'ExponentialOut' - }; - return config; -});define('zrender/tool/util', [ - 'require', - '../dep/excanvas' -], function (require) { - var ArrayProto = Array.prototype; - var nativeForEach = ArrayProto.forEach; - var nativeMap = ArrayProto.map; - var nativeFilter = ArrayProto.filter; - var BUILTIN_OBJECT = { - '[object Function]': 1, - '[object RegExp]': 1, - '[object Date]': 1, - '[object Error]': 1, - '[object CanvasGradient]': 1 - }; - var objToString = Object.prototype.toString; - function isDom(obj) { - return obj && obj.nodeType === 1 && typeof obj.nodeName == 'string'; - } - function clone(source) { - if (typeof source == 'object' && source !== null) { - var result = source; - if (source instanceof Array) { - result = []; - for (var i = 0, len = source.length; i < len; i++) { - result[i] = clone(source[i]); - } - } else if (!BUILTIN_OBJECT[objToString.call(source)] && !isDom(source)) { - result = {}; - for (var key in source) { - if (source.hasOwnProperty(key)) { - result[key] = clone(source[key]); - } - } - } - return result; - } - return source; - } - function mergeItem(target, source, key, overwrite) { - if (source.hasOwnProperty(key)) { - var targetProp = target[key]; - if (typeof targetProp == 'object' && !BUILTIN_OBJECT[objToString.call(targetProp)] && !isDom(targetProp)) { - merge(target[key], source[key], overwrite); - } else if (overwrite || !(key in target)) { - target[key] = source[key]; - } - } - } - function merge(target, source, overwrite) { - for (var i in source) { - mergeItem(target, source, i, overwrite); - } - return target; - } - var _ctx; - function getContext() { - if (!_ctx) { - require('../dep/excanvas'); - if (window['G_vmlCanvasManager']) { - var _div = document.createElement('div'); - _div.style.position = 'absolute'; - _div.style.top = '-1000px'; - document.body.appendChild(_div); - _ctx = G_vmlCanvasManager.initElement(_div).getContext('2d'); - } else { - _ctx = document.createElement('canvas').getContext('2d'); - } - } - return _ctx; - } - function indexOf(array, value) { - if (array.indexOf) { - return array.indexOf(value); - } - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] === value) { - return i; - } - } - return -1; - } - function inherits(clazz, baseClazz) { - var clazzPrototype = clazz.prototype; - function F() { - } - F.prototype = baseClazz.prototype; - clazz.prototype = new F(); - for (var prop in clazzPrototype) { - clazz.prototype[prop] = clazzPrototype[prop]; - } - clazz.constructor = clazz; - } - function each(obj, cb, context) { - if (!(obj && cb)) { - return; - } - if (obj.forEach && obj.forEach === nativeForEach) { - obj.forEach(cb, context); - } else if (obj.length === +obj.length) { - for (var i = 0, len = obj.length; i < len; i++) { - cb.call(context, obj[i], i, obj); - } - } else { - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - cb.call(context, obj[key], key, obj); - } - } - } - } - function map(obj, cb, context) { - if (!(obj && cb)) { - return; - } - if (obj.map && obj.map === nativeMap) { - return obj.map(cb, context); - } else { - var result = []; - for (var i = 0, len = obj.length; i < len; i++) { - result.push(cb.call(context, obj[i], i, obj)); - } - return result; - } - } - function filter(obj, cb, context) { - if (!(obj && cb)) { - return; - } - if (obj.filter && obj.filter === nativeFilter) { - return obj.filter(cb, context); - } else { - var result = []; - for (var i = 0, len = obj.length; i < len; i++) { - if (cb.call(context, obj[i], i, obj)) { - result.push(obj[i]); - } - } - return result; - } - } - function bind(func, context) { - return function () { - func.apply(context, arguments); - }; - } - return { - inherits: inherits, - clone: clone, - merge: merge, - getContext: getContext, - indexOf: indexOf, - each: each, - map: map, - filter: filter, - bind: bind - }; -});define('zrender/tool/event', [ - 'require', - '../mixin/Eventful' -], function (require) { - 'use strict'; - var Eventful = require('../mixin/Eventful'); - function getX(e) { - return typeof e.zrenderX != 'undefined' && e.zrenderX || typeof e.offsetX != 'undefined' && e.offsetX || typeof e.layerX != 'undefined' && e.layerX || typeof e.clientX != 'undefined' && e.clientX; - } - function getY(e) { - return typeof e.zrenderY != 'undefined' && e.zrenderY || typeof e.offsetY != 'undefined' && e.offsetY || typeof e.layerY != 'undefined' && e.layerY || typeof e.clientY != 'undefined' && e.clientY; - } - function getDelta(e) { - return typeof e.zrenderDelta != 'undefined' && e.zrenderDelta || typeof e.wheelDelta != 'undefined' && e.wheelDelta || typeof e.detail != 'undefined' && -e.detail; - } - var stop = typeof window.addEventListener === 'function' ? function (e) { - e.preventDefault(); - e.stopPropagation(); - e.cancelBubble = true; - } : function (e) { - e.returnValue = false; - e.cancelBubble = true; - }; - return { - getX: getX, - getY: getY, - getDelta: getDelta, - stop: stop, - Dispatcher: Eventful - }; -});define('zrender/tool/env', [], function () { - function detect(ua) { - var os = this.os = {}; - var browser = this.browser = {}; - var webkit = ua.match(/Web[kK]it[\/]{0,1}([\d.]+)/); - var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); - var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); - var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); - var iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/); - var webos = ua.match(/(webOS|hpwOS)[\s\/]([\d.]+)/); - var touchpad = webos && ua.match(/TouchPad/); - var kindle = ua.match(/Kindle\/([\d.]+)/); - var silk = ua.match(/Silk\/([\d._]+)/); - var blackberry = ua.match(/(BlackBerry).*Version\/([\d.]+)/); - var bb10 = ua.match(/(BB10).*Version\/([\d.]+)/); - var rimtabletos = ua.match(/(RIM\sTablet\sOS)\s([\d.]+)/); - var playbook = ua.match(/PlayBook/); - var chrome = ua.match(/Chrome\/([\d.]+)/) || ua.match(/CriOS\/([\d.]+)/); - var firefox = ua.match(/Firefox\/([\d.]+)/); - var ie = ua.match(/MSIE ([\d.]+)/); - var safari = webkit && ua.match(/Mobile\//) && !chrome; - var webview = ua.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) && !chrome; - var ie = ua.match(/MSIE\s([\d.]+)/); - if (browser.webkit = !!webkit) - browser.version = webkit[1]; - if (android) - os.android = true, os.version = android[2]; - if (iphone && !ipod) - os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.'); - if (ipad) - os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.'); - if (ipod) - os.ios = os.ipod = true, os.version = ipod[3] ? ipod[3].replace(/_/g, '.') : null; - if (webos) - os.webos = true, os.version = webos[2]; - if (touchpad) - os.touchpad = true; - if (blackberry) - os.blackberry = true, os.version = blackberry[2]; - if (bb10) - os.bb10 = true, os.version = bb10[2]; - if (rimtabletos) - os.rimtabletos = true, os.version = rimtabletos[2]; - if (playbook) - browser.playbook = true; - if (kindle) - os.kindle = true, os.version = kindle[1]; - if (silk) - browser.silk = true, browser.version = silk[1]; - if (!silk && os.android && ua.match(/Kindle Fire/)) - browser.silk = true; - if (chrome) - browser.chrome = true, browser.version = chrome[1]; - if (firefox) - browser.firefox = true, browser.version = firefox[1]; - if (ie) - browser.ie = true, browser.version = ie[1]; - if (safari && (ua.match(/Safari/) || !!os.ios)) - browser.safari = true; - if (webview) - browser.webview = true; - if (ie) - browser.ie = true, browser.version = ie[1]; - os.tablet = !!(ipad || playbook || android && !ua.match(/Mobile/) || firefox && ua.match(/Tablet/) || ie && !ua.match(/Phone/) && ua.match(/Touch/)); - os.phone = !!(!os.tablet && !os.ipod && (android || iphone || webos || blackberry || bb10 || chrome && ua.match(/Android/) || chrome && ua.match(/CriOS\/([\d.]+)/) || firefox && ua.match(/Mobile/) || ie && ua.match(/Touch/))); - return { - browser: browser, - os: os, - canvasSupported: document.createElement('canvas').getContext ? true : false - }; - } - return detect(navigator.userAgent); -});define('zrender', ['zrender/zrender'], function (main) {return main;}); -define('zrender/zrender', [ - 'require', - './dep/excanvas', - './tool/util', - './tool/log', - './tool/guid', - './Handler', - './Painter', - './Storage', - './animation/Animation', - './tool/env' -], function (require) { - require('./dep/excanvas'); - var util = require('./tool/util'); - var log = require('./tool/log'); - var guid = require('./tool/guid'); - var Handler = require('./Handler'); - var Painter = require('./Painter'); - var Storage = require('./Storage'); - var Animation = require('./animation/Animation'); - var _instances = {}; - var zrender = {}; - zrender.version = '2.1.1'; - zrender.init = function (dom) { - var zr = new ZRender(guid(), dom); - _instances[zr.id] = zr; - return zr; - }; - zrender.dispose = function (zr) { - if (zr) { - zr.dispose(); - } else { - for (var key in _instances) { - _instances[key].dispose(); - } - _instances = {}; - } - return zrender; - }; - zrender.getInstance = function (id) { - return _instances[id]; - }; - zrender.delInstance = function (id) { - delete _instances[id]; - return zrender; - }; - function getFrameCallback(zrInstance) { - return function () { - if (zrInstance._needsRefreshNextFrame) { - zrInstance.refresh(); - } - }; - } - var ZRender = function (id, dom) { - this.id = id; - this.env = require('./tool/env'); - this.storage = new Storage(); - this.painter = new Painter(dom, this.storage); - this.handler = new Handler(dom, this.storage, this.painter); - this.animation = new Animation({ stage: { update: getFrameCallback(this) } }); - this.animation.start(); - var self = this; - this.painter.refreshNextFrame = function () { - self.refreshNextFrame(); - }; - this._needsRefreshNextFrame = false; - var self = this; - var storage = this.storage; - var oldDelFromMap = storage.delFromMap; - storage.delFromMap = function (elId) { - var el = storage.get(elId); - self.stopAnimation(el); - oldDelFromMap.call(storage, elId); - }; - }; - ZRender.prototype.getId = function () { - return this.id; - }; - ZRender.prototype.addShape = function (shape) { - this.addElement(shape); - return this; - }; - ZRender.prototype.addGroup = function (group) { - this.addElement(group); - return this; - }; - ZRender.prototype.delShape = function (shapeId) { - this.delElement(shapeId); - return this; - }; - ZRender.prototype.delGroup = function (groupId) { - this.delElement(groupId); - return this; - }; - ZRender.prototype.modShape = function (shapeId, shape) { - this.modElement(shapeId, shape); - return this; - }; - ZRender.prototype.modGroup = function (groupId, group) { - this.modElement(groupId, group); - return this; - }; - ZRender.prototype.addElement = function (el) { - this.storage.addRoot(el); - this._needsRefreshNextFrame = true; - return this; - }; - ZRender.prototype.delElement = function (el) { - this.storage.delRoot(el); - this._needsRefreshNextFrame = true; - return this; - }; - ZRender.prototype.modElement = function (el, params) { - this.storage.mod(el, params); - this._needsRefreshNextFrame = true; - return this; - }; - ZRender.prototype.modLayer = function (zLevel, config) { - this.painter.modLayer(zLevel, config); - this._needsRefreshNextFrame = true; - return this; - }; - ZRender.prototype.addHoverShape = function (shape) { - this.storage.addHover(shape); - return this; - }; - ZRender.prototype.render = function (callback) { - this.painter.render(callback); - this._needsRefreshNextFrame = false; - return this; - }; - ZRender.prototype.refresh = function (callback) { - this.painter.refresh(callback); - this._needsRefreshNextFrame = false; - return this; - }; - ZRender.prototype.refreshNextFrame = function () { - this._needsRefreshNextFrame = true; - return this; - }; - ZRender.prototype.refreshHover = function (callback) { - this.painter.refreshHover(callback); - return this; - }; - ZRender.prototype.refreshShapes = function (shapeList, callback) { - this.painter.refreshShapes(shapeList, callback); - return this; - }; - ZRender.prototype.resize = function () { - this.painter.resize(); - return this; - }; - ZRender.prototype.animate = function (el, path, loop) { - var self = this; - if (typeof el === 'string') { - el = this.storage.get(el); - } - if (el) { - var target; - if (path) { - var pathSplitted = path.split('.'); - var prop = el; - for (var i = 0, l = pathSplitted.length; i < l; i++) { - if (!prop) { - continue; - } - prop = prop[pathSplitted[i]]; - } - if (prop) { - target = prop; - } - } else { - target = el; - } - if (!target) { - log('Property "' + path + '" is not existed in element ' + el.id); - return; - } - if (el.__animators == null) { - el.__animators = []; - } - var animators = el.__animators; - var animator = this.animation.animate(target, { loop: loop }).during(function () { - self.modShape(el); - }).done(function () { - var idx = util.indexOf(el.__animators, animator); - if (idx >= 0) { - animators.splice(idx, 1); - } - }); - animators.push(animator); - return animator; - } else { - log('Element not existed'); - } - }; - ZRender.prototype.stopAnimation = function (el) { - if (el.__animators) { - var animators = el.__animators; - var len = animators.length; - for (var i = 0; i < len; i++) { - animators[i].stop(); - } - animators.length = 0; - } - return this; - }; - ZRender.prototype.clearAnimation = function () { - this.animation.clear(); - return this; - }; - ZRender.prototype.showLoading = function (loadingEffect) { - this.painter.showLoading(loadingEffect); - return this; - }; - ZRender.prototype.hideLoading = function () { - this.painter.hideLoading(); - return this; - }; - ZRender.prototype.getWidth = function () { - return this.painter.getWidth(); - }; - ZRender.prototype.getHeight = function () { - return this.painter.getHeight(); - }; - ZRender.prototype.toDataURL = function (type, backgroundColor, args) { - return this.painter.toDataURL(type, backgroundColor, args); - }; - ZRender.prototype.shapeToImage = function (e, width, height) { - var id = guid(); - return this.painter.shapeToImage(id, e, width, height); - }; - ZRender.prototype.on = function (eventName, eventHandler, context) { - this.handler.on(eventName, eventHandler, context); - return this; - }; - ZRender.prototype.un = function (eventName, eventHandler) { - this.handler.un(eventName, eventHandler); - return this; - }; - ZRender.prototype.trigger = function (eventName, event) { - this.handler.trigger(eventName, event); - return this; - }; - ZRender.prototype.clear = function () { - this.storage.delRoot(); - this.painter.clear(); - return this; - }; - ZRender.prototype.dispose = function () { - this.animation.stop(); - this.clear(); - this.storage.dispose(); - this.painter.dispose(); - this.handler.dispose(); - this.animation = this.storage = this.painter = this.handler = null; - zrender.delInstance(this.id); - }; - return zrender; -});define('zrender/config', [], function () { - var config = { - EVENT: { - RESIZE: 'resize', - CLICK: 'click', - DBLCLICK: 'dblclick', - MOUSEWHEEL: 'mousewheel', - MOUSEMOVE: 'mousemove', - MOUSEOVER: 'mouseover', - MOUSEOUT: 'mouseout', - MOUSEDOWN: 'mousedown', - MOUSEUP: 'mouseup', - GLOBALOUT: 'globalout', - DRAGSTART: 'dragstart', - DRAGEND: 'dragend', - DRAGENTER: 'dragenter', - DRAGOVER: 'dragover', - DRAGLEAVE: 'dragleave', - DROP: 'drop', - touchClickDelay: 300 - }, - elementClassName: 'zr-element', - catchBrushException: false, - debugMode: 0, - devicePixelRatio: Math.max(window.devicePixelRatio || 1, 1) - }; - return config; -});define('echarts/chart/island', [ - 'require', - './base', - 'zrender/shape/Circle', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/event', - 'zrender/tool/color', - '../util/accMath', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var CircleShape = require('zrender/shape/Circle'); - var ecConfig = require('../config'); - ecConfig.island = { - zlevel: 0, - z: 5, - r: 15, - calculateStep: 0.1 - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrEvent = require('zrender/tool/event'); - function Island(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this._nameConnector; - this._valueConnector; - this._zrHeight = this.zr.getHeight(); - this._zrWidth = this.zr.getWidth(); - var self = this; - self.shapeHandler.onmousewheel = function (param) { - var shape = param.target; - var event = param.event; - var delta = zrEvent.getDelta(event); - delta = delta > 0 ? -1 : 1; - shape.style.r -= delta; - shape.style.r = shape.style.r < 5 ? 5 : shape.style.r; - var value = ecData.get(shape, 'value'); - var dvalue = value * self.option.island.calculateStep; - value = dvalue > 1 ? Math.round(value - dvalue * delta) : +(value - dvalue * delta).toFixed(2); - var name = ecData.get(shape, 'name'); - shape.style.text = name + ':' + value; - ecData.set(shape, 'value', value); - ecData.set(shape, 'name', name); - self.zr.modShape(shape.id); - self.zr.refreshNextFrame(); - zrEvent.stop(event); - }; - } - Island.prototype = { - type: ecConfig.CHART_TYPE_ISLAND, - _combine: function (tarShape, srcShape) { - var zrColor = require('zrender/tool/color'); - var accMath = require('../util/accMath'); - var value = accMath.accAdd(ecData.get(tarShape, 'value'), ecData.get(srcShape, 'value')); - var name = ecData.get(tarShape, 'name') + this._nameConnector + ecData.get(srcShape, 'name'); - tarShape.style.text = name + this._valueConnector + value; - ecData.set(tarShape, 'value', value); - ecData.set(tarShape, 'name', name); - tarShape.style.r = this.option.island.r; - tarShape.style.color = zrColor.mix(tarShape.style.color, srcShape.style.color); - }, - refresh: function (newOption) { - if (newOption) { - newOption.island = this.reformOption(newOption.island); - this.option = newOption; - this._nameConnector = this.option.nameConnector; - this._valueConnector = this.option.valueConnector; - } - }, - getOption: function () { - return this.option; - }, - resize: function () { - var newWidth = this.zr.getWidth(); - var newHieght = this.zr.getHeight(); - var xScale = newWidth / (this._zrWidth || newWidth); - var yScale = newHieght / (this._zrHeight || newHieght); - if (xScale === 1 && yScale === 1) { - return; - } - this._zrWidth = newWidth; - this._zrHeight = newHieght; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.modShape(this.shapeList[i].id, { - style: { - x: Math.round(this.shapeList[i].style.x * xScale), - y: Math.round(this.shapeList[i].style.y * yScale) - } - }); - } - }, - add: function (shape) { - var name = ecData.get(shape, 'name'); - var value = ecData.get(shape, 'value'); - var seriesName = ecData.get(shape, 'series') != null ? ecData.get(shape, 'series').name : ''; - var font = this.getFont(this.option.island.textStyle); - var islandOption = this.option.island; - var islandShape = { - zlevel: islandOption.zlevel, - z: islandOption.z, - style: { - x: shape.style.x, - y: shape.style.y, - r: this.option.island.r, - color: shape.style.color || shape.style.strokeColor, - text: name + this._valueConnector + value, - textFont: font - }, - draggable: true, - hoverable: true, - onmousewheel: this.shapeHandler.onmousewheel, - _type: 'island' - }; - if (islandShape.style.color === '#fff') { - islandShape.style.color = shape.style.strokeColor; - } - this.setCalculable(islandShape); - islandShape.dragEnableTime = 0; - ecData.pack(islandShape, { name: seriesName }, -1, value, -1, name); - islandShape = new CircleShape(islandShape); - this.shapeList.push(islandShape); - this.zr.addShape(islandShape); - }, - del: function (shape) { - this.zr.delShape(shape.id); - var newShapeList = []; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i].id != shape.id) { - newShapeList.push(this.shapeList[i]); - } - } - this.shapeList = newShapeList; - }, - ondrop: function (param, status) { - if (!this.isDrop || !param.target) { - return; - } - var target = param.target; - var dragged = param.dragged; - this._combine(target, dragged); - this.zr.modShape(target.id); - status.dragIn = true; - this.isDrop = false; - return; - }, - ondragend: function (param, status) { - var target = param.target; - if (!this.isDragend) { - if (!status.dragIn) { - target.style.x = zrEvent.getX(param.event); - target.style.y = zrEvent.getY(param.event); - this.add(target); - status.needRefresh = true; - } - } else { - if (status.dragIn) { - this.del(target); - status.needRefresh = true; - } - } - this.isDragend = false; - return; - } - }; - zrUtil.inherits(Island, ChartBase); - require('../chart').define('island', Island); - return Island; -});define('echarts/component/toolbox', [ - 'require', - './base', - 'zrender/shape/Line', - 'zrender/shape/Image', - 'zrender/shape/Rectangle', - '../util/shape/Icon', - '../config', - 'zrender/tool/util', - 'zrender/config', - 'zrender/tool/event', - './dataView', - '../component' -], function (require) { - var Base = require('./base'); - var LineShape = require('zrender/shape/Line'); - var ImageShape = require('zrender/shape/Image'); - var RectangleShape = require('zrender/shape/Rectangle'); - var IconShape = require('../util/shape/Icon'); - var ecConfig = require('../config'); - ecConfig.toolbox = { - zlevel: 0, - z: 6, - show: false, - orient: 'horizontal', - x: 'right', - y: 'top', - color: [ - '#1e90ff', - '#22bb22', - '#4b0082', - '#d2691e' - ], - disableColor: '#ddd', - effectiveColor: 'red', - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - itemGap: 10, - itemSize: 16, - showTitle: true, - feature: { - mark: { - show: false, - title: { - mark: '辅助线开关', - markUndo: '删除辅助线', - markClear: '清空辅助线' - }, - lineStyle: { - width: 1, - color: '#1e90ff', - type: 'dashed' - } - }, - dataZoom: { - show: false, - title: { - dataZoom: '区域缩放', - dataZoomReset: '区域缩放后退' - } - }, - dataView: { - show: false, - title: '数据视图', - readOnly: false, - lang: [ - '数据视图', - '关闭', - '刷新' - ] - }, - magicType: { - show: false, - title: { - line: '折线图切换', - bar: '柱形图切换', - stack: '堆积', - tiled: '平铺', - force: '力导向布局图切换', - chord: '和弦图切换', - pie: '饼图切换', - funnel: '漏斗图切换' - }, - type: [] - }, - restore: { - show: false, - title: '还原' - }, - saveAsImage: { - show: false, - title: '保存为图片', - type: 'png', - lang: ['点击保存'] - } - } - }; - var zrUtil = require('zrender/tool/util'); - var zrConfig = require('zrender/config'); - var zrEvent = require('zrender/tool/event'); - var _MAGICTYPE_STACK = 'stack'; - var _MAGICTYPE_TILED = 'tiled'; - function Toolbox(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.dom = myChart.dom; - this._magicType = {}; - this._magicMap = {}; - this._isSilence = false; - this._iconList; - this._iconShapeMap = {}; - this._featureTitle = {}; - this._featureIcon = {}; - this._featureColor = {}; - this._featureOption = {}; - this._enableColor = 'red'; - this._disableColor = '#ccc'; - this._markShapeList = []; - var self = this; - self._onMark = function (param) { - self.__onMark(param); - }; - self._onMarkUndo = function (param) { - self.__onMarkUndo(param); - }; - self._onMarkClear = function (param) { - self.__onMarkClear(param); - }; - self._onDataZoom = function (param) { - self.__onDataZoom(param); - }; - self._onDataZoomReset = function (param) { - self.__onDataZoomReset(param); - }; - self._onDataView = function (param) { - self.__onDataView(param); - }; - self._onRestore = function (param) { - self.__onRestore(param); - }; - self._onSaveAsImage = function (param) { - self.__onSaveAsImage(param); - }; - self._onMagicType = function (param) { - self.__onMagicType(param); - }; - self._onCustomHandler = function (param) { - self.__onCustomHandler(param); - }; - self._onmousemove = function (param) { - return self.__onmousemove(param); - }; - self._onmousedown = function (param) { - return self.__onmousedown(param); - }; - self._onmouseup = function (param) { - return self.__onmouseup(param); - }; - self._onclick = function (param) { - return self.__onclick(param); - }; - } - Toolbox.prototype = { - type: ecConfig.COMPONENT_TYPE_TOOLBOX, - _buildShape: function () { - this._iconList = []; - var toolboxOption = this.option.toolbox; - this._enableColor = toolboxOption.effectiveColor; - this._disableColor = toolboxOption.disableColor; - var feature = toolboxOption.feature; - var iconName = []; - for (var key in feature) { - if (feature[key].show) { - switch (key) { - case 'mark': - iconName.push({ - key: key, - name: 'mark' - }); - iconName.push({ - key: key, - name: 'markUndo' - }); - iconName.push({ - key: key, - name: 'markClear' - }); - break; - case 'magicType': - for (var i = 0, l = feature[key].type.length; i < l; i++) { - feature[key].title[feature[key].type[i] + 'Chart'] = feature[key].title[feature[key].type[i]]; - if (feature[key].option) { - feature[key].option[feature[key].type[i] + 'Chart'] = feature[key].option[feature[key].type[i]]; - } - iconName.push({ - key: key, - name: feature[key].type[i] + 'Chart' - }); - } - break; - case 'dataZoom': - iconName.push({ - key: key, - name: 'dataZoom' - }); - iconName.push({ - key: key, - name: 'dataZoomReset' - }); - break; - case 'saveAsImage': - if (this.canvasSupported) { - iconName.push({ - key: key, - name: 'saveAsImage' - }); - } - break; - default: - iconName.push({ - key: key, - name: key - }); - break; - } - } - } - if (iconName.length > 0) { - var name; - var key; - for (var i = 0, l = iconName.length; i < l; i++) { - name = iconName[i].name; - key = iconName[i].key; - this._iconList.push(name); - this._featureTitle[name] = feature[key].title[name] || feature[key].title; - if (feature[key].icon) { - this._featureIcon[name] = feature[key].icon[name] || feature[key].icon; - } - if (feature[key].color) { - this._featureColor[name] = feature[key].color[name] || feature[key].color; - } - if (feature[key].option) { - this._featureOption[name] = feature[key].option[name] || feature[key].option; - } - } - this._itemGroupLocation = this._getItemGroupLocation(); - this._buildBackground(); - this._buildItem(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - if (this._iconShapeMap['mark']) { - this._iconDisable(this._iconShapeMap['markUndo']); - this._iconDisable(this._iconShapeMap['markClear']); - } - if (this._iconShapeMap['dataZoomReset'] && this._zoomQueue.length === 0) { - this._iconDisable(this._iconShapeMap['dataZoomReset']); - } - } - }, - _buildItem: function () { - var toolboxOption = this.option.toolbox; - var iconLength = this._iconList.length; - var lastX = this._itemGroupLocation.x; - var lastY = this._itemGroupLocation.y; - var itemSize = toolboxOption.itemSize; - var itemGap = toolboxOption.itemGap; - var itemShape; - var color = toolboxOption.color instanceof Array ? toolboxOption.color : [toolboxOption.color]; - var textFont = this.getFont(toolboxOption.textStyle); - var textPosition; - var textAlign; - var textBaseline; - if (toolboxOption.orient === 'horizontal') { - textPosition = this._itemGroupLocation.y / this.zr.getHeight() < 0.5 ? 'bottom' : 'top'; - textAlign = this._itemGroupLocation.x / this.zr.getWidth() < 0.5 ? 'left' : 'right'; - textBaseline = this._itemGroupLocation.y / this.zr.getHeight() < 0.5 ? 'top' : 'bottom'; - } else { - textPosition = this._itemGroupLocation.x / this.zr.getWidth() < 0.5 ? 'right' : 'left'; - } - this._iconShapeMap = {}; - var self = this; - for (var i = 0; i < iconLength; i++) { - itemShape = { - type: 'icon', - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX, - y: lastY, - width: itemSize, - height: itemSize, - iconType: this._iconList[i], - lineWidth: 1, - strokeColor: this._featureColor[this._iconList[i]] || color[i % color.length], - brushType: 'stroke' - }, - highlightStyle: { - lineWidth: 1, - text: toolboxOption.showTitle ? this._featureTitle[this._iconList[i]] : undefined, - textFont: textFont, - textPosition: textPosition, - strokeColor: this._featureColor[this._iconList[i]] || color[i % color.length] - }, - hoverable: true, - clickable: true - }; - if (this._featureIcon[this._iconList[i]]) { - itemShape.style.image = this._featureIcon[this._iconList[i]].replace(new RegExp('^image:\\/\\/'), ''); - itemShape.style.opacity = 0.8; - itemShape.highlightStyle.opacity = 1; - itemShape.type = 'image'; - } - if (toolboxOption.orient === 'horizontal') { - if (i === 0 && textAlign === 'left') { - itemShape.highlightStyle.textPosition = 'specific'; - itemShape.highlightStyle.textAlign = textAlign; - itemShape.highlightStyle.textBaseline = textBaseline; - itemShape.highlightStyle.textX = lastX; - itemShape.highlightStyle.textY = textBaseline === 'top' ? lastY + itemSize + 10 : lastY - 10; - } - if (i === iconLength - 1 && textAlign === 'right') { - itemShape.highlightStyle.textPosition = 'specific'; - itemShape.highlightStyle.textAlign = textAlign; - itemShape.highlightStyle.textBaseline = textBaseline; - itemShape.highlightStyle.textX = lastX + itemSize; - itemShape.highlightStyle.textY = textBaseline === 'top' ? lastY + itemSize + 10 : lastY - 10; - } - } - switch (this._iconList[i]) { - case 'mark': - itemShape.onclick = self._onMark; - break; - case 'markUndo': - itemShape.onclick = self._onMarkUndo; - break; - case 'markClear': - itemShape.onclick = self._onMarkClear; - break; - case 'dataZoom': - itemShape.onclick = self._onDataZoom; - break; - case 'dataZoomReset': - itemShape.onclick = self._onDataZoomReset; - break; - case 'dataView': - if (!this._dataView) { - var DataView = require('./dataView'); - this._dataView = new DataView(this.ecTheme, this.messageCenter, this.zr, this.option, this.myChart); - } - itemShape.onclick = self._onDataView; - break; - case 'restore': - itemShape.onclick = self._onRestore; - break; - case 'saveAsImage': - itemShape.onclick = self._onSaveAsImage; - break; - default: - if (this._iconList[i].match('Chart')) { - itemShape._name = this._iconList[i].replace('Chart', ''); - itemShape.onclick = self._onMagicType; - } else { - itemShape.onclick = self._onCustomHandler; - } - break; - } - if (itemShape.type === 'icon') { - itemShape = new IconShape(itemShape); - } else if (itemShape.type === 'image') { - itemShape = new ImageShape(itemShape); - } - this.shapeList.push(itemShape); - this._iconShapeMap[this._iconList[i]] = itemShape; - if (toolboxOption.orient === 'horizontal') { - lastX += itemSize + itemGap; - } else { - lastY += itemSize + itemGap; - } - } - }, - _buildBackground: function () { - var toolboxOption = this.option.toolbox; - var padding = this.reformCssArray(this.option.toolbox.padding); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._itemGroupLocation.x - padding[3], - y: this._itemGroupLocation.y - padding[0], - width: this._itemGroupLocation.width + padding[3] + padding[1], - height: this._itemGroupLocation.height + padding[0] + padding[2], - brushType: toolboxOption.borderWidth === 0 ? 'fill' : 'both', - color: toolboxOption.backgroundColor, - strokeColor: toolboxOption.borderColor, - lineWidth: toolboxOption.borderWidth - } - })); - }, - _getItemGroupLocation: function () { - var toolboxOption = this.option.toolbox; - var padding = this.reformCssArray(this.option.toolbox.padding); - var iconLength = this._iconList.length; - var itemGap = toolboxOption.itemGap; - var itemSize = toolboxOption.itemSize; - var totalWidth = 0; - var totalHeight = 0; - if (toolboxOption.orient === 'horizontal') { - totalWidth = (itemSize + itemGap) * iconLength - itemGap; - totalHeight = itemSize; - } else { - totalHeight = (itemSize + itemGap) * iconLength - itemGap; - totalWidth = itemSize; - } - var x; - var zrWidth = this.zr.getWidth(); - switch (toolboxOption.x) { - case 'center': - x = Math.floor((zrWidth - totalWidth) / 2); - break; - case 'left': - x = padding[3] + toolboxOption.borderWidth; - break; - case 'right': - x = zrWidth - totalWidth - padding[1] - toolboxOption.borderWidth; - break; - default: - x = toolboxOption.x - 0; - x = isNaN(x) ? 0 : x; - break; - } - var y; - var zrHeight = this.zr.getHeight(); - switch (toolboxOption.y) { - case 'top': - y = padding[0] + toolboxOption.borderWidth; - break; - case 'bottom': - y = zrHeight - totalHeight - padding[2] - toolboxOption.borderWidth; - break; - case 'center': - y = Math.floor((zrHeight - totalHeight) / 2); - break; - default: - y = toolboxOption.y - 0; - y = isNaN(y) ? 0 : y; - break; - } - return { - x: x, - y: y, - width: totalWidth, - height: totalHeight - }; - }, - __onmousemove: function (param) { - if (this._marking) { - this._markShape.style.xEnd = zrEvent.getX(param.event); - this._markShape.style.yEnd = zrEvent.getY(param.event); - this.zr.addHoverShape(this._markShape); - } - if (this._zooming) { - this._zoomShape.style.width = zrEvent.getX(param.event) - this._zoomShape.style.x; - this._zoomShape.style.height = zrEvent.getY(param.event) - this._zoomShape.style.y; - this.zr.addHoverShape(this._zoomShape); - this.dom.style.cursor = 'crosshair'; - zrEvent.stop(param.event); - } - if (this._zoomStart && (this.dom.style.cursor != 'pointer' && this.dom.style.cursor != 'move')) { - this.dom.style.cursor = 'crosshair'; - } - }, - __onmousedown: function (param) { - if (param.target) { - return; - } - this._zooming = true; - var x = zrEvent.getX(param.event); - var y = zrEvent.getY(param.event); - var zoomOption = this.option.dataZoom || {}; - this._zoomShape = new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: x, - y: y, - width: 1, - height: 1, - brushType: 'both' - }, - highlightStyle: { - lineWidth: 2, - color: zoomOption.fillerColor || ecConfig.dataZoom.fillerColor, - strokeColor: zoomOption.handleColor || ecConfig.dataZoom.handleColor, - brushType: 'both' - } - }); - this.zr.addHoverShape(this._zoomShape); - return true; - }, - __onmouseup: function () { - if (!this._zoomShape || Math.abs(this._zoomShape.style.width) < 10 || Math.abs(this._zoomShape.style.height) < 10) { - this._zooming = false; - return true; - } - if (this._zooming && this.component.dataZoom) { - this._zooming = false; - var zoom = this.component.dataZoom.rectZoom(this._zoomShape.style); - if (zoom) { - this._zoomQueue.push({ - start: zoom.start, - end: zoom.end, - start2: zoom.start2, - end2: zoom.end2 - }); - this._iconEnable(this._iconShapeMap['dataZoomReset']); - this.zr.refreshNextFrame(); - } - } - return true; - }, - __onclick: function (param) { - if (param.target) { - return; - } - if (this._marking) { - this._marking = false; - this._markShapeList.push(this._markShape); - this._iconEnable(this._iconShapeMap['markUndo']); - this._iconEnable(this._iconShapeMap['markClear']); - this.zr.addShape(this._markShape); - this.zr.refreshNextFrame(); - } else if (this._markStart) { - this._marking = true; - var x = zrEvent.getX(param.event); - var y = zrEvent.getY(param.event); - this._markShape = new LineShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - xStart: x, - yStart: y, - xEnd: x, - yEnd: y, - lineWidth: this.query(this.option, 'toolbox.feature.mark.lineStyle.width'), - strokeColor: this.query(this.option, 'toolbox.feature.mark.lineStyle.color'), - lineType: this.query(this.option, 'toolbox.feature.mark.lineStyle.type') - } - }); - this.zr.addHoverShape(this._markShape); - } - }, - __onMark: function (param) { - var target = param.target; - if (this._marking || this._markStart) { - this._resetMark(); - this.zr.refreshNextFrame(); - } else { - this._resetZoom(); - this.zr.modShape(target.id, { style: { strokeColor: this._enableColor } }); - this.zr.refreshNextFrame(); - this._markStart = true; - var self = this; - setTimeout(function () { - self.zr && self.zr.on(zrConfig.EVENT.CLICK, self._onclick) && self.zr.on(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); - }, 10); - } - return true; - }, - __onMarkUndo: function () { - if (this._marking) { - this._marking = false; - } else { - var len = this._markShapeList.length; - if (len >= 1) { - var target = this._markShapeList[len - 1]; - this.zr.delShape(target.id); - this.zr.refreshNextFrame(); - this._markShapeList.pop(); - if (len === 1) { - this._iconDisable(this._iconShapeMap['markUndo']); - this._iconDisable(this._iconShapeMap['markClear']); - } - } - } - return true; - }, - __onMarkClear: function () { - if (this._marking) { - this._marking = false; - } - var len = this._markShapeList.length; - if (len > 0) { - while (len--) { - this.zr.delShape(this._markShapeList.pop().id); - } - this._iconDisable(this._iconShapeMap['markUndo']); - this._iconDisable(this._iconShapeMap['markClear']); - this.zr.refreshNextFrame(); - } - return true; - }, - __onDataZoom: function (param) { - var target = param.target; - if (this._zooming || this._zoomStart) { - this._resetZoom(); - this.zr.refreshNextFrame(); - this.dom.style.cursor = 'default'; - } else { - this._resetMark(); - this.zr.modShape(target.id, { style: { strokeColor: this._enableColor } }); - this.zr.refreshNextFrame(); - this._zoomStart = true; - var self = this; - setTimeout(function () { - self.zr && self.zr.on(zrConfig.EVENT.MOUSEDOWN, self._onmousedown) && self.zr.on(zrConfig.EVENT.MOUSEUP, self._onmouseup) && self.zr.on(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); - }, 10); - this.dom.style.cursor = 'crosshair'; - } - return true; - }, - __onDataZoomReset: function () { - if (this._zooming) { - this._zooming = false; - } - this._zoomQueue.pop(); - if (this._zoomQueue.length > 0) { - this.component.dataZoom.absoluteZoom(this._zoomQueue[this._zoomQueue.length - 1]); - } else { - this.component.dataZoom.rectZoom(); - this._iconDisable(this._iconShapeMap['dataZoomReset']); - this.zr.refreshNextFrame(); - } - return true; - }, - _resetMark: function () { - this._marking = false; - if (this._markStart) { - this._markStart = false; - if (this._iconShapeMap['mark']) { - this.zr.modShape(this._iconShapeMap['mark'].id, { style: { strokeColor: this._iconShapeMap['mark'].highlightStyle.strokeColor } }); - } - this.zr.un(zrConfig.EVENT.CLICK, this._onclick); - this.zr.un(zrConfig.EVENT.MOUSEMOVE, this._onmousemove); - } - }, - _resetZoom: function () { - this._zooming = false; - if (this._zoomStart) { - this._zoomStart = false; - if (this._iconShapeMap['dataZoom']) { - this.zr.modShape(this._iconShapeMap['dataZoom'].id, { style: { strokeColor: this._iconShapeMap['dataZoom'].highlightStyle.strokeColor } }); - } - this.zr.un(zrConfig.EVENT.MOUSEDOWN, this._onmousedown); - this.zr.un(zrConfig.EVENT.MOUSEUP, this._onmouseup); - this.zr.un(zrConfig.EVENT.MOUSEMOVE, this._onmousemove); - } - }, - _iconDisable: function (target) { - if (target.type != 'image') { - this.zr.modShape(target.id, { - hoverable: false, - clickable: false, - style: { strokeColor: this._disableColor } - }); - } else { - this.zr.modShape(target.id, { - hoverable: false, - clickable: false, - style: { opacity: 0.3 } - }); - } - }, - _iconEnable: function (target) { - if (target.type != 'image') { - this.zr.modShape(target.id, { - hoverable: true, - clickable: true, - style: { strokeColor: target.highlightStyle.strokeColor } - }); - } else { - this.zr.modShape(target.id, { - hoverable: true, - clickable: true, - style: { opacity: 0.8 } - }); - } - }, - __onDataView: function () { - this._dataView.show(this.option); - return true; - }, - __onRestore: function () { - this._resetMark(); - this._resetZoom(); - this.messageCenter.dispatch(ecConfig.EVENT.RESTORE, null, null, this.myChart); - return true; - }, - __onSaveAsImage: function () { - var saveOption = this.option.toolbox.feature.saveAsImage; - var imgType = saveOption.type || 'png'; - if (imgType != 'png' && imgType != 'jpeg') { - imgType = 'png'; - } - var image; - if (!this.myChart.isConnected()) { - image = this.zr.toDataURL('image/' + imgType, this.option.backgroundColor && this.option.backgroundColor.replace(' ', '') === 'rgba(0,0,0,0)' ? '#fff' : this.option.backgroundColor); - } else { - image = this.myChart.getConnectedDataURL(imgType); - } - var downloadDiv = document.createElement('div'); - downloadDiv.id = '__echarts_download_wrap__'; - downloadDiv.style.cssText = 'position:fixed;' + 'z-index:99999;' + 'display:block;' + 'top:0;left:0;' + 'background-color:rgba(33,33,33,0.5);' + 'text-align:center;' + 'width:100%;' + 'height:100%;' + 'line-height:' + document.documentElement.clientHeight + 'px;'; - var downloadLink = document.createElement('a'); - downloadLink.href = image; - downloadLink.setAttribute('download', (saveOption.name ? saveOption.name : this.option.title && (this.option.title.text || this.option.title.subtext) ? this.option.title.text || this.option.title.subtext : 'ECharts') + '.' + imgType); - downloadLink.innerHTML = ''; - downloadDiv.appendChild(downloadLink); - document.body.appendChild(downloadDiv); - downloadLink = null; - downloadDiv = null; - setTimeout(function () { - var _d = document.getElementById('__echarts_download_wrap__'); - if (_d) { - _d.onclick = function () { - var d = document.getElementById('__echarts_download_wrap__'); - d.onclick = null; - d.innerHTML = ''; - document.body.removeChild(d); - d = null; - }; - _d = null; - } - }, 500); - return; - }, - __onMagicType: function (param) { - this._resetMark(); - var itemName = param.target._name; - if (!this._magicType[itemName]) { - this._magicType[itemName] = true; - if (itemName === ecConfig.CHART_TYPE_LINE) { - this._magicType[ecConfig.CHART_TYPE_BAR] = false; - } else if (itemName === ecConfig.CHART_TYPE_BAR) { - this._magicType[ecConfig.CHART_TYPE_LINE] = false; - } - if (itemName === ecConfig.CHART_TYPE_PIE) { - this._magicType[ecConfig.CHART_TYPE_FUNNEL] = false; - } else if (itemName === ecConfig.CHART_TYPE_FUNNEL) { - this._magicType[ecConfig.CHART_TYPE_PIE] = false; - } - if (itemName === ecConfig.CHART_TYPE_FORCE) { - this._magicType[ecConfig.CHART_TYPE_CHORD] = false; - } else if (itemName === ecConfig.CHART_TYPE_CHORD) { - this._magicType[ecConfig.CHART_TYPE_FORCE] = false; - } - if (itemName === _MAGICTYPE_STACK) { - this._magicType[_MAGICTYPE_TILED] = false; - } else if (itemName === _MAGICTYPE_TILED) { - this._magicType[_MAGICTYPE_STACK] = false; - } - this.messageCenter.dispatch(ecConfig.EVENT.MAGIC_TYPE_CHANGED, param.event, { magicType: this._magicType }, this.myChart); - } - return true; - }, - setMagicType: function (magicType) { - this._resetMark(); - this._magicType = magicType; - !this._isSilence && this.messageCenter.dispatch(ecConfig.EVENT.MAGIC_TYPE_CHANGED, null, { magicType: this._magicType }, this.myChart); - }, - __onCustomHandler: function (param) { - var target = param.target.style.iconType; - var featureHandler = this.option.toolbox.feature[target].onclick; - if (typeof featureHandler === 'function') { - featureHandler.call(this, this.option); - } - }, - reset: function (newOption, isRestore) { - isRestore && this.clear(); - if (this.query(newOption, 'toolbox.show') && this.query(newOption, 'toolbox.feature.magicType.show')) { - var magicType = newOption.toolbox.feature.magicType.type; - var len = magicType.length; - this._magicMap = {}; - while (len--) { - this._magicMap[magicType[len]] = true; - } - len = newOption.series.length; - var oriType; - var axis; - while (len--) { - oriType = newOption.series[len].type; - if (this._magicMap[oriType]) { - axis = newOption.xAxis instanceof Array ? newOption.xAxis[newOption.series[len].xAxisIndex || 0] : newOption.xAxis; - if (axis && (axis.type || 'category') === 'category') { - axis.__boundaryGap = axis.boundaryGap != null ? axis.boundaryGap : true; - } - axis = newOption.yAxis instanceof Array ? newOption.yAxis[newOption.series[len].yAxisIndex || 0] : newOption.yAxis; - if (axis && axis.type === 'category') { - axis.__boundaryGap = axis.boundaryGap != null ? axis.boundaryGap : true; - } - newOption.series[len].__type = oriType; - newOption.series[len].__itemStyle = zrUtil.clone(newOption.series[len].itemStyle || {}); - } - if (this._magicMap[_MAGICTYPE_STACK] || this._magicMap[_MAGICTYPE_TILED]) { - newOption.series[len].__stack = newOption.series[len].stack; - } - } - } - this._magicType = isRestore ? {} : this._magicType || {}; - for (var itemName in this._magicType) { - if (this._magicType[itemName]) { - this.option = newOption; - this.getMagicOption(); - break; - } - } - var zoomOption = newOption.dataZoom; - if (zoomOption && zoomOption.show) { - var start = zoomOption.start != null && zoomOption.start >= 0 && zoomOption.start <= 100 ? zoomOption.start : 0; - var end = zoomOption.end != null && zoomOption.end >= 0 && zoomOption.end <= 100 ? zoomOption.end : 100; - if (start > end) { - start = start + end; - end = start - end; - start = start - end; - } - this._zoomQueue = [{ - start: start, - end: end, - start2: 0, - end2: 100 - }]; - } else { - this._zoomQueue = []; - } - }, - getMagicOption: function () { - var axis; - var chartType; - if (this._magicType[ecConfig.CHART_TYPE_LINE] || this._magicType[ecConfig.CHART_TYPE_BAR]) { - var boundaryGap = this._magicType[ecConfig.CHART_TYPE_LINE] ? false : true; - for (var i = 0, l = this.option.series.length; i < l; i++) { - chartType = this.option.series[i].type; - if (chartType == ecConfig.CHART_TYPE_LINE || chartType == ecConfig.CHART_TYPE_BAR) { - axis = this.option.xAxis instanceof Array ? this.option.xAxis[this.option.series[i].xAxisIndex || 0] : this.option.xAxis; - if (axis && (axis.type || 'category') === 'category') { - axis.boundaryGap = boundaryGap ? true : axis.__boundaryGap; - } - axis = this.option.yAxis instanceof Array ? this.option.yAxis[this.option.series[i].yAxisIndex || 0] : this.option.yAxis; - if (axis && axis.type === 'category') { - axis.boundaryGap = boundaryGap ? true : axis.__boundaryGap; - } - } - } - this._defaultMagic(ecConfig.CHART_TYPE_LINE, ecConfig.CHART_TYPE_BAR); - } - this._defaultMagic(ecConfig.CHART_TYPE_CHORD, ecConfig.CHART_TYPE_FORCE); - this._defaultMagic(ecConfig.CHART_TYPE_PIE, ecConfig.CHART_TYPE_FUNNEL); - if (this._magicType[_MAGICTYPE_STACK] || this._magicType[_MAGICTYPE_TILED]) { - for (var i = 0, l = this.option.series.length; i < l; i++) { - if (this._magicType[_MAGICTYPE_STACK]) { - this.option.series[i].stack = '_ECHARTS_STACK_KENER_2014_'; - chartType = _MAGICTYPE_STACK; - } else if (this._magicType[_MAGICTYPE_TILED]) { - this.option.series[i].stack = null; - chartType = _MAGICTYPE_TILED; - } - if (this._featureOption[chartType + 'Chart']) { - zrUtil.merge(this.option.series[i], this._featureOption[chartType + 'Chart'] || {}, true); - } - } - } - return this.option; - }, - _defaultMagic: function (cType1, cType2) { - if (this._magicType[cType1] || this._magicType[cType2]) { - for (var i = 0, l = this.option.series.length; i < l; i++) { - var chartType = this.option.series[i].type; - if (chartType == cType1 || chartType == cType2) { - this.option.series[i].type = this._magicType[cType1] ? cType1 : cType2; - this.option.series[i].itemStyle = zrUtil.clone(this.option.series[i].__itemStyle); - chartType = this.option.series[i].type; - if (this._featureOption[chartType + 'Chart']) { - zrUtil.merge(this.option.series[i], this._featureOption[chartType + 'Chart'] || {}, true); - } - } - } - } - }, - silence: function (s) { - this._isSilence = s; - }, - resize: function () { - this._resetMark(); - this.clear(); - if (this.option && this.option.toolbox && this.option.toolbox.show) { - this._buildShape(); - } - if (this._dataView) { - this._dataView.resize(); - } - }, - hideDataView: function () { - if (this._dataView) { - this._dataView.hide(); - } - }, - clear: function (notMark) { - if (this.zr) { - this.zr.delShape(this.shapeList); - this.shapeList = []; - if (!notMark) { - this.zr.delShape(this._markShapeList); - this._markShapeList = []; - } - } - }, - onbeforDispose: function () { - if (this._dataView) { - this._dataView.dispose(); - this._dataView = null; - } - this._markShapeList = null; - }, - refresh: function (newOption) { - if (newOption) { - this._resetMark(); - this._resetZoom(); - newOption.toolbox = this.reformOption(newOption.toolbox); - this.option = newOption; - this.clear(true); - if (newOption.toolbox.show) { - this._buildShape(); - } - this.hideDataView(); - } - } - }; - zrUtil.inherits(Toolbox, Base); - require('../component').define('toolbox', Toolbox); - return Toolbox; -});define('echarts/component', [], function () { - var self = {}; - var _componentLibrary = {}; - self.define = function (name, clazz) { - _componentLibrary[name] = clazz; - return self; - }; - self.get = function (name) { - return _componentLibrary[name]; - }; - return self; -});define('echarts/component/title', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Rectangle', - '../config', - 'zrender/tool/util', - 'zrender/tool/area', - 'zrender/tool/color', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var RectangleShape = require('zrender/shape/Rectangle'); - var ecConfig = require('../config'); - ecConfig.title = { - zlevel: 0, - z: 6, - show: true, - text: '', - subtext: '', - x: 'left', - y: 'top', - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - itemGap: 5, - textStyle: { - fontSize: 18, - fontWeight: 'bolder', - color: '#333' - }, - subtextStyle: { color: '#aaa' } - }; - var zrUtil = require('zrender/tool/util'); - var zrArea = require('zrender/tool/area'); - var zrColor = require('zrender/tool/color'); - function Title(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Title.prototype = { - type: ecConfig.COMPONENT_TYPE_TITLE, - _buildShape: function () { - if (!this.titleOption.show) { - return; - } - this._itemGroupLocation = this._getItemGroupLocation(); - this._buildBackground(); - this._buildItem(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _buildItem: function () { - var text = this.titleOption.text; - var link = this.titleOption.link; - var target = this.titleOption.target; - var subtext = this.titleOption.subtext; - var sublink = this.titleOption.sublink; - var subtarget = this.titleOption.subtarget; - var font = this.getFont(this.titleOption.textStyle); - var subfont = this.getFont(this.titleOption.subtextStyle); - var x = this._itemGroupLocation.x; - var y = this._itemGroupLocation.y; - var width = this._itemGroupLocation.width; - var height = this._itemGroupLocation.height; - var textShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - y: y, - color: this.titleOption.textStyle.color, - text: text, - textFont: font, - textBaseline: 'top' - }, - highlightStyle: { - color: zrColor.lift(this.titleOption.textStyle.color, 1), - brushType: 'fill' - }, - hoverable: false - }; - if (link) { - textShape.hoverable = true; - textShape.clickable = true; - textShape.onclick = function () { - if (!target || target != 'self') { - window.open(link); - } else { - window.location = link; - } - }; - } - var subtextShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - y: y + height, - color: this.titleOption.subtextStyle.color, - text: subtext, - textFont: subfont, - textBaseline: 'bottom' - }, - highlightStyle: { - color: zrColor.lift(this.titleOption.subtextStyle.color, 1), - brushType: 'fill' - }, - hoverable: false - }; - if (sublink) { - subtextShape.hoverable = true; - subtextShape.clickable = true; - subtextShape.onclick = function () { - if (!subtarget || subtarget != 'self') { - window.open(sublink); - } else { - window.location = sublink; - } - }; - } - switch (this.titleOption.x) { - case 'center': - textShape.style.x = subtextShape.style.x = x + width / 2; - textShape.style.textAlign = subtextShape.style.textAlign = 'center'; - break; - case 'left': - textShape.style.x = subtextShape.style.x = x; - textShape.style.textAlign = subtextShape.style.textAlign = 'left'; - break; - case 'right': - textShape.style.x = subtextShape.style.x = x + width; - textShape.style.textAlign = subtextShape.style.textAlign = 'right'; - break; - default: - x = this.titleOption.x - 0; - x = isNaN(x) ? 0 : x; - textShape.style.x = subtextShape.style.x = x; - break; - } - if (this.titleOption.textAlign) { - textShape.style.textAlign = subtextShape.style.textAlign = this.titleOption.textAlign; - } - this.shapeList.push(new TextShape(textShape)); - subtext !== '' && this.shapeList.push(new TextShape(subtextShape)); - }, - _buildBackground: function () { - var padding = this.reformCssArray(this.titleOption.padding); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._itemGroupLocation.x - padding[3], - y: this._itemGroupLocation.y - padding[0], - width: this._itemGroupLocation.width + padding[3] + padding[1], - height: this._itemGroupLocation.height + padding[0] + padding[2], - brushType: this.titleOption.borderWidth === 0 ? 'fill' : 'both', - color: this.titleOption.backgroundColor, - strokeColor: this.titleOption.borderColor, - lineWidth: this.titleOption.borderWidth - } - })); - }, - _getItemGroupLocation: function () { - var padding = this.reformCssArray(this.titleOption.padding); - var text = this.titleOption.text; - var subtext = this.titleOption.subtext; - var font = this.getFont(this.titleOption.textStyle); - var subfont = this.getFont(this.titleOption.subtextStyle); - var totalWidth = Math.max(zrArea.getTextWidth(text, font), zrArea.getTextWidth(subtext, subfont)); - var totalHeight = zrArea.getTextHeight(text, font) + (subtext === '' ? 0 : this.titleOption.itemGap + zrArea.getTextHeight(subtext, subfont)); - var x; - var zrWidth = this.zr.getWidth(); - switch (this.titleOption.x) { - case 'center': - x = Math.floor((zrWidth - totalWidth) / 2); - break; - case 'left': - x = padding[3] + this.titleOption.borderWidth; - break; - case 'right': - x = zrWidth - totalWidth - padding[1] - this.titleOption.borderWidth; - break; - default: - x = this.titleOption.x - 0; - x = isNaN(x) ? 0 : x; - break; - } - var y; - var zrHeight = this.zr.getHeight(); - switch (this.titleOption.y) { - case 'top': - y = padding[0] + this.titleOption.borderWidth; - break; - case 'bottom': - y = zrHeight - totalHeight - padding[2] - this.titleOption.borderWidth; - break; - case 'center': - y = Math.floor((zrHeight - totalHeight) / 2); - break; - default: - y = this.titleOption.y - 0; - y = isNaN(y) ? 0 : y; - break; - } - return { - x: x, - y: y, - width: totalWidth, - height: totalHeight - }; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.option.title = this.reformOption(this.option.title); - this.titleOption = this.option.title; - this.titleOption.textStyle = this.getTextStyle(this.titleOption.textStyle); - this.titleOption.subtextStyle = this.getTextStyle(this.titleOption.subtextStyle); - } - this.clear(); - this._buildShape(); - } - }; - zrUtil.inherits(Title, Base); - require('../component').define('title', Title); - return Title; -});define('echarts/component/tooltip', [ - 'require', - './base', - '../util/shape/Cross', - 'zrender/shape/Line', - 'zrender/shape/Rectangle', - '../config', - '../util/ecData', - 'zrender/config', - 'zrender/tool/event', - 'zrender/tool/area', - 'zrender/tool/color', - 'zrender/tool/util', - 'zrender/shape/Base', - '../component' -], function (require) { - var Base = require('./base'); - var CrossShape = require('../util/shape/Cross'); - var LineShape = require('zrender/shape/Line'); - var RectangleShape = require('zrender/shape/Rectangle'); - var rectangleInstance = new RectangleShape({}); - var ecConfig = require('../config'); - ecConfig.tooltip = { - zlevel: 1, - z: 8, - show: true, - showContent: true, - trigger: 'item', - islandFormatter: '{a}
{b} : {c}', - showDelay: 20, - hideDelay: 100, - transitionDuration: 0.4, - enterable: false, - backgroundColor: 'rgba(0,0,0,0.7)', - borderColor: '#333', - borderRadius: 4, - borderWidth: 0, - padding: 5, - axisPointer: { - type: 'line', - lineStyle: { - color: '#48b', - width: 2, - type: 'solid' - }, - crossStyle: { - color: '#1e90ff', - width: 1, - type: 'dashed' - }, - shadowStyle: { - color: 'rgba(150,150,150,0.3)', - width: 'auto', - type: 'default' - } - }, - textStyle: { color: '#fff' } - }; - var ecData = require('../util/ecData'); - var zrConfig = require('zrender/config'); - var zrEvent = require('zrender/tool/event'); - var zrArea = require('zrender/tool/area'); - var zrColor = require('zrender/tool/color'); - var zrUtil = require('zrender/tool/util'); - var zrShapeBase = require('zrender/shape/Base'); - function Tooltip(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.dom = myChart.dom; - var self = this; - self._onmousemove = function (param) { - return self.__onmousemove(param); - }; - self._onglobalout = function (param) { - return self.__onglobalout(param); - }; - this.zr.on(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); - this.zr.on(zrConfig.EVENT.GLOBALOUT, self._onglobalout); - self._hide = function (param) { - return self.__hide(param); - }; - self._tryShow = function (param) { - return self.__tryShow(param); - }; - self._refixed = function (param) { - return self.__refixed(param); - }; - self._setContent = function (ticket, res) { - return self.__setContent(ticket, res); - }; - this._tDom = this._tDom || document.createElement('div'); - this._tDom.onselectstart = function () { - return false; - }; - this._tDom.onmouseover = function () { - self._mousein = true; - }; - this._tDom.onmouseout = function () { - self._mousein = false; - }; - this._tDom.className = 'echarts-tooltip'; - this._tDom.style.position = 'absolute'; - this.hasAppend = false; - this._axisLineShape && this.zr.delShape(this._axisLineShape.id); - this._axisLineShape = new LineShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - invisible: true, - hoverable: false - }); - this.shapeList.push(this._axisLineShape); - this.zr.addShape(this._axisLineShape); - this._axisShadowShape && this.zr.delShape(this._axisShadowShape.id); - this._axisShadowShape = new LineShape({ - zlevel: this.getZlevelBase(), - z: 1, - invisible: true, - hoverable: false - }); - this.shapeList.push(this._axisShadowShape); - this.zr.addShape(this._axisShadowShape); - this._axisCrossShape && this.zr.delShape(this._axisCrossShape.id); - this._axisCrossShape = new CrossShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - invisible: true, - hoverable: false - }); - this.shapeList.push(this._axisCrossShape); - this.zr.addShape(this._axisCrossShape); - this.showing = false; - this.refresh(option); - } - Tooltip.prototype = { - type: ecConfig.COMPONENT_TYPE_TOOLTIP, - _gCssText: 'position:absolute;display:block;border-style:solid;white-space:nowrap;', - _style: function (opt) { - if (!opt) { - return ''; - } - var cssText = []; - if (opt.transitionDuration) { - var transitionText = 'left ' + opt.transitionDuration + 's,' + 'top ' + opt.transitionDuration + 's'; - cssText.push('transition:' + transitionText); - cssText.push('-moz-transition:' + transitionText); - cssText.push('-webkit-transition:' + transitionText); - cssText.push('-o-transition:' + transitionText); - } - if (opt.backgroundColor) { - cssText.push('background-Color:' + zrColor.toHex(opt.backgroundColor)); - cssText.push('filter:alpha(opacity=70)'); - cssText.push('background-Color:' + opt.backgroundColor); - } - if (opt.borderWidth != null) { - cssText.push('border-width:' + opt.borderWidth + 'px'); - } - if (opt.borderColor != null) { - cssText.push('border-color:' + opt.borderColor); - } - if (opt.borderRadius != null) { - cssText.push('border-radius:' + opt.borderRadius + 'px'); - cssText.push('-moz-border-radius:' + opt.borderRadius + 'px'); - cssText.push('-webkit-border-radius:' + opt.borderRadius + 'px'); - cssText.push('-o-border-radius:' + opt.borderRadius + 'px'); - } - var textStyle = opt.textStyle; - if (textStyle) { - textStyle.color && cssText.push('color:' + textStyle.color); - textStyle.decoration && cssText.push('text-decoration:' + textStyle.decoration); - textStyle.align && cssText.push('text-align:' + textStyle.align); - textStyle.fontFamily && cssText.push('font-family:' + textStyle.fontFamily); - textStyle.fontSize && cssText.push('font-size:' + textStyle.fontSize + 'px'); - textStyle.fontSize && cssText.push('line-height:' + Math.round(textStyle.fontSize * 3 / 2) + 'px'); - textStyle.fontStyle && cssText.push('font-style:' + textStyle.fontStyle); - textStyle.fontWeight && cssText.push('font-weight:' + textStyle.fontWeight); - } - var padding = opt.padding; - if (padding != null) { - padding = this.reformCssArray(padding); - cssText.push('padding:' + padding[0] + 'px ' + padding[1] + 'px ' + padding[2] + 'px ' + padding[3] + 'px'); - } - cssText = cssText.join(';') + ';'; - return cssText; - }, - __hide: function () { - this._lastDataIndex = -1; - this._lastSeriesIndex = -1; - this._lastItemTriggerId = -1; - if (this._tDom) { - this._tDom.style.display = 'none'; - } - var needRefresh = false; - if (!this._axisLineShape.invisible) { - this._axisLineShape.invisible = true; - this.zr.modShape(this._axisLineShape.id); - needRefresh = true; - } - if (!this._axisShadowShape.invisible) { - this._axisShadowShape.invisible = true; - this.zr.modShape(this._axisShadowShape.id); - needRefresh = true; - } - if (!this._axisCrossShape.invisible) { - this._axisCrossShape.invisible = true; - this.zr.modShape(this._axisCrossShape.id); - needRefresh = true; - } - if (this._lastTipShape && this._lastTipShape.tipShape.length > 0) { - this.zr.delShape(this._lastTipShape.tipShape); - this._lastTipShape = false; - this.shapeList.length = 2; - } - needRefresh && this.zr.refreshNextFrame(); - this.showing = false; - }, - _show: function (position, x, y, specialCssText) { - var domHeight = this._tDom.offsetHeight; - var domWidth = this._tDom.offsetWidth; - if (position) { - if (typeof position === 'function') { - position = position([ - x, - y - ]); - } - if (position instanceof Array) { - x = position[0]; - y = position[1]; - } - } - if (x + domWidth > this._zrWidth) { - x -= domWidth + 40; - } - if (y + domHeight > this._zrHeight) { - y -= domHeight - 20; - } - if (y < 20) { - y = 0; - } - this._tDom.style.cssText = this._gCssText + this._defaultCssText + (specialCssText ? specialCssText : '') + 'left:' + x + 'px;top:' + y + 'px;'; - if (domHeight < 10 || domWidth < 10) { - setTimeout(this._refixed, 20); - } - this.showing = true; - }, - __refixed: function () { - if (this._tDom) { - var cssText = ''; - var domHeight = this._tDom.offsetHeight; - var domWidth = this._tDom.offsetWidth; - if (this._tDom.offsetLeft + domWidth > this._zrWidth) { - cssText += 'left:' + (this._zrWidth - domWidth - 20) + 'px;'; - } - if (this._tDom.offsetTop + domHeight > this._zrHeight) { - cssText += 'top:' + (this._zrHeight - domHeight - 10) + 'px;'; - } - if (cssText !== '') { - this._tDom.style.cssText += cssText; - } - } - }, - __tryShow: function () { - var needShow; - var trigger; - if (!this._curTarget) { - this._findPolarTrigger() || this._findAxisTrigger(); - } else { - if (this._curTarget._type === 'island' && this.option.tooltip.show) { - this._showItemTrigger(); - return; - } - var serie = ecData.get(this._curTarget, 'series'); - var data = ecData.get(this._curTarget, 'data'); - needShow = this.deepQuery([ - data, - serie, - this.option - ], 'tooltip.show'); - if (serie == null || data == null || !needShow) { - clearTimeout(this._hidingTicket); - clearTimeout(this._showingTicket); - this._hidingTicket = setTimeout(this._hide, this._hideDelay); - } else { - trigger = this.deepQuery([ - data, - serie, - this.option - ], 'tooltip.trigger'); - trigger === 'axis' ? this._showAxisTrigger(serie.xAxisIndex, serie.yAxisIndex, ecData.get(this._curTarget, 'dataIndex')) : this._showItemTrigger(); - } - } - }, - _findAxisTrigger: function () { - if (!this.component.xAxis || !this.component.yAxis) { - this._hidingTicket = setTimeout(this._hide, this._hideDelay); - return; - } - var series = this.option.series; - var xAxisIndex; - var yAxisIndex; - for (var i = 0, l = series.length; i < l; i++) { - if (this.deepQuery([ - series[i], - this.option - ], 'tooltip.trigger') === 'axis') { - xAxisIndex = series[i].xAxisIndex || 0; - yAxisIndex = series[i].yAxisIndex || 0; - if (this.component.xAxis.getAxis(xAxisIndex) && this.component.xAxis.getAxis(xAxisIndex).type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { - this._showAxisTrigger(xAxisIndex, yAxisIndex, this._getNearestDataIndex('x', this.component.xAxis.getAxis(xAxisIndex))); - return; - } else if (this.component.yAxis.getAxis(yAxisIndex) && this.component.yAxis.getAxis(yAxisIndex).type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { - this._showAxisTrigger(xAxisIndex, yAxisIndex, this._getNearestDataIndex('y', this.component.yAxis.getAxis(yAxisIndex))); - return; - } else { - this._showAxisTrigger(xAxisIndex, yAxisIndex, -1); - return; - } - } - } - if (this.option.tooltip.axisPointer.type === 'cross') { - this._showAxisTrigger(-1, -1, -1); - } - }, - _findPolarTrigger: function () { - if (!this.component.polar) { - return false; - } - var x = zrEvent.getX(this._event); - var y = zrEvent.getY(this._event); - var polarIndex = this.component.polar.getNearestIndex([ - x, - y - ]); - var valueIndex; - if (polarIndex) { - valueIndex = polarIndex.valueIndex; - polarIndex = polarIndex.polarIndex; - } else { - polarIndex = -1; - } - if (polarIndex != -1) { - return this._showPolarTrigger(polarIndex, valueIndex); - } - return false; - }, - _getNearestDataIndex: function (direction, categoryAxis) { - var dataIndex = -1; - var x = zrEvent.getX(this._event); - var y = zrEvent.getY(this._event); - if (direction === 'x') { - var left; - var right; - var xEnd = this.component.grid.getXend(); - var curCoord = categoryAxis.getCoordByIndex(dataIndex); - while (curCoord < xEnd) { - right = curCoord; - if (curCoord <= x) { - left = curCoord; - } else { - break; - } - curCoord = categoryAxis.getCoordByIndex(++dataIndex); - } - if (dataIndex <= 0) { - dataIndex = 0; - } else if (x - left <= right - x) { - dataIndex -= 1; - } else { - if (categoryAxis.getNameByIndex(dataIndex) == null) { - dataIndex -= 1; - } - } - return dataIndex; - } else { - var top; - var bottom; - var yStart = this.component.grid.getY(); - var curCoord = categoryAxis.getCoordByIndex(dataIndex); - while (curCoord > yStart) { - top = curCoord; - if (curCoord >= y) { - bottom = curCoord; - } else { - break; - } - curCoord = categoryAxis.getCoordByIndex(++dataIndex); - } - if (dataIndex <= 0) { - dataIndex = 0; - } else if (y - top >= bottom - y) { - dataIndex -= 1; - } else { - if (categoryAxis.getNameByIndex(dataIndex) == null) { - dataIndex -= 1; - } - } - return dataIndex; - } - return -1; - }, - _showAxisTrigger: function (xAxisIndex, yAxisIndex, dataIndex) { - !this._event.connectTrigger && this.messageCenter.dispatch(ecConfig.EVENT.TOOLTIP_IN_GRID, this._event, null, this.myChart); - if (this.component.xAxis == null || this.component.yAxis == null || xAxisIndex == null || yAxisIndex == null) { - clearTimeout(this._hidingTicket); - clearTimeout(this._showingTicket); - this._hidingTicket = setTimeout(this._hide, this._hideDelay); - return; - } - var series = this.option.series; - var seriesArray = []; - var seriesIndex = []; - var categoryAxis; - var formatter; - var position; - var showContent; - var specialCssText = ''; - if (this.option.tooltip.trigger === 'axis') { - if (!this.option.tooltip.show) { - return; - } - formatter = this.option.tooltip.formatter; - position = this.option.tooltip.position; - } - var axisLayout = xAxisIndex != -1 && this.component.xAxis.getAxis(xAxisIndex).type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY ? 'xAxis' : yAxisIndex != -1 && this.component.yAxis.getAxis(yAxisIndex).type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY ? 'yAxis' : false; - var x; - var y; - if (axisLayout) { - var axisIndex = axisLayout == 'xAxis' ? xAxisIndex : yAxisIndex; - categoryAxis = this.component[axisLayout].getAxis(axisIndex); - for (var i = 0, l = series.length; i < l; i++) { - if (!this._isSelected(series[i].name)) { - continue; - } - if (series[i][axisLayout + 'Index'] === axisIndex && this.deepQuery([ - series[i], - this.option - ], 'tooltip.trigger') === 'axis') { - showContent = this.query(series[i], 'tooltip.showContent') || showContent; - formatter = this.query(series[i], 'tooltip.formatter') || formatter; - position = this.query(series[i], 'tooltip.position') || position; - specialCssText += this._style(this.query(series[i], 'tooltip')); - if (series[i].stack != null && axisLayout == 'xAxis') { - seriesArray.unshift(series[i]); - seriesIndex.unshift(i); - } else { - seriesArray.push(series[i]); - seriesIndex.push(i); - } - } - } - this.messageCenter.dispatch(ecConfig.EVENT.TOOLTIP_HOVER, this._event, { - seriesIndex: seriesIndex, - dataIndex: dataIndex - }, this.myChart); - var rect; - if (axisLayout == 'xAxis') { - x = this.subPixelOptimize(categoryAxis.getCoordByIndex(dataIndex), this._axisLineWidth); - y = zrEvent.getY(this._event); - rect = [ - x, - this.component.grid.getY(), - x, - this.component.grid.getYend() - ]; - } else { - x = zrEvent.getX(this._event); - y = this.subPixelOptimize(categoryAxis.getCoordByIndex(dataIndex), this._axisLineWidth); - rect = [ - this.component.grid.getX(), - y, - this.component.grid.getXend(), - y - ]; - } - this._styleAxisPointer(seriesArray, rect[0], rect[1], rect[2], rect[3], categoryAxis.getGap(), x, y); - } else { - x = zrEvent.getX(this._event); - y = zrEvent.getY(this._event); - this._styleAxisPointer(series, this.component.grid.getX(), y, this.component.grid.getXend(), y, 0, x, y); - if (dataIndex >= 0) { - this._showItemTrigger(true); - } else { - clearTimeout(this._hidingTicket); - clearTimeout(this._showingTicket); - this._tDom.style.display = 'none'; - } - } - if (seriesArray.length > 0) { - this._lastItemTriggerId = -1; - if (this._lastDataIndex != dataIndex || this._lastSeriesIndex != seriesIndex[0]) { - this._lastDataIndex = dataIndex; - this._lastSeriesIndex = seriesIndex[0]; - var data; - var value; - if (typeof formatter === 'function') { - var params = []; - for (var i = 0, l = seriesArray.length; i < l; i++) { - data = seriesArray[i].data[dataIndex]; - value = this.getDataFromOption(data, '-'); - params.push({ - seriesIndex: seriesIndex[i], - seriesName: seriesArray[i].name || '', - series: seriesArray[i], - dataIndex: dataIndex, - data: data, - name: categoryAxis.getNameByIndex(dataIndex), - value: value, - 0: seriesArray[i].name || '', - 1: categoryAxis.getNameByIndex(dataIndex), - 2: value, - 3: data - }); - } - this._curTicket = 'axis:' + dataIndex; - this._tDom.innerHTML = formatter.call(this.myChart, params, this._curTicket, this._setContent); - } else if (typeof formatter === 'string') { - this._curTicket = NaN; - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}'); - for (var i = 0, l = seriesArray.length; i < l; i++) { - formatter = formatter.replace('{a' + i + '}', this._encodeHTML(seriesArray[i].name || '')); - formatter = formatter.replace('{b' + i + '}', this._encodeHTML(categoryAxis.getNameByIndex(dataIndex))); - data = seriesArray[i].data[dataIndex]; - data = this.getDataFromOption(data, '-'); - formatter = formatter.replace('{c' + i + '}', data instanceof Array ? data : this.numAddCommas(data)); - } - this._tDom.innerHTML = formatter; - } else { - this._curTicket = NaN; - formatter = this._encodeHTML(categoryAxis.getNameByIndex(dataIndex)); - for (var i = 0, l = seriesArray.length; i < l; i++) { - formatter += '
' + this._encodeHTML(seriesArray[i].name || '') + ' : '; - data = seriesArray[i].data[dataIndex]; - data = this.getDataFromOption(data, '-'); - formatter += data instanceof Array ? data : this.numAddCommas(data); - } - this._tDom.innerHTML = formatter; - } - } - if (showContent === false || !this.option.tooltip.showContent) { - return; - } - if (!this.hasAppend) { - this._tDom.style.left = this._zrWidth / 2 + 'px'; - this._tDom.style.top = this._zrHeight / 2 + 'px'; - this.dom.firstChild.appendChild(this._tDom); - this.hasAppend = true; - } - this._show(position, x + 10, y + 10, specialCssText); - } - }, - _showPolarTrigger: function (polarIndex, dataIndex) { - if (this.component.polar == null || polarIndex == null || dataIndex == null || dataIndex < 0) { - return false; - } - var series = this.option.series; - var seriesArray = []; - var seriesIndex = []; - var formatter; - var position; - var showContent; - var specialCssText = ''; - if (this.option.tooltip.trigger === 'axis') { - if (!this.option.tooltip.show) { - return false; - } - formatter = this.option.tooltip.formatter; - position = this.option.tooltip.position; - } - var indicatorName = this.option.polar[polarIndex].indicator[dataIndex].text; - for (var i = 0, l = series.length; i < l; i++) { - if (!this._isSelected(series[i].name)) { - continue; - } - if (series[i].polarIndex === polarIndex && this.deepQuery([ - series[i], - this.option - ], 'tooltip.trigger') === 'axis') { - showContent = this.query(series[i], 'tooltip.showContent') || showContent; - formatter = this.query(series[i], 'tooltip.formatter') || formatter; - position = this.query(series[i], 'tooltip.position') || position; - specialCssText += this._style(this.query(series[i], 'tooltip')); - seriesArray.push(series[i]); - seriesIndex.push(i); - } - } - if (seriesArray.length > 0) { - var polarData; - var data; - var value; - var params = []; - for (var i = 0, l = seriesArray.length; i < l; i++) { - polarData = seriesArray[i].data; - for (var j = 0, k = polarData.length; j < k; j++) { - data = polarData[j]; - if (!this._isSelected(data.name)) { - continue; - } - data = data != null ? data : { - name: '', - value: { dataIndex: '-' } - }; - value = this.getDataFromOption(data.value[dataIndex]); - params.push({ - seriesIndex: seriesIndex[i], - seriesName: seriesArray[i].name || '', - series: seriesArray[i], - dataIndex: dataIndex, - data: data, - name: data.name, - indicator: indicatorName, - value: value, - 0: seriesArray[i].name || '', - 1: data.name, - 2: value, - 3: indicatorName - }); - } - } - if (params.length <= 0) { - return; - } - this._lastItemTriggerId = -1; - if (this._lastDataIndex != dataIndex || this._lastSeriesIndex != seriesIndex[0]) { - this._lastDataIndex = dataIndex; - this._lastSeriesIndex = seriesIndex[0]; - if (typeof formatter === 'function') { - this._curTicket = 'axis:' + dataIndex; - this._tDom.innerHTML = formatter.call(this.myChart, params, this._curTicket, this._setContent); - } else if (typeof formatter === 'string') { - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{d}', '{d0}'); - for (var i = 0, l = params.length; i < l; i++) { - formatter = formatter.replace('{a' + i + '}', this._encodeHTML(params[i].seriesName)); - formatter = formatter.replace('{b' + i + '}', this._encodeHTML(params[i].name)); - formatter = formatter.replace('{c' + i + '}', this.numAddCommas(params[i].value)); - formatter = formatter.replace('{d' + i + '}', this._encodeHTML(params[i].indicator)); - } - this._tDom.innerHTML = formatter; - } else { - formatter = this._encodeHTML(params[0].name) + '
' + this._encodeHTML(params[0].indicator) + ' : ' + this.numAddCommas(params[0].value); - for (var i = 1, l = params.length; i < l; i++) { - formatter += '
' + this._encodeHTML(params[i].name) + '
'; - formatter += this._encodeHTML(params[i].indicator) + ' : ' + this.numAddCommas(params[i].value); - } - this._tDom.innerHTML = formatter; - } - } - if (showContent === false || !this.option.tooltip.showContent) { - return; - } - if (!this.hasAppend) { - this._tDom.style.left = this._zrWidth / 2 + 'px'; - this._tDom.style.top = this._zrHeight / 2 + 'px'; - this.dom.firstChild.appendChild(this._tDom); - this.hasAppend = true; - } - this._show(position, zrEvent.getX(this._event), zrEvent.getY(this._event), specialCssText); - return true; - } - }, - _showItemTrigger: function (axisTrigger) { - if (!this._curTarget) { - return; - } - var serie = ecData.get(this._curTarget, 'series'); - var seriesIndex = ecData.get(this._curTarget, 'seriesIndex'); - var data = ecData.get(this._curTarget, 'data'); - var dataIndex = ecData.get(this._curTarget, 'dataIndex'); - var name = ecData.get(this._curTarget, 'name'); - var value = ecData.get(this._curTarget, 'value'); - var special = ecData.get(this._curTarget, 'special'); - var special2 = ecData.get(this._curTarget, 'special2'); - var queryTarget = [ - data, - serie, - this.option - ]; - var formatter; - var position; - var showContent; - var specialCssText = ''; - if (this._curTarget._type != 'island') { - var trigger = axisTrigger ? 'axis' : 'item'; - if (this.option.tooltip.trigger === trigger) { - formatter = this.option.tooltip.formatter; - position = this.option.tooltip.position; - } - if (this.query(serie, 'tooltip.trigger') === trigger) { - showContent = this.query(serie, 'tooltip.showContent') || showContent; - formatter = this.query(serie, 'tooltip.formatter') || formatter; - position = this.query(serie, 'tooltip.position') || position; - specialCssText += this._style(this.query(serie, 'tooltip')); - } - showContent = this.query(data, 'tooltip.showContent') || showContent; - formatter = this.query(data, 'tooltip.formatter') || formatter; - position = this.query(data, 'tooltip.position') || position; - specialCssText += this._style(this.query(data, 'tooltip')); - } else { - this._lastItemTriggerId = NaN; - showContent = this.deepQuery(queryTarget, 'tooltip.showContent'); - formatter = this.deepQuery(queryTarget, 'tooltip.islandFormatter'); - position = this.deepQuery(queryTarget, 'tooltip.islandPosition'); - } - this._lastDataIndex = -1; - this._lastSeriesIndex = -1; - if (this._lastItemTriggerId !== this._curTarget.id) { - this._lastItemTriggerId = this._curTarget.id; - if (typeof formatter === 'function') { - this._curTicket = (serie.name || '') + ':' + dataIndex; - this._tDom.innerHTML = formatter.call(this.myChart, { - seriesIndex: seriesIndex, - seriesName: serie.name || '', - series: serie, - dataIndex: dataIndex, - data: data, - name: name, - value: value, - percent: special, - indicator: special, - value2: special2, - indicator2: special2, - 0: serie.name || '', - 1: name, - 2: value, - 3: special, - 4: special2, - 5: data, - 6: seriesIndex, - 7: dataIndex - }, this._curTicket, this._setContent); - } else if (typeof formatter === 'string') { - this._curTicket = NaN; - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}'); - formatter = formatter.replace('{a0}', this._encodeHTML(serie.name || '')).replace('{b0}', this._encodeHTML(name)).replace('{c0}', value instanceof Array ? value : this.numAddCommas(value)); - formatter = formatter.replace('{d}', '{d0}').replace('{d0}', special || ''); - formatter = formatter.replace('{e}', '{e0}').replace('{e0}', ecData.get(this._curTarget, 'special2') || ''); - this._tDom.innerHTML = formatter; - } else { - this._curTicket = NaN; - if (serie.type === ecConfig.CHART_TYPE_RADAR && special) { - this._tDom.innerHTML = this._itemFormatter.radar.call(this, serie, name, value, special); - } else if (serie.type === ecConfig.CHART_TYPE_EVENTRIVER) { - this._tDom.innerHTML = this._itemFormatter.eventRiver.call(this, serie, name, value, data); - } else { - this._tDom.innerHTML = '' + (serie.name != null ? this._encodeHTML(serie.name) + '
' : '') + (name === '' ? '' : this._encodeHTML(name) + ' : ') + (value instanceof Array ? value : this.numAddCommas(value)); - } - } - } - var x = zrEvent.getX(this._event); - var y = zrEvent.getY(this._event); - if (this.deepQuery(queryTarget, 'tooltip.axisPointer.show') && this.component.grid) { - this._styleAxisPointer([serie], this.component.grid.getX(), y, this.component.grid.getXend(), y, 0, x, y); - } else { - this._hide(); - } - if (showContent === false || !this.option.tooltip.showContent) { - return; - } - if (!this.hasAppend) { - this._tDom.style.left = this._zrWidth / 2 + 'px'; - this._tDom.style.top = this._zrHeight / 2 + 'px'; - this.dom.firstChild.appendChild(this._tDom); - this.hasAppend = true; - } - this._show(position, x + 20, y - 20, specialCssText); - }, - _itemFormatter: { - radar: function (serie, name, value, indicator) { - var html = ''; - html += this._encodeHTML(name === '' ? serie.name || '' : name); - html += html === '' ? '' : '
'; - for (var i = 0; i < indicator.length; i++) { - html += this._encodeHTML(indicator[i].text) + ' : ' + this.numAddCommas(value[i]) + '
'; - } - return html; - }, - chord: function (serie, name, value, special, special2) { - if (special2 == null) { - return this._encodeHTML(name) + ' (' + this.numAddCommas(value) + ')'; - } else { - var name1 = this._encodeHTML(name); - var name2 = this._encodeHTML(special); - return '' + (serie.name != null ? this._encodeHTML(serie.name) + '
' : '') + name1 + ' -> ' + name2 + ' (' + this.numAddCommas(value) + ')' + '
' + name2 + ' -> ' + name1 + ' (' + this.numAddCommas(special2) + ')'; - } - }, - eventRiver: function (serie, name, value, data) { - var html = ''; - html += this._encodeHTML(serie.name === '' ? '' : serie.name + ' : '); - html += this._encodeHTML(name); - html += html === '' ? '' : '
'; - data = data.evolution; - for (var i = 0, l = data.length; i < l; i++) { - html += '
'; - if (!data[i].detail) { - continue; - } - if (data[i].detail.img) { - html += ''; - } - html += '
' + data[i].time + '
'; - html += ''; - html += data[i].detail.text + '
'; - html += '
'; - } - return html; - } - }, - _styleAxisPointer: function (seriesArray, xStart, yStart, xEnd, yEnd, gap, x, y) { - if (seriesArray.length > 0) { - var queryTarget; - var curType; - var axisPointer = this.option.tooltip.axisPointer; - var pointType = axisPointer.type; - var style = { - line: {}, - cross: {}, - shadow: {} - }; - for (var pType in style) { - style[pType].color = axisPointer[pType + 'Style'].color; - style[pType].width = axisPointer[pType + 'Style'].width; - style[pType].type = axisPointer[pType + 'Style'].type; - } - for (var i = 0, l = seriesArray.length; i < l; i++) { - queryTarget = seriesArray[i]; - curType = this.query(queryTarget, 'tooltip.axisPointer.type'); - pointType = curType || pointType; - if (curType) { - style[curType].color = this.query(queryTarget, 'tooltip.axisPointer.' + curType + 'Style.color') || style[curType].color; - style[curType].width = this.query(queryTarget, 'tooltip.axisPointer.' + curType + 'Style.width') || style[curType].width; - style[curType].type = this.query(queryTarget, 'tooltip.axisPointer.' + curType + 'Style.type') || style[curType].type; - } - } - if (pointType === 'line') { - var lineWidth = style.line.width; - var isVertical = xStart == xEnd; - this._axisLineShape.style = { - xStart: isVertical ? this.subPixelOptimize(xStart, lineWidth) : xStart, - yStart: isVertical ? yStart : this.subPixelOptimize(yStart, lineWidth), - xEnd: isVertical ? this.subPixelOptimize(xEnd, lineWidth) : xEnd, - yEnd: isVertical ? yEnd : this.subPixelOptimize(yEnd, lineWidth), - strokeColor: style.line.color, - lineWidth: lineWidth, - lineType: style.line.type - }; - this._axisLineShape.invisible = false; - this.zr.modShape(this._axisLineShape.id); - } else if (pointType === 'cross') { - var crossWidth = style.cross.width; - this._axisCrossShape.style = { - brushType: 'stroke', - rect: this.component.grid.getArea(), - x: this.subPixelOptimize(x, crossWidth), - y: this.subPixelOptimize(y, crossWidth), - text: ('( ' + this.component.xAxis.getAxis(0).getValueFromCoord(x) + ' , ' + this.component.yAxis.getAxis(0).getValueFromCoord(y) + ' )').replace(' , ', ' ').replace(' , ', ' '), - textPosition: 'specific', - strokeColor: style.cross.color, - lineWidth: crossWidth, - lineType: style.cross.type - }; - if (this.component.grid.getXend() - x > 100) { - this._axisCrossShape.style.textAlign = 'left'; - this._axisCrossShape.style.textX = x + 10; - } else { - this._axisCrossShape.style.textAlign = 'right'; - this._axisCrossShape.style.textX = x - 10; - } - if (y - this.component.grid.getY() > 50) { - this._axisCrossShape.style.textBaseline = 'bottom'; - this._axisCrossShape.style.textY = y - 10; - } else { - this._axisCrossShape.style.textBaseline = 'top'; - this._axisCrossShape.style.textY = y + 10; - } - this._axisCrossShape.invisible = false; - this.zr.modShape(this._axisCrossShape.id); - } else if (pointType === 'shadow') { - if (style.shadow.width == null || style.shadow.width === 'auto' || isNaN(style.shadow.width)) { - style.shadow.width = gap; - } - if (xStart === xEnd) { - if (Math.abs(this.component.grid.getX() - xStart) < 2) { - style.shadow.width /= 2; - xStart = xEnd = xEnd + style.shadow.width / 2; - } else if (Math.abs(this.component.grid.getXend() - xStart) < 2) { - style.shadow.width /= 2; - xStart = xEnd = xEnd - style.shadow.width / 2; - } - } else if (yStart === yEnd) { - if (Math.abs(this.component.grid.getY() - yStart) < 2) { - style.shadow.width /= 2; - yStart = yEnd = yEnd + style.shadow.width / 2; - } else if (Math.abs(this.component.grid.getYend() - yStart) < 2) { - style.shadow.width /= 2; - yStart = yEnd = yEnd - style.shadow.width / 2; - } - } - this._axisShadowShape.style = { - xStart: xStart, - yStart: yStart, - xEnd: xEnd, - yEnd: yEnd, - strokeColor: style.shadow.color, - lineWidth: style.shadow.width - }; - this._axisShadowShape.invisible = false; - this.zr.modShape(this._axisShadowShape.id); - } - this.zr.refreshNextFrame(); - } - }, - __onmousemove: function (param) { - clearTimeout(this._hidingTicket); - clearTimeout(this._showingTicket); - if (this._mousein && this._enterable) { - return; - } - var target = param.target; - var mx = zrEvent.getX(param.event); - var my = zrEvent.getY(param.event); - if (!target) { - this._curTarget = false; - this._event = param.event; - this._event.zrenderX = mx; - this._event.zrenderY = my; - if (this._needAxisTrigger && this.component.grid && zrArea.isInside(rectangleInstance, this.component.grid.getArea(), mx, my)) { - this._showingTicket = setTimeout(this._tryShow, this._showDelay); - } else if (this._needAxisTrigger && this.component.polar && this.component.polar.isInside([ - mx, - my - ]) != -1) { - this._showingTicket = setTimeout(this._tryShow, this._showDelay); - } else { - !this._event.connectTrigger && this.messageCenter.dispatch(ecConfig.EVENT.TOOLTIP_OUT_GRID, this._event, null, this.myChart); - this._hidingTicket = setTimeout(this._hide, this._hideDelay); - } - } else { - this._curTarget = target; - this._event = param.event; - this._event.zrenderX = mx; - this._event.zrenderY = my; - var polarIndex; - if (this._needAxisTrigger && this.component.polar && (polarIndex = this.component.polar.isInside([ - mx, - my - ])) != -1) { - var series = this.option.series; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].polarIndex === polarIndex && this.deepQuery([ - series[i], - this.option - ], 'tooltip.trigger') === 'axis') { - this._curTarget = null; - break; - } - } - } - this._showingTicket = setTimeout(this._tryShow, this._showDelay); - } - }, - __onglobalout: function () { - clearTimeout(this._hidingTicket); - clearTimeout(this._showingTicket); - this._hidingTicket = setTimeout(this._hide, this._hideDelay); - }, - __setContent: function (ticket, content) { - if (!this._tDom) { - return; - } - if (ticket === this._curTicket) { - this._tDom.innerHTML = content; - } - setTimeout(this._refixed, 20); - }, - ontooltipHover: function (param, tipShape) { - if (!this._lastTipShape || this._lastTipShape && this._lastTipShape.dataIndex != param.dataIndex) { - if (this._lastTipShape && this._lastTipShape.tipShape.length > 0) { - this.zr.delShape(this._lastTipShape.tipShape); - this.shapeList.length = 2; - } - for (var i = 0, l = tipShape.length; i < l; i++) { - tipShape[i].zlevel = this.getZlevelBase(); - tipShape[i].z = this.getZBase(); - tipShape[i].style = zrShapeBase.prototype.getHighlightStyle(tipShape[i].style, tipShape[i].highlightStyle); - tipShape[i].draggable = false; - tipShape[i].hoverable = false; - tipShape[i].clickable = false; - tipShape[i].ondragend = null; - tipShape[i].ondragover = null; - tipShape[i].ondrop = null; - this.shapeList.push(tipShape[i]); - this.zr.addShape(tipShape[i]); - } - this._lastTipShape = { - dataIndex: param.dataIndex, - tipShape: tipShape - }; - } - }, - ondragend: function () { - this._hide(); - }, - onlegendSelected: function (param) { - this._selectedMap = param.selected; - }, - _setSelectedMap: function () { - if (this.component.legend) { - this._selectedMap = zrUtil.clone(this.component.legend.getSelectedMap()); - } else { - this._selectedMap = {}; - } - }, - _isSelected: function (itemName) { - if (this._selectedMap[itemName] != null) { - return this._selectedMap[itemName]; - } else { - return true; - } - }, - showTip: function (params) { - if (!params) { - return; - } - var seriesIndex; - var series = this.option.series; - if (params.seriesIndex != null) { - seriesIndex = params.seriesIndex; - } else { - var seriesName = params.seriesName; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].name === seriesName) { - seriesIndex = i; - break; - } - } - } - var serie = series[seriesIndex]; - if (serie == null) { - return; - } - var chart = this.myChart.chart[serie.type]; - var isAxisTrigger = this.deepQuery([ - serie, - this.option - ], 'tooltip.trigger') === 'axis'; - if (!chart) { - return; - } - if (isAxisTrigger) { - var dataIndex = params.dataIndex; - switch (chart.type) { - case ecConfig.CHART_TYPE_LINE: - case ecConfig.CHART_TYPE_BAR: - case ecConfig.CHART_TYPE_K: - case ecConfig.CHART_TYPE_RADAR: - if (this.component.polar == null || serie.data[0].value.length <= dataIndex) { - return; - } - var polarIndex = serie.polarIndex || 0; - var vector = this.component.polar.getVector(polarIndex, dataIndex, 'max'); - this._event = { - zrenderX: vector[0], - zrenderY: vector[1] - }; - this._showPolarTrigger(polarIndex, dataIndex); - break; - } - } else { - var shapeList = chart.shapeList; - var x; - var y; - switch (chart.type) { - case ecConfig.CHART_TYPE_LINE: - case ecConfig.CHART_TYPE_BAR: - case ecConfig.CHART_TYPE_K: - case ecConfig.CHART_TYPE_TREEMAP: - case ecConfig.CHART_TYPE_SCATTER: - var dataIndex = params.dataIndex; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (shapeList[i]._mark == null && ecData.get(shapeList[i], 'seriesIndex') == seriesIndex && ecData.get(shapeList[i], 'dataIndex') == dataIndex) { - this._curTarget = shapeList[i]; - x = shapeList[i].style.x; - y = chart.type != ecConfig.CHART_TYPE_K ? shapeList[i].style.y : shapeList[i].style.y[0]; - break; - } - } - break; - case ecConfig.CHART_TYPE_RADAR: - var dataIndex = params.dataIndex; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (shapeList[i].type === 'polygon' && ecData.get(shapeList[i], 'seriesIndex') == seriesIndex && ecData.get(shapeList[i], 'dataIndex') == dataIndex) { - this._curTarget = shapeList[i]; - var vector = this.component.polar.getCenter(serie.polarIndex || 0); - x = vector[0]; - y = vector[1]; - break; - } - } - break; - case ecConfig.CHART_TYPE_PIE: - var name = params.name; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (shapeList[i].type === 'sector' && ecData.get(shapeList[i], 'seriesIndex') == seriesIndex && ecData.get(shapeList[i], 'name') == name) { - this._curTarget = shapeList[i]; - var style = this._curTarget.style; - var midAngle = (style.startAngle + style.endAngle) / 2 * Math.PI / 180; - x = this._curTarget.style.x + Math.cos(midAngle) * style.r / 1.5; - y = this._curTarget.style.y - Math.sin(midAngle) * style.r / 1.5; - break; - } - } - break; - case ecConfig.CHART_TYPE_MAP: - var name = params.name; - var mapType = serie.mapType; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (shapeList[i].type === 'text' && shapeList[i]._mapType === mapType && shapeList[i].style._name === name) { - this._curTarget = shapeList[i]; - x = this._curTarget.style.x + this._curTarget.position[0]; - y = this._curTarget.style.y + this._curTarget.position[1]; - break; - } - } - break; - case ecConfig.CHART_TYPE_CHORD: - var name = params.name; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (shapeList[i].type === 'sector' && ecData.get(shapeList[i], 'name') == name) { - this._curTarget = shapeList[i]; - var style = this._curTarget.style; - var midAngle = (style.startAngle + style.endAngle) / 2 * Math.PI / 180; - x = this._curTarget.style.x + Math.cos(midAngle) * (style.r - 2); - y = this._curTarget.style.y - Math.sin(midAngle) * (style.r - 2); - this.zr.trigger(zrConfig.EVENT.MOUSEMOVE, { - zrenderX: x, - zrenderY: y - }); - return; - } - } - break; - case ecConfig.CHART_TYPE_FORCE: - var name = params.name; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (shapeList[i].type === 'circle' && ecData.get(shapeList[i], 'name') == name) { - this._curTarget = shapeList[i]; - x = this._curTarget.position[0]; - y = this._curTarget.position[1]; - break; - } - } - break; - } - if (x != null && y != null) { - this._event = { - zrenderX: x, - zrenderY: y - }; - this.zr.addHoverShape(this._curTarget); - this.zr.refreshHover(); - this._showItemTrigger(); - } - } - }, - hideTip: function () { - this._hide(); - }, - refresh: function (newOption) { - this._zrHeight = this.zr.getHeight(); - this._zrWidth = this.zr.getWidth(); - if (this._lastTipShape && this._lastTipShape.tipShape.length > 0) { - this.zr.delShape(this._lastTipShape.tipShape); - } - this._lastTipShape = false; - this.shapeList.length = 2; - this._lastDataIndex = -1; - this._lastSeriesIndex = -1; - this._lastItemTriggerId = -1; - if (newOption) { - this.option = newOption; - this.option.tooltip = this.reformOption(this.option.tooltip); - this.option.tooltip.textStyle = zrUtil.merge(this.option.tooltip.textStyle, this.ecTheme.textStyle); - this._needAxisTrigger = false; - if (this.option.tooltip.trigger === 'axis') { - this._needAxisTrigger = true; - } - var series = this.option.series; - for (var i = 0, l = series.length; i < l; i++) { - if (this.query(series[i], 'tooltip.trigger') === 'axis') { - this._needAxisTrigger = true; - break; - } - } - this._showDelay = this.option.tooltip.showDelay; - this._hideDelay = this.option.tooltip.hideDelay; - this._defaultCssText = this._style(this.option.tooltip); - this._setSelectedMap(); - this._axisLineWidth = this.option.tooltip.axisPointer.lineStyle.width; - this._enterable = this.option.tooltip.enterable; - if (!this._enterable && this._tDom.className.indexOf(zrConfig.elementClassName) < 0) { - this._tDom.className += ' ' + zrConfig.elementClassName; - } - } - if (this.showing) { - var self = this; - setTimeout(function () { - self.zr.trigger(zrConfig.EVENT.MOUSEMOVE, self.zr.handler._event); - }, 50); - } - }, - onbeforDispose: function () { - if (this._lastTipShape && this._lastTipShape.tipShape.length > 0) { - this.zr.delShape(this._lastTipShape.tipShape); - } - clearTimeout(this._hidingTicket); - clearTimeout(this._showingTicket); - this.zr.un(zrConfig.EVENT.MOUSEMOVE, this._onmousemove); - this.zr.un(zrConfig.EVENT.GLOBALOUT, this._onglobalout); - if (this.hasAppend && !!this.dom.firstChild) { - this.dom.firstChild.removeChild(this._tDom); - } - this._tDom = null; - }, - _encodeHTML: function (source) { - return String(source).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, '''); - } - }; - zrUtil.inherits(Tooltip, Base); - require('../component').define('tooltip', Tooltip); - return Tooltip; -});define('echarts/component/legend', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Rectangle', - 'zrender/shape/Sector', - '../util/shape/Icon', - '../util/shape/Candle', - '../config', - 'zrender/tool/util', - 'zrender/tool/area', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var RectangleShape = require('zrender/shape/Rectangle'); - var SectorShape = require('zrender/shape/Sector'); - var IconShape = require('../util/shape/Icon'); - var CandleShape = require('../util/shape/Candle'); - var ecConfig = require('../config'); - ecConfig.legend = { - zlevel: 0, - z: 4, - show: true, - orient: 'horizontal', - x: 'center', - y: 'top', - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - itemGap: 10, - itemWidth: 20, - itemHeight: 14, - textStyle: { color: '#333' }, - selectedMode: true - }; - var zrUtil = require('zrender/tool/util'); - var zrArea = require('zrender/tool/area'); - function Legend(ecTheme, messageCenter, zr, option, myChart) { - if (!this.query(option, 'legend.data')) { - console.error('option.legend.data has not been defined.'); - return; - } - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._legendSelected = function (param) { - self.__legendSelected(param); - }; - self._dispatchHoverLink = function (param) { - return self.__dispatchHoverLink(param); - }; - this._colorIndex = 0; - this._colorMap = {}; - this._selectedMap = {}; - this._hasDataMap = {}; - this.refresh(option); - } - Legend.prototype = { - type: ecConfig.COMPONENT_TYPE_LEGEND, - _buildShape: function () { - if (!this.legendOption.show) { - return; - } - this._itemGroupLocation = this._getItemGroupLocation(); - this._buildBackground(); - this._buildItem(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _buildItem: function () { - var data = this.legendOption.data; - var dataLength = data.length; - var itemName; - var itemType; - var itemShape; - var textShape; - var textStyle = this.legendOption.textStyle; - var dataTextStyle; - var dataFont; - var formattedName; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - var lastX = this._itemGroupLocation.x; - var lastY = this._itemGroupLocation.y; - var itemWidth = this.legendOption.itemWidth; - var itemHeight = this.legendOption.itemHeight; - var itemGap = this.legendOption.itemGap; - var color; - if (this.legendOption.orient === 'vertical' && this.legendOption.x === 'right') { - lastX = this._itemGroupLocation.x + this._itemGroupLocation.width - itemWidth; - } - for (var i = 0; i < dataLength; i++) { - dataTextStyle = zrUtil.merge(data[i].textStyle || {}, textStyle); - dataFont = this.getFont(dataTextStyle); - itemName = this._getName(data[i]); - formattedName = this._getFormatterName(itemName); - if (itemName === '') { - if (this.legendOption.orient === 'horizontal') { - lastX = this._itemGroupLocation.x; - lastY += itemHeight + itemGap; - } else { - this.legendOption.x === 'right' ? lastX -= this._itemGroupLocation.maxWidth + itemGap : lastX += this._itemGroupLocation.maxWidth + itemGap; - lastY = this._itemGroupLocation.y; - } - continue; - } - itemType = data[i].icon || this._getSomethingByName(itemName).type; - color = this.getColor(itemName); - if (this.legendOption.orient === 'horizontal') { - if (zrWidth - lastX < 200 && itemWidth + 5 + zrArea.getTextWidth(formattedName, dataFont) + (i === dataLength - 1 || data[i + 1] === '' ? 0 : itemGap) >= zrWidth - lastX) { - lastX = this._itemGroupLocation.x; - lastY += itemHeight + itemGap; - } - } else { - if (zrHeight - lastY < 200 && itemHeight + (i === dataLength - 1 || data[i + 1] === '' ? 0 : itemGap) >= zrHeight - lastY) { - this.legendOption.x === 'right' ? lastX -= this._itemGroupLocation.maxWidth + itemGap : lastX += this._itemGroupLocation.maxWidth + itemGap; - lastY = this._itemGroupLocation.y; - } - } - itemShape = this._getItemShapeByType(lastX, lastY, itemWidth, itemHeight, this._selectedMap[itemName] && this._hasDataMap[itemName] ? color : '#ccc', itemType, color); - itemShape._name = itemName; - itemShape = new IconShape(itemShape); - textShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX + itemWidth + 5, - y: lastY + itemHeight / 2, - color: this._selectedMap[itemName] ? dataTextStyle.color === 'auto' ? color : dataTextStyle.color : '#ccc', - text: formattedName, - textFont: dataFont, - textBaseline: 'middle' - }, - highlightStyle: { - color: color, - brushType: 'fill' - }, - hoverable: !!this.legendOption.selectedMode, - clickable: !!this.legendOption.selectedMode - }; - if (this.legendOption.orient === 'vertical' && this.legendOption.x === 'right') { - textShape.style.x -= itemWidth + 10; - textShape.style.textAlign = 'right'; - } - textShape._name = itemName; - textShape = new TextShape(textShape); - if (this.legendOption.selectedMode) { - itemShape.onclick = textShape.onclick = this._legendSelected; - itemShape.onmouseover = textShape.onmouseover = this._dispatchHoverLink; - itemShape.hoverConnect = textShape.id; - textShape.hoverConnect = itemShape.id; - } - this.shapeList.push(itemShape); - this.shapeList.push(textShape); - if (this.legendOption.orient === 'horizontal') { - lastX += itemWidth + 5 + zrArea.getTextWidth(formattedName, dataFont) + itemGap; - } else { - lastY += itemHeight + itemGap; - } - } - if (this.legendOption.orient === 'horizontal' && this.legendOption.x === 'center' && lastY != this._itemGroupLocation.y) { - this._mLineOptimize(); - } - }, - _getName: function (data) { - return typeof data.name != 'undefined' ? data.name : data; - }, - _getFormatterName: function (itemName) { - var formatter = this.legendOption.formatter; - var formattedName; - if (typeof formatter === 'function') { - formattedName = formatter.call(this.myChart, itemName); - } else if (typeof formatter === 'string') { - formattedName = formatter.replace('{name}', itemName); - } else { - formattedName = itemName; - } - return formattedName; - }, - _getFormatterNameFromData: function (data) { - var itemName = this._getName(data); - return this._getFormatterName(itemName); - }, - _mLineOptimize: function () { - var lineOffsetArray = []; - var lastX = this._itemGroupLocation.x; - for (var i = 2, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i].style.x === lastX) { - lineOffsetArray.push((this._itemGroupLocation.width - (this.shapeList[i - 1].style.x + zrArea.getTextWidth(this.shapeList[i - 1].style.text, this.shapeList[i - 1].style.textFont) - lastX)) / 2); - } else if (i === l - 1) { - lineOffsetArray.push((this._itemGroupLocation.width - (this.shapeList[i].style.x + zrArea.getTextWidth(this.shapeList[i].style.text, this.shapeList[i].style.textFont) - lastX)) / 2); - } - } - var curLineIndex = -1; - for (var i = 1, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i].style.x === lastX) { - curLineIndex++; - } - if (lineOffsetArray[curLineIndex] === 0) { - continue; - } else { - this.shapeList[i].style.x += lineOffsetArray[curLineIndex]; - } - } - }, - _buildBackground: function () { - var padding = this.reformCssArray(this.legendOption.padding); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._itemGroupLocation.x - padding[3], - y: this._itemGroupLocation.y - padding[0], - width: this._itemGroupLocation.width + padding[3] + padding[1], - height: this._itemGroupLocation.height + padding[0] + padding[2], - brushType: this.legendOption.borderWidth === 0 ? 'fill' : 'both', - color: this.legendOption.backgroundColor, - strokeColor: this.legendOption.borderColor, - lineWidth: this.legendOption.borderWidth - } - })); - }, - _getItemGroupLocation: function () { - var data = this.legendOption.data; - var dataLength = data.length; - var itemGap = this.legendOption.itemGap; - var itemWidth = this.legendOption.itemWidth + 5; - var itemHeight = this.legendOption.itemHeight; - var textStyle = this.legendOption.textStyle; - var font = this.getFont(textStyle); - var totalWidth = 0; - var totalHeight = 0; - var padding = this.reformCssArray(this.legendOption.padding); - var zrWidth = this.zr.getWidth() - padding[1] - padding[3]; - var zrHeight = this.zr.getHeight() - padding[0] - padding[2]; - var temp = 0; - var maxWidth = 0; - if (this.legendOption.orient === 'horizontal') { - totalHeight = itemHeight; - for (var i = 0; i < dataLength; i++) { - if (this._getName(data[i]) === '') { - temp -= itemGap; - totalWidth = Math.max(totalWidth, temp); - totalHeight += itemHeight + itemGap; - temp = 0; - continue; - } - var tempTextWidth = zrArea.getTextWidth(this._getFormatterNameFromData(data[i]), data[i].textStyle ? this.getFont(zrUtil.merge(data[i].textStyle || {}, textStyle)) : font); - if (temp + itemWidth + tempTextWidth + itemGap > zrWidth) { - temp -= itemGap; - totalWidth = Math.max(totalWidth, temp); - totalHeight += itemHeight + itemGap; - temp = 0; - } else { - temp += itemWidth + tempTextWidth + itemGap; - totalWidth = Math.max(totalWidth, temp - itemGap); - } - } - } else { - for (var i = 0; i < dataLength; i++) { - maxWidth = Math.max(maxWidth, zrArea.getTextWidth(this._getFormatterNameFromData(data[i]), data[i].textStyle ? this.getFont(zrUtil.merge(data[i].textStyle || {}, textStyle)) : font)); - } - maxWidth += itemWidth; - totalWidth = maxWidth; - for (var i = 0; i < dataLength; i++) { - if (this._getName(data[i]) === '') { - totalWidth += maxWidth + itemGap; - temp -= itemGap; - totalHeight = Math.max(totalHeight, temp); - temp = 0; - continue; - } - if (temp + itemHeight + itemGap > zrHeight) { - totalWidth += maxWidth + itemGap; - temp -= itemGap; - totalHeight = Math.max(totalHeight, temp); - temp = 0; - } else { - temp += itemHeight + itemGap; - totalHeight = Math.max(totalHeight, temp - itemGap); - } - } - } - zrWidth = this.zr.getWidth(); - zrHeight = this.zr.getHeight(); - var x; - switch (this.legendOption.x) { - case 'center': - x = Math.floor((zrWidth - totalWidth) / 2); - break; - case 'left': - x = padding[3] + this.legendOption.borderWidth; - break; - case 'right': - x = zrWidth - totalWidth - padding[1] - padding[3] - this.legendOption.borderWidth * 2; - break; - default: - x = this.parsePercent(this.legendOption.x, zrWidth); - break; - } - var y; - switch (this.legendOption.y) { - case 'top': - y = padding[0] + this.legendOption.borderWidth; - break; - case 'bottom': - y = zrHeight - totalHeight - padding[0] - padding[2] - this.legendOption.borderWidth * 2; - break; - case 'center': - y = Math.floor((zrHeight - totalHeight) / 2); - break; - default: - y = this.parsePercent(this.legendOption.y, zrHeight); - break; - } - return { - x: x, - y: y, - width: totalWidth, - height: totalHeight, - maxWidth: maxWidth - }; - }, - _getSomethingByName: function (name) { - var series = this.option.series; - var data; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].name === name) { - return { - type: series[i].type, - series: series[i], - seriesIndex: i, - data: null, - dataIndex: -1 - }; - } - if (series[i].type === ecConfig.CHART_TYPE_PIE || series[i].type === ecConfig.CHART_TYPE_RADAR || series[i].type === ecConfig.CHART_TYPE_CHORD || series[i].type === ecConfig.CHART_TYPE_FORCE || series[i].type === ecConfig.CHART_TYPE_FUNNEL || series[i].type === ecConfig.CHART_TYPE_TREEMAP) { - data = series[i].categories || series[i].data || series[i].nodes; - for (var j = 0, k = data.length; j < k; j++) { - if (data[j].name === name) { - return { - type: series[i].type, - series: series[i], - seriesIndex: i, - data: data[j], - dataIndex: j - }; - } - } - } - } - return { - type: 'bar', - series: null, - seriesIndex: -1, - data: null, - dataIndex: -1 - }; - }, - _getItemShapeByType: function (x, y, width, height, color, itemType, defaultColor) { - var highlightColor = color === '#ccc' ? defaultColor : color; - var itemShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - iconType: 'legendicon' + itemType, - x: x, - y: y, - width: width, - height: height, - color: color, - strokeColor: color, - lineWidth: 2 - }, - highlightStyle: { - color: highlightColor, - strokeColor: highlightColor, - lineWidth: 1 - }, - hoverable: this.legendOption.selectedMode, - clickable: this.legendOption.selectedMode - }; - var imageLocation; - if (itemType.match('image')) { - var imageLocation = itemType.replace(new RegExp('^image:\\/\\/'), ''); - itemType = 'image'; - } - switch (itemType) { - case 'line': - itemShape.style.brushType = 'stroke'; - itemShape.highlightStyle.lineWidth = 3; - break; - case 'radar': - case 'venn': - case 'tree': - case 'treemap': - case 'scatter': - itemShape.highlightStyle.lineWidth = 3; - break; - case 'k': - itemShape.style.brushType = 'both'; - itemShape.highlightStyle.lineWidth = 3; - itemShape.highlightStyle.color = itemShape.style.color = this.deepQuery([ - this.ecTheme, - ecConfig - ], 'k.itemStyle.normal.color') || '#fff'; - itemShape.style.strokeColor = color != '#ccc' ? this.deepQuery([ - this.ecTheme, - ecConfig - ], 'k.itemStyle.normal.lineStyle.color') || '#ff3200' : color; - break; - case 'image': - itemShape.style.iconType = 'image'; - itemShape.style.image = imageLocation; - if (color === '#ccc') { - itemShape.style.opacity = 0.5; - } - break; - } - return itemShape; - }, - __legendSelected: function (param) { - var itemName = param.target._name; - if (this.legendOption.selectedMode === 'single') { - for (var k in this._selectedMap) { - this._selectedMap[k] = false; - } - } - this._selectedMap[itemName] = !this._selectedMap[itemName]; - this.messageCenter.dispatch(ecConfig.EVENT.LEGEND_SELECTED, param.event, { - selected: this._selectedMap, - target: itemName - }, this.myChart); - }, - __dispatchHoverLink: function (param) { - this.messageCenter.dispatch(ecConfig.EVENT.LEGEND_HOVERLINK, param.event, { target: param.target._name }, this.myChart); - return; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption || this.option; - this.option.legend = this.reformOption(this.option.legend); - this.legendOption = this.option.legend; - var data = this.legendOption.data || []; - var itemName; - var something; - var color; - var queryTarget; - if (this.legendOption.selected) { - for (var k in this.legendOption.selected) { - this._selectedMap[k] = typeof this._selectedMap[k] != 'undefined' ? this._selectedMap[k] : this.legendOption.selected[k]; - } - } - for (var i = 0, dataLength = data.length; i < dataLength; i++) { - itemName = this._getName(data[i]); - if (itemName === '') { - continue; - } - something = this._getSomethingByName(itemName); - if (!something.series) { - this._hasDataMap[itemName] = false; - } else { - this._hasDataMap[itemName] = true; - if (something.data && (something.type === ecConfig.CHART_TYPE_PIE || something.type === ecConfig.CHART_TYPE_FORCE || something.type === ecConfig.CHART_TYPE_FUNNEL)) { - queryTarget = [ - something.data, - something.series - ]; - } else { - queryTarget = [something.series]; - } - color = this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color'), something.seriesIndex, something.dataIndex, something.data); - if (color && something.type != ecConfig.CHART_TYPE_K) { - this.setColor(itemName, color); - } - this._selectedMap[itemName] = this._selectedMap[itemName] != null ? this._selectedMap[itemName] : true; - } - } - } - this.clear(); - this._buildShape(); - }, - getRelatedAmount: function (name) { - var amount = 0; - var series = this.option.series; - var data; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].name === name) { - amount++; - } - if (series[i].type === ecConfig.CHART_TYPE_PIE || series[i].type === ecConfig.CHART_TYPE_RADAR || series[i].type === ecConfig.CHART_TYPE_CHORD || series[i].type === ecConfig.CHART_TYPE_FORCE || series[i].type === ecConfig.CHART_TYPE_FUNNEL) { - data = series[i].type != ecConfig.CHART_TYPE_FORCE ? series[i].data : series[i].categories; - for (var j = 0, k = data.length; j < k; j++) { - if (data[j].name === name && data[j].value != '-') { - amount++; - } - } - } - } - return amount; - }, - setColor: function (legendName, color) { - this._colorMap[legendName] = color; - }, - getColor: function (legendName) { - if (!this._colorMap[legendName]) { - this._colorMap[legendName] = this.zr.getColor(this._colorIndex++); - } - return this._colorMap[legendName]; - }, - hasColor: function (legendName) { - return this._colorMap[legendName] ? this._colorMap[legendName] : false; - }, - add: function (name, color) { - var data = this.legendOption.data; - for (var i = 0, dataLength = data.length; i < dataLength; i++) { - if (this._getName(data[i]) === name) { - return; - } - } - this.legendOption.data.push(name); - this.setColor(name, color); - this._selectedMap[name] = true; - this._hasDataMap[name] = true; - }, - del: function (name) { - var data = this.legendOption.data; - for (var i = 0, dataLength = data.length; i < dataLength; i++) { - if (this._getName(data[i]) === name) { - return this.legendOption.data.splice(i, 1); - } - } - }, - getItemShape: function (name) { - if (name == null) { - return; - } - var shape; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - shape = this.shapeList[i]; - if (shape._name === name && shape.type != 'text') { - return shape; - } - } - }, - setItemShape: function (name, itemShape) { - var shape; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - shape = this.shapeList[i]; - if (shape._name === name && shape.type != 'text') { - if (!this._selectedMap[name]) { - itemShape.style.color = '#ccc'; - itemShape.style.strokeColor = '#ccc'; - } - this.zr.modShape(shape.id, itemShape); - } - } - }, - isSelected: function (itemName) { - if (typeof this._selectedMap[itemName] != 'undefined') { - return this._selectedMap[itemName]; - } else { - return true; - } - }, - getSelectedMap: function () { - return this._selectedMap; - }, - setSelected: function (itemName, selectStatus) { - if (this.legendOption.selectedMode === 'single') { - for (var k in this._selectedMap) { - this._selectedMap[k] = false; - } - } - this._selectedMap[itemName] = selectStatus; - this.messageCenter.dispatch(ecConfig.EVENT.LEGEND_SELECTED, null, { - selected: this._selectedMap, - target: itemName - }, this.myChart); - }, - onlegendSelected: function (param, status) { - var legendSelected = param.selected; - for (var itemName in legendSelected) { - if (this._selectedMap[itemName] != legendSelected[itemName]) { - status.needRefresh = true; - } - this._selectedMap[itemName] = legendSelected[itemName]; - } - return; - } - }; - var legendIcon = { - line: function (ctx, style) { - var dy = style.height / 2; - ctx.moveTo(style.x, style.y + dy); - ctx.lineTo(style.x + style.width, style.y + dy); - }, - pie: function (ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - SectorShape.prototype.buildPath(ctx, { - x: x + width / 2, - y: y + height + 2, - r: height, - r0: 6, - startAngle: 45, - endAngle: 135 - }); - }, - eventRiver: function (ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - ctx.moveTo(x, y + height); - ctx.bezierCurveTo(x + width, y + height, x, y + 4, x + width, y + 4); - ctx.lineTo(x + width, y); - ctx.bezierCurveTo(x, y, x + width, y + height - 4, x, y + height - 4); - ctx.lineTo(x, y + height); - }, - k: function (ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - CandleShape.prototype.buildPath(ctx, { - x: x + width / 2, - y: [ - y + 1, - y + 1, - y + height - 6, - y + height - ], - width: width - 6 - }); - }, - bar: function (ctx, style) { - var x = style.x; - var y = style.y + 1; - var width = style.width; - var height = style.height - 2; - var r = 3; - ctx.moveTo(x + r, y); - ctx.lineTo(x + width - r, y); - ctx.quadraticCurveTo(x + width, y, x + width, y + r); - ctx.lineTo(x + width, y + height - r); - ctx.quadraticCurveTo(x + width, y + height, x + width - r, y + height); - ctx.lineTo(x + r, y + height); - ctx.quadraticCurveTo(x, y + height, x, y + height - r); - ctx.lineTo(x, y + r); - ctx.quadraticCurveTo(x, y, x + r, y); - }, - force: function (ctx, style) { - IconShape.prototype.iconLibrary.circle(ctx, style); - }, - radar: function (ctx, style) { - var n = 6; - var x = style.x + style.width / 2; - var y = style.y + style.height / 2; - var r = style.height / 2; - var dStep = 2 * Math.PI / n; - var deg = -Math.PI / 2; - var xStart = x + r * Math.cos(deg); - var yStart = y + r * Math.sin(deg); - ctx.moveTo(xStart, yStart); - deg += dStep; - for (var i = 0, end = n - 1; i < end; i++) { - ctx.lineTo(x + r * Math.cos(deg), y + r * Math.sin(deg)); - deg += dStep; - } - ctx.lineTo(xStart, yStart); - } - }; - legendIcon.chord = legendIcon.pie; - legendIcon.map = legendIcon.bar; - for (var k in legendIcon) { - IconShape.prototype.iconLibrary['legendicon' + k] = legendIcon[k]; - } - zrUtil.inherits(Legend, Base); - require('../component').define('legend', Legend); - return Legend; -});define('echarts/util/ecData', [], function () { - function pack(shape, series, seriesIndex, data, dataIndex, name, special, special2) { - var value; - if (typeof data != 'undefined') { - value = data.value == null ? data : data.value; - } - shape._echartsData = { - '_series': series, - '_seriesIndex': seriesIndex, - '_data': data, - '_dataIndex': dataIndex, - '_name': name, - '_value': value, - '_special': special, - '_special2': special2 - }; - return shape._echartsData; - } - function get(shape, key) { - var data = shape._echartsData; - if (!key) { - return data; - } - switch (key) { - case 'series': - case 'seriesIndex': - case 'data': - case 'dataIndex': - case 'name': - case 'value': - case 'special': - case 'special2': - return data && data['_' + key]; - } - return null; - } - function set(shape, key, value) { - shape._echartsData = shape._echartsData || {}; - switch (key) { - case 'series': - case 'seriesIndex': - case 'data': - case 'dataIndex': - case 'name': - case 'value': - case 'special': - case 'special2': - shape._echartsData['_' + key] = value; - break; - } - } - function clone(source, target) { - target._echartsData = { - '_series': source._echartsData._series, - '_seriesIndex': source._echartsData._seriesIndex, - '_data': source._echartsData._data, - '_dataIndex': source._echartsData._dataIndex, - '_name': source._echartsData._name, - '_value': source._echartsData._value, - '_special': source._echartsData._special, - '_special2': source._echartsData._special2 - }; - } - return { - pack: pack, - set: set, - get: get, - clone: clone - }; -});define('echarts/chart', [], function () { - var self = {}; - var _chartLibrary = {}; - self.define = function (name, clazz) { - _chartLibrary[name] = clazz; - return self; - }; - self.get = function (name) { - return _chartLibrary[name]; - }; - return self; -});define('zrender/tool/color', [ - 'require', - '../tool/util' -], function (require) { - var util = require('../tool/util'); - var _ctx; - var palette = [ - '#ff9277', - ' #dddd00', - ' #ffc877', - ' #bbe3ff', - ' #d5ffbb', - '#bbbbff', - ' #ddb000', - ' #b0dd00', - ' #e2bbff', - ' #ffbbe3', - '#ff7777', - ' #ff9900', - ' #83dd00', - ' #77e3ff', - ' #778fff', - '#c877ff', - ' #ff77ab', - ' #ff6600', - ' #aa8800', - ' #77c7ff', - '#ad77ff', - ' #ff77ff', - ' #dd0083', - ' #777700', - ' #00aa00', - '#0088aa', - ' #8400dd', - ' #aa0088', - ' #dd0000', - ' #772e00' - ]; - var _palette = palette; - var highlightColor = 'rgba(255,255,0,0.5)'; - var _highlightColor = highlightColor; - var colorRegExp = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i; - var _nameColors = { - aliceblue: '#f0f8ff', - antiquewhite: '#faebd7', - aqua: '#0ff', - aquamarine: '#7fffd4', - azure: '#f0ffff', - beige: '#f5f5dc', - bisque: '#ffe4c4', - black: '#000', - blanchedalmond: '#ffebcd', - blue: '#00f', - blueviolet: '#8a2be2', - brown: '#a52a2a', - burlywood: '#deb887', - cadetblue: '#5f9ea0', - chartreuse: '#7fff00', - chocolate: '#d2691e', - coral: '#ff7f50', - cornflowerblue: '#6495ed', - cornsilk: '#fff8dc', - crimson: '#dc143c', - cyan: '#0ff', - darkblue: '#00008b', - darkcyan: '#008b8b', - darkgoldenrod: '#b8860b', - darkgray: '#a9a9a9', - darkgrey: '#a9a9a9', - darkgreen: '#006400', - darkkhaki: '#bdb76b', - darkmagenta: '#8b008b', - darkolivegreen: '#556b2f', - darkorange: '#ff8c00', - darkorchid: '#9932cc', - darkred: '#8b0000', - darksalmon: '#e9967a', - darkseagreen: '#8fbc8f', - darkslateblue: '#483d8b', - darkslategray: '#2f4f4f', - darkslategrey: '#2f4f4f', - darkturquoise: '#00ced1', - darkviolet: '#9400d3', - deeppink: '#ff1493', - deepskyblue: '#00bfff', - dimgray: '#696969', - dimgrey: '#696969', - dodgerblue: '#1e90ff', - firebrick: '#b22222', - floralwhite: '#fffaf0', - forestgreen: '#228b22', - fuchsia: '#f0f', - gainsboro: '#dcdcdc', - ghostwhite: '#f8f8ff', - gold: '#ffd700', - goldenrod: '#daa520', - gray: '#808080', - grey: '#808080', - green: '#008000', - greenyellow: '#adff2f', - honeydew: '#f0fff0', - hotpink: '#ff69b4', - indianred: '#cd5c5c', - indigo: '#4b0082', - ivory: '#fffff0', - khaki: '#f0e68c', - lavender: '#e6e6fa', - lavenderblush: '#fff0f5', - lawngreen: '#7cfc00', - lemonchiffon: '#fffacd', - lightblue: '#add8e6', - lightcoral: '#f08080', - lightcyan: '#e0ffff', - lightgoldenrodyellow: '#fafad2', - lightgray: '#d3d3d3', - lightgrey: '#d3d3d3', - lightgreen: '#90ee90', - lightpink: '#ffb6c1', - lightsalmon: '#ffa07a', - lightseagreen: '#20b2aa', - lightskyblue: '#87cefa', - lightslategray: '#789', - lightslategrey: '#789', - lightsteelblue: '#b0c4de', - lightyellow: '#ffffe0', - lime: '#0f0', - limegreen: '#32cd32', - linen: '#faf0e6', - magenta: '#f0f', - maroon: '#800000', - mediumaquamarine: '#66cdaa', - mediumblue: '#0000cd', - mediumorchid: '#ba55d3', - mediumpurple: '#9370d8', - mediumseagreen: '#3cb371', - mediumslateblue: '#7b68ee', - mediumspringgreen: '#00fa9a', - mediumturquoise: '#48d1cc', - mediumvioletred: '#c71585', - midnightblue: '#191970', - mintcream: '#f5fffa', - mistyrose: '#ffe4e1', - moccasin: '#ffe4b5', - navajowhite: '#ffdead', - navy: '#000080', - oldlace: '#fdf5e6', - olive: '#808000', - olivedrab: '#6b8e23', - orange: '#ffa500', - orangered: '#ff4500', - orchid: '#da70d6', - palegoldenrod: '#eee8aa', - palegreen: '#98fb98', - paleturquoise: '#afeeee', - palevioletred: '#d87093', - papayawhip: '#ffefd5', - peachpuff: '#ffdab9', - peru: '#cd853f', - pink: '#ffc0cb', - plum: '#dda0dd', - powderblue: '#b0e0e6', - purple: '#800080', - red: '#f00', - rosybrown: '#bc8f8f', - royalblue: '#4169e1', - saddlebrown: '#8b4513', - salmon: '#fa8072', - sandybrown: '#f4a460', - seagreen: '#2e8b57', - seashell: '#fff5ee', - sienna: '#a0522d', - silver: '#c0c0c0', - skyblue: '#87ceeb', - slateblue: '#6a5acd', - slategray: '#708090', - slategrey: '#708090', - snow: '#fffafa', - springgreen: '#00ff7f', - steelblue: '#4682b4', - tan: '#d2b48c', - teal: '#008080', - thistle: '#d8bfd8', - tomato: '#ff6347', - turquoise: '#40e0d0', - violet: '#ee82ee', - wheat: '#f5deb3', - white: '#fff', - whitesmoke: '#f5f5f5', - yellow: '#ff0', - yellowgreen: '#9acd32' - }; - function customPalette(userPalete) { - palette = userPalete; - } - function resetPalette() { - palette = _palette; - } - function getColor(idx, userPalete) { - idx = idx | 0; - userPalete = userPalete || palette; - return userPalete[idx % userPalete.length]; - } - function customHighlight(userHighlightColor) { - highlightColor = userHighlightColor; - } - function resetHighlight() { - _highlightColor = highlightColor; - } - function getHighlightColor() { - return highlightColor; - } - function getRadialGradient(x0, y0, r0, x1, y1, r1, colorList) { - if (!_ctx) { - _ctx = util.getContext(); - } - var gradient = _ctx.createRadialGradient(x0, y0, r0, x1, y1, r1); - for (var i = 0, l = colorList.length; i < l; i++) { - gradient.addColorStop(colorList[i][0], colorList[i][1]); - } - gradient.__nonRecursion = true; - return gradient; - } - function getLinearGradient(x0, y0, x1, y1, colorList) { - if (!_ctx) { - _ctx = util.getContext(); - } - var gradient = _ctx.createLinearGradient(x0, y0, x1, y1); - for (var i = 0, l = colorList.length; i < l; i++) { - gradient.addColorStop(colorList[i][0], colorList[i][1]); - } - gradient.__nonRecursion = true; - return gradient; - } - function getStepColors(start, end, step) { - start = toRGBA(start); - end = toRGBA(end); - start = getData(start); - end = getData(end); - var colors = []; - var stepR = (end[0] - start[0]) / step; - var stepG = (end[1] - start[1]) / step; - var stepB = (end[2] - start[2]) / step; - var stepA = (end[3] - start[3]) / step; - for (var i = 0, r = start[0], g = start[1], b = start[2], a = start[3]; i < step; i++) { - colors[i] = toColor([ - adjust(Math.floor(r), [ - 0, - 255 - ]), - adjust(Math.floor(g), [ - 0, - 255 - ]), - adjust(Math.floor(b), [ - 0, - 255 - ]), - a.toFixed(4) - 0 - ], 'rgba'); - r += stepR; - g += stepG; - b += stepB; - a += stepA; - } - r = end[0]; - g = end[1]; - b = end[2]; - a = end[3]; - colors[i] = toColor([ - r, - g, - b, - a - ], 'rgba'); - return colors; - } - function getGradientColors(colors, step) { - var ret = []; - var len = colors.length; - if (step === undefined) { - step = 20; - } - if (len === 1) { - ret = getStepColors(colors[0], colors[0], step); - } else if (len > 1) { - for (var i = 0, n = len - 1; i < n; i++) { - var steps = getStepColors(colors[i], colors[i + 1], step); - if (i < n - 1) { - steps.pop(); - } - ret = ret.concat(steps); - } - } - return ret; - } - function toColor(data, format) { - format = format || 'rgb'; - if (data && (data.length === 3 || data.length === 4)) { - data = map(data, function (c) { - return c > 1 ? Math.ceil(c) : c; - }); - if (format.indexOf('hex') > -1) { - return '#' + ((1 << 24) + (data[0] << 16) + (data[1] << 8) + +data[2]).toString(16).slice(1); - } else if (format.indexOf('hs') > -1) { - var sx = map(data.slice(1, 3), function (c) { - return c + '%'; - }); - data[1] = sx[0]; - data[2] = sx[1]; - } - if (format.indexOf('a') > -1) { - if (data.length === 3) { - data.push(1); - } - data[3] = adjust(data[3], [ - 0, - 1 - ]); - return format + '(' + data.slice(0, 4).join(',') + ')'; - } - return format + '(' + data.slice(0, 3).join(',') + ')'; - } - } - function toArray(color) { - color = trim(color); - if (color.indexOf('rgba') < 0) { - color = toRGBA(color); - } - var data = []; - var i = 0; - color.replace(/[\d.]+/g, function (n) { - if (i < 3) { - n = n | 0; - } else { - n = +n; - } - data[i++] = n; - }); - return data; - } - function convert(color, format) { - if (!isCalculableColor(color)) { - return color; - } - var data = getData(color); - var alpha = data[3]; - if (typeof alpha === 'undefined') { - alpha = 1; - } - if (color.indexOf('hsb') > -1) { - data = _HSV_2_RGB(data); - } else if (color.indexOf('hsl') > -1) { - data = _HSL_2_RGB(data); - } - if (format.indexOf('hsb') > -1 || format.indexOf('hsv') > -1) { - data = _RGB_2_HSB(data); - } else if (format.indexOf('hsl') > -1) { - data = _RGB_2_HSL(data); - } - data[3] = alpha; - return toColor(data, format); - } - function toRGBA(color) { - return convert(color, 'rgba'); - } - function toRGB(color) { - return convert(color, 'rgb'); - } - function toHex(color) { - return convert(color, 'hex'); - } - function toHSVA(color) { - return convert(color, 'hsva'); - } - function toHSV(color) { - return convert(color, 'hsv'); - } - function toHSBA(color) { - return convert(color, 'hsba'); - } - function toHSB(color) { - return convert(color, 'hsb'); - } - function toHSLA(color) { - return convert(color, 'hsla'); - } - function toHSL(color) { - return convert(color, 'hsl'); - } - function toName(color) { - for (var key in _nameColors) { - if (toHex(_nameColors[key]) === toHex(color)) { - return key; - } - } - return null; - } - function trim(color) { - return String(color).replace(/\s+/g, ''); - } - function normalize(color) { - if (_nameColors[color]) { - color = _nameColors[color]; - } - color = trim(color); - color = color.replace(/hsv/i, 'hsb'); - if (/^#[\da-f]{3}$/i.test(color)) { - color = parseInt(color.slice(1), 16); - var r = (color & 3840) << 8; - var g = (color & 240) << 4; - var b = color & 15; - color = '#' + ((1 << 24) + (r << 4) + r + (g << 4) + g + (b << 4) + b).toString(16).slice(1); - } - return color; - } - function lift(color, level) { - if (!isCalculableColor(color)) { - return color; - } - var direct = level > 0 ? 1 : -1; - if (typeof level === 'undefined') { - level = 0; - } - level = Math.abs(level) > 1 ? 1 : Math.abs(level); - color = toRGB(color); - var data = getData(color); - for (var i = 0; i < 3; i++) { - if (direct === 1) { - data[i] = data[i] * (1 - level) | 0; - } else { - data[i] = (255 - data[i]) * level + data[i] | 0; - } - } - return 'rgb(' + data.join(',') + ')'; - } - function reverse(color) { - if (!isCalculableColor(color)) { - return color; - } - var data = getData(toRGBA(color)); - data = map(data, function (c) { - return 255 - c; - }); - return toColor(data, 'rgb'); - } - function mix(color1, color2, weight) { - if (!isCalculableColor(color1) || !isCalculableColor(color2)) { - return color1; - } - if (typeof weight === 'undefined') { - weight = 0.5; - } - weight = 1 - adjust(weight, [ - 0, - 1 - ]); - var w = weight * 2 - 1; - var data1 = getData(toRGBA(color1)); - var data2 = getData(toRGBA(color2)); - var d = data1[3] - data2[3]; - var weight1 = ((w * d === -1 ? w : (w + d) / (1 + w * d)) + 1) / 2; - var weight2 = 1 - weight1; - var data = []; - for (var i = 0; i < 3; i++) { - data[i] = data1[i] * weight1 + data2[i] * weight2; - } - var alpha = data1[3] * weight + data2[3] * (1 - weight); - alpha = Math.max(0, Math.min(1, alpha)); - if (data1[3] === 1 && data2[3] === 1) { - return toColor(data, 'rgb'); - } - data[3] = alpha; - return toColor(data, 'rgba'); - } - function random() { - return '#' + (Math.random().toString(16) + '0000').slice(2, 8); - } - function getData(color) { - color = normalize(color); - var r = color.match(colorRegExp); - if (r === null) { - throw new Error('The color format error'); - } - var d; - var a; - var data = []; - var rgb; - if (r[2]) { - d = r[2].replace('#', '').split(''); - rgb = [ - d[0] + d[1], - d[2] + d[3], - d[4] + d[5] - ]; - data = map(rgb, function (c) { - return adjust(parseInt(c, 16), [ - 0, - 255 - ]); - }); - } else if (r[4]) { - var rgba = r[4].split(','); - a = rgba[3]; - rgb = rgba.slice(0, 3); - data = map(rgb, function (c) { - c = Math.floor(c.indexOf('%') > 0 ? parseInt(c, 0) * 2.55 : c); - return adjust(c, [ - 0, - 255 - ]); - }); - if (typeof a !== 'undefined') { - data.push(adjust(parseFloat(a), [ - 0, - 1 - ])); - } - } else if (r[5] || r[6]) { - var hsxa = (r[5] || r[6]).split(','); - var h = parseInt(hsxa[0], 0) / 360; - var s = hsxa[1]; - var x = hsxa[2]; - a = hsxa[3]; - data = map([ - s, - x - ], function (c) { - return adjust(parseFloat(c) / 100, [ - 0, - 1 - ]); - }); - data.unshift(h); - if (typeof a !== 'undefined') { - data.push(adjust(parseFloat(a), [ - 0, - 1 - ])); - } - } - return data; - } - function alpha(color, a) { - if (!isCalculableColor(color)) { - return color; - } - if (a === null) { - a = 1; - } - var data = getData(toRGBA(color)); - data[3] = adjust(Number(a).toFixed(4), [ - 0, - 1 - ]); - return toColor(data, 'rgba'); - } - function map(array, fun) { - if (typeof fun !== 'function') { - throw new TypeError(); - } - var len = array ? array.length : 0; - for (var i = 0; i < len; i++) { - array[i] = fun(array[i]); - } - return array; - } - function adjust(value, region) { - if (value <= region[0]) { - value = region[0]; - } else if (value >= region[1]) { - value = region[1]; - } - return value; - } - function isCalculableColor(color) { - return color instanceof Array || typeof color === 'string'; - } - function _HSV_2_RGB(data) { - var H = data[0]; - var S = data[1]; - var V = data[2]; - var R; - var G; - var B; - if (S === 0) { - R = V * 255; - G = V * 255; - B = V * 255; - } else { - var h = H * 6; - if (h === 6) { - h = 0; - } - var i = h | 0; - var v1 = V * (1 - S); - var v2 = V * (1 - S * (h - i)); - var v3 = V * (1 - S * (1 - (h - i))); - var r = 0; - var g = 0; - var b = 0; - if (i === 0) { - r = V; - g = v3; - b = v1; - } else if (i === 1) { - r = v2; - g = V; - b = v1; - } else if (i === 2) { - r = v1; - g = V; - b = v3; - } else if (i === 3) { - r = v1; - g = v2; - b = V; - } else if (i === 4) { - r = v3; - g = v1; - b = V; - } else { - r = V; - g = v1; - b = v2; - } - R = r * 255; - G = g * 255; - B = b * 255; - } - return [ - R, - G, - B - ]; - } - function _HSL_2_RGB(data) { - var H = data[0]; - var S = data[1]; - var L = data[2]; - var R; - var G; - var B; - if (S === 0) { - R = L * 255; - G = L * 255; - B = L * 255; - } else { - var v2; - if (L < 0.5) { - v2 = L * (1 + S); - } else { - v2 = L + S - S * L; - } - var v1 = 2 * L - v2; - R = 255 * _HUE_2_RGB(v1, v2, H + 1 / 3); - G = 255 * _HUE_2_RGB(v1, v2, H); - B = 255 * _HUE_2_RGB(v1, v2, H - 1 / 3); - } - return [ - R, - G, - B - ]; - } - function _HUE_2_RGB(v1, v2, vH) { - if (vH < 0) { - vH += 1; - } - if (vH > 1) { - vH -= 1; - } - if (6 * vH < 1) { - return v1 + (v2 - v1) * 6 * vH; - } - if (2 * vH < 1) { - return v2; - } - if (3 * vH < 2) { - return v1 + (v2 - v1) * (2 / 3 - vH) * 6; - } - return v1; - } - function _RGB_2_HSB(data) { - var R = data[0] / 255; - var G = data[1] / 255; - var B = data[2] / 255; - var vMin = Math.min(R, G, B); - var vMax = Math.max(R, G, B); - var delta = vMax - vMin; - var V = vMax; - var H; - var S; - if (delta === 0) { - H = 0; - S = 0; - } else { - S = delta / vMax; - var deltaR = ((vMax - R) / 6 + delta / 2) / delta; - var deltaG = ((vMax - G) / 6 + delta / 2) / delta; - var deltaB = ((vMax - B) / 6 + delta / 2) / delta; - if (R === vMax) { - H = deltaB - deltaG; - } else if (G === vMax) { - H = 1 / 3 + deltaR - deltaB; - } else if (B === vMax) { - H = 2 / 3 + deltaG - deltaR; - } - if (H < 0) { - H += 1; - } - if (H > 1) { - H -= 1; - } - } - H = H * 360; - S = S * 100; - V = V * 100; - return [ - H, - S, - V - ]; - } - function _RGB_2_HSL(data) { - var R = data[0] / 255; - var G = data[1] / 255; - var B = data[2] / 255; - var vMin = Math.min(R, G, B); - var vMax = Math.max(R, G, B); - var delta = vMax - vMin; - var L = (vMax + vMin) / 2; - var H; - var S; - if (delta === 0) { - H = 0; - S = 0; - } else { - if (L < 0.5) { - S = delta / (vMax + vMin); - } else { - S = delta / (2 - vMax - vMin); - } - var deltaR = ((vMax - R) / 6 + delta / 2) / delta; - var deltaG = ((vMax - G) / 6 + delta / 2) / delta; - var deltaB = ((vMax - B) / 6 + delta / 2) / delta; - if (R === vMax) { - H = deltaB - deltaG; - } else if (G === vMax) { - H = 1 / 3 + deltaR - deltaB; - } else if (B === vMax) { - H = 2 / 3 + deltaG - deltaR; - } - if (H < 0) { - H += 1; - } - if (H > 1) { - H -= 1; - } - } - H = H * 360; - S = S * 100; - L = L * 100; - return [ - H, - S, - L - ]; - } - return { - customPalette: customPalette, - resetPalette: resetPalette, - getColor: getColor, - getHighlightColor: getHighlightColor, - customHighlight: customHighlight, - resetHighlight: resetHighlight, - getRadialGradient: getRadialGradient, - getLinearGradient: getLinearGradient, - getGradientColors: getGradientColors, - getStepColors: getStepColors, - reverse: reverse, - mix: mix, - lift: lift, - trim: trim, - random: random, - toRGB: toRGB, - toRGBA: toRGBA, - toHex: toHex, - toHSL: toHSL, - toHSLA: toHSLA, - toHSB: toHSB, - toHSBA: toHSBA, - toHSV: toHSV, - toHSVA: toHSVA, - toName: toName, - toColor: toColor, - toArray: toArray, - alpha: alpha, - getData: getData - }; -});define('echarts/component/timeline', [ - 'require', - './base', - 'zrender/shape/Rectangle', - '../util/shape/Icon', - '../util/shape/Chain', - '../config', - 'zrender/tool/util', - 'zrender/tool/area', - 'zrender/tool/event', - '../component' -], function (require) { - var Base = require('./base'); - var RectangleShape = require('zrender/shape/Rectangle'); - var IconShape = require('../util/shape/Icon'); - var ChainShape = require('../util/shape/Chain'); - var ecConfig = require('../config'); - ecConfig.timeline = { - zlevel: 0, - z: 4, - show: true, - type: 'time', - notMerge: false, - realtime: true, - x: 80, - x2: 80, - y2: 0, - height: 50, - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - controlPosition: 'left', - autoPlay: false, - loop: true, - playInterval: 2000, - lineStyle: { - width: 1, - color: '#666', - type: 'dashed' - }, - label: { - show: true, - interval: 'auto', - rotate: 0, - textStyle: { color: '#333' } - }, - checkpointStyle: { - symbol: 'auto', - symbolSize: 'auto', - color: 'auto', - borderColor: 'auto', - borderWidth: 'auto', - label: { - show: false, - textStyle: { color: 'auto' } - } - }, - controlStyle: { - itemSize: 15, - itemGap: 5, - normal: { color: '#333' }, - emphasis: { color: '#1e90ff' } - }, - symbol: 'emptyDiamond', - symbolSize: 4, - currentIndex: 0 - }; - var zrUtil = require('zrender/tool/util'); - var zrArea = require('zrender/tool/area'); - var zrEvent = require('zrender/tool/event'); - function Timeline(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._onclick = function (param) { - return self.__onclick(param); - }; - self._ondrift = function (dx, dy) { - return self.__ondrift(this, dx, dy); - }; - self._ondragend = function () { - return self.__ondragend(); - }; - self._setCurrentOption = function () { - var timelineOption = self.timelineOption; - self.currentIndex %= timelineOption.data.length; - var curOption = self.options[self.currentIndex] || {}; - self.myChart._setOption(curOption, timelineOption.notMerge, true); - self.messageCenter.dispatch(ecConfig.EVENT.TIMELINE_CHANGED, null, { - currentIndex: self.currentIndex, - data: timelineOption.data[self.currentIndex].name != null ? timelineOption.data[self.currentIndex].name : timelineOption.data[self.currentIndex] - }, self.myChart); - }; - self._onFrame = function () { - self._setCurrentOption(); - self._syncHandleShape(); - if (self.timelineOption.autoPlay) { - self.playTicket = setTimeout(function () { - self.currentIndex += 1; - if (!self.timelineOption.loop && self.currentIndex >= self.timelineOption.data.length) { - self.currentIndex = self.timelineOption.data.length - 1; - self.stop(); - return; - } - self._onFrame(); - }, self.timelineOption.playInterval); - } - }; - this.setTheme(false); - this.options = this.option.options; - this.currentIndex = this.timelineOption.currentIndex % this.timelineOption.data.length; - if (!this.timelineOption.notMerge && this.currentIndex !== 0) { - this.options[this.currentIndex] = zrUtil.merge(this.options[this.currentIndex], this.options[0]); - } - if (this.timelineOption.show) { - this._buildShape(); - this._syncHandleShape(); - } - this._setCurrentOption(); - if (this.timelineOption.autoPlay) { - var self = this; - this.playTicket = setTimeout(function () { - self.play(); - }, this.ecTheme.animationDuration != null ? this.ecTheme.animationDuration : ecConfig.animationDuration); - } - } - Timeline.prototype = { - type: ecConfig.COMPONENT_TYPE_TIMELINE, - _buildShape: function () { - this._location = this._getLocation(); - this._buildBackground(); - this._buildControl(); - this._chainPoint = this._getChainPoint(); - if (this.timelineOption.label.show) { - var interval = this._getInterval(); - for (var i = 0, len = this._chainPoint.length; i < len; i += interval) { - this._chainPoint[i].showLabel = true; - } - } - this._buildChain(); - this._buildHandle(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _getLocation: function () { - var timelineOption = this.timelineOption; - var padding = this.reformCssArray(this.timelineOption.padding); - var zrWidth = this.zr.getWidth(); - var x = this.parsePercent(timelineOption.x, zrWidth); - var x2 = this.parsePercent(timelineOption.x2, zrWidth); - var width; - if (timelineOption.width == null) { - width = zrWidth - x - x2; - x2 = zrWidth - x2; - } else { - width = this.parsePercent(timelineOption.width, zrWidth); - x2 = x + width; - } - var zrHeight = this.zr.getHeight(); - var height = this.parsePercent(timelineOption.height, zrHeight); - var y; - var y2; - if (timelineOption.y != null) { - y = this.parsePercent(timelineOption.y, zrHeight); - y2 = y + height; - } else { - y2 = zrHeight - this.parsePercent(timelineOption.y2, zrHeight); - y = y2 - height; - } - return { - x: x + padding[3], - y: y + padding[0], - x2: x2 - padding[1], - y2: y2 - padding[2], - width: width - padding[1] - padding[3], - height: height - padding[0] - padding[2] - }; - }, - _getReformedLabel: function (idx) { - var timelineOption = this.timelineOption; - var data = timelineOption.data[idx].name != null ? timelineOption.data[idx].name : timelineOption.data[idx]; - var formatter = timelineOption.data[idx].formatter || timelineOption.label.formatter; - if (formatter) { - if (typeof formatter === 'function') { - data = formatter.call(this.myChart, data); - } else if (typeof formatter === 'string') { - data = formatter.replace('{value}', data); - } - } - return data; - }, - _getInterval: function () { - var chainPoint = this._chainPoint; - var timelineOption = this.timelineOption; - var interval = timelineOption.label.interval; - if (interval === 'auto') { - var fontSize = timelineOption.label.textStyle.fontSize; - var data = timelineOption.data; - var dataLength = timelineOption.data.length; - if (dataLength > 3) { - var isEnough = false; - var labelSpace; - var labelSize; - interval = 0; - while (!isEnough && interval < dataLength) { - interval++; - isEnough = true; - for (var i = interval; i < dataLength; i += interval) { - labelSpace = chainPoint[i].x - chainPoint[i - interval].x; - if (timelineOption.label.rotate !== 0) { - labelSize = fontSize; - } else if (data[i].textStyle) { - labelSize = zrArea.getTextWidth(chainPoint[i].name, chainPoint[i].textFont); - } else { - var label = chainPoint[i].name + ''; - var wLen = (label.match(/\w/g) || '').length; - var oLen = label.length - wLen; - labelSize = wLen * fontSize * 2 / 3 + oLen * fontSize; - } - if (labelSpace < labelSize) { - isEnough = false; - break; - } - } - } - } else { - interval = 1; - } - } else { - interval = interval - 0 + 1; - } - return interval; - }, - _getChainPoint: function () { - var timelineOption = this.timelineOption; - var symbol = timelineOption.symbol.toLowerCase(); - var symbolSize = timelineOption.symbolSize; - var rotate = timelineOption.label.rotate; - var textStyle = timelineOption.label.textStyle; - var textFont = this.getFont(textStyle); - var dataTextStyle; - var data = timelineOption.data; - var x = this._location.x; - var y = this._location.y + this._location.height / 4 * 3; - var width = this._location.x2 - this._location.x; - var len = data.length; - function _getName(i) { - return data[i].name != null ? data[i].name : data[i] + ''; - } - var xList = []; - if (len > 1) { - var boundaryGap = width / len; - boundaryGap = boundaryGap > 50 ? 50 : boundaryGap < 20 ? 5 : boundaryGap; - width -= boundaryGap * 2; - if (timelineOption.type === 'number') { - for (var i = 0; i < len; i++) { - xList.push(x + boundaryGap + width / (len - 1) * i); - } - } else { - xList[0] = new Date(_getName(0).replace(/-/g, '/')); - xList[len - 1] = new Date(_getName(len - 1).replace(/-/g, '/')) - xList[0]; - for (var i = 1; i < len; i++) { - xList[i] = x + boundaryGap + width * (new Date(_getName(i).replace(/-/g, '/')) - xList[0]) / xList[len - 1]; - } - xList[0] = x + boundaryGap; - } - } else { - xList.push(x + width / 2); - } - var list = []; - var curSymbol; - var n; - var isEmpty; - var textAlign; - var rotation; - for (var i = 0; i < len; i++) { - x = xList[i]; - curSymbol = data[i].symbol && data[i].symbol.toLowerCase() || symbol; - if (curSymbol.match('empty')) { - curSymbol = curSymbol.replace('empty', ''); - isEmpty = true; - } else { - isEmpty = false; - } - if (curSymbol.match('star')) { - n = curSymbol.replace('star', '') - 0 || 5; - curSymbol = 'star'; - } - dataTextStyle = data[i].textStyle ? zrUtil.merge(data[i].textStyle || {}, textStyle) : textStyle; - textAlign = dataTextStyle.align || 'center'; - if (rotate) { - textAlign = rotate > 0 ? 'right' : 'left'; - rotation = [ - rotate * Math.PI / 180, - x, - y - 5 - ]; - } else { - rotation = false; - } - list.push({ - x: x, - n: n, - isEmpty: isEmpty, - symbol: curSymbol, - symbolSize: data[i].symbolSize || symbolSize, - color: data[i].color, - borderColor: data[i].borderColor, - borderWidth: data[i].borderWidth, - name: this._getReformedLabel(i), - textColor: dataTextStyle.color, - textAlign: textAlign, - textBaseline: dataTextStyle.baseline || 'middle', - textX: x, - textY: y - (rotate ? 5 : 0), - textFont: data[i].textStyle ? this.getFont(dataTextStyle) : textFont, - rotation: rotation, - showLabel: false - }); - } - return list; - }, - _buildBackground: function () { - var timelineOption = this.timelineOption; - var padding = this.reformCssArray(this.timelineOption.padding); - var width = this._location.width; - var height = this._location.height; - if (timelineOption.borderWidth !== 0 || timelineOption.backgroundColor.replace(/\s/g, '') != 'rgba(0,0,0,0)') { - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._location.x - padding[3], - y: this._location.y - padding[0], - width: width + padding[1] + padding[3], - height: height + padding[0] + padding[2], - brushType: timelineOption.borderWidth === 0 ? 'fill' : 'both', - color: timelineOption.backgroundColor, - strokeColor: timelineOption.borderColor, - lineWidth: timelineOption.borderWidth - } - })); - } - }, - _buildControl: function () { - var self = this; - var timelineOption = this.timelineOption; - var lineStyle = timelineOption.lineStyle; - var controlStyle = timelineOption.controlStyle; - if (timelineOption.controlPosition === 'none') { - return; - } - var iconSize = controlStyle.itemSize; - var iconGap = controlStyle.itemGap; - var x; - if (timelineOption.controlPosition === 'left') { - x = this._location.x; - this._location.x += (iconSize + iconGap) * 3; - } else { - x = this._location.x2 - ((iconSize + iconGap) * 3 - iconGap); - this._location.x2 -= (iconSize + iconGap) * 3; - } - var y = this._location.y; - var iconStyle = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - iconType: 'timelineControl', - symbol: 'last', - x: x, - y: y, - width: iconSize, - height: iconSize, - brushType: 'stroke', - color: controlStyle.normal.color, - strokeColor: controlStyle.normal.color, - lineWidth: lineStyle.width - }, - highlightStyle: { - color: controlStyle.emphasis.color, - strokeColor: controlStyle.emphasis.color, - lineWidth: lineStyle.width + 1 - }, - clickable: true - }; - this._ctrLastShape = new IconShape(iconStyle); - this._ctrLastShape.onclick = function () { - self.last(); - }; - this.shapeList.push(this._ctrLastShape); - x += iconSize + iconGap; - this._ctrPlayShape = new IconShape(zrUtil.clone(iconStyle)); - this._ctrPlayShape.style.brushType = 'fill'; - this._ctrPlayShape.style.symbol = 'play'; - this._ctrPlayShape.style.status = this.timelineOption.autoPlay ? 'playing' : 'stop'; - this._ctrPlayShape.style.x = x; - this._ctrPlayShape.onclick = function () { - if (self._ctrPlayShape.style.status === 'stop') { - self.play(); - } else { - self.stop(); - } - }; - this.shapeList.push(this._ctrPlayShape); - x += iconSize + iconGap; - this._ctrNextShape = new IconShape(zrUtil.clone(iconStyle)); - this._ctrNextShape.style.symbol = 'next'; - this._ctrNextShape.style.x = x; - this._ctrNextShape.onclick = function () { - self.next(); - }; - this.shapeList.push(this._ctrNextShape); - }, - _buildChain: function () { - var timelineOption = this.timelineOption; - var lineStyle = timelineOption.lineStyle; - this._timelineShae = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: this._location.x, - y: this.subPixelOptimize(this._location.y, lineStyle.width), - width: this._location.x2 - this._location.x, - height: this._location.height, - chainPoint: this._chainPoint, - brushType: 'both', - strokeColor: lineStyle.color, - lineWidth: lineStyle.width, - lineType: lineStyle.type - }, - hoverable: false, - clickable: true, - onclick: this._onclick - }; - this._timelineShae = new ChainShape(this._timelineShae); - this.shapeList.push(this._timelineShae); - }, - _buildHandle: function () { - var curPoint = this._chainPoint[this.currentIndex]; - var symbolSize = curPoint.symbolSize + 1; - symbolSize = symbolSize < 5 ? 5 : symbolSize; - this._handleShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - hoverable: false, - draggable: true, - style: { - iconType: 'diamond', - n: curPoint.n, - x: curPoint.x - symbolSize, - y: this._location.y + this._location.height / 4 - symbolSize, - width: symbolSize * 2, - height: symbolSize * 2, - brushType: 'both', - textPosition: 'specific', - textX: curPoint.x, - textY: this._location.y - this._location.height / 4, - textAlign: 'center', - textBaseline: 'middle' - }, - highlightStyle: {}, - ondrift: this._ondrift, - ondragend: this._ondragend - }; - this._handleShape = new IconShape(this._handleShape); - this.shapeList.push(this._handleShape); - }, - _syncHandleShape: function () { - if (!this.timelineOption.show) { - return; - } - var timelineOption = this.timelineOption; - var cpStyle = timelineOption.checkpointStyle; - var curPoint = this._chainPoint[this.currentIndex]; - this._handleShape.style.text = cpStyle.label.show ? curPoint.name : ''; - this._handleShape.style.textFont = curPoint.textFont; - this._handleShape.style.n = curPoint.n; - if (cpStyle.symbol === 'auto') { - this._handleShape.style.iconType = curPoint.symbol != 'none' ? curPoint.symbol : 'diamond'; - } else { - this._handleShape.style.iconType = cpStyle.symbol; - if (cpStyle.symbol.match('star')) { - this._handleShape.style.n = cpStyle.symbol.replace('star', '') - 0 || 5; - this._handleShape.style.iconType = 'star'; - } - } - var symbolSize; - if (cpStyle.symbolSize === 'auto') { - symbolSize = curPoint.symbolSize + 2; - symbolSize = symbolSize < 5 ? 5 : symbolSize; - } else { - symbolSize = cpStyle.symbolSize - 0; - } - this._handleShape.style.color = cpStyle.color === 'auto' ? curPoint.color ? curPoint.color : timelineOption.controlStyle.emphasis.color : cpStyle.color; - this._handleShape.style.textColor = cpStyle.label.textStyle.color === 'auto' ? this._handleShape.style.color : cpStyle.label.textStyle.color; - this._handleShape.highlightStyle.strokeColor = this._handleShape.style.strokeColor = cpStyle.borderColor === 'auto' ? curPoint.borderColor ? curPoint.borderColor : '#fff' : cpStyle.borderColor; - this._handleShape.style.lineWidth = cpStyle.borderWidth === 'auto' ? curPoint.borderWidth ? curPoint.borderWidth : 0 : cpStyle.borderWidth - 0; - this._handleShape.highlightStyle.lineWidth = this._handleShape.style.lineWidth + 1; - this.zr.animate(this._handleShape.id, 'style').when(500, { - x: curPoint.x - symbolSize, - textX: curPoint.x, - y: this._location.y + this._location.height / 4 - symbolSize, - width: symbolSize * 2, - height: symbolSize * 2 - }).start('ExponentialOut'); - }, - _findChainIndex: function (x) { - var chainPoint = this._chainPoint; - var len = chainPoint.length; - if (x <= chainPoint[0].x) { - return 0; - } else if (x >= chainPoint[len - 1].x) { - return len - 1; - } - for (var i = 0; i < len - 1; i++) { - if (x >= chainPoint[i].x && x <= chainPoint[i + 1].x) { - return Math.abs(x - chainPoint[i].x) < Math.abs(x - chainPoint[i + 1].x) ? i : i + 1; - } - } - }, - __onclick: function (param) { - var x = zrEvent.getX(param.event); - var newIndex = this._findChainIndex(x); - if (newIndex === this.currentIndex) { - return true; - } - this.currentIndex = newIndex; - this.timelineOption.autoPlay && this.stop(); - clearTimeout(this.playTicket); - this._onFrame(); - }, - __ondrift: function (shape, dx) { - this.timelineOption.autoPlay && this.stop(); - var chainPoint = this._chainPoint; - var len = chainPoint.length; - var newIndex; - if (shape.style.x + dx <= chainPoint[0].x - chainPoint[0].symbolSize) { - shape.style.x = chainPoint[0].x - chainPoint[0].symbolSize; - newIndex = 0; - } else if (shape.style.x + dx >= chainPoint[len - 1].x - chainPoint[len - 1].symbolSize) { - shape.style.x = chainPoint[len - 1].x - chainPoint[len - 1].symbolSize; - newIndex = len - 1; - } else { - shape.style.x += dx; - newIndex = this._findChainIndex(shape.style.x); - } - var curPoint = chainPoint[newIndex]; - var symbolSize = curPoint.symbolSize + 2; - shape.style.iconType = curPoint.symbol; - shape.style.n = curPoint.n; - shape.style.textX = shape.style.x + symbolSize / 2; - shape.style.y = this._location.y + this._location.height / 4 - symbolSize; - shape.style.width = symbolSize * 2; - shape.style.height = symbolSize * 2; - shape.style.text = curPoint.name; - if (newIndex === this.currentIndex) { - return true; - } - this.currentIndex = newIndex; - if (this.timelineOption.realtime) { - clearTimeout(this.playTicket); - var self = this; - this.playTicket = setTimeout(function () { - self._setCurrentOption(); - }, 200); - } - return true; - }, - __ondragend: function () { - this.isDragend = true; - }, - ondragend: function (param, status) { - if (!this.isDragend || !param.target) { - return; - } - !this.timelineOption.realtime && this._setCurrentOption(); - status.dragOut = true; - status.dragIn = true; - status.needRefresh = false; - this.isDragend = false; - this._syncHandleShape(); - return; - }, - last: function () { - this.timelineOption.autoPlay && this.stop(); - this.currentIndex -= 1; - if (this.currentIndex < 0) { - this.currentIndex = this.timelineOption.data.length - 1; - } - this._onFrame(); - return this.currentIndex; - }, - next: function () { - this.timelineOption.autoPlay && this.stop(); - this.currentIndex += 1; - if (this.currentIndex >= this.timelineOption.data.length) { - this.currentIndex = 0; - } - this._onFrame(); - return this.currentIndex; - }, - play: function (targetIndex, autoPlay) { - if (this._ctrPlayShape && this._ctrPlayShape.style.status != 'playing') { - this._ctrPlayShape.style.status = 'playing'; - this.zr.modShape(this._ctrPlayShape.id); - this.zr.refreshNextFrame(); - } - this.timelineOption.autoPlay = autoPlay != null ? autoPlay : true; - if (!this.timelineOption.autoPlay) { - clearTimeout(this.playTicket); - } - this.currentIndex = targetIndex != null ? targetIndex : this.currentIndex + 1; - if (this.currentIndex >= this.timelineOption.data.length) { - this.currentIndex = 0; - } - this._onFrame(); - return this.currentIndex; - }, - stop: function () { - if (this._ctrPlayShape && this._ctrPlayShape.style.status != 'stop') { - this._ctrPlayShape.style.status = 'stop'; - this.zr.modShape(this._ctrPlayShape.id); - this.zr.refreshNextFrame(); - } - this.timelineOption.autoPlay = false; - clearTimeout(this.playTicket); - return this.currentIndex; - }, - resize: function () { - if (this.timelineOption.show) { - this.clear(); - this._buildShape(); - this._syncHandleShape(); - } - }, - setTheme: function (needRefresh) { - this.timelineOption = this.reformOption(zrUtil.clone(this.option.timeline)); - this.timelineOption.label.textStyle = this.getTextStyle(this.timelineOption.label.textStyle); - this.timelineOption.checkpointStyle.label.textStyle = this.getTextStyle(this.timelineOption.checkpointStyle.label.textStyle); - if (!this.myChart.canvasSupported) { - this.timelineOption.realtime = false; - } - if (this.timelineOption.show && needRefresh) { - this.clear(); - this._buildShape(); - this._syncHandleShape(); - } - }, - onbeforDispose: function () { - clearTimeout(this.playTicket); - } - }; - function timelineControl(ctx, style) { - var lineWidth = 2; - var x = style.x + lineWidth; - var y = style.y + lineWidth + 2; - var width = style.width - lineWidth; - var height = style.height - lineWidth; - var symbol = style.symbol; - if (symbol === 'last') { - ctx.moveTo(x + width - 2, y + height / 3); - ctx.lineTo(x + width - 2, y); - ctx.lineTo(x + 2, y + height / 2); - ctx.lineTo(x + width - 2, y + height); - ctx.lineTo(x + width - 2, y + height / 3 * 2); - ctx.moveTo(x, y); - ctx.lineTo(x, y); - } else if (symbol === 'next') { - ctx.moveTo(x + 2, y + height / 3); - ctx.lineTo(x + 2, y); - ctx.lineTo(x + width - 2, y + height / 2); - ctx.lineTo(x + 2, y + height); - ctx.lineTo(x + 2, y + height / 3 * 2); - ctx.moveTo(x, y); - ctx.lineTo(x, y); - } else if (symbol === 'play') { - if (style.status === 'stop') { - ctx.moveTo(x + 2, y); - ctx.lineTo(x + width - 2, y + height / 2); - ctx.lineTo(x + 2, y + height); - ctx.lineTo(x + 2, y); - } else { - var delta = style.brushType === 'both' ? 2 : 3; - ctx.rect(x + 2, y, delta, height); - ctx.rect(x + width - delta - 2, y, delta, height); - } - } else if (symbol.match('image')) { - var imageLocation = ''; - imageLocation = symbol.replace(new RegExp('^image:\\/\\/'), ''); - symbol = IconShape.prototype.iconLibrary.image; - symbol(ctx, { - x: x, - y: y, - width: width, - height: height, - image: imageLocation - }); - } - } - IconShape.prototype.iconLibrary['timelineControl'] = timelineControl; - zrUtil.inherits(Timeline, Base); - require('../component').define('timeline', Timeline); - return Timeline; -});define('zrender/shape/Image', [ - 'require', - './Base', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var ZImage = function (options) { - Base.call(this, options); - }; - ZImage.prototype = { - type: 'image', - brush: function (ctx, isHighlight, refreshNextFrame) { - var style = this.style || {}; - if (isHighlight) { - style = this.getHighlightStyle(style, this.highlightStyle || {}); - } - var image = style.image; - var self = this; - if (!this._imageCache) { - this._imageCache = {}; - } - if (typeof image === 'string') { - var src = image; - if (this._imageCache[src]) { - image = this._imageCache[src]; - } else { - image = new Image(); - image.onload = function () { - image.onload = null; - self.modSelf(); - refreshNextFrame(); - }; - image.src = src; - this._imageCache[src] = image; - } - } - if (image) { - if (image.nodeName.toUpperCase() == 'IMG') { - if (window.ActiveXObject) { - if (image.readyState != 'complete') { - return; - } - } else { - if (!image.complete) { - return; - } - } - } - var width = style.width || image.width; - var height = style.height || image.height; - var x = style.x; - var y = style.y; - if (!image.width || !image.height) { - return; - } - ctx.save(); - this.doClip(ctx); - this.setContext(ctx, style); - this.setTransform(ctx); - if (style.sWidth && style.sHeight) { - var sx = style.sx || 0; - var sy = style.sy || 0; - ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height); - } else if (style.sx && style.sy) { - var sx = style.sx; - var sy = style.sy; - var sWidth = width - sx; - var sHeight = height - sy; - ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height); - } else { - ctx.drawImage(image, x, y, width, height); - } - if (!style.width) { - style.width = width; - } - if (!style.height) { - style.height = height; - } - if (!this.style.width) { - this.style.width = width; - } - if (!this.style.height) { - this.style.height = height; - } - this.drawText(ctx, style, this.style); - ctx.restore(); - } - }, - getRect: function (style) { - return { - x: style.x, - y: style.y, - width: style.width, - height: style.height - }; - }, - clearCache: function () { - this._imageCache = {}; - } - }; - require('../tool/util').inherits(ZImage, Base); - return ZImage; -});define('zrender/loadingEffect/Bar', [ - 'require', - './Base', - '../tool/util', - '../tool/color', - '../shape/Rectangle' -], function (require) { - var Base = require('./Base'); - var util = require('../tool/util'); - var zrColor = require('../tool/color'); - var RectangleShape = require('../shape/Rectangle'); - function Bar(options) { - Base.call(this, options); - } - util.inherits(Bar, Base); - Bar.prototype._start = function (addShapeHandle, refreshHandle) { - var options = util.merge(this.options, { - textStyle: { color: '#888' }, - backgroundColor: 'rgba(250, 250, 250, 0.8)', - effectOption: { - x: 0, - y: this.canvasHeight / 2 - 30, - width: this.canvasWidth, - height: 5, - brushType: 'fill', - timeInterval: 100 - } - }); - var textShape = this.createTextShape(options.textStyle); - var background = this.createBackgroundShape(options.backgroundColor); - var effectOption = options.effectOption; - var barShape = new RectangleShape({ highlightStyle: util.clone(effectOption) }); - barShape.highlightStyle.color = effectOption.color || zrColor.getLinearGradient(effectOption.x, effectOption.y, effectOption.x + effectOption.width, effectOption.y + effectOption.height, [ - [ - 0, - '#ff6400' - ], - [ - 0.5, - '#ffe100' - ], - [ - 1, - '#b1ff00' - ] - ]); - if (options.progress != null) { - addShapeHandle(background); - barShape.highlightStyle.width = this.adjust(options.progress, [ - 0, - 1 - ]) * options.effectOption.width; - addShapeHandle(barShape); - addShapeHandle(textShape); - refreshHandle(); - return; - } else { - barShape.highlightStyle.width = 0; - return setInterval(function () { - addShapeHandle(background); - if (barShape.highlightStyle.width < effectOption.width) { - barShape.highlightStyle.width += 8; - } else { - barShape.highlightStyle.width = 0; - } - addShapeHandle(barShape); - addShapeHandle(textShape); - refreshHandle(); - }, effectOption.timeInterval); - } - }; - return Bar; -});define('zrender/loadingEffect/Bubble', [ - 'require', - './Base', - '../tool/util', - '../tool/color', - '../shape/Circle' -], function (require) { - var Base = require('./Base'); - var util = require('../tool/util'); - var zrColor = require('../tool/color'); - var CircleShape = require('../shape/Circle'); - function Bubble(options) { - Base.call(this, options); - } - util.inherits(Bubble, Base); - Bubble.prototype._start = function (addShapeHandle, refreshHandle) { - var options = util.merge(this.options, { - textStyle: { color: '#888' }, - backgroundColor: 'rgba(250, 250, 250, 0.8)', - effect: { - n: 50, - lineWidth: 2, - brushType: 'stroke', - color: 'random', - timeInterval: 100 - } - }); - var textShape = this.createTextShape(options.textStyle); - var background = this.createBackgroundShape(options.backgroundColor); - var effectOption = options.effect; - var n = effectOption.n; - var brushType = effectOption.brushType; - var lineWidth = effectOption.lineWidth; - var shapeList = []; - var canvasWidth = this.canvasWidth; - var canvasHeight = this.canvasHeight; - for (var i = 0; i < n; i++) { - var color = effectOption.color == 'random' ? zrColor.alpha(zrColor.random(), 0.3) : effectOption.color; - shapeList[i] = new CircleShape({ - highlightStyle: { - x: Math.ceil(Math.random() * canvasWidth), - y: Math.ceil(Math.random() * canvasHeight), - r: Math.ceil(Math.random() * 40), - brushType: brushType, - color: color, - strokeColor: color, - lineWidth: lineWidth - }, - animationY: Math.ceil(Math.random() * 20) - }); - } - return setInterval(function () { - addShapeHandle(background); - for (var i = 0; i < n; i++) { - var style = shapeList[i].highlightStyle; - if (style.y - shapeList[i].animationY + style.r <= 0) { - shapeList[i].highlightStyle.y = canvasHeight + style.r; - shapeList[i].highlightStyle.x = Math.ceil(Math.random() * canvasWidth); - } - shapeList[i].highlightStyle.y -= shapeList[i].animationY; - addShapeHandle(shapeList[i]); - } - addShapeHandle(textShape); - refreshHandle(); - }, effectOption.timeInterval); - }; - return Bubble; -});define('zrender/loadingEffect/DynamicLine', [ - 'require', - './Base', - '../tool/util', - '../tool/color', - '../shape/Line' -], function (require) { - var Base = require('./Base'); - var util = require('../tool/util'); - var zrColor = require('../tool/color'); - var LineShape = require('../shape/Line'); - function DynamicLine(options) { - Base.call(this, options); - } - util.inherits(DynamicLine, Base); - DynamicLine.prototype._start = function (addShapeHandle, refreshHandle) { - var options = util.merge(this.options, { - textStyle: { color: '#fff' }, - backgroundColor: 'rgba(0, 0, 0, 0.8)', - effectOption: { - n: 30, - lineWidth: 1, - color: 'random', - timeInterval: 100 - } - }); - var textShape = this.createTextShape(options.textStyle); - var background = this.createBackgroundShape(options.backgroundColor); - var effectOption = options.effectOption; - var n = effectOption.n; - var lineWidth = effectOption.lineWidth; - var shapeList = []; - var canvasWidth = this.canvasWidth; - var canvasHeight = this.canvasHeight; - for (var i = 0; i < n; i++) { - var xStart = -Math.ceil(Math.random() * 1000); - var len = Math.ceil(Math.random() * 400); - var pos = Math.ceil(Math.random() * canvasHeight); - var color = effectOption.color == 'random' ? zrColor.random() : effectOption.color; - shapeList[i] = new LineShape({ - highlightStyle: { - xStart: xStart, - yStart: pos, - xEnd: xStart + len, - yEnd: pos, - strokeColor: color, - lineWidth: lineWidth - }, - animationX: Math.ceil(Math.random() * 100), - len: len - }); - } - return setInterval(function () { - addShapeHandle(background); - for (var i = 0; i < n; i++) { - var style = shapeList[i].highlightStyle; - if (style.xStart >= canvasWidth) { - shapeList[i].len = Math.ceil(Math.random() * 400); - style.xStart = -400; - style.xEnd = -400 + shapeList[i].len; - style.yStart = Math.ceil(Math.random() * canvasHeight); - style.yEnd = style.yStart; - } - style.xStart += shapeList[i].animationX; - style.xEnd += shapeList[i].animationX; - addShapeHandle(shapeList[i]); - } - addShapeHandle(textShape); - refreshHandle(); - }, effectOption.timeInterval); - }; - return DynamicLine; -});define('zrender/loadingEffect/Ring', [ - 'require', - './Base', - '../tool/util', - '../tool/color', - '../shape/Ring', - '../shape/Sector' -], function (require) { - var Base = require('./Base'); - var util = require('../tool/util'); - var zrColor = require('../tool/color'); - var RingShape = require('../shape/Ring'); - var SectorShape = require('../shape/Sector'); - function Ring(options) { - Base.call(this, options); - } - util.inherits(Ring, Base); - Ring.prototype._start = function (addShapeHandle, refreshHandle) { - var options = util.merge(this.options, { - textStyle: { color: '#07a' }, - backgroundColor: 'rgba(250, 250, 250, 0.8)', - effect: { - x: this.canvasWidth / 2, - y: this.canvasHeight / 2, - r0: 60, - r: 100, - color: '#bbdcff', - brushType: 'fill', - textPosition: 'inside', - textFont: 'normal 30px verdana', - textColor: 'rgba(30, 144, 255, 0.6)', - timeInterval: 100 - } - }); - var effectOption = options.effect; - var textStyle = options.textStyle; - if (textStyle.x == null) { - textStyle.x = effectOption.x; - } - if (textStyle.y == null) { - textStyle.y = effectOption.y + (effectOption.r0 + effectOption.r) / 2 - 5; - } - var textShape = this.createTextShape(options.textStyle); - var background = this.createBackgroundShape(options.backgroundColor); - var x = effectOption.x; - var y = effectOption.y; - var r0 = effectOption.r0 + 6; - var r = effectOption.r - 6; - var color = effectOption.color; - var darkColor = zrColor.lift(color, 0.1); - var shapeRing = new RingShape({ highlightStyle: util.clone(effectOption) }); - var shapeList = []; - var clolrList = zrColor.getGradientColors([ - '#ff6400', - '#ffe100', - '#97ff00' - ], 25); - var preAngle = 15; - var endAngle = 240; - for (var i = 0; i < 16; i++) { - shapeList.push(new SectorShape({ - highlightStyle: { - x: x, - y: y, - r0: r0, - r: r, - startAngle: endAngle - preAngle, - endAngle: endAngle, - brushType: 'fill', - color: darkColor - }, - _color: zrColor.getLinearGradient(x + r0 * Math.cos(endAngle, true), y - r0 * Math.sin(endAngle, true), x + r0 * Math.cos(endAngle - preAngle, true), y - r0 * Math.sin(endAngle - preAngle, true), [ - [ - 0, - clolrList[i * 2] - ], - [ - 1, - clolrList[i * 2 + 1] - ] - ]) - })); - endAngle -= preAngle; - } - endAngle = 360; - for (var i = 0; i < 4; i++) { - shapeList.push(new SectorShape({ - highlightStyle: { - x: x, - y: y, - r0: r0, - r: r, - startAngle: endAngle - preAngle, - endAngle: endAngle, - brushType: 'fill', - color: darkColor - }, - _color: zrColor.getLinearGradient(x + r0 * Math.cos(endAngle, true), y - r0 * Math.sin(endAngle, true), x + r0 * Math.cos(endAngle - preAngle, true), y - r0 * Math.sin(endAngle - preAngle, true), [ - [ - 0, - clolrList[i * 2 + 32] - ], - [ - 1, - clolrList[i * 2 + 33] - ] - ]) - })); - endAngle -= preAngle; - } - var n = 0; - if (options.progress != null) { - addShapeHandle(background); - n = this.adjust(options.progress, [ - 0, - 1 - ]).toFixed(2) * 100 / 5; - shapeRing.highlightStyle.text = n * 5 + '%'; - addShapeHandle(shapeRing); - for (var i = 0; i < 20; i++) { - shapeList[i].highlightStyle.color = i < n ? shapeList[i]._color : darkColor; - addShapeHandle(shapeList[i]); - } - addShapeHandle(textShape); - refreshHandle(); - return; - } - return setInterval(function () { - addShapeHandle(background); - n += n >= 20 ? -20 : 1; - addShapeHandle(shapeRing); - for (var i = 0; i < 20; i++) { - shapeList[i].highlightStyle.color = i < n ? shapeList[i]._color : darkColor; - addShapeHandle(shapeList[i]); - } - addShapeHandle(textShape); - refreshHandle(); - }, effectOption.timeInterval); - }; - return Ring; -});define('zrender/loadingEffect/Spin', [ - 'require', - './Base', - '../tool/util', - '../tool/color', - '../tool/area', - '../shape/Sector' -], function (require) { - var Base = require('./Base'); - var util = require('../tool/util'); - var zrColor = require('../tool/color'); - var zrArea = require('../tool/area'); - var SectorShape = require('../shape/Sector'); - function Spin(options) { - Base.call(this, options); - } - util.inherits(Spin, Base); - Spin.prototype._start = function (addShapeHandle, refreshHandle) { - var options = util.merge(this.options, { - textStyle: { - color: '#fff', - textAlign: 'start' - }, - backgroundColor: 'rgba(0, 0, 0, 0.8)' - }); - var textShape = this.createTextShape(options.textStyle); - var textGap = 10; - var textWidth = zrArea.getTextWidth(textShape.highlightStyle.text, textShape.highlightStyle.textFont); - var textHeight = zrArea.getTextHeight(textShape.highlightStyle.text, textShape.highlightStyle.textFont); - var effectOption = util.merge(this.options.effect || {}, { - r0: 9, - r: 15, - n: 18, - color: '#fff', - timeInterval: 100 - }); - var location = this.getLocation(this.options.textStyle, textWidth + textGap + effectOption.r * 2, Math.max(effectOption.r * 2, textHeight)); - effectOption.x = location.x + effectOption.r; - effectOption.y = textShape.highlightStyle.y = location.y + location.height / 2; - textShape.highlightStyle.x = effectOption.x + effectOption.r + textGap; - var background = this.createBackgroundShape(options.backgroundColor); - var n = effectOption.n; - var x = effectOption.x; - var y = effectOption.y; - var r0 = effectOption.r0; - var r = effectOption.r; - var color = effectOption.color; - var shapeList = []; - var preAngle = Math.round(180 / n); - for (var i = 0; i < n; i++) { - shapeList[i] = new SectorShape({ - highlightStyle: { - x: x, - y: y, - r0: r0, - r: r, - startAngle: preAngle * i * 2, - endAngle: preAngle * i * 2 + preAngle, - color: zrColor.alpha(color, (i + 1) / n), - brushType: 'fill' - } - }); - } - var pos = [ - 0, - x, - y - ]; - return setInterval(function () { - addShapeHandle(background); - pos[0] -= 0.3; - for (var i = 0; i < n; i++) { - shapeList[i].rotation = pos; - addShapeHandle(shapeList[i]); - } - addShapeHandle(textShape); - refreshHandle(); - }, effectOption.timeInterval); - }; - return Spin; -});define('zrender/loadingEffect/Whirling', [ - 'require', - './Base', - '../tool/util', - '../tool/area', - '../shape/Ring', - '../shape/Droplet', - '../shape/Circle' -], function (require) { - var Base = require('./Base'); - var util = require('../tool/util'); - var zrArea = require('../tool/area'); - var RingShape = require('../shape/Ring'); - var DropletShape = require('../shape/Droplet'); - var CircleShape = require('../shape/Circle'); - function Whirling(options) { - Base.call(this, options); - } - util.inherits(Whirling, Base); - Whirling.prototype._start = function (addShapeHandle, refreshHandle) { - var options = util.merge(this.options, { - textStyle: { - color: '#888', - textAlign: 'start' - }, - backgroundColor: 'rgba(250, 250, 250, 0.8)' - }); - var textShape = this.createTextShape(options.textStyle); - var textGap = 10; - var textWidth = zrArea.getTextWidth(textShape.highlightStyle.text, textShape.highlightStyle.textFont); - var textHeight = zrArea.getTextHeight(textShape.highlightStyle.text, textShape.highlightStyle.textFont); - var effectOption = util.merge(this.options.effect || {}, { - r: 18, - colorIn: '#fff', - colorOut: '#555', - colorWhirl: '#6cf', - timeInterval: 50 - }); - var location = this.getLocation(this.options.textStyle, textWidth + textGap + effectOption.r * 2, Math.max(effectOption.r * 2, textHeight)); - effectOption.x = location.x + effectOption.r; - effectOption.y = textShape.highlightStyle.y = location.y + location.height / 2; - textShape.highlightStyle.x = effectOption.x + effectOption.r + textGap; - var background = this.createBackgroundShape(options.backgroundColor); - var droplet = new DropletShape({ - highlightStyle: { - a: Math.round(effectOption.r / 2), - b: Math.round(effectOption.r - effectOption.r / 6), - brushType: 'fill', - color: effectOption.colorWhirl - } - }); - var circleIn = new CircleShape({ - highlightStyle: { - r: Math.round(effectOption.r / 6), - brushType: 'fill', - color: effectOption.colorIn - } - }); - var circleOut = new RingShape({ - highlightStyle: { - r0: Math.round(effectOption.r - effectOption.r / 3), - r: effectOption.r, - brushType: 'fill', - color: effectOption.colorOut - } - }); - var pos = [ - 0, - effectOption.x, - effectOption.y - ]; - droplet.highlightStyle.x = circleIn.highlightStyle.x = circleOut.highlightStyle.x = pos[1]; - droplet.highlightStyle.y = circleIn.highlightStyle.y = circleOut.highlightStyle.y = pos[2]; - return setInterval(function () { - addShapeHandle(background); - addShapeHandle(circleOut); - pos[0] -= 0.3; - droplet.rotation = pos; - addShapeHandle(droplet); - addShapeHandle(circleIn); - addShapeHandle(textShape); - refreshHandle(); - }, effectOption.timeInterval); - }; - return Whirling; -});define('echarts/theme/macarons', [], function () { - var theme = { - color: [ - '#2ec7c9', - '#b6a2de', - '#5ab1ef', - '#ffb980', - '#d87a80', - '#8d98b3', - '#e5cf0d', - '#97b552', - '#95706d', - '#dc69aa', - '#07a2a4', - '#9a7fd1', - '#588dd5', - '#f5994e', - '#c05050', - '#59678c', - '#c9ab00', - '#7eb00a', - '#6f5553', - '#c14089' - ], - title: { - textStyle: { - fontWeight: 'normal', - color: '#008acd' - } - }, - dataRange: { - itemWidth: 15, - color: [ - '#5ab1ef', - '#e0ffff' - ] - }, - toolbox: { - color: [ - '#1e90ff', - '#1e90ff', - '#1e90ff', - '#1e90ff' - ], - effectiveColor: '#ff4500' - }, - tooltip: { - backgroundColor: 'rgba(50,50,50,0.5)', - axisPointer: { - type: 'line', - lineStyle: { color: '#008acd' }, - crossStyle: { color: '#008acd' }, - shadowStyle: { color: 'rgba(200,200,200,0.2)' } - } - }, - dataZoom: { - dataBackgroundColor: '#efefff', - fillerColor: 'rgba(182,162,222,0.2)', - handleColor: '#008acd' - }, - grid: { borderColor: '#eee' }, - categoryAxis: { - axisLine: { lineStyle: { color: '#008acd' } }, - splitLine: { lineStyle: { color: ['#eee'] } } - }, - valueAxis: { - axisLine: { lineStyle: { color: '#008acd' } }, - splitArea: { - show: true, - areaStyle: { - color: [ - 'rgba(250,250,250,0.1)', - 'rgba(200,200,200,0.1)' - ] - } - }, - splitLine: { lineStyle: { color: ['#eee'] } } - }, - polar: { - axisLine: { lineStyle: { color: '#ddd' } }, - splitArea: { - show: true, - areaStyle: { - color: [ - 'rgba(250,250,250,0.2)', - 'rgba(200,200,200,0.2)' - ] - } - }, - splitLine: { lineStyle: { color: '#ddd' } } - }, - timeline: { - lineStyle: { color: '#008acd' }, - controlStyle: { - normal: { color: '#008acd' }, - emphasis: { color: '#008acd' } - }, - symbol: 'emptyCircle', - symbolSize: 3 - }, - bar: { - itemStyle: { - normal: { barBorderRadius: 5 }, - emphasis: { barBorderRadius: 5 } - } - }, - line: { - smooth: true, - symbol: 'emptyCircle', - symbolSize: 3 - }, - k: { - itemStyle: { - normal: { - color: '#d87a80', - color0: '#2ec7c9', - lineStyle: { - color: '#d87a80', - color0: '#2ec7c9' - } - } - } - }, - scatter: { - symbol: 'circle', - symbolSize: 4 - }, - radar: { - symbol: 'emptyCircle', - symbolSize: 3 - }, - map: { - itemStyle: { - normal: { - areaStyle: { color: '#ddd' }, - label: { textStyle: { color: '#d87a80' } } - }, - emphasis: { areaStyle: { color: '#fe994e' } } - } - }, - force: { itemStyle: { normal: { linkStyle: { color: '#1e90ff' } } } }, - chord: { - itemStyle: { - normal: { - borderWidth: 1, - borderColor: 'rgba(128, 128, 128, 0.5)', - chordStyle: { lineStyle: { color: 'rgba(128, 128, 128, 0.5)' } } - }, - emphasis: { - borderWidth: 1, - borderColor: 'rgba(128, 128, 128, 0.5)', - chordStyle: { lineStyle: { color: 'rgba(128, 128, 128, 0.5)' } } - } - } - }, - gauge: { - axisLine: { - lineStyle: { - color: [ - [ - 0.2, - '#2ec7c9' - ], - [ - 0.8, - '#5ab1ef' - ], - [ - 1, - '#d87a80' - ] - ], - width: 10 - } - }, - axisTick: { - splitNumber: 10, - length: 15, - lineStyle: { color: 'auto' } - }, - splitLine: { - length: 22, - lineStyle: { color: 'auto' } - }, - pointer: { width: 5 } - }, - textStyle: { fontFamily: '微软雅黑, Arial, Verdana, sans-serif' } - }; - return theme; -});define('echarts/theme/infographic', [], function () { - var theme = { - color: [ - '#C1232B', - '#B5C334', - '#FCCE10', - '#E87C25', - '#27727B', - '#FE8463', - '#9BCA63', - '#FAD860', - '#F3A43B', - '#60C0DD', - '#D7504B', - '#C6E579', - '#F4E001', - '#F0805A', - '#26C0C0' - ], - title: { - textStyle: { - fontWeight: 'normal', - color: '#27727B' - } - }, - dataRange: { - x: 'right', - y: 'center', - itemWidth: 5, - itemHeight: 25, - color: [ - '#C1232B', - '#FCCE10' - ] - }, - toolbox: { - color: [ - '#C1232B', - '#B5C334', - '#FCCE10', - '#E87C25', - '#27727B', - '#FE8463', - '#9BCA63', - '#FAD860', - '#F3A43B', - '#60C0DD' - ], - effectiveColor: '#ff4500' - }, - tooltip: { - backgroundColor: 'rgba(50,50,50,0.5)', - axisPointer: { - type: 'line', - lineStyle: { - color: '#27727B', - type: 'dashed' - }, - crossStyle: { color: '#27727B' }, - shadowStyle: { color: 'rgba(200,200,200,0.3)' } - } - }, - dataZoom: { - dataBackgroundColor: 'rgba(181,195,52,0.3)', - fillerColor: 'rgba(181,195,52,0.2)', - handleColor: '#27727B' - }, - grid: { borderWidth: 0 }, - categoryAxis: { - axisLine: { lineStyle: { color: '#27727B' } }, - splitLine: { show: false } - }, - valueAxis: { - axisLine: { show: false }, - splitArea: { show: false }, - splitLine: { - lineStyle: { - color: ['#ccc'], - type: 'dashed' - } - } - }, - polar: { - axisLine: { lineStyle: { color: '#ddd' } }, - splitArea: { - show: true, - areaStyle: { - color: [ - 'rgba(250,250,250,0.2)', - 'rgba(200,200,200,0.2)' - ] - } - }, - splitLine: { lineStyle: { color: '#ddd' } } - }, - timeline: { - lineStyle: { color: '#27727B' }, - controlStyle: { - normal: { color: '#27727B' }, - emphasis: { color: '#27727B' } - }, - symbol: 'emptyCircle', - symbolSize: 3 - }, - line: { - itemStyle: { - normal: { - borderWidth: 2, - borderColor: '#fff', - lineStyle: { width: 3 } - }, - emphasis: { borderWidth: 0 } - }, - symbol: 'circle', - symbolSize: 3.5 - }, - k: { - itemStyle: { - normal: { - color: '#C1232B', - color0: '#B5C334', - lineStyle: { - width: 1, - color: '#C1232B', - color0: '#B5C334' - } - } - } - }, - scatter: { - itemStyle: { - normal: { - borderWidth: 1, - borderColor: 'rgba(200,200,200,0.5)' - }, - emphasis: { borderWidth: 0 } - }, - symbol: 'star4', - symbolSize: 4 - }, - radar: { - symbol: 'emptyCircle', - symbolSize: 3 - }, - map: { - itemStyle: { - normal: { - areaStyle: { color: '#ddd' }, - label: { textStyle: { color: '#C1232B' } } - }, - emphasis: { - areaStyle: { color: '#fe994e' }, - label: { textStyle: { color: 'rgb(100,0,0)' } } - } - } - }, - force: { itemStyle: { normal: { linkStyle: { color: '#27727B' } } } }, - chord: { - itemStyle: { - normal: { - borderWidth: 1, - borderColor: 'rgba(128, 128, 128, 0.5)', - chordStyle: { lineStyle: { color: 'rgba(128, 128, 128, 0.5)' } } - }, - emphasis: { - borderWidth: 1, - borderColor: 'rgba(128, 128, 128, 0.5)', - chordStyle: { lineStyle: { color: 'rgba(128, 128, 128, 0.5)' } } - } - } - }, - gauge: { - center: [ - '50%', - '80%' - ], - radius: '100%', - startAngle: 180, - endAngle: 0, - axisLine: { - show: true, - lineStyle: { - color: [ - [ - 0.2, - '#B5C334' - ], - [ - 0.8, - '#27727B' - ], - [ - 1, - '#C1232B' - ] - ], - width: '40%' - } - }, - axisTick: { - splitNumber: 2, - length: 5, - lineStyle: { color: '#fff' } - }, - axisLabel: { - textStyle: { - color: '#fff', - fontWeight: 'bolder' - } - }, - splitLine: { - length: '5%', - lineStyle: { color: '#fff' } - }, - pointer: { - width: '40%', - length: '80%', - color: '#fff' - }, - title: { - offsetCenter: [ - 0, - -20 - ], - textStyle: { - color: 'auto', - fontSize: 20 - } - }, - detail: { - offsetCenter: [ - 0, - 0 - ], - textStyle: { - color: 'auto', - fontSize: 40 - } - } - }, - textStyle: { fontFamily: '微软雅黑, Arial, Verdana, sans-serif' } - }; - return theme; -});define('zrender/dep/excanvas', ['require'], function (require) { - if (!document.createElement('canvas').getContext) { - (function () { - var m = Math; - var mr = m.round; - var ms = m.sin; - var mc = m.cos; - var abs = m.abs; - var sqrt = m.sqrt; - var Z = 10; - var Z2 = Z / 2; - var IE_VERSION = +navigator.userAgent.match(/MSIE ([\d.]+)?/)[1]; - function getContext() { - return this.context_ || (this.context_ = new CanvasRenderingContext2D_(this)); - } - var slice = Array.prototype.slice; - function bind(f, obj, var_args) { - var a = slice.call(arguments, 2); - return function () { - return f.apply(obj, a.concat(slice.call(arguments))); - }; - } - function encodeHtmlAttribute(s) { - return String(s).replace(/&/g, '&').replace(/"/g, '"'); - } - function addNamespace(doc, prefix, urn) { - if (!doc.namespaces[prefix]) { - doc.namespaces.add(prefix, urn, '#default#VML'); - } - } - function addNamespacesAndStylesheet(doc) { - addNamespace(doc, 'g_vml_', 'urn:schemas-microsoft-com:vml'); - addNamespace(doc, 'g_o_', 'urn:schemas-microsoft-com:office:office'); - if (!doc.styleSheets['ex_canvas_']) { - var ss = doc.createStyleSheet(); - ss.owningElement.id = 'ex_canvas_'; - ss.cssText = 'canvas{display:inline-block;overflow:hidden;' + 'text-align:left;width:300px;height:150px}'; - } - } - addNamespacesAndStylesheet(document); - var G_vmlCanvasManager_ = { - init: function (opt_doc) { - var doc = opt_doc || document; - doc.createElement('canvas'); - doc.attachEvent('onreadystatechange', bind(this.init_, this, doc)); - }, - init_: function (doc) { - var els = doc.getElementsByTagName('canvas'); - for (var i = 0; i < els.length; i++) { - this.initElement(els[i]); - } - }, - initElement: function (el) { - if (!el.getContext) { - el.getContext = getContext; - addNamespacesAndStylesheet(el.ownerDocument); - el.innerHTML = ''; - el.attachEvent('onpropertychange', onPropertyChange); - el.attachEvent('onresize', onResize); - var attrs = el.attributes; - if (attrs.width && attrs.width.specified) { - el.style.width = attrs.width.nodeValue + 'px'; - } else { - el.width = el.clientWidth; - } - if (attrs.height && attrs.height.specified) { - el.style.height = attrs.height.nodeValue + 'px'; - } else { - el.height = el.clientHeight; - } - } - return el; - } - }; - function onPropertyChange(e) { - var el = e.srcElement; - switch (e.propertyName) { - case 'width': - el.getContext().clearRect(); - el.style.width = el.attributes.width.nodeValue + 'px'; - el.firstChild.style.width = el.clientWidth + 'px'; - break; - case 'height': - el.getContext().clearRect(); - el.style.height = el.attributes.height.nodeValue + 'px'; - el.firstChild.style.height = el.clientHeight + 'px'; - break; - } - } - function onResize(e) { - var el = e.srcElement; - if (el.firstChild) { - el.firstChild.style.width = el.clientWidth + 'px'; - el.firstChild.style.height = el.clientHeight + 'px'; - } - } - G_vmlCanvasManager_.init(); - var decToHex = []; - for (var i = 0; i < 16; i++) { - for (var j = 0; j < 16; j++) { - decToHex[i * 16 + j] = i.toString(16) + j.toString(16); - } - } - function createMatrixIdentity() { - return [ - [ - 1, - 0, - 0 - ], - [ - 0, - 1, - 0 - ], - [ - 0, - 0, - 1 - ] - ]; - } - function matrixMultiply(m1, m2) { - var result = createMatrixIdentity(); - for (var x = 0; x < 3; x++) { - for (var y = 0; y < 3; y++) { - var sum = 0; - for (var z = 0; z < 3; z++) { - sum += m1[x][z] * m2[z][y]; - } - result[x][y] = sum; - } - } - return result; - } - function copyState(o1, o2) { - o2.fillStyle = o1.fillStyle; - o2.lineCap = o1.lineCap; - o2.lineJoin = o1.lineJoin; - o2.lineWidth = o1.lineWidth; - o2.miterLimit = o1.miterLimit; - o2.shadowBlur = o1.shadowBlur; - o2.shadowColor = o1.shadowColor; - o2.shadowOffsetX = o1.shadowOffsetX; - o2.shadowOffsetY = o1.shadowOffsetY; - o2.strokeStyle = o1.strokeStyle; - o2.globalAlpha = o1.globalAlpha; - o2.font = o1.font; - o2.textAlign = o1.textAlign; - o2.textBaseline = o1.textBaseline; - o2.scaleX_ = o1.scaleX_; - o2.scaleY_ = o1.scaleY_; - o2.lineScale_ = o1.lineScale_; - } - var colorData = { - aliceblue: '#F0F8FF', - antiquewhite: '#FAEBD7', - aquamarine: '#7FFFD4', - azure: '#F0FFFF', - beige: '#F5F5DC', - bisque: '#FFE4C4', - black: '#000000', - blanchedalmond: '#FFEBCD', - blueviolet: '#8A2BE2', - brown: '#A52A2A', - burlywood: '#DEB887', - cadetblue: '#5F9EA0', - chartreuse: '#7FFF00', - chocolate: '#D2691E', - coral: '#FF7F50', - cornflowerblue: '#6495ED', - cornsilk: '#FFF8DC', - crimson: '#DC143C', - cyan: '#00FFFF', - darkblue: '#00008B', - darkcyan: '#008B8B', - darkgoldenrod: '#B8860B', - darkgray: '#A9A9A9', - darkgreen: '#006400', - darkgrey: '#A9A9A9', - darkkhaki: '#BDB76B', - darkmagenta: '#8B008B', - darkolivegreen: '#556B2F', - darkorange: '#FF8C00', - darkorchid: '#9932CC', - darkred: '#8B0000', - darksalmon: '#E9967A', - darkseagreen: '#8FBC8F', - darkslateblue: '#483D8B', - darkslategray: '#2F4F4F', - darkslategrey: '#2F4F4F', - darkturquoise: '#00CED1', - darkviolet: '#9400D3', - deeppink: '#FF1493', - deepskyblue: '#00BFFF', - dimgray: '#696969', - dimgrey: '#696969', - dodgerblue: '#1E90FF', - firebrick: '#B22222', - floralwhite: '#FFFAF0', - forestgreen: '#228B22', - gainsboro: '#DCDCDC', - ghostwhite: '#F8F8FF', - gold: '#FFD700', - goldenrod: '#DAA520', - grey: '#808080', - greenyellow: '#ADFF2F', - honeydew: '#F0FFF0', - hotpink: '#FF69B4', - indianred: '#CD5C5C', - indigo: '#4B0082', - ivory: '#FFFFF0', - khaki: '#F0E68C', - lavender: '#E6E6FA', - lavenderblush: '#FFF0F5', - lawngreen: '#7CFC00', - lemonchiffon: '#FFFACD', - lightblue: '#ADD8E6', - lightcoral: '#F08080', - lightcyan: '#E0FFFF', - lightgoldenrodyellow: '#FAFAD2', - lightgreen: '#90EE90', - lightgrey: '#D3D3D3', - lightpink: '#FFB6C1', - lightsalmon: '#FFA07A', - lightseagreen: '#20B2AA', - lightskyblue: '#87CEFA', - lightslategray: '#778899', - lightslategrey: '#778899', - lightsteelblue: '#B0C4DE', - lightyellow: '#FFFFE0', - limegreen: '#32CD32', - linen: '#FAF0E6', - magenta: '#FF00FF', - mediumaquamarine: '#66CDAA', - mediumblue: '#0000CD', - mediumorchid: '#BA55D3', - mediumpurple: '#9370DB', - mediumseagreen: '#3CB371', - mediumslateblue: '#7B68EE', - mediumspringgreen: '#00FA9A', - mediumturquoise: '#48D1CC', - mediumvioletred: '#C71585', - midnightblue: '#191970', - mintcream: '#F5FFFA', - mistyrose: '#FFE4E1', - moccasin: '#FFE4B5', - navajowhite: '#FFDEAD', - oldlace: '#FDF5E6', - olivedrab: '#6B8E23', - orange: '#FFA500', - orangered: '#FF4500', - orchid: '#DA70D6', - palegoldenrod: '#EEE8AA', - palegreen: '#98FB98', - paleturquoise: '#AFEEEE', - palevioletred: '#DB7093', - papayawhip: '#FFEFD5', - peachpuff: '#FFDAB9', - peru: '#CD853F', - pink: '#FFC0CB', - plum: '#DDA0DD', - powderblue: '#B0E0E6', - rosybrown: '#BC8F8F', - royalblue: '#4169E1', - saddlebrown: '#8B4513', - salmon: '#FA8072', - sandybrown: '#F4A460', - seagreen: '#2E8B57', - seashell: '#FFF5EE', - sienna: '#A0522D', - skyblue: '#87CEEB', - slateblue: '#6A5ACD', - slategray: '#708090', - slategrey: '#708090', - snow: '#FFFAFA', - springgreen: '#00FF7F', - steelblue: '#4682B4', - tan: '#D2B48C', - thistle: '#D8BFD8', - tomato: '#FF6347', - turquoise: '#40E0D0', - violet: '#EE82EE', - wheat: '#F5DEB3', - whitesmoke: '#F5F5F5', - yellowgreen: '#9ACD32' - }; - function getRgbHslContent(styleString) { - var start = styleString.indexOf('(', 3); - var end = styleString.indexOf(')', start + 1); - var parts = styleString.substring(start + 1, end).split(','); - if (parts.length != 4 || styleString.charAt(3) != 'a') { - parts[3] = 1; - } - return parts; - } - function percent(s) { - return parseFloat(s) / 100; - } - function clamp(v, min, max) { - return Math.min(max, Math.max(min, v)); - } - function hslToRgb(parts) { - var r, g, b, h, s, l; - h = parseFloat(parts[0]) / 360 % 360; - if (h < 0) - h++; - s = clamp(percent(parts[1]), 0, 1); - l = clamp(percent(parts[2]), 0, 1); - if (s == 0) { - r = g = b = l; - } else { - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = hueToRgb(p, q, h + 1 / 3); - g = hueToRgb(p, q, h); - b = hueToRgb(p, q, h - 1 / 3); - } - return '#' + decToHex[Math.floor(r * 255)] + decToHex[Math.floor(g * 255)] + decToHex[Math.floor(b * 255)]; - } - function hueToRgb(m1, m2, h) { - if (h < 0) - h++; - if (h > 1) - h--; - if (6 * h < 1) - return m1 + (m2 - m1) * 6 * h; - else if (2 * h < 1) - return m2; - else if (3 * h < 2) - return m1 + (m2 - m1) * (2 / 3 - h) * 6; - else - return m1; - } - var processStyleCache = {}; - function processStyle(styleString) { - if (styleString in processStyleCache) { - return processStyleCache[styleString]; - } - var str, alpha = 1; - styleString = String(styleString); - if (styleString.charAt(0) == '#') { - str = styleString; - } else if (/^rgb/.test(styleString)) { - var parts = getRgbHslContent(styleString); - var str = '#', n; - for (var i = 0; i < 3; i++) { - if (parts[i].indexOf('%') != -1) { - n = Math.floor(percent(parts[i]) * 255); - } else { - n = +parts[i]; - } - str += decToHex[clamp(n, 0, 255)]; - } - alpha = +parts[3]; - } else if (/^hsl/.test(styleString)) { - var parts = getRgbHslContent(styleString); - str = hslToRgb(parts); - alpha = parts[3]; - } else { - str = colorData[styleString] || styleString; - } - return processStyleCache[styleString] = { - color: str, - alpha: alpha - }; - } - var DEFAULT_STYLE = { - style: 'normal', - variant: 'normal', - weight: 'normal', - size: 12, - family: '微软雅黑' - }; - var fontStyleCache = {}; - function processFontStyle(styleString) { - if (fontStyleCache[styleString]) { - return fontStyleCache[styleString]; - } - var el = document.createElement('div'); - var style = el.style; - var fontFamily; - try { - style.font = styleString; - fontFamily = style.fontFamily.split(',')[0]; - } catch (ex) { - } - return fontStyleCache[styleString] = { - style: style.fontStyle || DEFAULT_STYLE.style, - variant: style.fontVariant || DEFAULT_STYLE.variant, - weight: style.fontWeight || DEFAULT_STYLE.weight, - size: style.fontSize || DEFAULT_STYLE.size, - family: fontFamily || DEFAULT_STYLE.family - }; - } - function getComputedStyle(style, element) { - var computedStyle = {}; - for (var p in style) { - computedStyle[p] = style[p]; - } - var canvasFontSize = parseFloat(element.currentStyle.fontSize), fontSize = parseFloat(style.size); - if (typeof style.size == 'number') { - computedStyle.size = style.size; - } else if (style.size.indexOf('px') != -1) { - computedStyle.size = fontSize; - } else if (style.size.indexOf('em') != -1) { - computedStyle.size = canvasFontSize * fontSize; - } else if (style.size.indexOf('%') != -1) { - computedStyle.size = canvasFontSize / 100 * fontSize; - } else if (style.size.indexOf('pt') != -1) { - computedStyle.size = fontSize / 0.75; - } else { - computedStyle.size = canvasFontSize; - } - return computedStyle; - } - function buildStyle(style) { - return style.style + ' ' + style.variant + ' ' + style.weight + ' ' + style.size + 'px \'' + style.family + '\''; - } - var lineCapMap = { - 'butt': 'flat', - 'round': 'round' - }; - function processLineCap(lineCap) { - return lineCapMap[lineCap] || 'square'; - } - function CanvasRenderingContext2D_(canvasElement) { - this.m_ = createMatrixIdentity(); - this.mStack_ = []; - this.aStack_ = []; - this.currentPath_ = []; - this.strokeStyle = '#000'; - this.fillStyle = '#000'; - this.lineWidth = 1; - this.lineJoin = 'miter'; - this.lineCap = 'butt'; - this.miterLimit = Z * 1; - this.globalAlpha = 1; - this.font = '12px 微软雅黑'; - this.textAlign = 'left'; - this.textBaseline = 'alphabetic'; - this.canvas = canvasElement; - var cssText = 'width:' + canvasElement.clientWidth + 'px;height:' + canvasElement.clientHeight + 'px;overflow:hidden;position:absolute'; - var el = canvasElement.ownerDocument.createElement('div'); - el.style.cssText = cssText; - canvasElement.appendChild(el); - var overlayEl = el.cloneNode(false); - overlayEl.style.backgroundColor = '#fff'; - overlayEl.style.filter = 'alpha(opacity=0)'; - canvasElement.appendChild(overlayEl); - this.element_ = el; - this.scaleX_ = 1; - this.scaleY_ = 1; - this.lineScale_ = 1; - } - var contextPrototype = CanvasRenderingContext2D_.prototype; - contextPrototype.clearRect = function () { - if (this.textMeasureEl_) { - this.textMeasureEl_.removeNode(true); - this.textMeasureEl_ = null; - } - this.element_.innerHTML = ''; - }; - contextPrototype.beginPath = function () { - this.currentPath_ = []; - }; - contextPrototype.moveTo = function (aX, aY) { - var p = getCoords(this, aX, aY); - this.currentPath_.push({ - type: 'moveTo', - x: p.x, - y: p.y - }); - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - contextPrototype.lineTo = function (aX, aY) { - var p = getCoords(this, aX, aY); - this.currentPath_.push({ - type: 'lineTo', - x: p.x, - y: p.y - }); - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - contextPrototype.bezierCurveTo = function (aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) { - var p = getCoords(this, aX, aY); - var cp1 = getCoords(this, aCP1x, aCP1y); - var cp2 = getCoords(this, aCP2x, aCP2y); - bezierCurveTo(this, cp1, cp2, p); - }; - function bezierCurveTo(self, cp1, cp2, p) { - self.currentPath_.push({ - type: 'bezierCurveTo', - cp1x: cp1.x, - cp1y: cp1.y, - cp2x: cp2.x, - cp2y: cp2.y, - x: p.x, - y: p.y - }); - self.currentX_ = p.x; - self.currentY_ = p.y; - } - contextPrototype.quadraticCurveTo = function (aCPx, aCPy, aX, aY) { - var cp = getCoords(this, aCPx, aCPy); - var p = getCoords(this, aX, aY); - var cp1 = { - x: this.currentX_ + 2 / 3 * (cp.x - this.currentX_), - y: this.currentY_ + 2 / 3 * (cp.y - this.currentY_) - }; - var cp2 = { - x: cp1.x + (p.x - this.currentX_) / 3, - y: cp1.y + (p.y - this.currentY_) / 3 - }; - bezierCurveTo(this, cp1, cp2, p); - }; - contextPrototype.arc = function (aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) { - aRadius *= Z; - var arcType = aClockwise ? 'at' : 'wa'; - var xStart = aX + mc(aStartAngle) * aRadius - Z2; - var yStart = aY + ms(aStartAngle) * aRadius - Z2; - var xEnd = aX + mc(aEndAngle) * aRadius - Z2; - var yEnd = aY + ms(aEndAngle) * aRadius - Z2; - if (xStart == xEnd && !aClockwise) { - xStart += 0.125; - } - var p = getCoords(this, aX, aY); - var pStart = getCoords(this, xStart, yStart); - var pEnd = getCoords(this, xEnd, yEnd); - this.currentPath_.push({ - type: arcType, - x: p.x, - y: p.y, - radius: aRadius, - xStart: pStart.x, - yStart: pStart.y, - xEnd: pEnd.x, - yEnd: pEnd.y - }); - }; - contextPrototype.rect = function (aX, aY, aWidth, aHeight) { - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - }; - contextPrototype.strokeRect = function (aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.stroke(); - this.currentPath_ = oldPath; - }; - contextPrototype.fillRect = function (aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.fill(); - this.currentPath_ = oldPath; - }; - contextPrototype.createLinearGradient = function (aX0, aY0, aX1, aY1) { - var gradient = new CanvasGradient_('gradient'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - return gradient; - }; - contextPrototype.createRadialGradient = function (aX0, aY0, aR0, aX1, aY1, aR1) { - var gradient = new CanvasGradient_('gradientradial'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.r0_ = aR0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - gradient.r1_ = aR1; - return gradient; - }; - contextPrototype.drawImage = function (image, var_args) { - var dx, dy, dw, dh, sx, sy, sw, sh; - var oldRuntimeWidth = image.runtimeStyle.width; - var oldRuntimeHeight = image.runtimeStyle.height; - image.runtimeStyle.width = 'auto'; - image.runtimeStyle.height = 'auto'; - var w = image.width; - var h = image.height; - image.runtimeStyle.width = oldRuntimeWidth; - image.runtimeStyle.height = oldRuntimeHeight; - if (arguments.length == 3) { - dx = arguments[1]; - dy = arguments[2]; - sx = sy = 0; - sw = dw = w; - sh = dh = h; - } else if (arguments.length == 5) { - dx = arguments[1]; - dy = arguments[2]; - dw = arguments[3]; - dh = arguments[4]; - sx = sy = 0; - sw = w; - sh = h; - } else if (arguments.length == 9) { - sx = arguments[1]; - sy = arguments[2]; - sw = arguments[3]; - sh = arguments[4]; - dx = arguments[5]; - dy = arguments[6]; - dw = arguments[7]; - dh = arguments[8]; - } else { - throw Error('Invalid number of arguments'); - } - var d = getCoords(this, dx, dy); - var w2 = sw / 2; - var h2 = sh / 2; - var vmlStr = []; - var W = 10; - var H = 10; - var scaleX = scaleY = 1; - vmlStr.push(' '); - if (sx || sy) { - vmlStr.push('
'); - } - vmlStr.push('
'); - if (sx || sy) - vmlStr.push('
'); - vmlStr.push('
'); - this.element_.insertAdjacentHTML('BeforeEnd', vmlStr.join('')); - }; - contextPrototype.stroke = function (aFill) { - var lineStr = []; - var lineOpen = false; - var W = 10; - var H = 10; - lineStr.push(''); - if (!aFill) { - appendStroke(this, lineStr); - } else { - appendFill(this, lineStr, min, max); - } - lineStr.push(''); - this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); - }; - function appendStroke(ctx, lineStr) { - var a = processStyle(ctx.strokeStyle); - var color = a.color; - var opacity = a.alpha * ctx.globalAlpha; - var lineWidth = ctx.lineScale_ * ctx.lineWidth; - if (lineWidth < 1) { - opacity *= lineWidth; - } - lineStr.push(''); - } - function appendFill(ctx, lineStr, min, max) { - var fillStyle = ctx.fillStyle; - var arcScaleX = ctx.scaleX_; - var arcScaleY = ctx.scaleY_; - var width = max.x - min.x; - var height = max.y - min.y; - if (fillStyle instanceof CanvasGradient_) { - var angle = 0; - var focus = { - x: 0, - y: 0 - }; - var shift = 0; - var expansion = 1; - if (fillStyle.type_ == 'gradient') { - var x0 = fillStyle.x0_ / arcScaleX; - var y0 = fillStyle.y0_ / arcScaleY; - var x1 = fillStyle.x1_ / arcScaleX; - var y1 = fillStyle.y1_ / arcScaleY; - var p0 = getCoords(ctx, x0, y0); - var p1 = getCoords(ctx, x1, y1); - var dx = p1.x - p0.x; - var dy = p1.y - p0.y; - angle = Math.atan2(dx, dy) * 180 / Math.PI; - if (angle < 0) { - angle += 360; - } - if (angle < 0.000001) { - angle = 0; - } - } else { - var p0 = getCoords(ctx, fillStyle.x0_, fillStyle.y0_); - focus = { - x: (p0.x - min.x) / width, - y: (p0.y - min.y) / height - }; - width /= arcScaleX * Z; - height /= arcScaleY * Z; - var dimension = m.max(width, height); - shift = 2 * fillStyle.r0_ / dimension; - expansion = 2 * fillStyle.r1_ / dimension - shift; - } - var stops = fillStyle.colors_; - stops.sort(function (cs1, cs2) { - return cs1.offset - cs2.offset; - }); - var length = stops.length; - var color1 = stops[0].color; - var color2 = stops[length - 1].color; - var opacity1 = stops[0].alpha * ctx.globalAlpha; - var opacity2 = stops[length - 1].alpha * ctx.globalAlpha; - var colors = []; - for (var i = 0; i < length; i++) { - var stop = stops[i]; - colors.push(stop.offset * expansion + shift + ' ' + stop.color); - } - lineStr.push(''); - } else if (fillStyle instanceof CanvasPattern_) { - if (width && height) { - var deltaLeft = -min.x; - var deltaTop = -min.y; - lineStr.push(''); - } - } else { - var a = processStyle(ctx.fillStyle); - var color = a.color; - var opacity = a.alpha * ctx.globalAlpha; - lineStr.push(''); - } - } - contextPrototype.fill = function () { - this.stroke(true); - }; - contextPrototype.closePath = function () { - this.currentPath_.push({ type: 'close' }); - }; - function getCoords(ctx, aX, aY) { - var m = ctx.m_; - return { - x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2, - y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2 - }; - } - ; - contextPrototype.save = function () { - var o = {}; - copyState(this, o); - this.aStack_.push(o); - this.mStack_.push(this.m_); - this.m_ = matrixMultiply(createMatrixIdentity(), this.m_); - }; - contextPrototype.restore = function () { - if (this.aStack_.length) { - copyState(this.aStack_.pop(), this); - this.m_ = this.mStack_.pop(); - } - }; - function matrixIsFinite(m) { - return isFinite(m[0][0]) && isFinite(m[0][1]) && isFinite(m[1][0]) && isFinite(m[1][1]) && isFinite(m[2][0]) && isFinite(m[2][1]); - } - function setM(ctx, m, updateLineScale) { - if (!matrixIsFinite(m)) { - return; - } - ctx.m_ = m; - ctx.scaleX_ = Math.sqrt(m[0][0] * m[0][0] + m[0][1] * m[0][1]); - ctx.scaleY_ = Math.sqrt(m[1][0] * m[1][0] + m[1][1] * m[1][1]); - if (updateLineScale) { - var det = m[0][0] * m[1][1] - m[0][1] * m[1][0]; - ctx.lineScale_ = sqrt(abs(det)); - } - } - contextPrototype.translate = function (aX, aY) { - var m1 = [ - [ - 1, - 0, - 0 - ], - [ - 0, - 1, - 0 - ], - [ - aX, - aY, - 1 - ] - ]; - setM(this, matrixMultiply(m1, this.m_), false); - }; - contextPrototype.rotate = function (aRot) { - var c = mc(aRot); - var s = ms(aRot); - var m1 = [ - [ - c, - s, - 0 - ], - [ - -s, - c, - 0 - ], - [ - 0, - 0, - 1 - ] - ]; - setM(this, matrixMultiply(m1, this.m_), false); - }; - contextPrototype.scale = function (aX, aY) { - var m1 = [ - [ - aX, - 0, - 0 - ], - [ - 0, - aY, - 0 - ], - [ - 0, - 0, - 1 - ] - ]; - setM(this, matrixMultiply(m1, this.m_), true); - }; - contextPrototype.transform = function (m11, m12, m21, m22, dx, dy) { - var m1 = [ - [ - m11, - m12, - 0 - ], - [ - m21, - m22, - 0 - ], - [ - dx, - dy, - 1 - ] - ]; - setM(this, matrixMultiply(m1, this.m_), true); - }; - contextPrototype.setTransform = function (m11, m12, m21, m22, dx, dy) { - var m = [ - [ - m11, - m12, - 0 - ], - [ - m21, - m22, - 0 - ], - [ - dx, - dy, - 1 - ] - ]; - setM(this, m, true); - }; - contextPrototype.drawText_ = function (text, x, y, maxWidth, stroke) { - var m = this.m_, delta = 1000, left = 0, right = delta, offset = { - x: 0, - y: 0 - }, lineStr = []; - var fontStyle = getComputedStyle(processFontStyle(this.font), this.element_); - var fontStyleString = buildStyle(fontStyle); - var elementStyle = this.element_.currentStyle; - var textAlign = this.textAlign.toLowerCase(); - switch (textAlign) { - case 'left': - case 'center': - case 'right': - break; - case 'end': - textAlign = elementStyle.direction == 'ltr' ? 'right' : 'left'; - break; - case 'start': - textAlign = elementStyle.direction == 'rtl' ? 'right' : 'left'; - break; - default: - textAlign = 'left'; - } - switch (this.textBaseline) { - case 'hanging': - case 'top': - offset.y = fontStyle.size / 1.75; - break; - case 'middle': - break; - default: - case null: - case 'alphabetic': - case 'ideographic': - case 'bottom': - offset.y = -fontStyle.size / 2.25; - break; - } - switch (textAlign) { - case 'right': - left = delta; - right = 0.05; - break; - case 'center': - left = right = delta / 2; - break; - } - var d = getCoords(this, x + offset.x, y + offset.y); - lineStr.push(''); - if (stroke) { - appendStroke(this, lineStr); - } else { - appendFill(this, lineStr, { - x: -left, - y: 0 - }, { - x: right, - y: fontStyle.size - }); - } - var skewM = m[0][0].toFixed(3) + ',' + m[1][0].toFixed(3) + ',' + m[0][1].toFixed(3) + ',' + m[1][1].toFixed(3) + ',0,0'; - var skewOffset = mr(d.x / Z) + ',' + mr(d.y / Z); - lineStr.push('', '', ''); - this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); - }; - contextPrototype.fillText = function (text, x, y, maxWidth) { - this.drawText_(text, x, y, maxWidth, false); - }; - contextPrototype.strokeText = function (text, x, y, maxWidth) { - this.drawText_(text, x, y, maxWidth, true); - }; - contextPrototype.measureText = function (text) { - if (!this.textMeasureEl_) { - var s = ''; - this.element_.insertAdjacentHTML('beforeEnd', s); - this.textMeasureEl_ = this.element_.lastChild; - } - var doc = this.element_.ownerDocument; - this.textMeasureEl_.innerHTML = ''; - try { - this.textMeasureEl_.style.font = this.font; - } catch (ex) { - } - this.textMeasureEl_.appendChild(doc.createTextNode(text)); - return { width: this.textMeasureEl_.offsetWidth }; - }; - contextPrototype.clip = function () { - }; - contextPrototype.arcTo = function () { - }; - contextPrototype.createPattern = function (image, repetition) { - return new CanvasPattern_(image, repetition); - }; - function CanvasGradient_(aType) { - this.type_ = aType; - this.x0_ = 0; - this.y0_ = 0; - this.r0_ = 0; - this.x1_ = 0; - this.y1_ = 0; - this.r1_ = 0; - this.colors_ = []; - } - CanvasGradient_.prototype.addColorStop = function (aOffset, aColor) { - aColor = processStyle(aColor); - this.colors_.push({ - offset: aOffset, - color: aColor.color, - alpha: aColor.alpha - }); - }; - function CanvasPattern_(image, repetition) { - assertImageIsValid(image); - switch (repetition) { - case 'repeat': - case null: - case '': - this.repetition_ = 'repeat'; - break; - case 'repeat-x': - case 'repeat-y': - case 'no-repeat': - this.repetition_ = repetition; - break; - default: - throwException('SYNTAX_ERR'); - } - this.src_ = image.src; - this.width_ = image.width; - this.height_ = image.height; - } - function throwException(s) { - throw new DOMException_(s); - } - function assertImageIsValid(img) { - if (!img || img.nodeType != 1 || img.tagName != 'IMG') { - throwException('TYPE_MISMATCH_ERR'); - } - if (img.readyState != 'complete') { - throwException('INVALID_STATE_ERR'); - } - } - function DOMException_(s) { - this.code = this[s]; - this.message = s + ': DOM Exception ' + this.code; - } - var p = DOMException_.prototype = new Error(); - p.INDEX_SIZE_ERR = 1; - p.DOMSTRING_SIZE_ERR = 2; - p.HIERARCHY_REQUEST_ERR = 3; - p.WRONG_DOCUMENT_ERR = 4; - p.INVALID_CHARACTER_ERR = 5; - p.NO_DATA_ALLOWED_ERR = 6; - p.NO_MODIFICATION_ALLOWED_ERR = 7; - p.NOT_FOUND_ERR = 8; - p.NOT_SUPPORTED_ERR = 9; - p.INUSE_ATTRIBUTE_ERR = 10; - p.INVALID_STATE_ERR = 11; - p.SYNTAX_ERR = 12; - p.INVALID_MODIFICATION_ERR = 13; - p.NAMESPACE_ERR = 14; - p.INVALID_ACCESS_ERR = 15; - p.VALIDATION_ERR = 16; - p.TYPE_MISMATCH_ERR = 17; - G_vmlCanvasManager = G_vmlCanvasManager_; - CanvasRenderingContext2D = CanvasRenderingContext2D_; - CanvasGradient = CanvasGradient_; - CanvasPattern = CanvasPattern_; - DOMException = DOMException_; - }()); - } else { - G_vmlCanvasManager = false; - } - return G_vmlCanvasManager; -});define('zrender/mixin/Eventful', ['require'], function (require) { - var Eventful = function () { - this._handlers = {}; - }; - Eventful.prototype.one = function (event, handler, context) { - var _h = this._handlers; - if (!handler || !event) { - return this; - } - if (!_h[event]) { - _h[event] = []; - } - _h[event].push({ - h: handler, - one: true, - ctx: context || this - }); - return this; - }; - Eventful.prototype.bind = function (event, handler, context) { - var _h = this._handlers; - if (!handler || !event) { - return this; - } - if (!_h[event]) { - _h[event] = []; - } - _h[event].push({ - h: handler, - one: false, - ctx: context || this - }); - return this; - }; - Eventful.prototype.unbind = function (event, handler) { - var _h = this._handlers; - if (!event) { - this._handlers = {}; - return this; - } - if (handler) { - if (_h[event]) { - var newList = []; - for (var i = 0, l = _h[event].length; i < l; i++) { - if (_h[event][i]['h'] != handler) { - newList.push(_h[event][i]); - } - } - _h[event] = newList; - } - if (_h[event] && _h[event].length === 0) { - delete _h[event]; - } - } else { - delete _h[event]; - } - return this; - }; - Eventful.prototype.dispatch = function (type) { - if (this._handlers[type]) { - var args = arguments; - var argLen = args.length; - if (argLen > 3) { - args = Array.prototype.slice.call(args, 1); - } - var _h = this._handlers[type]; - var len = _h.length; - for (var i = 0; i < len;) { - switch (argLen) { - case 1: - _h[i]['h'].call(_h[i]['ctx']); - break; - case 2: - _h[i]['h'].call(_h[i]['ctx'], args[1]); - break; - case 3: - _h[i]['h'].call(_h[i]['ctx'], args[1], args[2]); - break; - default: - _h[i]['h'].apply(_h[i]['ctx'], args); - break; - } - if (_h[i]['one']) { - _h.splice(i, 1); - len--; - } else { - i++; - } - } - } - return this; - }; - Eventful.prototype.dispatchWithContext = function (type) { - if (this._handlers[type]) { - var args = arguments; - var argLen = args.length; - if (argLen > 4) { - args = Array.prototype.slice.call(args, 1, args.length - 1); - } - var ctx = args[args.length - 1]; - var _h = this._handlers[type]; - var len = _h.length; - for (var i = 0; i < len;) { - switch (argLen) { - case 1: - _h[i]['h'].call(ctx); - break; - case 2: - _h[i]['h'].call(ctx, args[1]); - break; - case 3: - _h[i]['h'].call(ctx, args[1], args[2]); - break; - default: - _h[i]['h'].apply(ctx, args); - break; - } - if (_h[i]['one']) { - _h.splice(i, 1); - len--; - } else { - i++; - } - } - } - return this; - }; - return Eventful; -});define('zrender/tool/log', [ - 'require', - '../config' -], function (require) { - var config = require('../config'); - return function () { - if (config.debugMode === 0) { - return; - } else if (config.debugMode == 1) { - for (var k in arguments) { - throw new Error(arguments[k]); - } - } else if (config.debugMode > 1) { - for (var k in arguments) { - console.log(arguments[k]); - } - } - }; -});define('zrender/tool/guid', [], function () { - var idStart = 2311; - return function () { - return 'zrender__' + idStart++; - }; -});define('zrender/Handler', [ - 'require', - './config', - './tool/env', - './tool/event', - './tool/util', - './tool/vector', - './tool/matrix', - './mixin/Eventful' -], function (require) { - 'use strict'; - var config = require('./config'); - var env = require('./tool/env'); - var eventTool = require('./tool/event'); - var util = require('./tool/util'); - var vec2 = require('./tool/vector'); - var mat2d = require('./tool/matrix'); - var EVENT = config.EVENT; - var Eventful = require('./mixin/Eventful'); - var domHandlerNames = [ - 'resize', - 'click', - 'dblclick', - 'mousewheel', - 'mousemove', - 'mouseout', - 'mouseup', - 'mousedown', - 'touchstart', - 'touchend', - 'touchmove' - ]; - var isZRenderElement = function (event) { - if (window.G_vmlCanvasManager) { - return true; - } - event = event || window.event; - var target = event.toElement || event.relatedTarget || event.srcElement || event.target; - return target && target.className.match(config.elementClassName); - }; - var domHandlers = { - resize: function (event) { - event = event || window.event; - this._lastHover = null; - this._isMouseDown = 0; - this.dispatch(EVENT.RESIZE, event); - }, - click: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event); - var _lastHover = this._lastHover; - if (_lastHover && _lastHover.clickable || !_lastHover) { - if (this._clickThreshold < 5) { - this._dispatchAgency(_lastHover, EVENT.CLICK, event); - } - } - this._mousemoveHandler(event); - }, - dblclick: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = event || window.event; - event = this._zrenderEventFixed(event); - var _lastHover = this._lastHover; - if (_lastHover && _lastHover.clickable || !_lastHover) { - if (this._clickThreshold < 5) { - this._dispatchAgency(_lastHover, EVENT.DBLCLICK, event); - } - } - this._mousemoveHandler(event); - }, - mousewheel: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event); - var delta = event.wheelDelta || -event.detail; - var scale = delta > 0 ? 1.1 : 1 / 1.1; - var needsRefresh = false; - var mouseX = this._mouseX; - var mouseY = this._mouseY; - this.painter.eachBuildinLayer(function (layer) { - var pos = layer.position; - if (layer.zoomable) { - layer.__zoom = layer.__zoom || 1; - var newZoom = layer.__zoom; - newZoom *= scale; - newZoom = Math.max(Math.min(layer.maxZoom, newZoom), layer.minZoom); - scale = newZoom / layer.__zoom; - layer.__zoom = newZoom; - pos[0] -= (mouseX - pos[0]) * (scale - 1); - pos[1] -= (mouseY - pos[1]) * (scale - 1); - layer.scale[0] *= scale; - layer.scale[1] *= scale; - layer.dirty = true; - needsRefresh = true; - eventTool.stop(event); - } - }); - if (needsRefresh) { - this.painter.refresh(); - } - this._dispatchAgency(this._lastHover, EVENT.MOUSEWHEEL, event); - this._mousemoveHandler(event); - }, - mousemove: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - if (this.painter.isLoading()) { - return; - } - event = this._zrenderEventFixed(event); - this._lastX = this._mouseX; - this._lastY = this._mouseY; - this._mouseX = eventTool.getX(event); - this._mouseY = eventTool.getY(event); - var dx = this._mouseX - this._lastX; - var dy = this._mouseY - this._lastY; - this._processDragStart(event); - this._hasfound = 0; - this._event = event; - this._iterateAndFindHover(); - if (!this._hasfound) { - if (!this._draggingTarget || this._lastHover && this._lastHover != this._draggingTarget) { - this._processOutShape(event); - this._processDragLeave(event); - } - this._lastHover = null; - this.storage.delHover(); - this.painter.clearHover(); - } - var cursor = 'default'; - if (this._draggingTarget) { - this.storage.drift(this._draggingTarget.id, dx, dy); - this._draggingTarget.modSelf(); - this.storage.addHover(this._draggingTarget); - this._clickThreshold++; - } else if (this._isMouseDown) { - var needsRefresh = false; - this.painter.eachBuildinLayer(function (layer) { - if (layer.panable) { - cursor = 'move'; - layer.position[0] += dx; - layer.position[1] += dy; - needsRefresh = true; - layer.dirty = true; - } - }); - if (needsRefresh) { - this.painter.refresh(); - } - } - if (this._draggingTarget || this._hasfound && this._lastHover.draggable) { - cursor = 'move'; - } else if (this._hasfound && this._lastHover.clickable) { - cursor = 'pointer'; - } - this.root.style.cursor = cursor; - this._dispatchAgency(this._lastHover, EVENT.MOUSEMOVE, event); - if (this._draggingTarget || this._hasfound || this.storage.hasHoverShape()) { - this.painter.refreshHover(); - } - }, - mouseout: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event); - var element = event.toElement || event.relatedTarget; - if (element != this.root) { - while (element && element.nodeType != 9) { - if (element == this.root) { - this._mousemoveHandler(event); - return; - } - element = element.parentNode; - } - } - event.zrenderX = this._lastX; - event.zrenderY = this._lastY; - this.root.style.cursor = 'default'; - this._isMouseDown = 0; - this._processOutShape(event); - this._processDrop(event); - this._processDragEnd(event); - if (!this.painter.isLoading()) { - this.painter.refreshHover(); - } - this.dispatch(EVENT.GLOBALOUT, event); - }, - mousedown: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - this._clickThreshold = 0; - if (this._lastDownButton == 2) { - this._lastDownButton = event.button; - this._mouseDownTarget = null; - return; - } - this._lastMouseDownMoment = new Date(); - event = this._zrenderEventFixed(event); - this._isMouseDown = 1; - this._mouseDownTarget = this._lastHover; - this._dispatchAgency(this._lastHover, EVENT.MOUSEDOWN, event); - this._lastDownButton = event.button; - }, - mouseup: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event); - this.root.style.cursor = 'default'; - this._isMouseDown = 0; - this._mouseDownTarget = null; - this._dispatchAgency(this._lastHover, EVENT.MOUSEUP, event); - this._processDrop(event); - this._processDragEnd(event); - }, - touchstart: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event, true); - this._lastTouchMoment = new Date(); - this._mobileFindFixed(event); - this._mousedownHandler(event); - }, - touchmove: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event, true); - this._mousemoveHandler(event); - if (this._isDragging) { - eventTool.stop(event); - } - }, - touchend: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event, true); - this._mouseupHandler(event); - var now = new Date(); - if (now - this._lastTouchMoment < EVENT.touchClickDelay) { - this._mobileFindFixed(event); - this._clickHandler(event); - if (now - this._lastClickMoment < EVENT.touchClickDelay / 2) { - this._dblclickHandler(event); - if (this._lastHover && this._lastHover.clickable) { - eventTool.stop(event); - } - } - this._lastClickMoment = now; - } - this.painter.clearHover(); - } - }; - function bind2Arg(handler, context) { - return function (arg1, arg2) { - return handler.call(context, arg1, arg2); - }; - } - function bind3Arg(handler, context) { - return function (arg1, arg2, arg3) { - return handler.call(context, arg1, arg2, arg3); - }; - } - function initDomHandler(instance) { - var len = domHandlerNames.length; - while (len--) { - var name = domHandlerNames[len]; - instance['_' + name + 'Handler'] = bind2Arg(domHandlers[name], instance); - } - } - var Handler = function (root, storage, painter) { - Eventful.call(this); - this.root = root; - this.storage = storage; - this.painter = painter; - this._lastX = this._lastY = this._mouseX = this._mouseY = 0; - this._findHover = bind3Arg(findHover, this); - this._domHover = painter.getDomHover(); - initDomHandler(this); - if (window.addEventListener) { - window.addEventListener('resize', this._resizeHandler); - if (env.os.tablet || env.os.phone) { - root.addEventListener('touchstart', this._touchstartHandler); - root.addEventListener('touchmove', this._touchmoveHandler); - root.addEventListener('touchend', this._touchendHandler); - } else { - root.addEventListener('click', this._clickHandler); - root.addEventListener('dblclick', this._dblclickHandler); - root.addEventListener('mousewheel', this._mousewheelHandler); - root.addEventListener('mousemove', this._mousemoveHandler); - root.addEventListener('mousedown', this._mousedownHandler); - root.addEventListener('mouseup', this._mouseupHandler); - } - root.addEventListener('DOMMouseScroll', this._mousewheelHandler); - root.addEventListener('mouseout', this._mouseoutHandler); - } else { - window.attachEvent('onresize', this._resizeHandler); - root.attachEvent('onclick', this._clickHandler); - root.ondblclick = this._dblclickHandler; - root.attachEvent('onmousewheel', this._mousewheelHandler); - root.attachEvent('onmousemove', this._mousemoveHandler); - root.attachEvent('onmouseout', this._mouseoutHandler); - root.attachEvent('onmousedown', this._mousedownHandler); - root.attachEvent('onmouseup', this._mouseupHandler); - } - }; - Handler.prototype.on = function (eventName, handler, context) { - this.bind(eventName, handler, context); - return this; - }; - Handler.prototype.un = function (eventName, handler) { - this.unbind(eventName, handler); - return this; - }; - Handler.prototype.trigger = function (eventName, eventArgs) { - switch (eventName) { - case EVENT.RESIZE: - case EVENT.CLICK: - case EVENT.DBLCLICK: - case EVENT.MOUSEWHEEL: - case EVENT.MOUSEMOVE: - case EVENT.MOUSEDOWN: - case EVENT.MOUSEUP: - case EVENT.MOUSEOUT: - this['_' + eventName + 'Handler'](eventArgs, true); - break; - } - }; - Handler.prototype.dispose = function () { - var root = this.root; - if (window.removeEventListener) { - window.removeEventListener('resize', this._resizeHandler); - if (env.os.tablet || env.os.phone) { - root.removeEventListener('touchstart', this._touchstartHandler); - root.removeEventListener('touchmove', this._touchmoveHandler); - root.removeEventListener('touchend', this._touchendHandler); - } else { - root.removeEventListener('click', this._clickHandler); - root.removeEventListener('dblclick', this._dblclickHandler); - root.removeEventListener('mousewheel', this._mousewheelHandler); - root.removeEventListener('mousemove', this._mousemoveHandler); - root.removeEventListener('mousedown', this._mousedownHandler); - root.removeEventListener('mouseup', this._mouseupHandler); - } - root.removeEventListener('DOMMouseScroll', this._mousewheelHandler); - root.removeEventListener('mouseout', this._mouseoutHandler); - } else { - window.detachEvent('onresize', this._resizeHandler); - root.detachEvent('onclick', this._clickHandler); - root.detachEvent('dblclick', this._dblclickHandler); - root.detachEvent('onmousewheel', this._mousewheelHandler); - root.detachEvent('onmousemove', this._mousemoveHandler); - root.detachEvent('onmouseout', this._mouseoutHandler); - root.detachEvent('onmousedown', this._mousedownHandler); - root.detachEvent('onmouseup', this._mouseupHandler); - } - this.root = this._domHover = this.storage = this.painter = null; - this.un(); - }; - Handler.prototype._processDragStart = function (event) { - var _lastHover = this._lastHover; - if (this._isMouseDown && _lastHover && _lastHover.draggable && !this._draggingTarget && this._mouseDownTarget == _lastHover) { - if (_lastHover.dragEnableTime && new Date() - this._lastMouseDownMoment < _lastHover.dragEnableTime) { - return; - } - var _draggingTarget = _lastHover; - this._draggingTarget = _draggingTarget; - this._isDragging = 1; - _draggingTarget.invisible = true; - this.storage.mod(_draggingTarget.id); - this._dispatchAgency(_draggingTarget, EVENT.DRAGSTART, event); - this.painter.refresh(); - } - }; - Handler.prototype._processDragEnter = function (event) { - if (this._draggingTarget) { - this._dispatchAgency(this._lastHover, EVENT.DRAGENTER, event, this._draggingTarget); - } - }; - Handler.prototype._processDragOver = function (event) { - if (this._draggingTarget) { - this._dispatchAgency(this._lastHover, EVENT.DRAGOVER, event, this._draggingTarget); - } - }; - Handler.prototype._processDragLeave = function (event) { - if (this._draggingTarget) { - this._dispatchAgency(this._lastHover, EVENT.DRAGLEAVE, event, this._draggingTarget); - } - }; - Handler.prototype._processDrop = function (event) { - if (this._draggingTarget) { - this._draggingTarget.invisible = false; - this.storage.mod(this._draggingTarget.id); - this.painter.refresh(); - this._dispatchAgency(this._lastHover, EVENT.DROP, event, this._draggingTarget); - } - }; - Handler.prototype._processDragEnd = function (event) { - if (this._draggingTarget) { - this._dispatchAgency(this._draggingTarget, EVENT.DRAGEND, event); - this._lastHover = null; - } - this._isDragging = 0; - this._draggingTarget = null; - }; - Handler.prototype._processOverShape = function (event) { - this._dispatchAgency(this._lastHover, EVENT.MOUSEOVER, event); - }; - Handler.prototype._processOutShape = function (event) { - this._dispatchAgency(this._lastHover, EVENT.MOUSEOUT, event); - }; - Handler.prototype._dispatchAgency = function (targetShape, eventName, event, draggedShape) { - var eventHandler = 'on' + eventName; - var eventPacket = { - type: eventName, - event: event, - target: targetShape, - cancelBubble: false - }; - var el = targetShape; - if (draggedShape) { - eventPacket.dragged = draggedShape; - } - while (el) { - el[eventHandler] && (eventPacket.cancelBubble = el[eventHandler](eventPacket)); - el.dispatch(eventName, eventPacket); - el = el.parent; - if (eventPacket.cancelBubble) { - break; - } - } - if (targetShape) { - if (!eventPacket.cancelBubble) { - this.dispatch(eventName, eventPacket); - } - } else if (!draggedShape) { - var eveObj = { - type: eventName, - event: event - }; - this.dispatch(eventName, eveObj); - this.painter.eachOtherLayer(function (layer) { - if (typeof layer[eventHandler] == 'function') { - layer[eventHandler](eveObj); - } - if (layer.dispatch) { - layer.dispatch(eventName, eveObj); - } - }); - } - }; - Handler.prototype._iterateAndFindHover = function () { - var invTransform = mat2d.create(); - return function () { - var list = this.storage.getShapeList(); - var currentZLevel; - var currentLayer; - var tmp = [ - 0, - 0 - ]; - for (var i = list.length - 1; i >= 0; i--) { - var shape = list[i]; - if (currentZLevel !== shape.zlevel) { - currentLayer = this.painter.getLayer(shape.zlevel, currentLayer); - tmp[0] = this._mouseX; - tmp[1] = this._mouseY; - if (currentLayer.needTransform) { - mat2d.invert(invTransform, currentLayer.transform); - vec2.applyTransform(tmp, tmp, invTransform); - } - } - if (this._findHover(shape, tmp[0], tmp[1])) { - break; - } - } - }; - }(); - var MOBILE_TOUCH_OFFSETS = [ - { x: 10 }, - { x: -20 }, - { - x: 10, - y: 10 - }, - { y: -20 } - ]; - Handler.prototype._mobileFindFixed = function (event) { - this._lastHover = null; - this._mouseX = event.zrenderX; - this._mouseY = event.zrenderY; - this._event = event; - this._iterateAndFindHover(); - for (var i = 0; !this._lastHover && i < MOBILE_TOUCH_OFFSETS.length; i++) { - var offset = MOBILE_TOUCH_OFFSETS[i]; - offset.x && (this._mouseX += offset.x); - offset.y && (this._mouseY += offset.y); - this._iterateAndFindHover(); - } - if (this._lastHover) { - event.zrenderX = this._mouseX; - event.zrenderY = this._mouseY; - } - }; - function findHover(shape, x, y) { - if (this._draggingTarget && this._draggingTarget.id == shape.id || shape.isSilent()) { - return false; - } - var event = this._event; - if (shape.isCover(x, y)) { - if (shape.hoverable) { - this.storage.addHover(shape); - } - var p = shape.parent; - while (p) { - if (p.clipShape && !p.clipShape.isCover(this._mouseX, this._mouseY)) { - return false; - } - p = p.parent; - } - if (this._lastHover != shape) { - this._processOutShape(event); - this._processDragLeave(event); - this._lastHover = shape; - this._processDragEnter(event); - } - this._processOverShape(event); - this._processDragOver(event); - this._hasfound = 1; - return true; - } - return false; - } - Handler.prototype._zrenderEventFixed = function (event, isTouch) { - if (event.zrenderFixed) { - return event; - } - if (!isTouch) { - event = event || window.event; - var target = event.toElement || event.relatedTarget || event.srcElement || event.target; - if (target && target != this._domHover) { - event.zrenderX = (typeof event.offsetX != 'undefined' ? event.offsetX : event.layerX) + target.offsetLeft; - event.zrenderY = (typeof event.offsetY != 'undefined' ? event.offsetY : event.layerY) + target.offsetTop; - } - } else { - var touch = event.type != 'touchend' ? event.targetTouches[0] : event.changedTouches[0]; - if (touch) { - var rBounding = this.painter._domRoot.getBoundingClientRect(); - event.zrenderX = touch.clientX - rBounding.left; - event.zrenderY = touch.clientY - rBounding.top; - } - } - event.zrenderFixed = 1; - return event; - }; - util.merge(Handler.prototype, Eventful.prototype, true); - return Handler; -});define('zrender/Painter', [ - 'require', - './config', - './tool/util', - './tool/log', - './loadingEffect/Base', - './Layer', - './shape/Image' -], function (require) { - 'use strict'; - var config = require('./config'); - var util = require('./tool/util'); - var log = require('./tool/log'); - var BaseLoadingEffect = require('./loadingEffect/Base'); - var Layer = require('./Layer'); - function returnFalse() { - return false; - } - function doNothing() { - } - function isLayerValid(layer) { - if (!layer) { - return false; - } - if (layer.isBuildin) { - return true; - } - if (typeof layer.resize !== 'function' || typeof layer.refresh !== 'function') { - return false; - } - return true; - } - var Painter = function (root, storage) { - this.root = root; - root.style['-webkit-tap-highlight-color'] = 'transparent'; - root.style['-webkit-user-select'] = 'none'; - root.style['user-select'] = 'none'; - root.style['-webkit-touch-callout'] = 'none'; - this.storage = storage; - root.innerHTML = ''; - this._width = this._getWidth(); - this._height = this._getHeight(); - var domRoot = document.createElement('div'); - this._domRoot = domRoot; - domRoot.style.position = 'relative'; - domRoot.style.overflow = 'hidden'; - domRoot.style.width = this._width + 'px'; - domRoot.style.height = this._height + 'px'; - root.appendChild(domRoot); - this._layers = {}; - this._zlevelList = []; - this._layerConfig = {}; - this._loadingEffect = new BaseLoadingEffect({}); - this.shapeToImage = this._createShapeToImageProcessor(); - this._bgDom = document.createElement('div'); - this._bgDom.style.cssText = [ - 'position:absolute;left:0px;top:0px;width:', - this._width, - 'px;height:', - this._height + 'px;', - '-webkit-user-select:none;user-select;none;', - '-webkit-touch-callout:none;' - ].join(''); - this._bgDom.setAttribute('data-zr-dom-id', 'bg'); - this._bgDom.className = config.elementClassName; - domRoot.appendChild(this._bgDom); - this._bgDom.onselectstart = returnFalse; - var hoverLayer = new Layer('_zrender_hover_', this); - this._layers['hover'] = hoverLayer; - domRoot.appendChild(hoverLayer.dom); - hoverLayer.initContext(); - hoverLayer.dom.onselectstart = returnFalse; - hoverLayer.dom.style['-webkit-user-select'] = 'none'; - hoverLayer.dom.style['user-select'] = 'none'; - hoverLayer.dom.style['-webkit-touch-callout'] = 'none'; - this.refreshNextFrame = null; - }; - Painter.prototype.render = function (callback) { - if (this.isLoading()) { - this.hideLoading(); - } - this.refresh(callback, true); - return this; - }; - Painter.prototype.refresh = function (callback, paintAll) { - var list = this.storage.getShapeList(true); - this._paintList(list, paintAll); - for (var i = 0; i < this._zlevelList.length; i++) { - var z = this._zlevelList[i]; - var layer = this._layers[z]; - if (!layer.isBuildin && layer.refresh) { - layer.refresh(); - } - } - if (typeof callback == 'function') { - callback(); - } - return this; - }; - Painter.prototype._preProcessLayer = function (layer) { - layer.unusedCount++; - layer.updateTransform(); - }; - Painter.prototype._postProcessLayer = function (layer) { - layer.dirty = false; - if (layer.unusedCount == 1) { - layer.clear(); - } - }; - Painter.prototype._paintList = function (list, paintAll) { - if (typeof paintAll == 'undefined') { - paintAll = false; - } - this._updateLayerStatus(list); - var currentLayer; - var currentZLevel; - var ctx; - this.eachBuildinLayer(this._preProcessLayer); - for (var i = 0, l = list.length; i < l; i++) { - var shape = list[i]; - if (currentZLevel !== shape.zlevel) { - if (currentLayer) { - if (currentLayer.needTransform) { - ctx.restore(); - } - ctx.flush && ctx.flush(); - } - currentZLevel = shape.zlevel; - currentLayer = this.getLayer(currentZLevel); - if (!currentLayer.isBuildin) { - log('ZLevel ' + currentZLevel + ' has been used by unkown layer ' + currentLayer.id); - } - ctx = currentLayer.ctx; - currentLayer.unusedCount = 0; - if (currentLayer.dirty || paintAll) { - currentLayer.clear(); - } - if (currentLayer.needTransform) { - ctx.save(); - currentLayer.setTransform(ctx); - } - } - if ((currentLayer.dirty || paintAll) && !shape.invisible) { - if (!shape.onbrush || shape.onbrush && !shape.onbrush(ctx, false)) { - if (config.catchBrushException) { - try { - shape.brush(ctx, false, this.refreshNextFrame); - } catch (error) { - log(error, 'brush error of ' + shape.type, shape); - } - } else { - shape.brush(ctx, false, this.refreshNextFrame); - } - } - } - shape.__dirty = false; - } - if (currentLayer) { - if (currentLayer.needTransform) { - ctx.restore(); - } - ctx.flush && ctx.flush(); - } - this.eachBuildinLayer(this._postProcessLayer); - }; - Painter.prototype.getLayer = function (zlevel) { - var layer = this._layers[zlevel]; - if (!layer) { - layer = new Layer(zlevel, this); - layer.isBuildin = true; - if (this._layerConfig[zlevel]) { - util.merge(layer, this._layerConfig[zlevel], true); - } - layer.updateTransform(); - this.insertLayer(zlevel, layer); - layer.initContext(); - } - return layer; - }; - Painter.prototype.insertLayer = function (zlevel, layer) { - if (this._layers[zlevel]) { - log('ZLevel ' + zlevel + ' has been used already'); - return; - } - if (!isLayerValid(layer)) { - log('Layer of zlevel ' + zlevel + ' is not valid'); - return; - } - var len = this._zlevelList.length; - var prevLayer = null; - var i = -1; - if (len > 0 && zlevel > this._zlevelList[0]) { - for (i = 0; i < len - 1; i++) { - if (this._zlevelList[i] < zlevel && this._zlevelList[i + 1] > zlevel) { - break; - } - } - prevLayer = this._layers[this._zlevelList[i]]; - } - this._zlevelList.splice(i + 1, 0, zlevel); - var prevDom = prevLayer ? prevLayer.dom : this._bgDom; - if (prevDom.nextSibling) { - prevDom.parentNode.insertBefore(layer.dom, prevDom.nextSibling); - } else { - prevDom.parentNode.appendChild(layer.dom); - } - this._layers[zlevel] = layer; - }; - Painter.prototype.eachLayer = function (cb, context) { - for (var i = 0; i < this._zlevelList.length; i++) { - var z = this._zlevelList[i]; - cb.call(context, this._layers[z], z); - } - }; - Painter.prototype.eachBuildinLayer = function (cb, context) { - for (var i = 0; i < this._zlevelList.length; i++) { - var z = this._zlevelList[i]; - var layer = this._layers[z]; - if (layer.isBuildin) { - cb.call(context, layer, z); - } - } - }; - Painter.prototype.eachOtherLayer = function (cb, context) { - for (var i = 0; i < this._zlevelList.length; i++) { - var z = this._zlevelList[i]; - var layer = this._layers[z]; - if (!layer.isBuildin) { - cb.call(context, layer, z); - } - } - }; - Painter.prototype.getLayers = function () { - return this._layers; - }; - Painter.prototype._updateLayerStatus = function (list) { - var layers = this._layers; - var elCounts = {}; - this.eachBuildinLayer(function (layer, z) { - elCounts[z] = layer.elCount; - layer.elCount = 0; - }); - for (var i = 0, l = list.length; i < l; i++) { - var shape = list[i]; - var zlevel = shape.zlevel; - var layer = layers[zlevel]; - if (layer) { - layer.elCount++; - if (layer.dirty) { - continue; - } - layer.dirty = shape.__dirty; - } - } - this.eachBuildinLayer(function (layer, z) { - if (elCounts[z] !== layer.elCount) { - layer.dirty = true; - } - }); - }; - Painter.prototype.refreshShapes = function (shapeList, callback) { - for (var i = 0, l = shapeList.length; i < l; i++) { - var shape = shapeList[i]; - shape.modSelf(); - } - this.refresh(callback); - return this; - }; - Painter.prototype.setLoadingEffect = function (loadingEffect) { - this._loadingEffect = loadingEffect; - return this; - }; - Painter.prototype.clear = function () { - this.eachBuildinLayer(this._clearLayer); - return this; - }; - Painter.prototype._clearLayer = function (layer) { - layer.clear(); - }; - Painter.prototype.modLayer = function (zlevel, config) { - if (config) { - if (!this._layerConfig[zlevel]) { - this._layerConfig[zlevel] = config; - } else { - util.merge(this._layerConfig[zlevel], config, true); - } - var layer = this._layers[zlevel]; - if (layer) { - util.merge(layer, this._layerConfig[zlevel], true); - } - } - }; - Painter.prototype.delLayer = function (zlevel) { - var layer = this._layers[zlevel]; - if (!layer) { - return; - } - this.modLayer(zlevel, { - position: layer.position, - rotation: layer.rotation, - scale: layer.scale - }); - layer.dom.parentNode.removeChild(layer.dom); - delete this._layers[zlevel]; - this._zlevelList.splice(util.indexOf(this._zlevelList, zlevel), 1); - }; - Painter.prototype.refreshHover = function () { - this.clearHover(); - var list = this.storage.getHoverShapes(true); - for (var i = 0, l = list.length; i < l; i++) { - this._brushHover(list[i]); - } - var ctx = this._layers.hover.ctx; - ctx.flush && ctx.flush(); - this.storage.delHover(); - return this; - }; - Painter.prototype.clearHover = function () { - var hover = this._layers.hover; - hover && hover.clear(); - return this; - }; - Painter.prototype.showLoading = function (loadingEffect) { - this._loadingEffect && this._loadingEffect.stop(); - loadingEffect && this.setLoadingEffect(loadingEffect); - this._loadingEffect.start(this); - this.loading = true; - return this; - }; - Painter.prototype.hideLoading = function () { - this._loadingEffect.stop(); - this.clearHover(); - this.loading = false; - return this; - }; - Painter.prototype.isLoading = function () { - return this.loading; - }; - Painter.prototype.resize = function () { - var domRoot = this._domRoot; - domRoot.style.display = 'none'; - var width = this._getWidth(); - var height = this._getHeight(); - domRoot.style.display = ''; - if (this._width != width || height != this._height) { - this._width = width; - this._height = height; - domRoot.style.width = width + 'px'; - domRoot.style.height = height + 'px'; - for (var id in this._layers) { - this._layers[id].resize(width, height); - } - this.refresh(null, true); - } - return this; - }; - Painter.prototype.clearLayer = function (zLevel) { - var layer = this._layers[zLevel]; - if (layer) { - layer.clear(); - } - }; - Painter.prototype.dispose = function () { - if (this.isLoading()) { - this.hideLoading(); - } - this.root.innerHTML = ''; - this.root = this.storage = this._domRoot = this._layers = null; - }; - Painter.prototype.getDomHover = function () { - return this._layers.hover.dom; - }; - Painter.prototype.toDataURL = function (type, backgroundColor, args) { - if (window['G_vmlCanvasManager']) { - return null; - } - var imageLayer = new Layer('image', this); - this._bgDom.appendChild(imageLayer.dom); - imageLayer.initContext(); - var ctx = imageLayer.ctx; - imageLayer.clearColor = backgroundColor || '#fff'; - imageLayer.clear(); - var self = this; - this.storage.iterShape(function (shape) { - if (!shape.invisible) { - if (!shape.onbrush || shape.onbrush && !shape.onbrush(ctx, false)) { - if (config.catchBrushException) { - try { - shape.brush(ctx, false, self.refreshNextFrame); - } catch (error) { - log(error, 'brush error of ' + shape.type, shape); - } - } else { - shape.brush(ctx, false, self.refreshNextFrame); - } - } - } - }, { - normal: 'up', - update: true - }); - var image = imageLayer.dom.toDataURL(type, args); - ctx = null; - this._bgDom.removeChild(imageLayer.dom); - return image; - }; - Painter.prototype.getWidth = function () { - return this._width; - }; - Painter.prototype.getHeight = function () { - return this._height; - }; - Painter.prototype._getWidth = function () { - var root = this.root; - var stl = root.currentStyle || document.defaultView.getComputedStyle(root); - return ((root.clientWidth || parseInt(stl.width, 10)) - parseInt(stl.paddingLeft, 10) - parseInt(stl.paddingRight, 10)).toFixed(0) - 0; - }; - Painter.prototype._getHeight = function () { - var root = this.root; - var stl = root.currentStyle || document.defaultView.getComputedStyle(root); - return ((root.clientHeight || parseInt(stl.height, 10)) - parseInt(stl.paddingTop, 10) - parseInt(stl.paddingBottom, 10)).toFixed(0) - 0; - }; - Painter.prototype._brushHover = function (shape) { - var ctx = this._layers.hover.ctx; - if (!shape.onbrush || shape.onbrush && !shape.onbrush(ctx, true)) { - var layer = this.getLayer(shape.zlevel); - if (layer.needTransform) { - ctx.save(); - layer.setTransform(ctx); - } - if (config.catchBrushException) { - try { - shape.brush(ctx, true, this.refreshNextFrame); - } catch (error) { - log(error, 'hoverBrush error of ' + shape.type, shape); - } - } else { - shape.brush(ctx, true, this.refreshNextFrame); - } - if (layer.needTransform) { - ctx.restore(); - } - } - }; - Painter.prototype._shapeToImage = function (id, shape, width, height, devicePixelRatio) { - var canvas = document.createElement('canvas'); - var ctx = canvas.getContext('2d'); - canvas.style.width = width + 'px'; - canvas.style.height = height + 'px'; - canvas.setAttribute('width', width * devicePixelRatio); - canvas.setAttribute('height', height * devicePixelRatio); - ctx.clearRect(0, 0, width * devicePixelRatio, height * devicePixelRatio); - var shapeTransform = { - position: shape.position, - rotation: shape.rotation, - scale: shape.scale - }; - shape.position = [ - 0, - 0, - 0 - ]; - shape.rotation = 0; - shape.scale = [ - 1, - 1 - ]; - if (shape) { - shape.brush(ctx, false); - } - var ImageShape = require('./shape/Image'); - var imgShape = new ImageShape({ - id: id, - style: { - x: 0, - y: 0, - image: canvas - } - }); - if (shapeTransform.position != null) { - imgShape.position = shape.position = shapeTransform.position; - } - if (shapeTransform.rotation != null) { - imgShape.rotation = shape.rotation = shapeTransform.rotation; - } - if (shapeTransform.scale != null) { - imgShape.scale = shape.scale = shapeTransform.scale; - } - return imgShape; - }; - Painter.prototype._createShapeToImageProcessor = function () { - if (window['G_vmlCanvasManager']) { - return doNothing; - } - var me = this; - return function (id, e, width, height) { - return me._shapeToImage(id, e, width, height, config.devicePixelRatio); - }; - }; - return Painter; -});define('zrender/Storage', [ - 'require', - './tool/util', - './Group' -], function (require) { - 'use strict'; - var util = require('./tool/util'); - var Group = require('./Group'); - var defaultIterateOption = { - hover: false, - normal: 'down', - update: false - }; - function shapeCompareFunc(a, b) { - if (a.zlevel == b.zlevel) { - if (a.z == b.z) { - return a.__renderidx - b.__renderidx; - } - return a.z - b.z; - } - return a.zlevel - b.zlevel; - } - var Storage = function () { - this._elements = {}; - this._hoverElements = []; - this._roots = []; - this._shapeList = []; - this._shapeListOffset = 0; - }; - Storage.prototype.iterShape = function (fun, option) { - if (!option) { - option = defaultIterateOption; - } - if (option.hover) { - for (var i = 0, l = this._hoverElements.length; i < l; i++) { - var el = this._hoverElements[i]; - el.updateTransform(); - if (fun(el)) { - return this; - } - } - } - if (option.update) { - this.updateShapeList(); - } - switch (option.normal) { - case 'down': - var l = this._shapeList.length; - while (l--) { - if (fun(this._shapeList[l])) { - return this; - } - } - break; - default: - for (var i = 0, l = this._shapeList.length; i < l; i++) { - if (fun(this._shapeList[i])) { - return this; - } - } - break; - } - return this; - }; - Storage.prototype.getHoverShapes = function (update) { - var hoverElements = []; - for (var i = 0, l = this._hoverElements.length; i < l; i++) { - hoverElements.push(this._hoverElements[i]); - var target = this._hoverElements[i].hoverConnect; - if (target) { - var shape; - target = target instanceof Array ? target : [target]; - for (var j = 0, k = target.length; j < k; j++) { - shape = target[j].id ? target[j] : this.get(target[j]); - if (shape) { - hoverElements.push(shape); - } - } - } - } - hoverElements.sort(shapeCompareFunc); - if (update) { - for (var i = 0, l = hoverElements.length; i < l; i++) { - hoverElements[i].updateTransform(); - } - } - return hoverElements; - }; - Storage.prototype.getShapeList = function (update) { - if (update) { - this.updateShapeList(); - } - return this._shapeList; - }; - Storage.prototype.updateShapeList = function () { - this._shapeListOffset = 0; - for (var i = 0, len = this._roots.length; i < len; i++) { - var root = this._roots[i]; - this._updateAndAddShape(root); - } - this._shapeList.length = this._shapeListOffset; - for (var i = 0, len = this._shapeList.length; i < len; i++) { - this._shapeList[i].__renderidx = i; - } - this._shapeList.sort(shapeCompareFunc); - }; - Storage.prototype._updateAndAddShape = function (el, clipShapes) { - if (el.ignore) { - return; - } - el.updateTransform(); - if (el.clipShape) { - el.clipShape.parent = el; - el.clipShape.updateTransform(); - if (clipShapes) { - clipShapes = clipShapes.slice(); - clipShapes.push(el.clipShape); - } else { - clipShapes = [el.clipShape]; - } - } - if (el.type == 'group') { - for (var i = 0; i < el._children.length; i++) { - var child = el._children[i]; - child.__dirty = el.__dirty || child.__dirty; - this._updateAndAddShape(child, clipShapes); - } - el.__dirty = false; - } else { - el.__clipShapes = clipShapes; - this._shapeList[this._shapeListOffset++] = el; - } - }; - Storage.prototype.mod = function (el, params) { - if (typeof el === 'string') { - el = this._elements[el]; - } - if (el) { - el.modSelf(); - if (params) { - if (params.parent || params._storage || params.__clipShapes) { - var target = {}; - for (var name in params) { - if (name === 'parent' || name === '_storage' || name === '__clipShapes') { - continue; - } - if (params.hasOwnProperty(name)) { - target[name] = params[name]; - } - } - util.merge(el, target, true); - } else { - util.merge(el, params, true); - } - } - } - return this; - }; - Storage.prototype.drift = function (shapeId, dx, dy) { - var shape = this._elements[shapeId]; - if (shape) { - shape.needTransform = true; - if (shape.draggable === 'horizontal') { - dy = 0; - } else if (shape.draggable === 'vertical') { - dx = 0; - } - if (!shape.ondrift || shape.ondrift && !shape.ondrift(dx, dy)) { - shape.drift(dx, dy); - } - } - return this; - }; - Storage.prototype.addHover = function (shape) { - shape.updateNeedTransform(); - this._hoverElements.push(shape); - return this; - }; - Storage.prototype.delHover = function () { - this._hoverElements = []; - return this; - }; - Storage.prototype.hasHoverShape = function () { - return this._hoverElements.length > 0; - }; - Storage.prototype.addRoot = function (el) { - if (this._elements[el.id]) { - return; - } - if (el instanceof Group) { - el.addChildrenToStorage(this); - } - this.addToMap(el); - this._roots.push(el); - }; - Storage.prototype.delRoot = function (elId) { - if (typeof elId == 'undefined') { - for (var i = 0; i < this._roots.length; i++) { - var root = this._roots[i]; - if (root instanceof Group) { - root.delChildrenFromStorage(this); - } - } - this._elements = {}; - this._hoverElements = []; - this._roots = []; - this._shapeList = []; - this._shapeListOffset = 0; - return; - } - if (elId instanceof Array) { - for (var i = 0, l = elId.length; i < l; i++) { - this.delRoot(elId[i]); - } - return; - } - var el; - if (typeof elId == 'string') { - el = this._elements[elId]; - } else { - el = elId; - } - var idx = util.indexOf(this._roots, el); - if (idx >= 0) { - this.delFromMap(el.id); - this._roots.splice(idx, 1); - if (el instanceof Group) { - el.delChildrenFromStorage(this); - } - } - }; - Storage.prototype.addToMap = function (el) { - if (el instanceof Group) { - el._storage = this; - } - el.modSelf(); - this._elements[el.id] = el; - return this; - }; - Storage.prototype.get = function (elId) { - return this._elements[elId]; - }; - Storage.prototype.delFromMap = function (elId) { - var el = this._elements[elId]; - if (el) { - delete this._elements[elId]; - if (el instanceof Group) { - el._storage = null; - } - } - return this; - }; - Storage.prototype.dispose = function () { - this._elements = this._renderList = this._roots = this._hoverElements = null; - }; - return Storage; -});define('zrender/animation/Animation', [ - 'require', - './Clip', - '../tool/color', - '../tool/util', - '../tool/event' -], function (require) { - 'use strict'; - var Clip = require('./Clip'); - var color = require('../tool/color'); - var util = require('../tool/util'); - var Dispatcher = require('../tool/event').Dispatcher; - var requestAnimationFrame = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (func) { - setTimeout(func, 16); - }; - var arraySlice = Array.prototype.slice; - var Animation = function (options) { - options = options || {}; - this.stage = options.stage || {}; - this.onframe = options.onframe || function () { - }; - this._clips = []; - this._running = false; - this._time = 0; - Dispatcher.call(this); - }; - Animation.prototype = { - add: function (clip) { - this._clips.push(clip); - }, - remove: function (clip) { - if (clip.__inStep) { - clip.__needsRemove = true; - } else { - var idx = util.indexOf(this._clips, clip); - if (idx >= 0) { - this._clips.splice(idx, 1); - } - } - }, - _update: function () { - var time = new Date().getTime(); - var delta = time - this._time; - var clips = this._clips; - var len = clips.length; - var deferredEvents = []; - var deferredClips = []; - for (var i = 0; i < len; i++) { - var clip = clips[i]; - clip.__inStep = true; - var e = clip.step(time); - clip.__inStep = false; - if (e) { - deferredEvents.push(e); - deferredClips.push(clip); - } - } - for (var i = 0; i < len;) { - if (clips[i].__needsRemove) { - clips[i] = clips[len - 1]; - clips.pop(); - len--; - } else { - i++; - } - } - len = deferredEvents.length; - for (var i = 0; i < len; i++) { - deferredClips[i].fire(deferredEvents[i]); - } - this._time = time; - this.onframe(delta); - this.dispatch('frame', delta); - if (this.stage.update) { - this.stage.update(); - } - }, - start: function () { - var self = this; - this._running = true; - function step() { - if (self._running) { - requestAnimationFrame(step); - self._update(); - } - } - this._time = new Date().getTime(); - requestAnimationFrame(step); - }, - stop: function () { - this._running = false; - }, - clear: function () { - this._clips = []; - }, - animate: function (target, options) { - options = options || {}; - var deferred = new Animator(target, options.loop, options.getter, options.setter); - deferred.animation = this; - return deferred; - }, - constructor: Animation - }; - util.merge(Animation.prototype, Dispatcher.prototype, true); - function _defaultGetter(target, key) { - return target[key]; - } - function _defaultSetter(target, key, value) { - target[key] = value; - } - function _interpolateNumber(p0, p1, percent) { - return (p1 - p0) * percent + p0; - } - function _interpolateArray(p0, p1, percent, out, arrDim) { - var len = p0.length; - if (arrDim == 1) { - for (var i = 0; i < len; i++) { - out[i] = _interpolateNumber(p0[i], p1[i], percent); - } - } else { - var len2 = p0[0].length; - for (var i = 0; i < len; i++) { - for (var j = 0; j < len2; j++) { - out[i][j] = _interpolateNumber(p0[i][j], p1[i][j], percent); - } - } - } - } - function _isArrayLike(data) { - switch (typeof data) { - case 'undefined': - case 'string': - return false; - } - return typeof data.length !== 'undefined'; - } - function _catmullRomInterpolateArray(p0, p1, p2, p3, t, t2, t3, out, arrDim) { - var len = p0.length; - if (arrDim == 1) { - for (var i = 0; i < len; i++) { - out[i] = _catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3); - } - } else { - var len2 = p0[0].length; - for (var i = 0; i < len; i++) { - for (var j = 0; j < len2; j++) { - out[i][j] = _catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3); - } - } - } - } - function _catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) { - var v0 = (p2 - p0) * 0.5; - var v1 = (p3 - p1) * 0.5; - return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1; - } - function _cloneValue(value) { - if (_isArrayLike(value)) { - var len = value.length; - if (_isArrayLike(value[0])) { - var ret = []; - for (var i = 0; i < len; i++) { - ret.push(arraySlice.call(value[i])); - } - return ret; - } else { - return arraySlice.call(value); - } - } else { - return value; - } - } - function rgba2String(rgba) { - rgba[0] = Math.floor(rgba[0]); - rgba[1] = Math.floor(rgba[1]); - rgba[2] = Math.floor(rgba[2]); - return 'rgba(' + rgba.join(',') + ')'; - } - var Animator = function (target, loop, getter, setter) { - this._tracks = {}; - this._target = target; - this._loop = loop || false; - this._getter = getter || _defaultGetter; - this._setter = setter || _defaultSetter; - this._clipCount = 0; - this._delay = 0; - this._doneList = []; - this._onframeList = []; - this._clipList = []; - }; - Animator.prototype = { - when: function (time, props) { - for (var propName in props) { - if (!this._tracks[propName]) { - this._tracks[propName] = []; - if (time !== 0) { - this._tracks[propName].push({ - time: 0, - value: _cloneValue(this._getter(this._target, propName)) - }); - } - } - this._tracks[propName].push({ - time: parseInt(time, 10), - value: props[propName] - }); - } - return this; - }, - during: function (callback) { - this._onframeList.push(callback); - return this; - }, - start: function (easing) { - var self = this; - var setter = this._setter; - var getter = this._getter; - var useSpline = easing === 'spline'; - var ondestroy = function () { - self._clipCount--; - if (self._clipCount === 0) { - self._tracks = {}; - var len = self._doneList.length; - for (var i = 0; i < len; i++) { - self._doneList[i].call(self); - } - } - }; - var createTrackClip = function (keyframes, propName) { - var trackLen = keyframes.length; - if (!trackLen) { - return; - } - var firstVal = keyframes[0].value; - var isValueArray = _isArrayLike(firstVal); - var isValueColor = false; - var arrDim = isValueArray && _isArrayLike(firstVal[0]) ? 2 : 1; - keyframes.sort(function (a, b) { - return a.time - b.time; - }); - var trackMaxTime; - if (trackLen) { - trackMaxTime = keyframes[trackLen - 1].time; - } else { - return; - } - var kfPercents = []; - var kfValues = []; - for (var i = 0; i < trackLen; i++) { - kfPercents.push(keyframes[i].time / trackMaxTime); - var value = keyframes[i].value; - if (typeof value == 'string') { - value = color.toArray(value); - if (value.length === 0) { - value[0] = value[1] = value[2] = 0; - value[3] = 1; - } - isValueColor = true; - } - kfValues.push(value); - } - var cacheKey = 0; - var cachePercent = 0; - var start; - var i; - var w; - var p0; - var p1; - var p2; - var p3; - if (isValueColor) { - var rgba = [ - 0, - 0, - 0, - 0 - ]; - } - var onframe = function (target, percent) { - if (percent < cachePercent) { - start = Math.min(cacheKey + 1, trackLen - 1); - for (i = start; i >= 0; i--) { - if (kfPercents[i] <= percent) { - break; - } - } - i = Math.min(i, trackLen - 2); - } else { - for (i = cacheKey; i < trackLen; i++) { - if (kfPercents[i] > percent) { - break; - } - } - i = Math.min(i - 1, trackLen - 2); - } - cacheKey = i; - cachePercent = percent; - var range = kfPercents[i + 1] - kfPercents[i]; - if (range === 0) { - return; - } else { - w = (percent - kfPercents[i]) / range; - } - if (useSpline) { - p1 = kfValues[i]; - p0 = kfValues[i === 0 ? i : i - 1]; - p2 = kfValues[i > trackLen - 2 ? trackLen - 1 : i + 1]; - p3 = kfValues[i > trackLen - 3 ? trackLen - 1 : i + 2]; - if (isValueArray) { - _catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, getter(target, propName), arrDim); - } else { - var value; - if (isValueColor) { - value = _catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, rgba, 1); - value = rgba2String(rgba); - } else { - value = _catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w); - } - setter(target, propName, value); - } - } else { - if (isValueArray) { - _interpolateArray(kfValues[i], kfValues[i + 1], w, getter(target, propName), arrDim); - } else { - var value; - if (isValueColor) { - _interpolateArray(kfValues[i], kfValues[i + 1], w, rgba, 1); - value = rgba2String(rgba); - } else { - value = _interpolateNumber(kfValues[i], kfValues[i + 1], w); - } - setter(target, propName, value); - } - } - for (i = 0; i < self._onframeList.length; i++) { - self._onframeList[i](target, percent); - } - }; - var clip = new Clip({ - target: self._target, - life: trackMaxTime, - loop: self._loop, - delay: self._delay, - onframe: onframe, - ondestroy: ondestroy - }); - if (easing && easing !== 'spline') { - clip.easing = easing; - } - self._clipList.push(clip); - self._clipCount++; - self.animation.add(clip); - }; - for (var propName in this._tracks) { - createTrackClip(this._tracks[propName], propName); - } - return this; - }, - stop: function () { - for (var i = 0; i < this._clipList.length; i++) { - var clip = this._clipList[i]; - this.animation.remove(clip); - } - this._clipList = []; - }, - delay: function (time) { - this._delay = time; - return this; - }, - done: function (cb) { - if (cb) { - this._doneList.push(cb); - } - return this; - } - }; - return Animation; -});define('zrender/tool/vector', [], function () { - var ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array; - var vector = { - create: function (x, y) { - var out = new ArrayCtor(2); - out[0] = x || 0; - out[1] = y || 0; - return out; - }, - copy: function (out, v) { - out[0] = v[0]; - out[1] = v[1]; - return out; - }, - clone: function (v) { - var out = new ArrayCtor(2); - out[0] = v[0]; - out[1] = v[1]; - return out; - }, - set: function (out, a, b) { - out[0] = a; - out[1] = b; - return out; - }, - add: function (out, v1, v2) { - out[0] = v1[0] + v2[0]; - out[1] = v1[1] + v2[1]; - return out; - }, - scaleAndAdd: function (out, v1, v2, a) { - out[0] = v1[0] + v2[0] * a; - out[1] = v1[1] + v2[1] * a; - return out; - }, - sub: function (out, v1, v2) { - out[0] = v1[0] - v2[0]; - out[1] = v1[1] - v2[1]; - return out; - }, - len: function (v) { - return Math.sqrt(this.lenSquare(v)); - }, - lenSquare: function (v) { - return v[0] * v[0] + v[1] * v[1]; - }, - mul: function (out, v1, v2) { - out[0] = v1[0] * v2[0]; - out[1] = v1[1] * v2[1]; - return out; - }, - div: function (out, v1, v2) { - out[0] = v1[0] / v2[0]; - out[1] = v1[1] / v2[1]; - return out; - }, - dot: function (v1, v2) { - return v1[0] * v2[0] + v1[1] * v2[1]; - }, - scale: function (out, v, s) { - out[0] = v[0] * s; - out[1] = v[1] * s; - return out; - }, - normalize: function (out, v) { - var d = vector.len(v); - if (d === 0) { - out[0] = 0; - out[1] = 0; - } else { - out[0] = v[0] / d; - out[1] = v[1] / d; - } - return out; - }, - distance: function (v1, v2) { - return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1])); - }, - distanceSquare: function (v1, v2) { - return (v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1]); - }, - negate: function (out, v) { - out[0] = -v[0]; - out[1] = -v[1]; - return out; - }, - lerp: function (out, v1, v2, t) { - out[0] = v1[0] + t * (v2[0] - v1[0]); - out[1] = v1[1] + t * (v2[1] - v1[1]); - return out; - }, - applyTransform: function (out, v, m) { - var x = v[0]; - var y = v[1]; - out[0] = m[0] * x + m[2] * y + m[4]; - out[1] = m[1] * x + m[3] * y + m[5]; - return out; - }, - min: function (out, v1, v2) { - out[0] = Math.min(v1[0], v2[0]); - out[1] = Math.min(v1[1], v2[1]); - return out; - }, - max: function (out, v1, v2) { - out[0] = Math.max(v1[0], v2[0]); - out[1] = Math.max(v1[1], v2[1]); - return out; - } - }; - vector.length = vector.len; - vector.lengthSquare = vector.lenSquare; - vector.dist = vector.distance; - vector.distSquare = vector.distanceSquare; - return vector; -});define('zrender/tool/matrix', [], function () { - var ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array; - var matrix = { - create: function () { - var out = new ArrayCtor(6); - matrix.identity(out); - return out; - }, - identity: function (out) { - out[0] = 1; - out[1] = 0; - out[2] = 0; - out[3] = 1; - out[4] = 0; - out[5] = 0; - return out; - }, - copy: function (out, m) { - out[0] = m[0]; - out[1] = m[1]; - out[2] = m[2]; - out[3] = m[3]; - out[4] = m[4]; - out[5] = m[5]; - return out; - }, - mul: function (out, m1, m2) { - out[0] = m1[0] * m2[0] + m1[2] * m2[1]; - out[1] = m1[1] * m2[0] + m1[3] * m2[1]; - out[2] = m1[0] * m2[2] + m1[2] * m2[3]; - out[3] = m1[1] * m2[2] + m1[3] * m2[3]; - out[4] = m1[0] * m2[4] + m1[2] * m2[5] + m1[4]; - out[5] = m1[1] * m2[4] + m1[3] * m2[5] + m1[5]; - return out; - }, - translate: function (out, a, v) { - out[0] = a[0]; - out[1] = a[1]; - out[2] = a[2]; - out[3] = a[3]; - out[4] = a[4] + v[0]; - out[5] = a[5] + v[1]; - return out; - }, - rotate: function (out, a, rad) { - var aa = a[0]; - var ac = a[2]; - var atx = a[4]; - var ab = a[1]; - var ad = a[3]; - var aty = a[5]; - var st = Math.sin(rad); - var ct = Math.cos(rad); - out[0] = aa * ct + ab * st; - out[1] = -aa * st + ab * ct; - out[2] = ac * ct + ad * st; - out[3] = -ac * st + ct * ad; - out[4] = ct * atx + st * aty; - out[5] = ct * aty - st * atx; - return out; - }, - scale: function (out, a, v) { - var vx = v[0]; - var vy = v[1]; - out[0] = a[0] * vx; - out[1] = a[1] * vy; - out[2] = a[2] * vx; - out[3] = a[3] * vy; - out[4] = a[4] * vx; - out[5] = a[5] * vy; - return out; - }, - invert: function (out, a) { - var aa = a[0]; - var ac = a[2]; - var atx = a[4]; - var ab = a[1]; - var ad = a[3]; - var aty = a[5]; - var det = aa * ad - ab * ac; - if (!det) { - return null; - } - det = 1 / det; - out[0] = ad * det; - out[1] = -ab * det; - out[2] = -ac * det; - out[3] = aa * det; - out[4] = (ac * aty - ad * atx) * det; - out[5] = (ab * atx - aa * aty) * det; - return out; - } - }; - return matrix; -});define('zrender/loadingEffect/Base', [ - 'require', - '../tool/util', - '../shape/Text', - '../shape/Rectangle' -], function (require) { - var util = require('../tool/util'); - var TextShape = require('../shape/Text'); - var RectangleShape = require('../shape/Rectangle'); - var DEFAULT_TEXT = 'Loading...'; - var DEFAULT_TEXT_FONT = 'normal 16px Arial'; - function Base(options) { - this.setOptions(options); - } - Base.prototype.createTextShape = function (textStyle) { - return new TextShape({ - highlightStyle: util.merge({ - x: this.canvasWidth / 2, - y: this.canvasHeight / 2, - text: DEFAULT_TEXT, - textAlign: 'center', - textBaseline: 'middle', - textFont: DEFAULT_TEXT_FONT, - color: '#333', - brushType: 'fill' - }, textStyle, true) - }); - }; - Base.prototype.createBackgroundShape = function (color) { - return new RectangleShape({ - highlightStyle: { - x: 0, - y: 0, - width: this.canvasWidth, - height: this.canvasHeight, - brushType: 'fill', - color: color - } - }); - }; - Base.prototype.start = function (painter) { - this.canvasWidth = painter._width; - this.canvasHeight = painter._height; - function addShapeHandle(param) { - painter.storage.addHover(param); - } - function refreshHandle() { - painter.refreshHover(); - } - this.loadingTimer = this._start(addShapeHandle, refreshHandle); - }; - Base.prototype._start = function () { - return setInterval(function () { - }, 10000); - }; - Base.prototype.stop = function () { - clearInterval(this.loadingTimer); - }; - Base.prototype.setOptions = function (options) { - this.options = options || {}; - }; - Base.prototype.adjust = function (value, region) { - if (value <= region[0]) { - value = region[0]; - } else if (value >= region[1]) { - value = region[1]; - } - return value; - }; - Base.prototype.getLocation = function (loc, totalWidth, totalHeight) { - var x = loc.x != null ? loc.x : 'center'; - switch (x) { - case 'center': - x = Math.floor((this.canvasWidth - totalWidth) / 2); - break; - case 'left': - x = 0; - break; - case 'right': - x = this.canvasWidth - totalWidth; - break; - } - var y = loc.y != null ? loc.y : 'center'; - switch (y) { - case 'center': - y = Math.floor((this.canvasHeight - totalHeight) / 2); - break; - case 'top': - y = 0; - break; - case 'bottom': - y = this.canvasHeight - totalHeight; - break; - } - return { - x: x, - y: y, - width: totalWidth, - height: totalHeight - }; - }; - return Base; -});define('zrender/Layer', [ - 'require', - './mixin/Transformable', - './tool/util', - './config' -], function (require) { - var Transformable = require('./mixin/Transformable'); - var util = require('./tool/util'); - var vmlCanvasManager = window['G_vmlCanvasManager']; - var config = require('./config'); - function returnFalse() { - return false; - } - function createDom(id, type, painter) { - var newDom = document.createElement(type); - var width = painter.getWidth(); - var height = painter.getHeight(); - newDom.style.position = 'absolute'; - newDom.style.left = 0; - newDom.style.top = 0; - newDom.style.width = width + 'px'; - newDom.style.height = height + 'px'; - newDom.width = width * config.devicePixelRatio; - newDom.height = height * config.devicePixelRatio; - newDom.setAttribute('data-zr-dom-id', id); - return newDom; - } - var Layer = function (id, painter) { - this.id = id; - this.dom = createDom(id, 'canvas', painter); - this.dom.onselectstart = returnFalse; - this.dom.style['-webkit-user-select'] = 'none'; - this.dom.style['user-select'] = 'none'; - this.dom.style['-webkit-touch-callout'] = 'none'; - this.dom.style['-webkit-tap-highlight-color'] = 'rgba(0,0,0,0)'; - this.dom.className = config.elementClassName; - vmlCanvasManager && vmlCanvasManager.initElement(this.dom); - this.domBack = null; - this.ctxBack = null; - this.painter = painter; - this.unusedCount = 0; - this.config = null; - this.dirty = true; - this.elCount = 0; - this.clearColor = 0; - this.motionBlur = false; - this.lastFrameAlpha = 0.7; - this.zoomable = false; - this.panable = false; - this.maxZoom = Infinity; - this.minZoom = 0; - Transformable.call(this); - }; - Layer.prototype.initContext = function () { - this.ctx = this.dom.getContext('2d'); - var dpr = config.devicePixelRatio; - if (dpr != 1) { - this.ctx.scale(dpr, dpr); - } - }; - Layer.prototype.createBackBuffer = function () { - if (vmlCanvasManager) { - return; - } - this.domBack = createDom('back-' + this.id, 'canvas', this.painter); - this.ctxBack = this.domBack.getContext('2d'); - var dpr = config.devicePixelRatio; - if (dpr != 1) { - this.ctxBack.scale(dpr, dpr); - } - }; - Layer.prototype.resize = function (width, height) { - var dpr = config.devicePixelRatio; - this.dom.style.width = width + 'px'; - this.dom.style.height = height + 'px'; - this.dom.setAttribute('width', width * dpr); - this.dom.setAttribute('height', height * dpr); - if (dpr != 1) { - this.ctx.scale(dpr, dpr); - } - if (this.domBack) { - this.domBack.setAttribute('width', width * dpr); - this.domBack.setAttribute('height', height * dpr); - if (dpr != 1) { - this.ctxBack.scale(dpr, dpr); - } - } - }; - Layer.prototype.clear = function () { - var dom = this.dom; - var ctx = this.ctx; - var width = dom.width; - var height = dom.height; - var haveClearColor = this.clearColor && !vmlCanvasManager; - var haveMotionBLur = this.motionBlur && !vmlCanvasManager; - var lastFrameAlpha = this.lastFrameAlpha; - var dpr = config.devicePixelRatio; - if (haveMotionBLur) { - if (!this.domBack) { - this.createBackBuffer(); - } - this.ctxBack.globalCompositeOperation = 'copy'; - this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr); - } - ctx.clearRect(0, 0, width / dpr, height / dpr); - if (haveClearColor) { - ctx.save(); - ctx.fillStyle = this.clearColor; - ctx.fillRect(0, 0, width / dpr, height / dpr); - ctx.restore(); - } - if (haveMotionBLur) { - var domBack = this.domBack; - ctx.save(); - ctx.globalAlpha = lastFrameAlpha; - ctx.drawImage(domBack, 0, 0, width / dpr, height / dpr); - ctx.restore(); - } - }; - util.merge(Layer.prototype, Transformable.prototype); - return Layer; -});define('zrender/shape/Text', [ - 'require', - '../tool/area', - './Base', - '../tool/util' -], function (require) { - var area = require('../tool/area'); - var Base = require('./Base'); - var Text = function (options) { - Base.call(this, options); - }; - Text.prototype = { - type: 'text', - brush: function (ctx, isHighlight) { - var style = this.style; - if (isHighlight) { - style = this.getHighlightStyle(style, this.highlightStyle || {}); - } - if (typeof style.text == 'undefined' || style.text === false) { - return; - } - ctx.save(); - this.doClip(ctx); - this.setContext(ctx, style); - this.setTransform(ctx); - if (style.textFont) { - ctx.font = style.textFont; - } - ctx.textAlign = style.textAlign || 'start'; - ctx.textBaseline = style.textBaseline || 'middle'; - var text = (style.text + '').split('\n'); - var lineHeight = area.getTextHeight('国', style.textFont); - var rect = this.getRect(style); - var x = style.x; - var y; - if (style.textBaseline == 'top') { - y = rect.y; - } else if (style.textBaseline == 'bottom') { - y = rect.y + lineHeight; - } else { - y = rect.y + lineHeight / 2; - } - for (var i = 0, l = text.length; i < l; i++) { - if (style.maxWidth) { - switch (style.brushType) { - case 'fill': - ctx.fillText(text[i], x, y, style.maxWidth); - break; - case 'stroke': - ctx.strokeText(text[i], x, y, style.maxWidth); - break; - case 'both': - ctx.fillText(text[i], x, y, style.maxWidth); - ctx.strokeText(text[i], x, y, style.maxWidth); - break; - default: - ctx.fillText(text[i], x, y, style.maxWidth); - } - } else { - switch (style.brushType) { - case 'fill': - ctx.fillText(text[i], x, y); - break; - case 'stroke': - ctx.strokeText(text[i], x, y); - break; - case 'both': - ctx.fillText(text[i], x, y); - ctx.strokeText(text[i], x, y); - break; - default: - ctx.fillText(text[i], x, y); - } - } - y += lineHeight; - } - ctx.restore(); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var width = area.getTextWidth(style.text, style.textFont); - var height = area.getTextHeight(style.text, style.textFont); - var textX = style.x; - if (style.textAlign == 'end' || style.textAlign == 'right') { - textX -= width; - } else if (style.textAlign == 'center') { - textX -= width / 2; - } - var textY; - if (style.textBaseline == 'top') { - textY = style.y; - } else if (style.textBaseline == 'bottom') { - textY = style.y - height; - } else { - textY = style.y - height / 2; - } - style.__rect = { - x: textX, - y: textY, - width: width, - height: height - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Text, Base); - return Text; -});define('zrender/shape/Rectangle', [ - 'require', - './Base', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var Rectangle = function (options) { - Base.call(this, options); - }; - Rectangle.prototype = { - type: 'rectangle', - _buildRadiusPath: function (ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - var r = style.radius; - var r1; - var r2; - var r3; - var r4; - if (typeof r === 'number') { - r1 = r2 = r3 = r4 = r; - } else if (r instanceof Array) { - if (r.length === 1) { - r1 = r2 = r3 = r4 = r[0]; - } else if (r.length === 2) { - r1 = r3 = r[0]; - r2 = r4 = r[1]; - } else if (r.length === 3) { - r1 = r[0]; - r2 = r4 = r[1]; - r3 = r[2]; - } else { - r1 = r[0]; - r2 = r[1]; - r3 = r[2]; - r4 = r[3]; - } - } else { - r1 = r2 = r3 = r4 = 0; - } - var total; - if (r1 + r2 > width) { - total = r1 + r2; - r1 *= width / total; - r2 *= width / total; - } - if (r3 + r4 > width) { - total = r3 + r4; - r3 *= width / total; - r4 *= width / total; - } - if (r2 + r3 > height) { - total = r2 + r3; - r2 *= height / total; - r3 *= height / total; - } - if (r1 + r4 > height) { - total = r1 + r4; - r1 *= height / total; - r4 *= height / total; - } - ctx.moveTo(x + r1, y); - ctx.lineTo(x + width - r2, y); - r2 !== 0 && ctx.quadraticCurveTo(x + width, y, x + width, y + r2); - ctx.lineTo(x + width, y + height - r3); - r3 !== 0 && ctx.quadraticCurveTo(x + width, y + height, x + width - r3, y + height); - ctx.lineTo(x + r4, y + height); - r4 !== 0 && ctx.quadraticCurveTo(x, y + height, x, y + height - r4); - ctx.lineTo(x, y + r1); - r1 !== 0 && ctx.quadraticCurveTo(x, y, x + r1, y); - }, - buildPath: function (ctx, style) { - if (!style.radius) { - ctx.moveTo(style.x, style.y); - ctx.lineTo(style.x + style.width, style.y); - ctx.lineTo(style.x + style.width, style.y + style.height); - ctx.lineTo(style.x, style.y + style.height); - ctx.lineTo(style.x, style.y); - } else { - this._buildRadiusPath(ctx, style); - } - ctx.closePath(); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - style.__rect = { - x: Math.round(style.x - lineWidth / 2), - y: Math.round(style.y - lineWidth / 2), - width: style.width + lineWidth, - height: style.height + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Rectangle, Base); - return Rectangle; -});define('zrender/tool/area', [ - 'require', - './util', - './curve' -], function (require) { - 'use strict'; - var util = require('./util'); - var curve = require('./curve'); - var _ctx; - var _textWidthCache = {}; - var _textHeightCache = {}; - var _textWidthCacheCounter = 0; - var _textHeightCacheCounter = 0; - var TEXT_CACHE_MAX = 5000; - var PI2 = Math.PI * 2; - function normalizeRadian(angle) { - angle %= PI2; - if (angle < 0) { - angle += PI2; - } - return angle; - } - function isInside(shape, area, x, y) { - if (!area || !shape) { - return false; - } - var zoneType = shape.type; - _ctx = _ctx || util.getContext(); - var _mathReturn = _mathMethod(shape, area, x, y); - if (typeof _mathReturn != 'undefined') { - return _mathReturn; - } - if (shape.buildPath && _ctx.isPointInPath) { - return _buildPathMethod(shape, _ctx, area, x, y); - } - switch (zoneType) { - case 'ellipse': - return true; - case 'trochoid': - var _r = area.location == 'out' ? area.r1 + area.r2 + area.d : area.r1 - area.r2 + area.d; - return isInsideCircle(area, x, y, _r); - case 'rose': - return isInsideCircle(area, x, y, area.maxr); - default: - return false; - } - } - function _mathMethod(shape, area, x, y) { - var zoneType = shape.type; - switch (zoneType) { - case 'bezier-curve': - if (typeof area.cpX2 === 'undefined') { - return isInsideQuadraticStroke(area.xStart, area.yStart, area.cpX1, area.cpY1, area.xEnd, area.yEnd, area.lineWidth, x, y); - } - return isInsideCubicStroke(area.xStart, area.yStart, area.cpX1, area.cpY1, area.cpX2, area.cpY2, area.xEnd, area.yEnd, area.lineWidth, x, y); - case 'line': - return isInsideLine(area.xStart, area.yStart, area.xEnd, area.yEnd, area.lineWidth, x, y); - case 'polyline': - return isInsidePolyline(area.pointList, area.lineWidth, x, y); - case 'ring': - return isInsideRing(area.x, area.y, area.r0, area.r, x, y); - case 'circle': - return isInsideCircle(area.x, area.y, area.r, x, y); - case 'sector': - var startAngle = area.startAngle * Math.PI / 180; - var endAngle = area.endAngle * Math.PI / 180; - if (!area.clockWise) { - startAngle = -startAngle; - endAngle = -endAngle; - } - return isInsideSector(area.x, area.y, area.r0, area.r, startAngle, endAngle, !area.clockWise, x, y); - case 'path': - return area.pathArray && isInsidePath(area.pathArray, Math.max(area.lineWidth, 5), area.brushType, x, y); - case 'polygon': - case 'star': - case 'isogon': - return isInsidePolygon(area.pointList, x, y); - case 'text': - var rect = area.__rect || shape.getRect(area); - return isInsideRect(rect.x, rect.y, rect.width, rect.height, x, y); - case 'rectangle': - case 'image': - return isInsideRect(area.x, area.y, area.width, area.height, x, y); - } - } - function _buildPathMethod(shape, context, area, x, y) { - context.beginPath(); - shape.buildPath(context, area); - context.closePath(); - return context.isPointInPath(x, y); - } - function isOutside(shape, area, x, y) { - return !isInside(shape, area, x, y); - } - function isInsideLine(x0, y0, x1, y1, lineWidth, x, y) { - if (lineWidth === 0) { - return false; - } - var _l = Math.max(lineWidth, 5); - var _a = 0; - var _b = x0; - if (y > y0 + _l && y > y1 + _l || y < y0 - _l && y < y1 - _l || x > x0 + _l && x > x1 + _l || x < x0 - _l && x < x1 - _l) { - return false; - } - if (x0 !== x1) { - _a = (y0 - y1) / (x0 - x1); - _b = (x0 * y1 - x1 * y0) / (x0 - x1); - } else { - return Math.abs(x - x0) <= _l / 2; - } - var tmp = _a * x - y + _b; - var _s = tmp * tmp / (_a * _a + 1); - return _s <= _l / 2 * _l / 2; - } - function isInsideCubicStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) { - if (lineWidth === 0) { - return false; - } - var _l = Math.max(lineWidth, 5); - if (y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l) { - return false; - } - var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null); - return d <= _l / 2; - } - function isInsideQuadraticStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) { - if (lineWidth === 0) { - return false; - } - var _l = Math.max(lineWidth, 5); - if (y > y0 + _l && y > y1 + _l && y > y2 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l) { - return false; - } - var d = curve.quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null); - return d <= _l / 2; - } - function isInsideArcStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) { - if (lineWidth === 0) { - return false; - } - var _l = Math.max(lineWidth, 5); - x -= cx; - y -= cy; - var d = Math.sqrt(x * x + y * y); - if (d - _l > r || d + _l < r) { - return false; - } - if (Math.abs(startAngle - endAngle) >= PI2) { - return true; - } - if (anticlockwise) { - var tmp = startAngle; - startAngle = normalizeRadian(endAngle); - endAngle = normalizeRadian(tmp); - } else { - startAngle = normalizeRadian(startAngle); - endAngle = normalizeRadian(endAngle); - } - if (startAngle > endAngle) { - endAngle += PI2; - } - var angle = Math.atan2(y, x); - if (angle < 0) { - angle += PI2; - } - return angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle; - } - function isInsidePolyline(points, lineWidth, x, y) { - var lineWidth = Math.max(lineWidth, 10); - for (var i = 0, l = points.length - 1; i < l; i++) { - var x0 = points[i][0]; - var y0 = points[i][1]; - var x1 = points[i + 1][0]; - var y1 = points[i + 1][1]; - if (isInsideLine(x0, y0, x1, y1, lineWidth, x, y)) { - return true; - } - } - return false; - } - function isInsideRing(cx, cy, r0, r, x, y) { - var d = (x - cx) * (x - cx) + (y - cy) * (y - cy); - return d < r * r && d > r0 * r0; - } - function isInsideRect(x0, y0, width, height, x, y) { - return x >= x0 && x <= x0 + width && y >= y0 && y <= y0 + height; - } - function isInsideCircle(x0, y0, r, x, y) { - return (x - x0) * (x - x0) + (y - y0) * (y - y0) < r * r; - } - function isInsideSector(cx, cy, r0, r, startAngle, endAngle, anticlockwise, x, y) { - return isInsideArcStroke(cx, cy, (r0 + r) / 2, startAngle, endAngle, anticlockwise, r - r0, x, y); - } - function isInsidePolygon(points, x, y) { - var N = points.length; - var w = 0; - for (var i = 0, j = N - 1; i < N; i++) { - var x0 = points[j][0]; - var y0 = points[j][1]; - var x1 = points[i][0]; - var y1 = points[i][1]; - w += windingLine(x0, y0, x1, y1, x, y); - j = i; - } - return w !== 0; - } - function windingLine(x0, y0, x1, y1, x, y) { - if (y > y0 && y > y1 || y < y0 && y < y1) { - return 0; - } - if (y1 == y0) { - return 0; - } - var dir = y1 < y0 ? 1 : -1; - var t = (y - y0) / (y1 - y0); - var x_ = t * (x1 - x0) + x0; - return x_ > x ? dir : 0; - } - var roots = [ - -1, - -1, - -1 - ]; - var extrema = [ - -1, - -1 - ]; - function swapExtrema() { - var tmp = extrema[0]; - extrema[0] = extrema[1]; - extrema[1] = tmp; - } - function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) { - if (y > y0 && y > y1 && y > y2 && y > y3 || y < y0 && y < y1 && y < y2 && y < y3) { - return 0; - } - var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots); - if (nRoots === 0) { - return 0; - } else { - var w = 0; - var nExtrema = -1; - var y0_, y1_; - for (var i = 0; i < nRoots; i++) { - var t = roots[i]; - var x_ = curve.cubicAt(x0, x1, x2, x3, t); - if (x_ < x) { - continue; - } - if (nExtrema < 0) { - nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema); - if (extrema[1] < extrema[0] && nExtrema > 1) { - swapExtrema(); - } - y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]); - if (nExtrema > 1) { - y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]); - } - } - if (nExtrema == 2) { - if (t < extrema[0]) { - w += y0_ < y0 ? 1 : -1; - } else if (t < extrema[1]) { - w += y1_ < y0_ ? 1 : -1; - } else { - w += y3 < y1_ ? 1 : -1; - } - } else { - if (t < extrema[0]) { - w += y0_ < y0 ? 1 : -1; - } else { - w += y3 < y0_ ? 1 : -1; - } - } - } - return w; - } - } - function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) { - if (y > y0 && y > y1 && y > y2 || y < y0 && y < y1 && y < y2) { - return 0; - } - var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots); - if (nRoots === 0) { - return 0; - } else { - var t = curve.quadraticExtremum(y0, y1, y2); - if (t >= 0 && t <= 1) { - var w = 0; - var y_ = curve.quadraticAt(y0, y1, y2, t); - for (var i = 0; i < nRoots; i++) { - var x_ = curve.quadraticAt(x0, x1, x2, roots[i]); - if (x_ < x) { - continue; - } - if (roots[i] < t) { - w += y_ < y0 ? 1 : -1; - } else { - w += y2 < y_ ? 1 : -1; - } - } - return w; - } else { - var x_ = curve.quadraticAt(x0, x1, x2, roots[0]); - if (x_ < x) { - return 0; - } - return y2 < y0 ? 1 : -1; - } - } - } - function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) { - y -= cy; - if (y > r || y < -r) { - return 0; - } - var tmp = Math.sqrt(r * r - y * y); - roots[0] = -tmp; - roots[1] = tmp; - if (Math.abs(startAngle - endAngle) >= PI2) { - startAngle = 0; - endAngle = PI2; - var dir = anticlockwise ? 1 : -1; - if (x >= roots[0] + cx && x <= roots[1] + cx) { - return dir; - } else { - return 0; - } - } - if (anticlockwise) { - var tmp = startAngle; - startAngle = normalizeRadian(endAngle); - endAngle = normalizeRadian(tmp); - } else { - startAngle = normalizeRadian(startAngle); - endAngle = normalizeRadian(endAngle); - } - if (startAngle > endAngle) { - endAngle += PI2; - } - var w = 0; - for (var i = 0; i < 2; i++) { - var x_ = roots[i]; - if (x_ + cx > x) { - var angle = Math.atan2(y, x_); - var dir = anticlockwise ? 1 : -1; - if (angle < 0) { - angle = PI2 + angle; - } - if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) { - if (angle > Math.PI / 2 && angle < Math.PI * 1.5) { - dir = -dir; - } - w += dir; - } - } - } - return w; - } - function isInsidePath(pathArray, lineWidth, brushType, x, y) { - var w = 0; - var xi = 0; - var yi = 0; - var x0 = 0; - var y0 = 0; - var beginSubpath = true; - var firstCmd = true; - brushType = brushType || 'fill'; - var hasStroke = brushType === 'stroke' || brushType === 'both'; - var hasFill = brushType === 'fill' || brushType === 'both'; - for (var i = 0; i < pathArray.length; i++) { - var seg = pathArray[i]; - var p = seg.points; - if (beginSubpath || seg.command === 'M') { - if (i > 0) { - if (hasFill) { - w += windingLine(xi, yi, x0, y0, x, y); - } - if (w !== 0) { - return true; - } - } - x0 = p[p.length - 2]; - y0 = p[p.length - 1]; - beginSubpath = false; - if (firstCmd && seg.command !== 'A') { - firstCmd = false; - xi = x0; - yi = y0; - } - } - switch (seg.command) { - case 'M': - xi = p[0]; - yi = p[1]; - break; - case 'L': - if (hasStroke) { - if (isInsideLine(xi, yi, p[0], p[1], lineWidth, x, y)) { - return true; - } - } - if (hasFill) { - w += windingLine(xi, yi, p[0], p[1], x, y); - } - xi = p[0]; - yi = p[1]; - break; - case 'C': - if (hasStroke) { - if (isInsideCubicStroke(xi, yi, p[0], p[1], p[2], p[3], p[4], p[5], lineWidth, x, y)) { - return true; - } - } - if (hasFill) { - w += windingCubic(xi, yi, p[0], p[1], p[2], p[3], p[4], p[5], x, y); - } - xi = p[4]; - yi = p[5]; - break; - case 'Q': - if (hasStroke) { - if (isInsideQuadraticStroke(xi, yi, p[0], p[1], p[2], p[3], lineWidth, x, y)) { - return true; - } - } - if (hasFill) { - w += windingQuadratic(xi, yi, p[0], p[1], p[2], p[3], x, y); - } - xi = p[2]; - yi = p[3]; - break; - case 'A': - var cx = p[0]; - var cy = p[1]; - var rx = p[2]; - var ry = p[3]; - var theta = p[4]; - var dTheta = p[5]; - var x1 = Math.cos(theta) * rx + cx; - var y1 = Math.sin(theta) * ry + cy; - if (!firstCmd) { - w += windingLine(xi, yi, x1, y1); - } else { - firstCmd = false; - x0 = x1; - y0 = y1; - } - var _x = (x - cx) * ry / rx + cx; - if (hasStroke) { - if (isInsideArcStroke(cx, cy, ry, theta, theta + dTheta, 1 - p[7], lineWidth, _x, y)) { - return true; - } - } - if (hasFill) { - w += windingArc(cx, cy, ry, theta, theta + dTheta, 1 - p[7], _x, y); - } - xi = Math.cos(theta + dTheta) * rx + cx; - yi = Math.sin(theta + dTheta) * ry + cy; - break; - case 'z': - if (hasStroke) { - if (isInsideLine(xi, yi, x0, y0, lineWidth, x, y)) { - return true; - } - } - beginSubpath = true; - break; - } - } - if (hasFill) { - w += windingLine(xi, yi, x0, y0, x, y); - } - return w !== 0; - } - function getTextWidth(text, textFont) { - var key = text + ':' + textFont; - if (_textWidthCache[key]) { - return _textWidthCache[key]; - } - _ctx = _ctx || util.getContext(); - _ctx.save(); - if (textFont) { - _ctx.font = textFont; - } - text = (text + '').split('\n'); - var width = 0; - for (var i = 0, l = text.length; i < l; i++) { - width = Math.max(_ctx.measureText(text[i]).width, width); - } - _ctx.restore(); - _textWidthCache[key] = width; - if (++_textWidthCacheCounter > TEXT_CACHE_MAX) { - _textWidthCacheCounter = 0; - _textWidthCache = {}; - } - return width; - } - function getTextHeight(text, textFont) { - var key = text + ':' + textFont; - if (_textHeightCache[key]) { - return _textHeightCache[key]; - } - _ctx = _ctx || util.getContext(); - _ctx.save(); - if (textFont) { - _ctx.font = textFont; - } - text = (text + '').split('\n'); - var height = (_ctx.measureText('国').width + 2) * text.length; - _ctx.restore(); - _textHeightCache[key] = height; - if (++_textHeightCacheCounter > TEXT_CACHE_MAX) { - _textHeightCacheCounter = 0; - _textHeightCache = {}; - } - return height; - } - return { - isInside: isInside, - isOutside: isOutside, - getTextWidth: getTextWidth, - getTextHeight: getTextHeight, - isInsidePath: isInsidePath, - isInsidePolygon: isInsidePolygon, - isInsideSector: isInsideSector, - isInsideCircle: isInsideCircle, - isInsideLine: isInsideLine, - isInsideRect: isInsideRect, - isInsidePolyline: isInsidePolyline, - isInsideCubicStroke: isInsideCubicStroke, - isInsideQuadraticStroke: isInsideQuadraticStroke - }; -});define('zrender/shape/Base', [ - 'require', - '../tool/matrix', - '../tool/guid', - '../tool/util', - '../tool/log', - '../mixin/Transformable', - '../mixin/Eventful', - '../tool/area', - '../tool/color' -], function (require) { - var vmlCanvasManager = window['G_vmlCanvasManager']; - var matrix = require('../tool/matrix'); - var guid = require('../tool/guid'); - var util = require('../tool/util'); - var log = require('../tool/log'); - var Transformable = require('../mixin/Transformable'); - var Eventful = require('../mixin/Eventful'); - function _fillText(ctx, text, x, y, textFont, textAlign, textBaseline) { - if (textFont) { - ctx.font = textFont; - } - ctx.textAlign = textAlign; - ctx.textBaseline = textBaseline; - var rect = _getTextRect(text, x, y, textFont, textAlign, textBaseline); - text = (text + '').split('\n'); - var lineHeight = require('../tool/area').getTextHeight('国', textFont); - switch (textBaseline) { - case 'top': - y = rect.y; - break; - case 'bottom': - y = rect.y + lineHeight; - break; - default: - y = rect.y + lineHeight / 2; - } - for (var i = 0, l = text.length; i < l; i++) { - ctx.fillText(text[i], x, y); - y += lineHeight; - } - } - function _getTextRect(text, x, y, textFont, textAlign, textBaseline) { - var area = require('../tool/area'); - var width = area.getTextWidth(text, textFont); - var lineHeight = area.getTextHeight('国', textFont); - text = (text + '').split('\n'); - switch (textAlign) { - case 'end': - case 'right': - x -= width; - break; - case 'center': - x -= width / 2; - break; - } - switch (textBaseline) { - case 'top': - break; - case 'bottom': - y -= lineHeight * text.length; - break; - default: - y -= lineHeight * text.length / 2; - } - return { - x: x, - y: y, - width: width, - height: lineHeight * text.length - }; - } - var Base = function (options) { - options = options || {}; - this.id = options.id || guid(); - for (var key in options) { - this[key] = options[key]; - } - this.style = this.style || {}; - this.highlightStyle = this.highlightStyle || null; - this.parent = null; - this.__dirty = true; - this.__clipShapes = []; - Transformable.call(this); - Eventful.call(this); - }; - Base.prototype.invisible = false; - Base.prototype.ignore = false; - Base.prototype.zlevel = 0; - Base.prototype.draggable = false; - Base.prototype.clickable = false; - Base.prototype.hoverable = true; - Base.prototype.z = 0; - Base.prototype.brush = function (ctx, isHighlight) { - var style = this.beforeBrush(ctx, isHighlight); - ctx.beginPath(); - this.buildPath(ctx, style); - switch (style.brushType) { - case 'both': - ctx.fill(); - case 'stroke': - style.lineWidth > 0 && ctx.stroke(); - break; - default: - ctx.fill(); - } - this.drawText(ctx, style, this.style); - this.afterBrush(ctx); - }; - Base.prototype.beforeBrush = function (ctx, isHighlight) { - var style = this.style; - if (this.brushTypeOnly) { - style.brushType = this.brushTypeOnly; - } - if (isHighlight) { - style = this.getHighlightStyle(style, this.highlightStyle || {}, this.brushTypeOnly); - } - if (this.brushTypeOnly == 'stroke') { - style.strokeColor = style.strokeColor || style.color; - } - ctx.save(); - this.doClip(ctx); - this.setContext(ctx, style); - this.setTransform(ctx); - return style; - }; - Base.prototype.afterBrush = function (ctx) { - ctx.restore(); - }; - var STYLE_CTX_MAP = [ - [ - 'color', - 'fillStyle' - ], - [ - 'strokeColor', - 'strokeStyle' - ], - [ - 'opacity', - 'globalAlpha' - ], - [ - 'lineCap', - 'lineCap' - ], - [ - 'lineJoin', - 'lineJoin' - ], - [ - 'miterLimit', - 'miterLimit' - ], - [ - 'lineWidth', - 'lineWidth' - ], - [ - 'shadowBlur', - 'shadowBlur' - ], - [ - 'shadowColor', - 'shadowColor' - ], - [ - 'shadowOffsetX', - 'shadowOffsetX' - ], - [ - 'shadowOffsetY', - 'shadowOffsetY' - ] - ]; - Base.prototype.setContext = function (ctx, style) { - for (var i = 0, len = STYLE_CTX_MAP.length; i < len; i++) { - var styleProp = STYLE_CTX_MAP[i][0]; - var styleValue = style[styleProp]; - var ctxProp = STYLE_CTX_MAP[i][1]; - if (typeof styleValue != 'undefined') { - ctx[ctxProp] = styleValue; - } - } - }; - var clipShapeInvTransform = matrix.create(); - Base.prototype.doClip = function (ctx) { - if (this.__clipShapes && !vmlCanvasManager) { - for (var i = 0; i < this.__clipShapes.length; i++) { - var clipShape = this.__clipShapes[i]; - if (clipShape.needTransform) { - var m = clipShape.transform; - matrix.invert(clipShapeInvTransform, m); - ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]); - } - ctx.beginPath(); - clipShape.buildPath(ctx, clipShape.style); - ctx.clip(); - if (clipShape.needTransform) { - var m = clipShapeInvTransform; - ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]); - } - } - } - }; - Base.prototype.getHighlightStyle = function (style, highlightStyle, brushTypeOnly) { - var newStyle = {}; - for (var k in style) { - newStyle[k] = style[k]; - } - var color = require('../tool/color'); - var highlightColor = color.getHighlightColor(); - if (style.brushType != 'stroke') { - newStyle.strokeColor = highlightColor; - newStyle.lineWidth = (style.lineWidth || 1) + this.getHighlightZoom(); - newStyle.brushType = 'both'; - } else { - if (brushTypeOnly != 'stroke') { - newStyle.strokeColor = highlightColor; - newStyle.lineWidth = (style.lineWidth || 1) + this.getHighlightZoom(); - } else { - newStyle.strokeColor = highlightStyle.strokeColor || color.mix(style.strokeColor, color.toRGB(highlightColor)); - } - } - for (var k in highlightStyle) { - if (typeof highlightStyle[k] != 'undefined') { - newStyle[k] = highlightStyle[k]; - } - } - return newStyle; - }; - Base.prototype.getHighlightZoom = function () { - return this.type != 'text' ? 6 : 2; - }; - Base.prototype.drift = function (dx, dy) { - this.position[0] += dx; - this.position[1] += dy; - }; - Base.prototype.buildPath = function (ctx, style) { - log('buildPath not implemented in ' + this.type); - }; - Base.prototype.getRect = function (style) { - log('getRect not implemented in ' + this.type); - }; - Base.prototype.isCover = function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - if (this.isCoverRect(x, y)) { - return require('../tool/area').isInside(this, this.style, x, y); - } - return false; - }; - Base.prototype.isCoverRect = function (x, y) { - var rect = this.style.__rect; - if (!rect) { - rect = this.style.__rect = this.getRect(this.style); - } - return x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height; - }; - Base.prototype.drawText = function (ctx, style, normalStyle) { - if (typeof style.text == 'undefined' || style.text === false) { - return; - } - var textColor = style.textColor || style.color || style.strokeColor; - ctx.fillStyle = textColor; - var dd = 10; - var al; - var bl; - var tx; - var ty; - var textPosition = style.textPosition || this.textPosition || 'top'; - switch (textPosition) { - case 'inside': - case 'top': - case 'bottom': - case 'left': - case 'right': - if (this.getRect) { - var rect = (normalStyle || style).__rect || this.getRect(normalStyle || style); - switch (textPosition) { - case 'inside': - tx = rect.x + rect.width / 2; - ty = rect.y + rect.height / 2; - al = 'center'; - bl = 'middle'; - if (style.brushType != 'stroke' && textColor == style.color) { - ctx.fillStyle = '#fff'; - } - break; - case 'left': - tx = rect.x - dd; - ty = rect.y + rect.height / 2; - al = 'end'; - bl = 'middle'; - break; - case 'right': - tx = rect.x + rect.width + dd; - ty = rect.y + rect.height / 2; - al = 'start'; - bl = 'middle'; - break; - case 'top': - tx = rect.x + rect.width / 2; - ty = rect.y - dd; - al = 'center'; - bl = 'bottom'; - break; - case 'bottom': - tx = rect.x + rect.width / 2; - ty = rect.y + rect.height + dd; - al = 'center'; - bl = 'top'; - break; - } - } - break; - case 'start': - case 'end': - var pointList = style.pointList || [ - [ - style.xStart || 0, - style.yStart || 0 - ], - [ - style.xEnd || 0, - style.yEnd || 0 - ] - ]; - var length = pointList.length; - if (length < 2) { - return; - } - var xStart; - var xEnd; - var yStart; - var yEnd; - switch (textPosition) { - case 'start': - xStart = pointList[1][0]; - xEnd = pointList[0][0]; - yStart = pointList[1][1]; - yEnd = pointList[0][1]; - break; - case 'end': - xStart = pointList[length - 2][0]; - xEnd = pointList[length - 1][0]; - yStart = pointList[length - 2][1]; - yEnd = pointList[length - 1][1]; - break; - } - tx = xEnd; - ty = yEnd; - var angle = Math.atan((yStart - yEnd) / (xEnd - xStart)) / Math.PI * 180; - if (xEnd - xStart < 0) { - angle += 180; - } else if (yStart - yEnd < 0) { - angle += 360; - } - dd = 5; - if (angle >= 30 && angle <= 150) { - al = 'center'; - bl = 'bottom'; - ty -= dd; - } else if (angle > 150 && angle < 210) { - al = 'right'; - bl = 'middle'; - tx -= dd; - } else if (angle >= 210 && angle <= 330) { - al = 'center'; - bl = 'top'; - ty += dd; - } else { - al = 'left'; - bl = 'middle'; - tx += dd; - } - break; - case 'specific': - tx = style.textX || 0; - ty = style.textY || 0; - al = 'start'; - bl = 'middle'; - break; - } - if (tx != null && ty != null) { - _fillText(ctx, style.text, tx, ty, style.textFont, style.textAlign || al, style.textBaseline || bl); - } - }; - Base.prototype.modSelf = function () { - this.__dirty = true; - if (this.style) { - this.style.__rect = null; - } - if (this.highlightStyle) { - this.highlightStyle.__rect = null; - } - }; - Base.prototype.isSilent = function () { - return !(this.hoverable || this.draggable || this.clickable || this.onmousemove || this.onmouseover || this.onmouseout || this.onmousedown || this.onmouseup || this.onclick || this.ondragenter || this.ondragover || this.ondragleave || this.ondrop); - }; - util.merge(Base.prototype, Transformable.prototype, true); - util.merge(Base.prototype, Eventful.prototype, true); - return Base; -});define('zrender/tool/curve', [ - 'require', - './vector' -], function (require) { - var vector = require('./vector'); - 'use strict'; - var EPSILON = 0.0001; - var THREE_SQRT = Math.sqrt(3); - var ONE_THIRD = 1 / 3; - var _v0 = vector.create(); - var _v1 = vector.create(); - var _v2 = vector.create(); - function isAroundZero(val) { - return val > -EPSILON && val < EPSILON; - } - function isNotAroundZero(val) { - return val > EPSILON || val < -EPSILON; - } - function cubicAt(p0, p1, p2, p3, t) { - var onet = 1 - t; - return onet * onet * (onet * p0 + 3 * t * p1) + t * t * (t * p3 + 3 * onet * p2); - } - function cubicDerivativeAt(p0, p1, p2, p3, t) { - var onet = 1 - t; - return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet + (p3 - p2) * t * t); - } - function cubicRootAt(p0, p1, p2, p3, val, roots) { - var a = p3 + 3 * (p1 - p2) - p0; - var b = 3 * (p2 - p1 * 2 + p0); - var c = 3 * (p1 - p0); - var d = p0 - val; - var A = b * b - 3 * a * c; - var B = b * c - 9 * a * d; - var C = c * c - 3 * b * d; - var n = 0; - if (isAroundZero(A) && isAroundZero(B)) { - if (isAroundZero(b)) { - roots[0] = 0; - } else { - var t1 = -c / b; - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - } - } else { - var disc = B * B - 4 * A * C; - if (isAroundZero(disc)) { - var K = B / A; - var t1 = -b / a + K; - var t2 = -K / 2; - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - if (t2 >= 0 && t2 <= 1) { - roots[n++] = t2; - } - } else if (disc > 0) { - var discSqrt = Math.sqrt(disc); - var Y1 = A * b + 1.5 * a * (-B + discSqrt); - var Y2 = A * b + 1.5 * a * (-B - discSqrt); - if (Y1 < 0) { - Y1 = -Math.pow(-Y1, ONE_THIRD); - } else { - Y1 = Math.pow(Y1, ONE_THIRD); - } - if (Y2 < 0) { - Y2 = -Math.pow(-Y2, ONE_THIRD); - } else { - Y2 = Math.pow(Y2, ONE_THIRD); - } - var t1 = (-b - (Y1 + Y2)) / (3 * a); - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - } else { - var T = (2 * A * b - 3 * a * B) / (2 * Math.sqrt(A * A * A)); - var theta = Math.acos(T) / 3; - var ASqrt = Math.sqrt(A); - var tmp = Math.cos(theta); - var t1 = (-b - 2 * ASqrt * tmp) / (3 * a); - var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a); - var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a); - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - if (t2 >= 0 && t2 <= 1) { - roots[n++] = t2; - } - if (t3 >= 0 && t3 <= 1) { - roots[n++] = t3; - } - } - } - return n; - } - function cubicExtrema(p0, p1, p2, p3, extrema) { - var b = 6 * p2 - 12 * p1 + 6 * p0; - var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2; - var c = 3 * p1 - 3 * p0; - var n = 0; - if (isAroundZero(a)) { - if (isNotAroundZero(b)) { - var t1 = -c / b; - if (t1 >= 0 && t1 <= 1) { - extrema[n++] = t1; - } - } - } else { - var disc = b * b - 4 * a * c; - if (isAroundZero(disc)) { - extrema[0] = -b / (2 * a); - } else if (disc > 0) { - var discSqrt = Math.sqrt(disc); - var t1 = (-b + discSqrt) / (2 * a); - var t2 = (-b - discSqrt) / (2 * a); - if (t1 >= 0 && t1 <= 1) { - extrema[n++] = t1; - } - if (t2 >= 0 && t2 <= 1) { - extrema[n++] = t2; - } - } - } - return n; - } - function cubicSubdivide(p0, p1, p2, p3, t, out) { - var p01 = (p1 - p0) * t + p0; - var p12 = (p2 - p1) * t + p1; - var p23 = (p3 - p2) * t + p2; - var p012 = (p12 - p01) * t + p01; - var p123 = (p23 - p12) * t + p12; - var p0123 = (p123 - p012) * t + p012; - out[0] = p0; - out[1] = p01; - out[2] = p012; - out[3] = p0123; - out[4] = p0123; - out[5] = p123; - out[6] = p23; - out[7] = p3; - } - function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) { - var t; - var interval = 0.005; - var d = Infinity; - _v0[0] = x; - _v0[1] = y; - for (var _t = 0; _t < 1; _t += 0.05) { - _v1[0] = cubicAt(x0, x1, x2, x3, _t); - _v1[1] = cubicAt(y0, y1, y2, y3, _t); - var d1 = vector.distSquare(_v0, _v1); - if (d1 < d) { - t = _t; - d = d1; - } - } - d = Infinity; - for (var i = 0; i < 32; i++) { - if (interval < EPSILON) { - break; - } - var prev = t - interval; - var next = t + interval; - _v1[0] = cubicAt(x0, x1, x2, x3, prev); - _v1[1] = cubicAt(y0, y1, y2, y3, prev); - var d1 = vector.distSquare(_v1, _v0); - if (prev >= 0 && d1 < d) { - t = prev; - d = d1; - } else { - _v2[0] = cubicAt(x0, x1, x2, x3, next); - _v2[1] = cubicAt(y0, y1, y2, y3, next); - var d2 = vector.distSquare(_v2, _v0); - if (next <= 1 && d2 < d) { - t = next; - d = d2; - } else { - interval *= 0.5; - } - } - } - if (out) { - out[0] = cubicAt(x0, x1, x2, x3, t); - out[1] = cubicAt(y0, y1, y2, y3, t); - } - return Math.sqrt(d); - } - function quadraticAt(p0, p1, p2, t) { - var onet = 1 - t; - return onet * (onet * p0 + 2 * t * p1) + t * t * p2; - } - function quadraticDerivativeAt(p0, p1, p2, t) { - return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1)); - } - function quadraticRootAt(p0, p1, p2, val, roots) { - var a = p0 - 2 * p1 + p2; - var b = 2 * (p1 - p0); - var c = p0 - val; - var n = 0; - if (isAroundZero(a)) { - if (isNotAroundZero(b)) { - var t1 = -c / b; - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - } - } else { - var disc = b * b - 4 * a * c; - if (isAroundZero(disc)) { - var t1 = -b / (2 * a); - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - } else if (disc > 0) { - var discSqrt = Math.sqrt(disc); - var t1 = (-b + discSqrt) / (2 * a); - var t2 = (-b - discSqrt) / (2 * a); - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - if (t2 >= 0 && t2 <= 1) { - roots[n++] = t2; - } - } - } - return n; - } - function quadraticExtremum(p0, p1, p2) { - var divider = p0 + p2 - 2 * p1; - if (divider === 0) { - return 0.5; - } else { - return (p0 - p1) / divider; - } - } - function quadraticSubdivide(p0, p1, p2, t, out) { - var p01 = (p1 - p0) * t + p0; - var p12 = (p2 - p1) * t + p1; - var p012 = (p12 - p01) * t + p01; - out[0] = p0; - out[1] = p01; - out[2] = p012; - out[3] = p012; - out[4] = p12; - out[5] = p2; - } - function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) { - var t; - var interval = 0.005; - var d = Infinity; - _v0[0] = x; - _v0[1] = y; - for (var _t = 0; _t < 1; _t += 0.05) { - _v1[0] = quadraticAt(x0, x1, x2, _t); - _v1[1] = quadraticAt(y0, y1, y2, _t); - var d1 = vector.distSquare(_v0, _v1); - if (d1 < d) { - t = _t; - d = d1; - } - } - d = Infinity; - for (var i = 0; i < 32; i++) { - if (interval < EPSILON) { - break; - } - var prev = t - interval; - var next = t + interval; - _v1[0] = quadraticAt(x0, x1, x2, prev); - _v1[1] = quadraticAt(y0, y1, y2, prev); - var d1 = vector.distSquare(_v1, _v0); - if (prev >= 0 && d1 < d) { - t = prev; - d = d1; - } else { - _v2[0] = quadraticAt(x0, x1, x2, next); - _v2[1] = quadraticAt(y0, y1, y2, next); - var d2 = vector.distSquare(_v2, _v0); - if (next <= 1 && d2 < d) { - t = next; - d = d2; - } else { - interval *= 0.5; - } - } - } - if (out) { - out[0] = quadraticAt(x0, x1, x2, t); - out[1] = quadraticAt(y0, y1, y2, t); - } - return Math.sqrt(d); - } - return { - cubicAt: cubicAt, - cubicDerivativeAt: cubicDerivativeAt, - cubicRootAt: cubicRootAt, - cubicExtrema: cubicExtrema, - cubicSubdivide: cubicSubdivide, - cubicProjectPoint: cubicProjectPoint, - quadraticAt: quadraticAt, - quadraticDerivativeAt: quadraticDerivativeAt, - quadraticRootAt: quadraticRootAt, - quadraticExtremum: quadraticExtremum, - quadraticSubdivide: quadraticSubdivide, - quadraticProjectPoint: quadraticProjectPoint - }; -});define('zrender/mixin/Transformable', [ - 'require', - '../tool/matrix', - '../tool/vector' -], function (require) { - 'use strict'; - var matrix = require('../tool/matrix'); - var vector = require('../tool/vector'); - var origin = [ - 0, - 0 - ]; - var mTranslate = matrix.translate; - var EPSILON = 0.00005; - function isAroundZero(val) { - return val > -EPSILON && val < EPSILON; - } - function isNotAroundZero(val) { - return val > EPSILON || val < -EPSILON; - } - var Transformable = function () { - if (!this.position) { - this.position = [ - 0, - 0 - ]; - } - if (typeof this.rotation == 'undefined') { - this.rotation = [ - 0, - 0, - 0 - ]; - } - if (!this.scale) { - this.scale = [ - 1, - 1, - 0, - 0 - ]; - } - this.needLocalTransform = false; - this.needTransform = false; - }; - Transformable.prototype = { - constructor: Transformable, - updateNeedTransform: function () { - this.needLocalTransform = isNotAroundZero(this.rotation[0]) || isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1]) || isNotAroundZero(this.scale[0] - 1) || isNotAroundZero(this.scale[1] - 1); - }, - updateTransform: function () { - this.updateNeedTransform(); - var parentHasTransform = this.parent && this.parent.needTransform; - this.needTransform = this.needLocalTransform || parentHasTransform; - if (!this.needTransform) { - return; - } - var m = this.transform || matrix.create(); - matrix.identity(m); - if (this.needLocalTransform) { - var scale = this.scale; - if (isNotAroundZero(scale[0]) || isNotAroundZero(scale[1])) { - origin[0] = -scale[2] || 0; - origin[1] = -scale[3] || 0; - var haveOrigin = isNotAroundZero(origin[0]) || isNotAroundZero(origin[1]); - if (haveOrigin) { - mTranslate(m, m, origin); - } - matrix.scale(m, m, scale); - if (haveOrigin) { - origin[0] = -origin[0]; - origin[1] = -origin[1]; - mTranslate(m, m, origin); - } - } - if (this.rotation instanceof Array) { - if (this.rotation[0] !== 0) { - origin[0] = -this.rotation[1] || 0; - origin[1] = -this.rotation[2] || 0; - var haveOrigin = isNotAroundZero(origin[0]) || isNotAroundZero(origin[1]); - if (haveOrigin) { - mTranslate(m, m, origin); - } - matrix.rotate(m, m, this.rotation[0]); - if (haveOrigin) { - origin[0] = -origin[0]; - origin[1] = -origin[1]; - mTranslate(m, m, origin); - } - } - } else { - if (this.rotation !== 0) { - matrix.rotate(m, m, this.rotation); - } - } - if (isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1])) { - mTranslate(m, m, this.position); - } - } - if (parentHasTransform) { - if (this.needLocalTransform) { - matrix.mul(m, this.parent.transform, m); - } else { - matrix.copy(m, this.parent.transform); - } - } - this.transform = m; - this.invTransform = this.invTransform || matrix.create(); - matrix.invert(this.invTransform, m); - }, - setTransform: function (ctx) { - if (this.needTransform) { - var m = this.transform; - ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]); - } - }, - lookAt: function () { - var v = vector.create(); - return function (target) { - if (!this.transform) { - this.transform = matrix.create(); - } - var m = this.transform; - vector.sub(v, target, this.position); - if (isAroundZero(v[0]) && isAroundZero(v[1])) { - return; - } - vector.normalize(v, v); - var scale = this.scale; - m[2] = v[0] * scale[1]; - m[3] = v[1] * scale[1]; - m[0] = v[1] * scale[0]; - m[1] = -v[0] * scale[0]; - m[4] = this.position[0]; - m[5] = this.position[1]; - this.decomposeTransform(); - }; - }(), - decomposeTransform: function () { - if (!this.transform) { - return; - } - var m = this.transform; - var sx = m[0] * m[0] + m[1] * m[1]; - var position = this.position; - var scale = this.scale; - var rotation = this.rotation; - if (isNotAroundZero(sx - 1)) { - sx = Math.sqrt(sx); - } - var sy = m[2] * m[2] + m[3] * m[3]; - if (isNotAroundZero(sy - 1)) { - sy = Math.sqrt(sy); - } - position[0] = m[4]; - position[1] = m[5]; - scale[0] = sx; - scale[1] = sy; - scale[2] = scale[3] = 0; - rotation[0] = Math.atan2(-m[1] / sy, m[0] / sx); - rotation[1] = rotation[2] = 0; - }, - transformCoordToLocal: function (x, y) { - var v2 = [ - x, - y - ]; - if (this.needTransform && this.invTransform) { - vector.applyTransform(v2, v2, this.invTransform); - } - return v2; - } - }; - return Transformable; -});define('zrender/Group', [ - 'require', - './tool/guid', - './tool/util', - './mixin/Transformable', - './mixin/Eventful' -], function (require) { - var guid = require('./tool/guid'); - var util = require('./tool/util'); - var Transformable = require('./mixin/Transformable'); - var Eventful = require('./mixin/Eventful'); - var Group = function (options) { - options = options || {}; - this.id = options.id || guid(); - for (var key in options) { - this[key] = options[key]; - } - this.type = 'group'; - this.clipShape = null; - this._children = []; - this._storage = null; - this.__dirty = true; - Transformable.call(this); - Eventful.call(this); - }; - Group.prototype.ignore = false; - Group.prototype.children = function () { - return this._children.slice(); - }; - Group.prototype.childAt = function (idx) { - return this._children[idx]; - }; - Group.prototype.addChild = function (child) { - if (child == this) { - return; - } - if (child.parent == this) { - return; - } - if (child.parent) { - child.parent.removeChild(child); - } - this._children.push(child); - child.parent = this; - if (this._storage && this._storage !== child._storage) { - this._storage.addToMap(child); - if (child instanceof Group) { - child.addChildrenToStorage(this._storage); - } - } - }; - Group.prototype.removeChild = function (child) { - var idx = util.indexOf(this._children, child); - if (idx >= 0) { - this._children.splice(idx, 1); - } - child.parent = null; - if (this._storage) { - this._storage.delFromMap(child.id); - if (child instanceof Group) { - child.delChildrenFromStorage(this._storage); - } - } - }; - Group.prototype.clearChildren = function () { - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - if (this._storage) { - this._storage.delFromMap(child.id); - if (child instanceof Group) { - child.delChildrenFromStorage(this._storage); - } - } - } - this._children.length = 0; - }; - Group.prototype.eachChild = function (cb, context) { - var haveContext = !!context; - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - if (haveContext) { - cb.call(context, child); - } else { - cb(child); - } - } - }; - Group.prototype.traverse = function (cb, context) { - var haveContext = !!context; - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - if (haveContext) { - cb.call(context, child); - } else { - cb(child); - } - if (child.type === 'group') { - child.traverse(cb, context); - } - } - }; - Group.prototype.addChildrenToStorage = function (storage) { - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - storage.addToMap(child); - if (child instanceof Group) { - child.addChildrenToStorage(storage); - } - } - }; - Group.prototype.delChildrenFromStorage = function (storage) { - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - storage.delFromMap(child.id); - if (child instanceof Group) { - child.delChildrenFromStorage(storage); - } - } - }; - Group.prototype.modSelf = function () { - this.__dirty = true; - }; - util.merge(Group.prototype, Transformable.prototype, true); - util.merge(Group.prototype, Eventful.prototype, true); - return Group; -});define('zrender/animation/Clip', [ - 'require', - './easing' -], function (require) { - var Easing = require('./easing'); - function Clip(options) { - this._targetPool = options.target || {}; - if (!(this._targetPool instanceof Array)) { - this._targetPool = [this._targetPool]; - } - this._life = options.life || 1000; - this._delay = options.delay || 0; - this._startTime = new Date().getTime() + this._delay; - this._endTime = this._startTime + this._life * 1000; - this.loop = typeof options.loop == 'undefined' ? false : options.loop; - this.gap = options.gap || 0; - this.easing = options.easing || 'Linear'; - this.onframe = options.onframe; - this.ondestroy = options.ondestroy; - this.onrestart = options.onrestart; - } - Clip.prototype = { - step: function (time) { - var percent = (time - this._startTime) / this._life; - if (percent < 0) { - return; - } - percent = Math.min(percent, 1); - var easingFunc = typeof this.easing == 'string' ? Easing[this.easing] : this.easing; - var schedule = typeof easingFunc === 'function' ? easingFunc(percent) : percent; - this.fire('frame', schedule); - if (percent == 1) { - if (this.loop) { - this.restart(); - return 'restart'; - } - this.__needsRemove = true; - return 'destroy'; - } - return null; - }, - restart: function () { - var time = new Date().getTime(); - var remainder = (time - this._startTime) % this._life; - this._startTime = new Date().getTime() - remainder + this.gap; - this.__needsRemove = false; - }, - fire: function (eventType, arg) { - for (var i = 0, len = this._targetPool.length; i < len; i++) { - if (this['on' + eventType]) { - this['on' + eventType](this._targetPool[i], arg); - } - } - }, - constructor: Clip - }; - return Clip; -});define('zrender/animation/easing', [], function () { - var easing = { - Linear: function (k) { - return k; - }, - QuadraticIn: function (k) { - return k * k; - }, - QuadraticOut: function (k) { - return k * (2 - k); - }, - QuadraticInOut: function (k) { - if ((k *= 2) < 1) { - return 0.5 * k * k; - } - return -0.5 * (--k * (k - 2) - 1); - }, - CubicIn: function (k) { - return k * k * k; - }, - CubicOut: function (k) { - return --k * k * k + 1; - }, - CubicInOut: function (k) { - if ((k *= 2) < 1) { - return 0.5 * k * k * k; - } - return 0.5 * ((k -= 2) * k * k + 2); - }, - QuarticIn: function (k) { - return k * k * k * k; - }, - QuarticOut: function (k) { - return 1 - --k * k * k * k; - }, - QuarticInOut: function (k) { - if ((k *= 2) < 1) { - return 0.5 * k * k * k * k; - } - return -0.5 * ((k -= 2) * k * k * k - 2); - }, - QuinticIn: function (k) { - return k * k * k * k * k; - }, - QuinticOut: function (k) { - return --k * k * k * k * k + 1; - }, - QuinticInOut: function (k) { - if ((k *= 2) < 1) { - return 0.5 * k * k * k * k * k; - } - return 0.5 * ((k -= 2) * k * k * k * k + 2); - }, - SinusoidalIn: function (k) { - return 1 - Math.cos(k * Math.PI / 2); - }, - SinusoidalOut: function (k) { - return Math.sin(k * Math.PI / 2); - }, - SinusoidalInOut: function (k) { - return 0.5 * (1 - Math.cos(Math.PI * k)); - }, - ExponentialIn: function (k) { - return k === 0 ? 0 : Math.pow(1024, k - 1); - }, - ExponentialOut: function (k) { - return k === 1 ? 1 : 1 - Math.pow(2, -10 * k); - }, - ExponentialInOut: function (k) { - if (k === 0) { - return 0; - } - if (k === 1) { - return 1; - } - if ((k *= 2) < 1) { - return 0.5 * Math.pow(1024, k - 1); - } - return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2); - }, - CircularIn: function (k) { - return 1 - Math.sqrt(1 - k * k); - }, - CircularOut: function (k) { - return Math.sqrt(1 - --k * k); - }, - CircularInOut: function (k) { - if ((k *= 2) < 1) { - return -0.5 * (Math.sqrt(1 - k * k) - 1); - } - return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1); - }, - ElasticIn: function (k) { - var s; - var a = 0.1; - var p = 0.4; - if (k === 0) { - return 0; - } - if (k === 1) { - return 1; - } - if (!a || a < 1) { - a = 1; - s = p / 4; - } else { - s = p * Math.asin(1 / a) / (2 * Math.PI); - } - return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); - }, - ElasticOut: function (k) { - var s; - var a = 0.1; - var p = 0.4; - if (k === 0) { - return 0; - } - if (k === 1) { - return 1; - } - if (!a || a < 1) { - a = 1; - s = p / 4; - } else { - s = p * Math.asin(1 / a) / (2 * Math.PI); - } - return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1; - }, - ElasticInOut: function (k) { - var s; - var a = 0.1; - var p = 0.4; - if (k === 0) { - return 0; - } - if (k === 1) { - return 1; - } - if (!a || a < 1) { - a = 1; - s = p / 4; - } else { - s = p * Math.asin(1 / a) / (2 * Math.PI); - } - if ((k *= 2) < 1) { - return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); - } - return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1; - }, - BackIn: function (k) { - var s = 1.70158; - return k * k * ((s + 1) * k - s); - }, - BackOut: function (k) { - var s = 1.70158; - return --k * k * ((s + 1) * k + s) + 1; - }, - BackInOut: function (k) { - var s = 1.70158 * 1.525; - if ((k *= 2) < 1) { - return 0.5 * (k * k * ((s + 1) * k - s)); - } - return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2); - }, - BounceIn: function (k) { - return 1 - easing.BounceOut(1 - k); - }, - BounceOut: function (k) { - if (k < 1 / 2.75) { - return 7.5625 * k * k; - } else if (k < 2 / 2.75) { - return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75; - } else if (k < 2.5 / 2.75) { - return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375; - } else { - return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375; - } - }, - BounceInOut: function (k) { - if (k < 0.5) { - return easing.BounceIn(k * 2) * 0.5; - } - return easing.BounceOut(k * 2 - 1) * 0.5 + 0.5; - } - }; - return easing; -});define('echarts/chart/base', [ - 'require', - 'zrender/shape/Image', - '../util/shape/Icon', - '../util/shape/MarkLine', - '../util/shape/Symbol', - 'zrender/shape/Polyline', - 'zrender/shape/ShapeBundle', - '../config', - '../util/ecData', - '../util/ecAnimation', - '../util/ecEffect', - '../util/accMath', - '../component/base', - '../layout/EdgeBundling', - 'zrender/tool/util', - 'zrender/tool/area' -], function (require) { - var ImageShape = require('zrender/shape/Image'); - var IconShape = require('../util/shape/Icon'); - var MarkLineShape = require('../util/shape/MarkLine'); - var SymbolShape = require('../util/shape/Symbol'); - var PolylineShape = require('zrender/shape/Polyline'); - var ShapeBundle = require('zrender/shape/ShapeBundle'); - var ecConfig = require('../config'); - var ecData = require('../util/ecData'); - var ecAnimation = require('../util/ecAnimation'); - var ecEffect = require('../util/ecEffect'); - var accMath = require('../util/accMath'); - var ComponentBase = require('../component/base'); - var EdgeBundling = require('../layout/EdgeBundling'); - var zrUtil = require('zrender/tool/util'); - var zrArea = require('zrender/tool/area'); - function isCoordAvailable(coord) { - return coord.x != null && coord.y != null; - } - function Base(ecTheme, messageCenter, zr, option, myChart) { - ComponentBase.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - this.selectedMap = {}; - this.lastShapeList = []; - this.shapeHandler = { - onclick: function () { - self.isClick = true; - }, - ondragover: function (param) { - var calculableShape = param.target; - calculableShape.highlightStyle = calculableShape.highlightStyle || {}; - var highlightStyle = calculableShape.highlightStyle; - var brushType = highlightStyle.brushTyep; - var strokeColor = highlightStyle.strokeColor; - var lineWidth = highlightStyle.lineWidth; - highlightStyle.brushType = 'stroke'; - highlightStyle.strokeColor = self.ecTheme.calculableColor || ecConfig.calculableColor; - highlightStyle.lineWidth = calculableShape.type === 'icon' ? 30 : 10; - self.zr.addHoverShape(calculableShape); - setTimeout(function () { - if (highlightStyle) { - highlightStyle.brushType = brushType; - highlightStyle.strokeColor = strokeColor; - highlightStyle.lineWidth = lineWidth; - } - }, 20); - }, - ondrop: function (param) { - if (ecData.get(param.dragged, 'data') != null) { - self.isDrop = true; - } - }, - ondragend: function () { - self.isDragend = true; - } - }; - } - Base.prototype = { - setCalculable: function (shape) { - shape.dragEnableTime = this.ecTheme.DRAG_ENABLE_TIME || ecConfig.DRAG_ENABLE_TIME; - shape.ondragover = this.shapeHandler.ondragover; - shape.ondragend = this.shapeHandler.ondragend; - shape.ondrop = this.shapeHandler.ondrop; - return shape; - }, - ondrop: function (param, status) { - if (!this.isDrop || !param.target || status.dragIn) { - return; - } - var target = param.target; - var dragged = param.dragged; - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - var series = this.series; - var data; - var legend = this.component.legend; - if (dataIndex === -1) { - if (ecData.get(dragged, 'seriesIndex') == seriesIndex) { - status.dragOut = status.dragIn = status.needRefresh = true; - this.isDrop = false; - return; - } - data = { - value: ecData.get(dragged, 'value'), - name: ecData.get(dragged, 'name') - }; - if (this.type === ecConfig.CHART_TYPE_PIE && data.value < 0) { - data.value = 0; - } - var hasFind = false; - var sData = series[seriesIndex].data; - for (var i = 0, l = sData.length; i < l; i++) { - if (sData[i].name === data.name && sData[i].value === '-') { - series[seriesIndex].data[i].value = data.value; - hasFind = true; - } - } - !hasFind && series[seriesIndex].data.push(data); - legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor); - } else { - data = series[seriesIndex].data[dataIndex] || '-'; - if (data.value != null) { - if (data.value != '-') { - series[seriesIndex].data[dataIndex].value = accMath.accAdd(series[seriesIndex].data[dataIndex].value, ecData.get(dragged, 'value')); - } else { - series[seriesIndex].data[dataIndex].value = ecData.get(dragged, 'value'); - } - if (this.type === ecConfig.CHART_TYPE_FUNNEL || this.type === ecConfig.CHART_TYPE_PIE) { - legend && legend.getRelatedAmount(data.name) === 1 && this.component.legend.del(data.name); - data.name += this.option.nameConnector + ecData.get(dragged, 'name'); - legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor); - } - } else { - if (data != '-') { - series[seriesIndex].data[dataIndex] = accMath.accAdd(series[seriesIndex].data[dataIndex], ecData.get(dragged, 'value')); - } else { - series[seriesIndex].data[dataIndex] = ecData.get(dragged, 'value'); - } - } - } - status.dragIn = status.dragIn || true; - this.isDrop = false; - var self = this; - setTimeout(function () { - self.zr.trigger('mousemove', param.event); - }, 300); - return; - }, - ondragend: function (param, status) { - if (!this.isDragend || !param.target || status.dragOut) { - return; - } - var target = param.target; - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - var series = this.series; - if (series[seriesIndex].data[dataIndex].value != null) { - series[seriesIndex].data[dataIndex].value = '-'; - var name = series[seriesIndex].data[dataIndex].name; - var legend = this.component.legend; - if (legend && legend.getRelatedAmount(name) === 0) { - legend.del(name); - } - } else { - series[seriesIndex].data[dataIndex] = '-'; - } - status.dragOut = true; - status.needRefresh = true; - this.isDragend = false; - return; - }, - onlegendSelected: function (param, status) { - var legendSelected = param.selected; - for (var itemName in this.selectedMap) { - if (this.selectedMap[itemName] != legendSelected[itemName]) { - status.needRefresh = true; - } - this.selectedMap[itemName] = legendSelected[itemName]; - } - return; - }, - _buildPosition: function () { - this._symbol = this.option.symbolList; - this._sIndex2ShapeMap = {}; - this._sIndex2ColorMap = {}; - this.selectedMap = {}; - this.xMarkMap = {}; - var series = this.series; - var _position2sIndexMap = { - top: [], - bottom: [], - left: [], - right: [], - other: [] - }; - var xAxisIndex; - var yAxisIndex; - var xAxis; - var yAxis; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === this.type) { - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - xAxisIndex = series[i].xAxisIndex; - yAxisIndex = series[i].yAxisIndex; - xAxis = this.component.xAxis.getAxis(xAxisIndex); - yAxis = this.component.yAxis.getAxis(yAxisIndex); - if (xAxis.type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { - _position2sIndexMap[xAxis.getPosition()].push(i); - } else if (yAxis.type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { - _position2sIndexMap[yAxis.getPosition()].push(i); - } else { - _position2sIndexMap.other.push(i); - } - } - } - for (var position in _position2sIndexMap) { - if (_position2sIndexMap[position].length > 0) { - this._buildSinglePosition(position, _position2sIndexMap[position]); - } - } - this.addShapeList(); - }, - _buildSinglePosition: function (position, seriesArray) { - var mapData = this._mapData(seriesArray); - var locationMap = mapData.locationMap; - var maxDataLength = mapData.maxDataLength; - if (maxDataLength === 0 || locationMap.length === 0) { - return; - } - switch (position) { - case 'bottom': - case 'top': - this._buildHorizontal(seriesArray, maxDataLength, locationMap, this.xMarkMap); - break; - case 'left': - case 'right': - this._buildVertical(seriesArray, maxDataLength, locationMap, this.xMarkMap); - break; - case 'other': - this._buildOther(seriesArray, maxDataLength, locationMap, this.xMarkMap); - break; - } - for (var i = 0, l = seriesArray.length; i < l; i++) { - this.buildMark(seriesArray[i]); - } - }, - _mapData: function (seriesArray) { - var series = this.series; - var serie; - var dataIndex = 0; - var stackMap = {}; - var magicStackKey = '__kener__stack__'; - var stackKey; - var serieName; - var legend = this.component.legend; - var locationMap = []; - var maxDataLength = 0; - var iconShape; - for (var i = 0, l = seriesArray.length; i < l; i++) { - serie = series[seriesArray[i]]; - serieName = serie.name; - this._sIndex2ShapeMap[seriesArray[i]] = this._sIndex2ShapeMap[seriesArray[i]] || this.query(serie, 'symbol') || this._symbol[i % this._symbol.length]; - if (legend) { - this.selectedMap[serieName] = legend.isSelected(serieName); - this._sIndex2ColorMap[seriesArray[i]] = legend.getColor(serieName); - iconShape = legend.getItemShape(serieName); - if (iconShape) { - var style = iconShape.style; - if (this.type == ecConfig.CHART_TYPE_LINE) { - style.iconType = 'legendLineIcon'; - style.symbol = this._sIndex2ShapeMap[seriesArray[i]]; - } else if (serie.itemStyle.normal.barBorderWidth > 0) { - var highlightStyle = iconShape.highlightStyle; - style.brushType = 'both'; - style.x += 1; - style.y += 1; - style.width -= 2; - style.height -= 2; - style.strokeColor = highlightStyle.strokeColor = serie.itemStyle.normal.barBorderColor; - highlightStyle.lineWidth = 3; - } - legend.setItemShape(serieName, iconShape); - } - } else { - this.selectedMap[serieName] = true; - this._sIndex2ColorMap[seriesArray[i]] = this.zr.getColor(seriesArray[i]); - } - if (this.selectedMap[serieName]) { - stackKey = serie.stack || magicStackKey + seriesArray[i]; - if (stackMap[stackKey] == null) { - stackMap[stackKey] = dataIndex; - locationMap[dataIndex] = [seriesArray[i]]; - dataIndex++; - } else { - locationMap[stackMap[stackKey]].push(seriesArray[i]); - } - } - maxDataLength = Math.max(maxDataLength, serie.data.length); - } - return { - locationMap: locationMap, - maxDataLength: maxDataLength - }; - }, - _calculMarkMapXY: function (xMarkMap, locationMap, xy) { - var series = this.series; - for (var j = 0, k = locationMap.length; j < k; j++) { - for (var m = 0, n = locationMap[j].length; m < n; m++) { - var seriesIndex = locationMap[j][m]; - var valueIndex = xy == 'xy' ? 0 : ''; - var grid = this.component.grid; - var tarMark = xMarkMap[seriesIndex]; - if (xy.indexOf('x') != '-1') { - if (tarMark['counter' + valueIndex] > 0) { - tarMark['average' + valueIndex] = tarMark['sum' + valueIndex] / tarMark['counter' + valueIndex]; - } - var x = this.component.xAxis.getAxis(series[seriesIndex].xAxisIndex || 0).getCoord(tarMark['average' + valueIndex]); - tarMark['averageLine' + valueIndex] = [ - [ - x, - grid.getYend() - ], - [ - x, - grid.getY() - ] - ]; - tarMark['minLine' + valueIndex] = [ - [ - tarMark['minX' + valueIndex], - grid.getYend() - ], - [ - tarMark['minX' + valueIndex], - grid.getY() - ] - ]; - tarMark['maxLine' + valueIndex] = [ - [ - tarMark['maxX' + valueIndex], - grid.getYend() - ], - [ - tarMark['maxX' + valueIndex], - grid.getY() - ] - ]; - tarMark.isHorizontal = false; - } - valueIndex = xy == 'xy' ? 1 : ''; - if (xy.indexOf('y') != '-1') { - if (tarMark['counter' + valueIndex] > 0) { - tarMark['average' + valueIndex] = tarMark['sum' + valueIndex] / tarMark['counter' + valueIndex]; - } - var y = this.component.yAxis.getAxis(series[seriesIndex].yAxisIndex || 0).getCoord(tarMark['average' + valueIndex]); - tarMark['averageLine' + valueIndex] = [ - [ - grid.getX(), - y - ], - [ - grid.getXend(), - y - ] - ]; - tarMark['minLine' + valueIndex] = [ - [ - grid.getX(), - tarMark['minY' + valueIndex] - ], - [ - grid.getXend(), - tarMark['minY' + valueIndex] - ] - ]; - tarMark['maxLine' + valueIndex] = [ - [ - grid.getX(), - tarMark['maxY' + valueIndex] - ], - [ - grid.getXend(), - tarMark['maxY' + valueIndex] - ] - ]; - tarMark.isHorizontal = true; - } - } - } - }, - addLabel: function (tarShape, serie, data, name, orient) { - var queryTarget = [ - data, - serie - ]; - var nLabel = this.deepMerge(queryTarget, 'itemStyle.normal.label'); - var eLabel = this.deepMerge(queryTarget, 'itemStyle.emphasis.label'); - var nTextStyle = nLabel.textStyle || {}; - var eTextStyle = eLabel.textStyle || {}; - if (nLabel.show) { - var style = tarShape.style; - style.text = this._getLabelText(serie, data, name, 'normal'); - style.textPosition = nLabel.position == null ? orient === 'horizontal' ? 'right' : 'top' : nLabel.position; - style.textColor = nTextStyle.color; - style.textFont = this.getFont(nTextStyle); - style.textAlign = nTextStyle.align; - style.textBaseline = nTextStyle.baseline; - } - if (eLabel.show) { - var highlightStyle = tarShape.highlightStyle; - highlightStyle.text = this._getLabelText(serie, data, name, 'emphasis'); - highlightStyle.textPosition = nLabel.show ? tarShape.style.textPosition : eLabel.position == null ? orient === 'horizontal' ? 'right' : 'top' : eLabel.position; - highlightStyle.textColor = eTextStyle.color; - highlightStyle.textFont = this.getFont(eTextStyle); - highlightStyle.textAlign = eTextStyle.align; - highlightStyle.textBaseline = eTextStyle.baseline; - } - return tarShape; - }, - _getLabelText: function (serie, data, name, status) { - var formatter = this.deepQuery([ - data, - serie - ], 'itemStyle.' + status + '.label.formatter'); - if (!formatter && status === 'emphasis') { - formatter = this.deepQuery([ - data, - serie - ], 'itemStyle.normal.label.formatter'); - } - var value = this.getDataFromOption(data, '-'); - if (formatter) { - if (typeof formatter === 'function') { - return formatter.call(this.myChart, { - seriesName: serie.name, - series: serie, - name: name, - value: value, - data: data, - status: status - }); - } else if (typeof formatter === 'string') { - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{a0}', serie.name).replace('{b0}', name).replace('{c0}', this.numAddCommas(value)); - return formatter; - } - } else { - if (value instanceof Array) { - return value[2] != null ? this.numAddCommas(value[2]) : value[0] + ' , ' + value[1]; - } else { - return this.numAddCommas(value); - } - } - }, - buildMark: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (this.selectedMap[serie.name]) { - serie.markLine && this._buildMarkLine(seriesIndex); - serie.markPoint && this._buildMarkPoint(seriesIndex); - } - }, - _buildMarkPoint: function (seriesIndex) { - var attachStyle = (this.markAttachStyle || {})[seriesIndex]; - var serie = this.series[seriesIndex]; - var mpData; - var pos; - var markPoint = zrUtil.clone(serie.markPoint); - for (var i = 0, l = markPoint.data.length; i < l; i++) { - mpData = markPoint.data[i]; - pos = this.getMarkCoord(seriesIndex, mpData); - mpData.x = mpData.x != null ? mpData.x : pos[0]; - mpData.y = mpData.y != null ? mpData.y : pos[1]; - if (mpData.type && (mpData.type === 'max' || mpData.type === 'min')) { - mpData.value = pos[3]; - mpData.name = mpData.name || mpData.type; - mpData.symbolSize = mpData.symbolSize || zrArea.getTextWidth(pos[3], this.getFont()) / 2 + 5; - } - } - var shapeList = this._markPoint(seriesIndex, markPoint); - for (var i = 0, l = shapeList.length; i < l; i++) { - var tarShape = shapeList[i]; - tarShape.zlevel = serie.zlevel; - tarShape.z = serie.z + 1; - for (var key in attachStyle) { - tarShape[key] = zrUtil.clone(attachStyle[key]); - } - this.shapeList.push(tarShape); - } - if (this.type === ecConfig.CHART_TYPE_FORCE || this.type === ecConfig.CHART_TYPE_CHORD) { - for (var i = 0, l = shapeList.length; i < l; i++) { - this.zr.addShape(shapeList[i]); - } - } - }, - _buildMarkLine: function (seriesIndex) { - var attachStyle = (this.markAttachStyle || {})[seriesIndex]; - var serie = this.series[seriesIndex]; - var pos; - var markLine = zrUtil.clone(serie.markLine); - for (var i = 0, l = markLine.data.length; i < l; i++) { - var mlData = markLine.data[i]; - if (mlData.type && (mlData.type === 'max' || mlData.type === 'min' || mlData.type === 'average')) { - pos = this.getMarkCoord(seriesIndex, mlData); - markLine.data[i] = [ - zrUtil.clone(mlData), - {} - ]; - markLine.data[i][0].name = mlData.name || mlData.type; - markLine.data[i][0].value = mlData.type !== 'average' ? pos[3] : +pos[3].toFixed(markLine.precision != null ? markLine.precision : this.deepQuery([ - this.ecTheme, - ecConfig - ], 'markLine.precision')); - pos = pos[2]; - mlData = [ - {}, - {} - ]; - } else { - pos = [ - this.getMarkCoord(seriesIndex, mlData[0]), - this.getMarkCoord(seriesIndex, mlData[1]) - ]; - } - if (pos == null || pos[0] == null || pos[1] == null) { - continue; - } - markLine.data[i][0].x = mlData[0].x != null ? mlData[0].x : pos[0][0]; - markLine.data[i][0].y = mlData[0].y != null ? mlData[0].y : pos[0][1]; - markLine.data[i][1].x = mlData[1].x != null ? mlData[1].x : pos[1][0]; - markLine.data[i][1].y = mlData[1].y != null ? mlData[1].y : pos[1][1]; - } - var shapeList = this._markLine(seriesIndex, markLine); - var isLarge = markLine.large; - if (isLarge) { - var shapeBundle = new ShapeBundle({ style: { shapeList: shapeList } }); - var firstShape = shapeList[0]; - if (firstShape) { - zrUtil.merge(shapeBundle.style, firstShape.style); - zrUtil.merge(shapeBundle.highlightStyle = {}, firstShape.highlightStyle); - shapeBundle.style.brushType = 'stroke'; - shapeBundle.zlevel = serie.zlevel; - shapeBundle.z = serie.z + 1; - shapeBundle.hoverable = false; - for (var key in attachStyle) { - shapeBundle[key] = zrUtil.clone(attachStyle[key]); - } - } - this.shapeList.push(shapeBundle); - this.zr.addShape(shapeBundle); - shapeBundle._mark = 'largeLine'; - var effect = markLine.effect; - if (effect.show) { - shapeBundle.effect = effect; - } - } else { - for (var i = 0, l = shapeList.length; i < l; i++) { - var tarShape = shapeList[i]; - tarShape.zlevel = serie.zlevel; - tarShape.z = serie.z + 1; - for (var key in attachStyle) { - tarShape[key] = zrUtil.clone(attachStyle[key]); - } - this.shapeList.push(tarShape); - } - if (this.type === ecConfig.CHART_TYPE_FORCE || this.type === ecConfig.CHART_TYPE_CHORD) { - for (var i = 0, l = shapeList.length; i < l; i++) { - this.zr.addShape(shapeList[i]); - } - } - } - }, - _markPoint: function (seriesIndex, mpOption) { - var serie = this.series[seriesIndex]; - var component = this.component; - zrUtil.merge(zrUtil.merge(mpOption, zrUtil.clone(this.ecTheme.markPoint || {})), zrUtil.clone(ecConfig.markPoint)); - mpOption.name = serie.name; - var pList = []; - var data = mpOption.data; - var itemShape; - var dataRange = component.dataRange; - var legend = component.legend; - var color; - var value; - var queryTarget; - var nColor; - var eColor; - var effect; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - if (!mpOption.large) { - for (var i = 0, l = data.length; i < l; i++) { - if (data[i].x == null || data[i].y == null) { - continue; - } - value = data[i].value != null ? data[i].value : ''; - if (legend) { - color = legend.getColor(serie.name); - } - if (dataRange) { - color = isNaN(value) ? color : dataRange.getColor(value); - queryTarget = [ - data[i], - mpOption - ]; - nColor = this.deepQuery(queryTarget, 'itemStyle.normal.color') || color; - eColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.color') || nColor; - if (nColor == null && eColor == null) { - continue; - } - } - color = color == null ? this.zr.getColor(seriesIndex) : color; - data[i].tooltip = data[i].tooltip || mpOption.tooltip || { trigger: 'item' }; - data[i].name = data[i].name != null ? data[i].name : ''; - data[i].value = value; - itemShape = this.getSymbolShape(mpOption, seriesIndex, data[i], i, data[i].name, this.parsePercent(data[i].x, zrWidth), this.parsePercent(data[i].y, zrHeight), 'pin', color, 'rgba(0,0,0,0)', 'horizontal'); - itemShape._mark = 'point'; - effect = this.deepMerge([ - data[i], - mpOption - ], 'effect'); - if (effect.show) { - itemShape.effect = effect; - } - if (serie.type === ecConfig.CHART_TYPE_MAP) { - itemShape._geo = this.getMarkGeo(data[i]); - } - ecData.pack(itemShape, serie, seriesIndex, data[i], i, data[i].name, value); - pList.push(itemShape); - } - } else { - itemShape = this.getLargeMarkPointShape(seriesIndex, mpOption); - itemShape._mark = 'largePoint'; - itemShape && pList.push(itemShape); - } - return pList; - }, - _markLine: function () { - function normalizeOptionValue(mlOption, key) { - mlOption[key] = mlOption[key] instanceof Array ? mlOption[key].length > 1 ? mlOption[key] : [ - mlOption[key][0], - mlOption[key][0] - ] : [ - mlOption[key], - mlOption[key] - ]; - } - return function (seriesIndex, mlOption) { - var serie = this.series[seriesIndex]; - var component = this.component; - var dataRange = component.dataRange; - var legend = component.legend; - zrUtil.merge(zrUtil.merge(mlOption, zrUtil.clone(this.ecTheme.markLine || {})), zrUtil.clone(ecConfig.markLine)); - var defaultColor = legend ? legend.getColor(serie.name) : this.zr.getColor(seriesIndex); - normalizeOptionValue(mlOption, 'symbol'); - normalizeOptionValue(mlOption, 'symbolSize'); - normalizeOptionValue(mlOption, 'symbolRotate'); - var data = mlOption.data; - var edges = []; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - for (var i = 0; i < data.length; i++) { - var mlData = data[i]; - if (isCoordAvailable(mlData[0]) && isCoordAvailable(mlData[1])) { - var mergeData = this.deepMerge(mlData); - var queryTarget = [ - mergeData, - mlOption - ]; - var color = defaultColor; - var value = mergeData.value != null ? mergeData.value : ''; - if (dataRange) { - color = isNaN(value) ? color : dataRange.getColor(value); - var nColor = this.deepQuery(queryTarget, 'itemStyle.normal.color') || color; - var eColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.color') || nColor; - if (nColor == null && eColor == null) { - continue; - } - } - mlData[0].tooltip = mergeData.tooltip || mlOption.tooltip || { trigger: 'item' }; - mlData[0].name = mlData[0].name || ''; - mlData[1].name = mlData[1].name || ''; - mlData[0].value = value; - edges.push({ - points: [ - [ - this.parsePercent(mlData[0].x, zrWidth), - this.parsePercent(mlData[0].y, zrHeight) - ], - [ - this.parsePercent(mlData[1].x, zrWidth), - this.parsePercent(mlData[1].y, zrHeight) - ] - ], - rawData: mlData, - color: color - }); - } - } - var enableBundling = this.query(mlOption, 'bundling.enable'); - if (enableBundling) { - var edgeBundling = new EdgeBundling(); - edgeBundling.maxTurningAngle = this.query(mlOption, 'bundling.maxTurningAngle') / 180 * Math.PI; - edges = edgeBundling.run(edges); - } - mlOption.name = serie.name; - var shapeList = []; - for (var i = 0, l = edges.length; i < l; i++) { - var edge = edges[i]; - var rawEdge = edge.rawEdge || edge; - var mlData = rawEdge.rawData; - var value = mlData.value != null ? mlData.value : ''; - var itemShape = this.getMarkLineShape(mlOption, seriesIndex, mlData, i, edge.points, enableBundling, rawEdge.color); - itemShape._mark = 'line'; - var effect = this.deepMerge([ - mlData[0], - mlData[1], - mlOption - ], 'effect'); - if (effect.show) { - itemShape.effect = effect; - itemShape.effect.large = mlOption.large; - } - if (serie.type === ecConfig.CHART_TYPE_MAP) { - itemShape._geo = [ - this.getMarkGeo(mlData[0]), - this.getMarkGeo(mlData[1]) - ]; - } - ecData.pack(itemShape, serie, seriesIndex, mlData[0], i, mlData[0].name + (mlData[1].name !== '' ? ' > ' + mlData[1].name : ''), value); - shapeList.push(itemShape); - } - return shapeList; - }; - }(), - getMarkCoord: function () { - return [ - 0, - 0 - ]; - }, - getSymbolShape: function (serie, seriesIndex, data, dataIndex, name, x, y, symbol, color, emptyColor, orient) { - var queryTarget = [ - data, - serie - ]; - var value = this.getDataFromOption(data, '-'); - symbol = this.deepQuery(queryTarget, 'symbol') || symbol; - var symbolSize = this.deepQuery(queryTarget, 'symbolSize'); - symbolSize = typeof symbolSize === 'function' ? symbolSize(value) : symbolSize; - if (typeof symbolSize === 'number') { - symbolSize = [ - symbolSize, - symbolSize - ]; - } - var symbolRotate = this.deepQuery(queryTarget, 'symbolRotate'); - var normal = this.deepMerge(queryTarget, 'itemStyle.normal'); - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis'); - var nBorderWidth = normal.borderWidth != null ? normal.borderWidth : normal.lineStyle && normal.lineStyle.width; - if (nBorderWidth == null) { - nBorderWidth = symbol.match('empty') ? 2 : 0; - } - var eBorderWidth = emphasis.borderWidth != null ? emphasis.borderWidth : emphasis.lineStyle && emphasis.lineStyle.width; - if (eBorderWidth == null) { - eBorderWidth = nBorderWidth + 2; - } - var nColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data); - var eColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data); - var width = symbolSize[0]; - var height = symbolSize[1]; - var itemShape = new IconShape({ - style: { - iconType: symbol.replace('empty', '').toLowerCase(), - x: x - width, - y: y - height, - width: width * 2, - height: height * 2, - brushType: 'both', - color: symbol.match('empty') ? emptyColor : nColor || color, - strokeColor: normal.borderColor || nColor || color, - lineWidth: nBorderWidth - }, - highlightStyle: { - color: symbol.match('empty') ? emptyColor : eColor || nColor || color, - strokeColor: emphasis.borderColor || normal.borderColor || eColor || nColor || color, - lineWidth: eBorderWidth - }, - clickable: this.deepQuery(queryTarget, 'clickable') - }); - if (symbol.match('image')) { - itemShape.style.image = symbol.replace(new RegExp('^image:\\/\\/'), ''); - itemShape = new ImageShape({ - style: itemShape.style, - highlightStyle: itemShape.highlightStyle, - clickable: this.deepQuery(queryTarget, 'clickable') - }); - } - if (symbolRotate != null) { - itemShape.rotation = [ - symbolRotate * Math.PI / 180, - x, - y - ]; - } - if (symbol.match('star')) { - itemShape.style.iconType = 'star'; - itemShape.style.n = symbol.replace('empty', '').replace('star', '') - 0 || 5; - } - if (symbol === 'none') { - itemShape.invisible = true; - itemShape.hoverable = false; - } - itemShape = this.addLabel(itemShape, serie, data, name, orient); - if (symbol.match('empty')) { - if (itemShape.style.textColor == null) { - itemShape.style.textColor = itemShape.style.strokeColor; - } - if (itemShape.highlightStyle.textColor == null) { - itemShape.highlightStyle.textColor = itemShape.highlightStyle.strokeColor; - } - } - ecData.pack(itemShape, serie, seriesIndex, data, dataIndex, name); - itemShape._x = x; - itemShape._y = y; - itemShape._dataIndex = dataIndex; - itemShape._seriesIndex = seriesIndex; - return itemShape; - }, - getMarkLineShape: function (mlOption, seriesIndex, data, dataIndex, points, bundling, color) { - var value0 = data[0].value != null ? data[0].value : '-'; - var value1 = data[1].value != null ? data[1].value : '-'; - var symbol = [ - data[0].symbol || mlOption.symbol[0], - data[1].symbol || mlOption.symbol[1] - ]; - var symbolSize = [ - data[0].symbolSize || mlOption.symbolSize[0], - data[1].symbolSize || mlOption.symbolSize[1] - ]; - symbolSize[0] = typeof symbolSize[0] === 'function' ? symbolSize[0](value0) : symbolSize[0]; - symbolSize[1] = typeof symbolSize[1] === 'function' ? symbolSize[1](value1) : symbolSize[1]; - var symbolRotate = [ - this.query(data[0], 'symbolRotate') || mlOption.symbolRotate[0], - this.query(data[1], 'symbolRotate') || mlOption.symbolRotate[1] - ]; - var queryTarget = [ - data[0], - data[1], - mlOption - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal'); - normal.color = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data); - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis'); - emphasis.color = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data); - var nlineStyle = normal.lineStyle; - var elineStyle = emphasis.lineStyle; - var nBorderWidth = nlineStyle.width; - if (nBorderWidth == null) { - nBorderWidth = normal.borderWidth; - } - var eBorderWidth = elineStyle.width; - if (eBorderWidth == null) { - eBorderWidth = emphasis.borderWidth != null ? emphasis.borderWidth : nBorderWidth + 2; - } - var smoothness = this.deepQuery(queryTarget, 'smoothness'); - if (!this.deepQuery(queryTarget, 'smooth')) { - smoothness = 0; - } - var ShapeCtor = bundling ? PolylineShape : MarkLineShape; - var itemShape = new ShapeCtor({ - style: { - symbol: symbol, - symbolSize: symbolSize, - symbolRotate: symbolRotate, - brushType: 'both', - lineType: nlineStyle.type, - shadowColor: nlineStyle.shadowColor || nlineStyle.color || normal.borderColor || normal.color || color, - shadowBlur: nlineStyle.shadowBlur, - shadowOffsetX: nlineStyle.shadowOffsetX, - shadowOffsetY: nlineStyle.shadowOffsetY, - color: normal.color || color, - strokeColor: nlineStyle.color || normal.borderColor || normal.color || color, - lineWidth: nBorderWidth, - symbolBorderColor: normal.borderColor || normal.color || color, - symbolBorder: normal.borderWidth - }, - highlightStyle: { - shadowColor: elineStyle.shadowColor, - shadowBlur: elineStyle.shadowBlur, - shadowOffsetX: elineStyle.shadowOffsetX, - shadowOffsetY: elineStyle.shadowOffsetY, - color: emphasis.color || normal.color || color, - strokeColor: elineStyle.color || nlineStyle.color || emphasis.borderColor || normal.borderColor || emphasis.color || normal.color || color, - lineWidth: eBorderWidth, - symbolBorderColor: emphasis.borderColor || normal.borderColor || emphasis.color || normal.color || color, - symbolBorder: emphasis.borderWidth == null ? normal.borderWidth + 2 : emphasis.borderWidth - }, - clickable: this.deepQuery(queryTarget, 'clickable') - }); - var shapeStyle = itemShape.style; - if (bundling) { - shapeStyle.pointList = points; - shapeStyle.smooth = smoothness; - } else { - shapeStyle.xStart = points[0][0]; - shapeStyle.yStart = points[0][1]; - shapeStyle.xEnd = points[1][0]; - shapeStyle.yEnd = points[1][1]; - shapeStyle.curveness = smoothness; - itemShape.updatePoints(itemShape.style); - } - itemShape = this.addLabel(itemShape, mlOption, data[0], data[0].name + ' : ' + data[1].name); - return itemShape; - }, - getLargeMarkPointShape: function (seriesIndex, mpOption) { - var serie = this.series[seriesIndex]; - var component = this.component; - var data = mpOption.data; - var itemShape; - var dataRange = component.dataRange; - var legend = component.legend; - var color; - var value; - var queryTarget = [ - data[0], - mpOption - ]; - var nColor; - var eColor; - var effect; - if (legend) { - color = legend.getColor(serie.name); - } - if (dataRange) { - value = data[0].value != null ? data[0].value : ''; - color = isNaN(value) ? color : dataRange.getColor(value); - nColor = this.deepQuery(queryTarget, 'itemStyle.normal.color') || color; - eColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.color') || nColor; - if (nColor == null && eColor == null) { - return; - } - } - color = this.deepMerge(queryTarget, 'itemStyle.normal').color || color; - var symbol = this.deepQuery(queryTarget, 'symbol') || 'circle'; - symbol = symbol.replace('empty', '').replace(/\d/g, ''); - effect = this.deepMerge([ - data[0], - mpOption - ], 'effect'); - var devicePixelRatio = window.devicePixelRatio || 1; - itemShape = new SymbolShape({ - style: { - pointList: data, - color: color, - strokeColor: color, - shadowColor: effect.shadowColor || color, - shadowBlur: (effect.shadowBlur != null ? effect.shadowBlur : 8) * devicePixelRatio, - size: this.deepQuery(queryTarget, 'symbolSize'), - iconType: symbol, - brushType: 'fill', - lineWidth: 1 - }, - draggable: false, - hoverable: false - }); - if (effect.show) { - itemShape.effect = effect; - } - return itemShape; - }, - backupShapeList: function () { - if (this.shapeList && this.shapeList.length > 0) { - this.lastShapeList = this.shapeList; - this.shapeList = []; - } else { - this.lastShapeList = []; - } - }, - addShapeList: function () { - var maxLenth = this.option.animationThreshold / (this.canvasSupported ? 2 : 4); - var lastShapeList = this.lastShapeList; - var shapeList = this.shapeList; - var isUpdate = lastShapeList.length > 0; - var duration = isUpdate ? this.query(this.option, 'animationDurationUpdate') : this.query(this.option, 'animationDuration'); - var easing = this.query(this.option, 'animationEasing'); - var delay; - var key; - var oldMap = {}; - var newMap = {}; - if (this.option.animation && !this.option.renderAsImage && shapeList.length < maxLenth && !this.motionlessOnce) { - for (var i = 0, l = lastShapeList.length; i < l; i++) { - key = this._getAnimationKey(lastShapeList[i]); - if (key.match('undefined')) { - this.zr.delShape(lastShapeList[i].id); - } else { - key += lastShapeList[i].type; - if (oldMap[key]) { - this.zr.delShape(lastShapeList[i].id); - } else { - oldMap[key] = lastShapeList[i]; - } - } - } - for (var i = 0, l = shapeList.length; i < l; i++) { - key = this._getAnimationKey(shapeList[i]); - if (key.match('undefined')) { - this.zr.addShape(shapeList[i]); - } else { - key += shapeList[i].type; - newMap[key] = shapeList[i]; - } - } - for (key in oldMap) { - if (!newMap[key]) { - this.zr.delShape(oldMap[key].id); - } - } - for (key in newMap) { - if (oldMap[key]) { - this.zr.delShape(oldMap[key].id); - this._animateMod(oldMap[key], newMap[key], duration, easing, 0, isUpdate); - } else { - delay = (this.type == ecConfig.CHART_TYPE_LINE || this.type == ecConfig.CHART_TYPE_RADAR) && key.indexOf('icon') !== 0 ? duration / 2 : 0; - this._animateMod(false, newMap[key], duration, easing, delay, isUpdate); - } - } - this.zr.refresh(); - this.animationEffect(); - } else { - this.motionlessOnce = false; - this.zr.delShape(lastShapeList); - for (var i = 0, l = shapeList.length; i < l; i++) { - this.zr.addShape(shapeList[i]); - } - } - }, - _getAnimationKey: function (shape) { - if (this.type != ecConfig.CHART_TYPE_MAP && this.type != ecConfig.CHART_TYPE_TREEMAP && this.type != ecConfig.CHART_TYPE_VENN && this.type != ecConfig.CHART_TYPE_TREE) { - return ecData.get(shape, 'seriesIndex') + '_' + ecData.get(shape, 'dataIndex') + (shape._mark ? shape._mark : '') + (this.type === ecConfig.CHART_TYPE_RADAR ? ecData.get(shape, 'special') : ''); - } else { - return ecData.get(shape, 'seriesIndex') + '_' + ecData.get(shape, 'dataIndex') + (shape._mark ? shape._mark : 'undefined'); - } - }, - _animateMod: function (oldShape, newShape, duration, easing, delay, isUpdate) { - switch (newShape.type) { - case 'polyline': - case 'half-smooth-polygon': - ecAnimation.pointList(this.zr, oldShape, newShape, duration, easing); - break; - case 'rectangle': - ecAnimation.rectangle(this.zr, oldShape, newShape, duration, easing); - break; - case 'image': - case 'icon': - ecAnimation.icon(this.zr, oldShape, newShape, duration, easing, delay); - break; - case 'candle': - if (!isUpdate) { - ecAnimation.candle(this.zr, oldShape, newShape, duration, easing); - } else { - this.zr.addShape(newShape); - } - break; - case 'ring': - case 'sector': - case 'circle': - if (!isUpdate) { - ecAnimation.ring(this.zr, oldShape, newShape, duration + (ecData.get(newShape, 'dataIndex') || 0) % 20 * 100, easing); - } else if (newShape.type === 'sector') { - ecAnimation.sector(this.zr, oldShape, newShape, duration, easing); - } else { - this.zr.addShape(newShape); - } - break; - case 'text': - ecAnimation.text(this.zr, oldShape, newShape, duration, easing); - break; - case 'polygon': - if (!isUpdate) { - ecAnimation.polygon(this.zr, oldShape, newShape, duration, easing); - } else { - ecAnimation.pointList(this.zr, oldShape, newShape, duration, easing); - } - break; - case 'ribbon': - ecAnimation.ribbon(this.zr, oldShape, newShape, duration, easing); - break; - case 'gauge-pointer': - ecAnimation.gaugePointer(this.zr, oldShape, newShape, duration, easing); - break; - case 'mark-line': - ecAnimation.markline(this.zr, oldShape, newShape, duration, easing); - break; - case 'bezier-curve': - case 'line': - ecAnimation.line(this.zr, oldShape, newShape, duration, easing); - break; - default: - this.zr.addShape(newShape); - break; - } - }, - animationMark: function (duration, easing, shapeList) { - var shapeList = shapeList || this.shapeList; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (!shapeList[i]._mark) { - continue; - } - this._animateMod(false, shapeList[i], duration, easing, 0, true); - } - this.animationEffect(shapeList); - }, - animationEffect: function (shapeList) { - !shapeList && this.clearEffectShape(); - shapeList = shapeList || this.shapeList; - if (shapeList == null) { - return; - } - var zlevel = ecConfig.EFFECT_ZLEVEL; - if (this.canvasSupported) { - this.zr.modLayer(zlevel, { - motionBlur: true, - lastFrameAlpha: this.option.effectBlendAlpha || ecConfig.effectBlendAlpha - }); - } - var shape; - for (var i = 0, l = shapeList.length; i < l; i++) { - shape = shapeList[i]; - if (!(shape._mark && shape.effect && shape.effect.show && ecEffect[shape._mark])) { - continue; - } - ecEffect[shape._mark](this.zr, this.effectList, shape, zlevel); - this.effectList[this.effectList.length - 1]._mark = shape._mark; - } - }, - clearEffectShape: function (clearMotionBlur) { - var effectList = this.effectList; - if (this.zr && effectList && effectList.length > 0) { - clearMotionBlur && this.zr.modLayer(ecConfig.EFFECT_ZLEVEL, { motionBlur: false }); - this.zr.delShape(effectList); - for (var i = 0; i < effectList.length; i++) { - if (effectList[i].effectAnimator) { - effectList[i].effectAnimator.stop(); - } - } - } - this.effectList = []; - }, - addMark: function (seriesIndex, markData, markType) { - var serie = this.series[seriesIndex]; - if (this.selectedMap[serie.name]) { - var duration = this.query(this.option, 'animationDurationUpdate'); - var easing = this.query(this.option, 'animationEasing'); - var oriMarkData = serie[markType].data; - var lastLength = this.shapeList.length; - serie[markType].data = markData.data; - this['_build' + markType.replace('m', 'M')](seriesIndex); - if (this.option.animation && !this.option.renderAsImage) { - this.animationMark(duration, easing, this.shapeList.slice(lastLength)); - } else { - for (var i = lastLength, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - this.zr.refreshNextFrame(); - } - serie[markType].data = oriMarkData; - } - }, - delMark: function (seriesIndex, markName, markType) { - markType = markType.replace('mark', '').replace('large', '').toLowerCase(); - var serie = this.series[seriesIndex]; - if (this.selectedMap[serie.name]) { - var needRefresh = false; - var shapeList = [ - this.shapeList, - this.effectList - ]; - var len = 2; - while (len--) { - for (var i = 0, l = shapeList[len].length; i < l; i++) { - if (shapeList[len][i]._mark == markType && ecData.get(shapeList[len][i], 'seriesIndex') == seriesIndex && ecData.get(shapeList[len][i], 'name') == markName) { - this.zr.delShape(shapeList[len][i].id); - shapeList[len].splice(i, 1); - needRefresh = true; - break; - } - } - } - needRefresh && this.zr.refreshNextFrame(); - } - } - }; - zrUtil.inherits(Base, ComponentBase); - return Base; -});define('zrender/shape/Circle', [ - 'require', - './Base', - '../tool/util' -], function (require) { - 'use strict'; - var Base = require('./Base'); - var Circle = function (options) { - Base.call(this, options); - }; - Circle.prototype = { - type: 'circle', - buildPath: function (ctx, style) { - ctx.moveTo(style.x + style.r, style.y); - ctx.arc(style.x, style.y, style.r, 0, Math.PI * 2, true); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - style.__rect = { - x: Math.round(style.x - style.r - lineWidth / 2), - y: Math.round(style.y - style.r - lineWidth / 2), - width: style.r * 2 + lineWidth, - height: style.r * 2 + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Circle, Base); - return Circle; -});define('echarts/util/accMath', [], function () { - function accDiv(arg1, arg2) { - var s1 = arg1.toString(); - var s2 = arg2.toString(); - var m = 0; - try { - m = s2.split('.')[1].length; - } catch (e) { - } - try { - m -= s1.split('.')[1].length; - } catch (e) { - } - return (s1.replace('.', '') - 0) / (s2.replace('.', '') - 0) * Math.pow(10, m); - } - function accMul(arg1, arg2) { - var s1 = arg1.toString(); - var s2 = arg2.toString(); - var m = 0; - try { - m += s1.split('.')[1].length; - } catch (e) { - } - try { - m += s2.split('.')[1].length; - } catch (e) { - } - return (s1.replace('.', '') - 0) * (s2.replace('.', '') - 0) / Math.pow(10, m); - } - function accAdd(arg1, arg2) { - var r1 = 0; - var r2 = 0; - try { - r1 = arg1.toString().split('.')[1].length; - } catch (e) { - } - try { - r2 = arg2.toString().split('.')[1].length; - } catch (e) { - } - var m = Math.pow(10, Math.max(r1, r2)); - return (Math.round(arg1 * m) + Math.round(arg2 * m)) / m; - } - function accSub(arg1, arg2) { - return accAdd(arg1, -arg2); - } - return { - accDiv: accDiv, - accMul: accMul, - accAdd: accAdd, - accSub: accSub - }; -});define('echarts/util/shape/Icon', [ - 'require', - 'zrender/tool/util', - 'zrender/shape/Star', - 'zrender/shape/Heart', - 'zrender/shape/Droplet', - 'zrender/shape/Image', - 'zrender/shape/Base' -], function (require) { - var zrUtil = require('zrender/tool/util'); - function _iconMark(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x, y + style.height); - ctx.lineTo(x + 5 * dx, y + 14 * dy); - ctx.lineTo(x + style.width, y + 3 * dy); - ctx.lineTo(x + 13 * dx, y); - ctx.lineTo(x + 2 * dx, y + 11 * dy); - ctx.lineTo(x, y + style.height); - ctx.moveTo(x + 6 * dx, y + 10 * dy); - ctx.lineTo(x + 14 * dx, y + 2 * dy); - ctx.moveTo(x + 10 * dx, y + 13 * dy); - ctx.lineTo(x + style.width, y + 13 * dy); - ctx.moveTo(x + 13 * dx, y + 10 * dy); - ctx.lineTo(x + 13 * dx, y + style.height); - } - function _iconMarkUndo(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x, y + style.height); - ctx.lineTo(x + 5 * dx, y + 14 * dy); - ctx.lineTo(x + style.width, y + 3 * dy); - ctx.lineTo(x + 13 * dx, y); - ctx.lineTo(x + 2 * dx, y + 11 * dy); - ctx.lineTo(x, y + style.height); - ctx.moveTo(x + 6 * dx, y + 10 * dy); - ctx.lineTo(x + 14 * dx, y + 2 * dy); - ctx.moveTo(x + 10 * dx, y + 13 * dy); - ctx.lineTo(x + style.width, y + 13 * dy); - } - function _iconMarkClear(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x + 4 * dx, y + 15 * dy); - ctx.lineTo(x + 9 * dx, y + 13 * dy); - ctx.lineTo(x + 14 * dx, y + 8 * dy); - ctx.lineTo(x + 11 * dx, y + 5 * dy); - ctx.lineTo(x + 6 * dx, y + 10 * dy); - ctx.lineTo(x + 4 * dx, y + 15 * dy); - ctx.moveTo(x + 5 * dx, y); - ctx.lineTo(x + 11 * dx, y); - ctx.moveTo(x + 5 * dx, y + dy); - ctx.lineTo(x + 11 * dx, y + dy); - ctx.moveTo(x, y + 2 * dy); - ctx.lineTo(x + style.width, y + 2 * dy); - ctx.moveTo(x, y + 5 * dy); - ctx.lineTo(x + 3 * dx, y + style.height); - ctx.lineTo(x + 13 * dx, y + style.height); - ctx.lineTo(x + style.width, y + 5 * dy); - } - function _iconDataZoom(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x, y + 3 * dy); - ctx.lineTo(x + 6 * dx, y + 3 * dy); - ctx.moveTo(x + 3 * dx, y); - ctx.lineTo(x + 3 * dx, y + 6 * dy); - ctx.moveTo(x + 3 * dx, y + 8 * dy); - ctx.lineTo(x + 3 * dx, y + style.height); - ctx.lineTo(x + style.width, y + style.height); - ctx.lineTo(x + style.width, y + 3 * dy); - ctx.lineTo(x + 8 * dx, y + 3 * dy); - } - function _iconDataZoomReset(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x + 6 * dx, y); - ctx.lineTo(x + 2 * dx, y + 3 * dy); - ctx.lineTo(x + 6 * dx, y + 6 * dy); - ctx.moveTo(x + 2 * dx, y + 3 * dy); - ctx.lineTo(x + 14 * dx, y + 3 * dy); - ctx.lineTo(x + 14 * dx, y + 11 * dy); - ctx.moveTo(x + 2 * dx, y + 5 * dy); - ctx.lineTo(x + 2 * dx, y + 13 * dy); - ctx.lineTo(x + 14 * dx, y + 13 * dy); - ctx.moveTo(x + 10 * dx, y + 10 * dy); - ctx.lineTo(x + 14 * dx, y + 13 * dy); - ctx.lineTo(x + 10 * dx, y + style.height); - } - function _iconRestore(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - var r = style.width / 2; - ctx.lineWidth = 1.5; - ctx.arc(x + r, y + r, r - dx, 0, Math.PI * 2 / 3); - ctx.moveTo(x + 3 * dx, y + style.height); - ctx.lineTo(x + 0 * dx, y + 12 * dy); - ctx.lineTo(x + 5 * dx, y + 11 * dy); - ctx.moveTo(x, y + 8 * dy); - ctx.arc(x + r, y + r, r - dx, Math.PI, Math.PI * 5 / 3); - ctx.moveTo(x + 13 * dx, y); - ctx.lineTo(x + style.width, y + 4 * dy); - ctx.lineTo(x + 11 * dx, y + 5 * dy); - } - function _iconLineChart(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x, y); - ctx.lineTo(x, y + style.height); - ctx.lineTo(x + style.width, y + style.height); - ctx.moveTo(x + 2 * dx, y + 14 * dy); - ctx.lineTo(x + 7 * dx, y + 6 * dy); - ctx.lineTo(x + 11 * dx, y + 11 * dy); - ctx.lineTo(x + 15 * dx, y + 2 * dy); - } - function _iconBarChart(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x, y); - ctx.lineTo(x, y + style.height); - ctx.lineTo(x + style.width, y + style.height); - ctx.moveTo(x + 3 * dx, y + 14 * dy); - ctx.lineTo(x + 3 * dx, y + 6 * dy); - ctx.lineTo(x + 4 * dx, y + 6 * dy); - ctx.lineTo(x + 4 * dx, y + 14 * dy); - ctx.moveTo(x + 7 * dx, y + 14 * dy); - ctx.lineTo(x + 7 * dx, y + 2 * dy); - ctx.lineTo(x + 8 * dx, y + 2 * dy); - ctx.lineTo(x + 8 * dx, y + 14 * dy); - ctx.moveTo(x + 11 * dx, y + 14 * dy); - ctx.lineTo(x + 11 * dx, y + 9 * dy); - ctx.lineTo(x + 12 * dx, y + 9 * dy); - ctx.lineTo(x + 12 * dx, y + 14 * dy); - } - function _iconPieChart(ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width - 2; - var height = style.height - 2; - var r = Math.min(width, height) / 2; - y += 2; - ctx.moveTo(x + r + 3, y + r - 3); - ctx.arc(x + r + 3, y + r - 3, r - 1, 0, -Math.PI / 2, true); - ctx.lineTo(x + r + 3, y + r - 3); - ctx.moveTo(x + r, y); - ctx.lineTo(x + r, y + r); - ctx.arc(x + r, y + r, r, -Math.PI / 2, Math.PI * 2, true); - ctx.lineTo(x + r, y + r); - ctx.lineWidth = 1.5; - } - function _iconFunnelChart(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - y -= dy; - ctx.moveTo(x + 1 * dx, y + 2 * dy); - ctx.lineTo(x + 15 * dx, y + 2 * dy); - ctx.lineTo(x + 14 * dx, y + 3 * dy); - ctx.lineTo(x + 2 * dx, y + 3 * dy); - ctx.moveTo(x + 3 * dx, y + 6 * dy); - ctx.lineTo(x + 13 * dx, y + 6 * dy); - ctx.lineTo(x + 12 * dx, y + 7 * dy); - ctx.lineTo(x + 4 * dx, y + 7 * dy); - ctx.moveTo(x + 5 * dx, y + 10 * dy); - ctx.lineTo(x + 11 * dx, y + 10 * dy); - ctx.lineTo(x + 10 * dx, y + 11 * dy); - ctx.lineTo(x + 6 * dx, y + 11 * dy); - ctx.moveTo(x + 7 * dx, y + 14 * dy); - ctx.lineTo(x + 9 * dx, y + 14 * dy); - ctx.lineTo(x + 8 * dx, y + 15 * dy); - ctx.lineTo(x + 7 * dx, y + 15 * dy); - } - function _iconForceChart(ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - var dx = width / 16; - var dy = height / 16; - var r = Math.min(dx, dy) * 2; - ctx.moveTo(x + dx + r, y + dy + r); - ctx.arc(x + dx, y + dy, r, Math.PI / 4, Math.PI * 3); - ctx.lineTo(x + 7 * dx - r, y + 6 * dy - r); - ctx.arc(x + 7 * dx, y + 6 * dy, r, Math.PI / 4 * 5, Math.PI * 4); - ctx.arc(x + 7 * dx, y + 6 * dy, r / 2, Math.PI / 4 * 5, Math.PI * 4); - ctx.moveTo(x + 7 * dx - r / 2, y + 6 * dy + r); - ctx.lineTo(x + dx + r, y + 14 * dy - r); - ctx.arc(x + dx, y + 14 * dy, r, -Math.PI / 4, Math.PI * 2); - ctx.moveTo(x + 7 * dx + r / 2, y + 6 * dy); - ctx.lineTo(x + 14 * dx - r, y + 10 * dy - r / 2); - ctx.moveTo(x + 16 * dx, y + 10 * dy); - ctx.arc(x + 14 * dx, y + 10 * dy, r, 0, Math.PI * 3); - ctx.lineWidth = 1.5; - } - function _iconChordChart(ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - var r = Math.min(width, height) / 2; - ctx.moveTo(x + width, y + height / 2); - ctx.arc(x + r, y + r, r, 0, Math.PI * 2); - ctx.arc(x + r, y, r, Math.PI / 4, Math.PI / 5 * 4); - ctx.arc(x, y + r, r, -Math.PI / 3, Math.PI / 3); - ctx.arc(x + width, y + height, r, Math.PI, Math.PI / 2 * 3); - ctx.lineWidth = 1.5; - } - function _iconStackChart(ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - var dy = Math.round(height / 3); - var delta = Math.round((dy - 2) / 2); - var len = 3; - while (len--) { - ctx.rect(x, y + dy * len + delta, width, 2); - } - } - function _iconTiledChart(ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - var dx = Math.round(width / 3); - var delta = Math.round((dx - 2) / 2); - var len = 3; - while (len--) { - ctx.rect(x + dx * len + delta, y, 2, height); - } - } - function _iconDataView(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - ctx.moveTo(x + dx, y); - ctx.lineTo(x + dx, y + style.height); - ctx.lineTo(x + 15 * dx, y + style.height); - ctx.lineTo(x + 15 * dx, y); - ctx.lineTo(x + dx, y); - ctx.moveTo(x + 3 * dx, y + 3 * dx); - ctx.lineTo(x + 13 * dx, y + 3 * dx); - ctx.moveTo(x + 3 * dx, y + 6 * dx); - ctx.lineTo(x + 13 * dx, y + 6 * dx); - ctx.moveTo(x + 3 * dx, y + 9 * dx); - ctx.lineTo(x + 13 * dx, y + 9 * dx); - ctx.moveTo(x + 3 * dx, y + 12 * dx); - ctx.lineTo(x + 9 * dx, y + 12 * dx); - } - function _iconSave(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x, y); - ctx.lineTo(x, y + style.height); - ctx.lineTo(x + style.width, y + style.height); - ctx.lineTo(x + style.width, y); - ctx.lineTo(x, y); - ctx.moveTo(x + 4 * dx, y); - ctx.lineTo(x + 4 * dx, y + 8 * dy); - ctx.lineTo(x + 12 * dx, y + 8 * dy); - ctx.lineTo(x + 12 * dx, y); - ctx.moveTo(x + 6 * dx, y + 11 * dy); - ctx.lineTo(x + 6 * dx, y + 13 * dy); - ctx.lineTo(x + 10 * dx, y + 13 * dy); - ctx.lineTo(x + 10 * dx, y + 11 * dy); - ctx.lineTo(x + 6 * dx, y + 11 * dy); - } - function _iconCross(ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - ctx.moveTo(x, y + height / 2); - ctx.lineTo(x + width, y + height / 2); - ctx.moveTo(x + width / 2, y); - ctx.lineTo(x + width / 2, y + height); - } - function _iconCircle(ctx, style) { - var width = style.width / 2; - var height = style.height / 2; - var r = Math.min(width, height); - ctx.moveTo(style.x + width + r, style.y + height); - ctx.arc(style.x + width, style.y + height, r, 0, Math.PI * 2); - ctx.closePath(); - } - function _iconRectangle(ctx, style) { - ctx.rect(style.x, style.y, style.width, style.height); - ctx.closePath(); - } - function _iconTriangle(ctx, style) { - var width = style.width / 2; - var height = style.height / 2; - var x = style.x + width; - var y = style.y + height; - var symbolSize = Math.min(width, height); - ctx.moveTo(x, y - symbolSize); - ctx.lineTo(x + symbolSize, y + symbolSize); - ctx.lineTo(x - symbolSize, y + symbolSize); - ctx.lineTo(x, y - symbolSize); - ctx.closePath(); - } - function _iconDiamond(ctx, style) { - var width = style.width / 2; - var height = style.height / 2; - var x = style.x + width; - var y = style.y + height; - var symbolSize = Math.min(width, height); - ctx.moveTo(x, y - symbolSize); - ctx.lineTo(x + symbolSize, y); - ctx.lineTo(x, y + symbolSize); - ctx.lineTo(x - symbolSize, y); - ctx.lineTo(x, y - symbolSize); - ctx.closePath(); - } - function _iconArrow(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - ctx.moveTo(x + 8 * dx, y); - ctx.lineTo(x + dx, y + style.height); - ctx.lineTo(x + 8 * dx, y + style.height / 4 * 3); - ctx.lineTo(x + 15 * dx, y + style.height); - ctx.lineTo(x + 8 * dx, y); - ctx.closePath(); - } - function _iconStar(ctx, style) { - var StarShape = require('zrender/shape/Star'); - var width = style.width / 2; - var height = style.height / 2; - StarShape.prototype.buildPath(ctx, { - x: style.x + width, - y: style.y + height, - r: Math.min(width, height), - n: style.n || 5 - }); - } - function _iconHeart(ctx, style) { - var HeartShape = require('zrender/shape/Heart'); - HeartShape.prototype.buildPath(ctx, { - x: style.x + style.width / 2, - y: style.y + style.height * 0.2, - a: style.width / 2, - b: style.height * 0.8 - }); - } - function _iconDroplet(ctx, style) { - var DropletShape = require('zrender/shape/Droplet'); - DropletShape.prototype.buildPath(ctx, { - x: style.x + style.width * 0.5, - y: style.y + style.height * 0.5, - a: style.width * 0.5, - b: style.height * 0.8 - }); - } - function _iconPin(ctx, style) { - var x = style.x; - var y = style.y - style.height / 2 * 1.5; - var width = style.width / 2; - var height = style.height / 2; - var r = Math.min(width, height); - ctx.arc(x + width, y + height, r, Math.PI / 5 * 4, Math.PI / 5); - ctx.lineTo(x + width, y + height + r * 1.5); - ctx.closePath(); - } - function _iconImage(ctx, style, refreshNextFrame) { - var ImageShape = require('zrender/shape/Image'); - this._imageShape = this._imageShape || new ImageShape({ style: {} }); - for (var name in style) { - this._imageShape.style[name] = style[name]; - } - this._imageShape.brush(ctx, false, refreshNextFrame); - } - var Base = require('zrender/shape/Base'); - function Icon(options) { - Base.call(this, options); - } - Icon.prototype = { - type: 'icon', - iconLibrary: { - mark: _iconMark, - markUndo: _iconMarkUndo, - markClear: _iconMarkClear, - dataZoom: _iconDataZoom, - dataZoomReset: _iconDataZoomReset, - restore: _iconRestore, - lineChart: _iconLineChart, - barChart: _iconBarChart, - pieChart: _iconPieChart, - funnelChart: _iconFunnelChart, - forceChart: _iconForceChart, - chordChart: _iconChordChart, - stackChart: _iconStackChart, - tiledChart: _iconTiledChart, - dataView: _iconDataView, - saveAsImage: _iconSave, - cross: _iconCross, - circle: _iconCircle, - rectangle: _iconRectangle, - triangle: _iconTriangle, - diamond: _iconDiamond, - arrow: _iconArrow, - star: _iconStar, - heart: _iconHeart, - droplet: _iconDroplet, - pin: _iconPin, - image: _iconImage - }, - brush: function (ctx, isHighlight, refreshNextFrame) { - var style = isHighlight ? this.highlightStyle : this.style; - style = style || {}; - var iconType = style.iconType || this.style.iconType; - if (iconType === 'image') { - var ImageShape = require('zrender/shape/Image'); - ImageShape.prototype.brush.call(this, ctx, isHighlight, refreshNextFrame); - } else { - var style = this.beforeBrush(ctx, isHighlight); - ctx.beginPath(); - this.buildPath(ctx, style, refreshNextFrame); - switch (style.brushType) { - case 'both': - ctx.fill(); - case 'stroke': - style.lineWidth > 0 && ctx.stroke(); - break; - default: - ctx.fill(); - } - this.drawText(ctx, style, this.style); - this.afterBrush(ctx); - } - }, - buildPath: function (ctx, style, refreshNextFrame) { - if (this.iconLibrary[style.iconType]) { - this.iconLibrary[style.iconType].call(this, ctx, style, refreshNextFrame); - } else { - ctx.moveTo(style.x, style.y); - ctx.lineTo(style.x + style.width, style.y); - ctx.lineTo(style.x + style.width, style.y + style.height); - ctx.lineTo(style.x, style.y + style.height); - ctx.lineTo(style.x, style.y); - ctx.closePath(); - } - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - style.__rect = { - x: Math.round(style.x), - y: Math.round(style.y - (style.iconType == 'pin' ? style.height / 2 * 1.5 : 0)), - width: style.width, - height: style.height * (style.iconType === 'pin' ? 1.25 : 1) - }; - return style.__rect; - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - var rect = this.style.__rect; - if (!rect) { - rect = this.style.__rect = this.getRect(this.style); - } - var delta = rect.height < 8 || rect.width < 8 ? 4 : 0; - return x >= rect.x - delta && x <= rect.x + rect.width + delta && y >= rect.y - delta && y <= rect.y + rect.height + delta; - } - }; - zrUtil.inherits(Icon, Base); - return Icon; -});define('echarts/util/shape/MarkLine', [ - 'require', - 'zrender/shape/Base', - './Icon', - 'zrender/shape/Line', - 'zrender/shape/BezierCurve', - 'zrender/tool/area', - 'zrender/shape/util/dashedLineTo', - 'zrender/tool/util', - 'zrender/tool/curve' -], function (require) { - var Base = require('zrender/shape/Base'); - var IconShape = require('./Icon'); - var LineShape = require('zrender/shape/Line'); - var lineInstance = new LineShape({}); - var CurveShape = require('zrender/shape/BezierCurve'); - var curveInstance = new CurveShape({}); - var area = require('zrender/tool/area'); - var dashedLineTo = require('zrender/shape/util/dashedLineTo'); - var zrUtil = require('zrender/tool/util'); - var curveTool = require('zrender/tool/curve'); - function MarkLine(options) { - Base.call(this, options); - if (this.style.curveness > 0) { - this.updatePoints(this.style); - } - if (this.highlightStyle.curveness > 0) { - this.updatePoints(this.highlightStyle); - } - } - MarkLine.prototype = { - type: 'mark-line', - brush: function (ctx, isHighlight) { - var style = this.style; - if (isHighlight) { - style = this.getHighlightStyle(style, this.highlightStyle || {}); - } - ctx.save(); - this.setContext(ctx, style); - this.setTransform(ctx); - ctx.save(); - ctx.beginPath(); - this.buildPath(ctx, style); - ctx.stroke(); - ctx.restore(); - this.brushSymbol(ctx, style, 0); - this.brushSymbol(ctx, style, 1); - this.drawText(ctx, style, this.style); - ctx.restore(); - }, - buildPath: function (ctx, style) { - var lineType = style.lineType || 'solid'; - ctx.moveTo(style.xStart, style.yStart); - if (style.curveness > 0) { - var lineDash = null; - switch (lineType) { - case 'dashed': - lineDash = [ - 5, - 5 - ]; - break; - case 'dotted': - lineDash = [ - 1, - 1 - ]; - break; - } - if (lineDash && ctx.setLineDash) { - ctx.setLineDash(lineDash); - } - ctx.quadraticCurveTo(style.cpX1, style.cpY1, style.xEnd, style.yEnd); - } else { - if (lineType == 'solid') { - ctx.lineTo(style.xEnd, style.yEnd); - } else { - var dashLength = (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); - dashedLineTo(ctx, style.xStart, style.yStart, style.xEnd, style.yEnd, dashLength); - } - } - }, - updatePoints: function (style) { - var curveness = style.curveness || 0; - var inv = 1; - var x0 = style.xStart; - var y0 = style.yStart; - var x2 = style.xEnd; - var y2 = style.yEnd; - var x1 = (x0 + x2) / 2 - inv * (y0 - y2) * curveness; - var y1 = (y0 + y2) / 2 - inv * (x2 - x0) * curveness; - style.cpX1 = x1; - style.cpY1 = y1; - }, - brushSymbol: function (ctx, style, idx) { - if (style.symbol[idx] == 'none') { - return; - } - ctx.save(); - ctx.beginPath(); - ctx.lineWidth = style.symbolBorder; - ctx.strokeStyle = style.symbolBorderColor; - var symbol = style.symbol[idx].replace('empty', '').toLowerCase(); - if (style.symbol[idx].match('empty')) { - ctx.fillStyle = '#fff'; - } - var x0 = style.xStart; - var y0 = style.yStart; - var x2 = style.xEnd; - var y2 = style.yEnd; - var x = idx === 0 ? x0 : x2; - var y = idx === 0 ? y0 : y2; - var curveness = style.curveness || 0; - var rotate = style.symbolRotate[idx] != null ? style.symbolRotate[idx] - 0 : 0; - rotate = rotate / 180 * Math.PI; - if (symbol == 'arrow' && rotate === 0) { - if (curveness === 0) { - var sign = idx === 0 ? -1 : 1; - rotate = Math.PI / 2 + Math.atan2(sign * (y2 - y0), sign * (x2 - x0)); - } else { - var x1 = style.cpX1; - var y1 = style.cpY1; - var quadraticDerivativeAt = curveTool.quadraticDerivativeAt; - var dx = quadraticDerivativeAt(x0, x1, x2, idx); - var dy = quadraticDerivativeAt(y0, y1, y2, idx); - rotate = Math.PI / 2 + Math.atan2(dy, dx); - } - } - ctx.translate(x, y); - if (rotate !== 0) { - ctx.rotate(rotate); - } - var symbolSize = style.symbolSize[idx]; - IconShape.prototype.buildPath(ctx, { - x: -symbolSize, - y: -symbolSize, - width: symbolSize * 2, - height: symbolSize * 2, - iconType: symbol - }); - ctx.closePath(); - ctx.fill(); - ctx.stroke(); - ctx.restore(); - }, - getRect: function (style) { - style.curveness > 0 ? curveInstance.getRect(style) : lineInstance.getRect(style); - return style.__rect; - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - if (this.isCoverRect(x, y)) { - return this.style.curveness > 0 ? area.isInside(curveInstance, this.style, x, y) : area.isInside(lineInstance, this.style, x, y); - } - return false; - } - }; - zrUtil.inherits(MarkLine, Base); - return MarkLine; -});define('echarts/util/shape/Symbol', [ - 'require', - 'zrender/shape/Base', - 'zrender/shape/Polygon', - 'zrender/tool/util', - './normalIsCover' -], function (require) { - var Base = require('zrender/shape/Base'); - var PolygonShape = require('zrender/shape/Polygon'); - var polygonInstance = new PolygonShape({}); - var zrUtil = require('zrender/tool/util'); - function Symbol(options) { - Base.call(this, options); - } - Symbol.prototype = { - type: 'symbol', - buildPath: function (ctx, style) { - var pointList = style.pointList; - var len = pointList.length; - if (len === 0) { - return; - } - var subSize = 10000; - var subSetLength = Math.ceil(len / subSize); - var sub; - var subLen; - var isArray = pointList[0] instanceof Array; - var size = style.size ? style.size : 2; - var curSize = size; - var halfSize = size / 2; - var PI2 = Math.PI * 2; - var percent; - var x; - var y; - for (var j = 0; j < subSetLength; j++) { - ctx.beginPath(); - sub = j * subSize; - subLen = sub + subSize; - subLen = subLen > len ? len : subLen; - for (var i = sub; i < subLen; i++) { - if (style.random) { - percent = style['randomMap' + i % 20] / 100; - curSize = size * percent * percent; - halfSize = curSize / 2; - } - if (isArray) { - x = pointList[i][0]; - y = pointList[i][1]; - } else { - x = pointList[i].x; - y = pointList[i].y; - } - if (curSize < 3) { - ctx.rect(x - halfSize, y - halfSize, curSize, curSize); - } else { - switch (style.iconType) { - case 'circle': - ctx.moveTo(x, y); - ctx.arc(x, y, halfSize, 0, PI2, true); - break; - case 'diamond': - ctx.moveTo(x, y - halfSize); - ctx.lineTo(x + halfSize / 3, y - halfSize / 3); - ctx.lineTo(x + halfSize, y); - ctx.lineTo(x + halfSize / 3, y + halfSize / 3); - ctx.lineTo(x, y + halfSize); - ctx.lineTo(x - halfSize / 3, y + halfSize / 3); - ctx.lineTo(x - halfSize, y); - ctx.lineTo(x - halfSize / 3, y - halfSize / 3); - ctx.lineTo(x, y - halfSize); - break; - default: - ctx.rect(x - halfSize, y - halfSize, curSize, curSize); - } - } - } - ctx.closePath(); - if (j < subSetLength - 1) { - switch (style.brushType) { - case 'both': - ctx.fill(); - style.lineWidth > 0 && ctx.stroke(); - break; - case 'stroke': - style.lineWidth > 0 && ctx.stroke(); - break; - default: - ctx.fill(); - } - } - } - }, - getRect: function (style) { - return style.__rect || polygonInstance.getRect(style); - }, - isCover: require('./normalIsCover') - }; - zrUtil.inherits(Symbol, Base); - return Symbol; -});define('zrender/shape/Polyline', [ - 'require', - './Base', - './util/smoothSpline', - './util/smoothBezier', - './util/dashedLineTo', - './Polygon', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var smoothSpline = require('./util/smoothSpline'); - var smoothBezier = require('./util/smoothBezier'); - var dashedLineTo = require('./util/dashedLineTo'); - var Polyline = function (options) { - this.brushTypeOnly = 'stroke'; - this.textPosition = 'end'; - Base.call(this, options); - }; - Polyline.prototype = { - type: 'polyline', - buildPath: function (ctx, style) { - var pointList = style.pointList; - if (pointList.length < 2) { - return; - } - var len = Math.min(style.pointList.length, Math.round(style.pointListLength || style.pointList.length)); - if (style.smooth && style.smooth !== 'spline') { - if (!style.controlPointList) { - this.updateControlPoints(style); - } - var controlPointList = style.controlPointList; - ctx.moveTo(pointList[0][0], pointList[0][1]); - var cp1; - var cp2; - var p; - for (var i = 0; i < len - 1; i++) { - cp1 = controlPointList[i * 2]; - cp2 = controlPointList[i * 2 + 1]; - p = pointList[i + 1]; - ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); - } - } else { - if (style.smooth === 'spline') { - pointList = smoothSpline(pointList); - len = pointList.length; - } - if (!style.lineType || style.lineType == 'solid') { - ctx.moveTo(pointList[0][0], pointList[0][1]); - for (var i = 1; i < len; i++) { - ctx.lineTo(pointList[i][0], pointList[i][1]); - } - } else if (style.lineType == 'dashed' || style.lineType == 'dotted') { - var dashLength = (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); - ctx.moveTo(pointList[0][0], pointList[0][1]); - for (var i = 1; i < len; i++) { - dashedLineTo(ctx, pointList[i - 1][0], pointList[i - 1][1], pointList[i][0], pointList[i][1], dashLength); - } - } - } - return; - }, - updateControlPoints: function (style) { - style.controlPointList = smoothBezier(style.pointList, style.smooth, false, style.smoothConstraint); - }, - getRect: function (style) { - return require('./Polygon').prototype.getRect(style); - } - }; - require('../tool/util').inherits(Polyline, Base); - return Polyline; -});define('zrender/shape/ShapeBundle', [ - 'require', - './Base', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var ShapeBundle = function (options) { - Base.call(this, options); - }; - ShapeBundle.prototype = { - constructor: ShapeBundle, - type: 'shape-bundle', - brush: function (ctx, isHighlight) { - var style = this.beforeBrush(ctx, isHighlight); - ctx.beginPath(); - for (var i = 0; i < style.shapeList.length; i++) { - var subShape = style.shapeList[i]; - var subShapeStyle = subShape.style; - if (isHighlight) { - subShapeStyle = subShape.getHighlightStyle(subShapeStyle, subShape.highlightStyle || {}, subShape.brushTypeOnly); - } - subShape.buildPath(ctx, subShapeStyle); - } - switch (style.brushType) { - case 'both': - ctx.fill(); - case 'stroke': - style.lineWidth > 0 && ctx.stroke(); - break; - default: - ctx.fill(); - } - this.drawText(ctx, style, this.style); - this.afterBrush(ctx); - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var minX = Infinity; - var maxX = -Infinity; - var minY = Infinity; - var maxY = -Infinity; - for (var i = 0; i < style.shapeList.length; i++) { - var subShape = style.shapeList[i]; - var subRect = subShape.getRect(subShape.style); - var minX = Math.min(subRect.x, minX); - var minY = Math.min(subRect.y, minY); - var maxX = Math.max(subRect.x + subRect.width, maxX); - var maxY = Math.max(subRect.y + subRect.height, maxY); - } - style.__rect = { - x: minX, - y: minY, - width: maxX - minX, - height: maxY - minY - }; - return style.__rect; - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - if (this.isCoverRect(x, y)) { - for (var i = 0; i < this.style.shapeList.length; i++) { - var subShape = this.style.shapeList[i]; - if (subShape.isCover(x, y)) { - return true; - } - } - } - return false; - } - }; - require('../tool/util').inherits(ShapeBundle, Base); - return ShapeBundle; -});define('echarts/util/ecAnimation', [ - 'require', - 'zrender/tool/util', - 'zrender/tool/curve', - 'zrender/shape/Polygon' -], function (require) { - var zrUtil = require('zrender/tool/util'); - var curveTool = require('zrender/tool/curve'); - function pointList(zr, oldShape, newShape, duration, easing) { - var newPointList = newShape.style.pointList; - var newPointListLen = newPointList.length; - var oldPointList; - if (!oldShape) { - oldPointList = []; - if (newShape._orient != 'vertical') { - var y = newPointList[0][1]; - for (var i = 0; i < newPointListLen; i++) { - oldPointList[i] = [ - newPointList[i][0], - y - ]; - } - } else { - var x = newPointList[0][0]; - for (var i = 0; i < newPointListLen; i++) { - oldPointList[i] = [ - x, - newPointList[i][1] - ]; - } - } - if (newShape.type == 'half-smooth-polygon') { - oldPointList[newPointListLen - 1] = zrUtil.clone(newPointList[newPointListLen - 1]); - oldPointList[newPointListLen - 2] = zrUtil.clone(newPointList[newPointListLen - 2]); - } - oldShape = { style: { pointList: oldPointList } }; - } - oldPointList = oldShape.style.pointList; - var oldPointListLen = oldPointList.length; - if (oldPointListLen == newPointListLen) { - newShape.style.pointList = oldPointList; - } else if (oldPointListLen < newPointListLen) { - newShape.style.pointList = oldPointList.concat(newPointList.slice(oldPointListLen)); - } else { - newShape.style.pointList = oldPointList.slice(0, newPointListLen); - } - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { pointList: newPointList }).during(function () { - if (newShape.updateControlPoints) { - newShape.updateControlPoints(newShape.style); - } - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function cloneStyle(target, source) { - var len = arguments.length; - for (var i = 2; i < len; i++) { - var prop = arguments[i]; - target.style[prop] = source.style[prop]; - } - } - function rectangle(zr, oldShape, newShape, duration, easing) { - var newShapeStyle = newShape.style; - if (!oldShape) { - oldShape = { - position: newShape.position, - style: { - x: newShapeStyle.x, - y: newShape._orient == 'vertical' ? newShapeStyle.y + newShapeStyle.height : newShapeStyle.y, - width: newShape._orient == 'vertical' ? newShapeStyle.width : 0, - height: newShape._orient != 'vertical' ? newShapeStyle.height : 0 - } - }; - } - var newX = newShapeStyle.x; - var newY = newShapeStyle.y; - var newWidth = newShapeStyle.width; - var newHeight = newShapeStyle.height; - var newPosition = [ - newShape.position[0], - newShape.position[1] - ]; - cloneStyle(newShape, oldShape, 'x', 'y', 'width', 'height'); - newShape.position = oldShape.position; - zr.addShape(newShape); - if (newPosition[0] != oldShape.position[0] || newPosition[1] != oldShape.position[1]) { - zr.animate(newShape.id, '').when(duration, { position: newPosition }).start(easing); - } - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { - x: newX, - y: newY, - width: newWidth, - height: newHeight - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function candle(zr, oldShape, newShape, duration, easing) { - if (!oldShape) { - var y = newShape.style.y; - oldShape = { - style: { - y: [ - y[0], - y[0], - y[0], - y[0] - ] - } - }; - } - var newY = newShape.style.y; - newShape.style.y = oldShape.style.y; - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { y: newY }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function ring(zr, oldShape, newShape, duration, easing) { - var x = newShape.style.x; - var y = newShape.style.y; - var r0 = newShape.style.r0; - var r = newShape.style.r; - newShape.__animating = true; - if (newShape._animationAdd != 'r') { - newShape.style.r0 = 0; - newShape.style.r = 0; - newShape.rotation = [ - Math.PI * 2, - x, - y - ]; - zr.addShape(newShape); - zr.animate(newShape.id, 'style').when(duration, { - r0: r0, - r: r - }).done(function () { - newShape.__animating = false; - }).start(easing); - zr.animate(newShape.id, '').when(duration, { - rotation: [ - 0, - x, - y - ] - }).start(easing); - } else { - newShape.style.r0 = newShape.style.r; - zr.addShape(newShape); - zr.animate(newShape.id, 'style').when(duration, { r0: r0 }).done(function () { - newShape.__animating = false; - }).start(easing); - } - } - function sector(zr, oldShape, newShape, duration, easing) { - if (!oldShape) { - if (newShape._animationAdd != 'r') { - oldShape = { - style: { - startAngle: newShape.style.startAngle, - endAngle: newShape.style.startAngle - } - }; - } else { - oldShape = { style: { r0: newShape.style.r } }; - } - } - var startAngle = newShape.style.startAngle; - var endAngle = newShape.style.endAngle; - cloneStyle(newShape, oldShape, 'startAngle', 'endAngle'); - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { - startAngle: startAngle, - endAngle: endAngle - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function text(zr, oldShape, newShape, duration, easing) { - if (!oldShape) { - oldShape = { - style: { - x: newShape.style.textAlign == 'left' ? newShape.style.x + 100 : newShape.style.x - 100, - y: newShape.style.y - } - }; - } - var x = newShape.style.x; - var y = newShape.style.y; - cloneStyle(newShape, oldShape, 'x', 'y'); - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { - x: x, - y: y - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function polygon(zr, oldShape, newShape, duration, easing) { - var rect = require('zrender/shape/Polygon').prototype.getRect(newShape.style); - var x = rect.x + rect.width / 2; - var y = rect.y + rect.height / 2; - newShape.scale = [ - 0.1, - 0.1, - x, - y - ]; - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, '').when(duration, { - scale: [ - 1, - 1, - x, - y - ] - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function ribbon(zr, oldShape, newShape, duration, easing) { - if (!oldShape) { - oldShape = { - style: { - source0: 0, - source1: newShape.style.source1 > 0 ? 360 : -360, - target0: 0, - target1: newShape.style.target1 > 0 ? 360 : -360 - } - }; - } - var source0 = newShape.style.source0; - var source1 = newShape.style.source1; - var target0 = newShape.style.target0; - var target1 = newShape.style.target1; - if (oldShape.style) { - cloneStyle(newShape, oldShape, 'source0', 'source1', 'target0', 'target1'); - } - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { - source0: source0, - source1: source1, - target0: target0, - target1: target1 - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function gaugePointer(zr, oldShape, newShape, duration, easing) { - if (!oldShape) { - oldShape = { style: { angle: newShape.style.startAngle } }; - } - var angle = newShape.style.angle; - newShape.style.angle = oldShape.style.angle; - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { angle: angle }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function icon(zr, oldShape, newShape, duration, easing, delay) { - newShape.style._x = newShape.style.x; - newShape.style._y = newShape.style.y; - newShape.style._width = newShape.style.width; - newShape.style._height = newShape.style.height; - if (!oldShape) { - var x = newShape._x || 0; - var y = newShape._y || 0; - newShape.scale = [ - 0.01, - 0.01, - x, - y - ]; - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, '').delay(delay).when(duration, { - scale: [ - 1, - 1, - x, - y - ] - }).done(function () { - newShape.__animating = false; - }).start(easing || 'QuinticOut'); - } else { - rectangle(zr, oldShape, newShape, duration, easing); - } - } - function line(zr, oldShape, newShape, duration, easing) { - if (!oldShape) { - oldShape = { - style: { - xStart: newShape.style.xStart, - yStart: newShape.style.yStart, - xEnd: newShape.style.xStart, - yEnd: newShape.style.yStart - } - }; - } - var xStart = newShape.style.xStart; - var xEnd = newShape.style.xEnd; - var yStart = newShape.style.yStart; - var yEnd = newShape.style.yEnd; - cloneStyle(newShape, oldShape, 'xStart', 'xEnd', 'yStart', 'yEnd'); - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { - xStart: xStart, - xEnd: xEnd, - yStart: yStart, - yEnd: yEnd - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function markline(zr, oldShape, newShape, duration, easing) { - easing = easing || 'QuinticOut'; - newShape.__animating = true; - zr.addShape(newShape); - var newShapeStyle = newShape.style; - var animationDone = function () { - newShape.__animating = false; - }; - var x0 = newShapeStyle.xStart; - var y0 = newShapeStyle.yStart; - var x2 = newShapeStyle.xEnd; - var y2 = newShapeStyle.yEnd; - if (newShapeStyle.curveness > 0) { - newShape.updatePoints(newShapeStyle); - var obj = { p: 0 }; - var x1 = newShapeStyle.cpX1; - var y1 = newShapeStyle.cpY1; - var newXArr = []; - var newYArr = []; - var subdivide = curveTool.quadraticSubdivide; - zr.animation.animate(obj).when(duration, { p: 1 }).during(function () { - subdivide(x0, x1, x2, obj.p, newXArr); - subdivide(y0, y1, y2, obj.p, newYArr); - newShapeStyle.cpX1 = newXArr[1]; - newShapeStyle.cpY1 = newYArr[1]; - newShapeStyle.xEnd = newXArr[2]; - newShapeStyle.yEnd = newYArr[2]; - zr.modShape(newShape); - }).done(animationDone).start(easing); - } else { - zr.animate(newShape.id, 'style').when(0, { - xEnd: x0, - yEnd: y0 - }).when(duration, { - xEnd: x2, - yEnd: y2 - }).done(animationDone).start(easing); - } - } - return { - pointList: pointList, - rectangle: rectangle, - candle: candle, - ring: ring, - sector: sector, - text: text, - polygon: polygon, - ribbon: ribbon, - gaugePointer: gaugePointer, - icon: icon, - line: line, - markline: markline - }; -});define('echarts/util/ecEffect', [ - 'require', - '../util/ecData', - 'zrender/shape/Circle', - 'zrender/shape/Image', - 'zrender/tool/curve', - '../util/shape/Icon', - '../util/shape/Symbol', - 'zrender/shape/ShapeBundle', - 'zrender/shape/Polyline', - 'zrender/tool/vector', - 'zrender/tool/env' -], function (require) { - var ecData = require('../util/ecData'); - var CircleShape = require('zrender/shape/Circle'); - var ImageShape = require('zrender/shape/Image'); - var curveTool = require('zrender/tool/curve'); - var IconShape = require('../util/shape/Icon'); - var SymbolShape = require('../util/shape/Symbol'); - var ShapeBundle = require('zrender/shape/ShapeBundle'); - var Polyline = require('zrender/shape/Polyline'); - var vec2 = require('zrender/tool/vector'); - var canvasSupported = require('zrender/tool/env').canvasSupported; - function point(zr, effectList, shape, zlevel) { - var effect = shape.effect; - var color = effect.color || shape.style.strokeColor || shape.style.color; - var shadowColor = effect.shadowColor || color; - var size = effect.scaleSize; - var distance = effect.bounceDistance; - var shadowBlur = typeof effect.shadowBlur != 'undefined' ? effect.shadowBlur : size; - var effectShape; - if (shape.type !== 'image') { - effectShape = new IconShape({ - zlevel: zlevel, - style: { - brushType: 'stroke', - iconType: shape.style.iconType != 'droplet' ? shape.style.iconType : 'circle', - x: shadowBlur + 1, - y: shadowBlur + 1, - n: shape.style.n, - width: shape.style._width * size, - height: shape.style._height * size, - lineWidth: 1, - strokeColor: color, - shadowColor: shadowColor, - shadowBlur: shadowBlur - }, - draggable: false, - hoverable: false - }); - if (shape.style.iconType == 'pin') { - effectShape.style.y += effectShape.style.height / 2 * 1.5; - } - if (canvasSupported) { - effectShape.style.image = zr.shapeToImage(effectShape, effectShape.style.width + shadowBlur * 2 + 2, effectShape.style.height + shadowBlur * 2 + 2).style.image; - effectShape = new ImageShape({ - zlevel: effectShape.zlevel, - style: effectShape.style, - draggable: false, - hoverable: false - }); - } - } else { - effectShape = new ImageShape({ - zlevel: zlevel, - style: shape.style, - draggable: false, - hoverable: false - }); - } - ecData.clone(shape, effectShape); - effectShape.position = shape.position; - effectList.push(effectShape); - zr.addShape(effectShape); - var devicePixelRatio = shape.type !== 'image' ? window.devicePixelRatio || 1 : 1; - var offset = (effectShape.style.width / devicePixelRatio - shape.style._width) / 2; - effectShape.style.x = shape.style._x - offset; - effectShape.style.y = shape.style._y - offset; - if (shape.style.iconType == 'pin') { - effectShape.style.y -= shape.style.height / 2 * 1.5; - } - var duration = (effect.period + Math.random() * 10) * 100; - zr.modShape(shape.id, { invisible: true }); - var centerX = effectShape.style.x + effectShape.style.width / 2 / devicePixelRatio; - var centerY = effectShape.style.y + effectShape.style.height / 2 / devicePixelRatio; - if (effect.type === 'scale') { - zr.modShape(effectShape.id, { - scale: [ - 0.1, - 0.1, - centerX, - centerY - ] - }); - zr.animate(effectShape.id, '', effect.loop).when(duration, { - scale: [ - 1, - 1, - centerX, - centerY - ] - }).done(function () { - shape.effect.show = false; - zr.delShape(effectShape.id); - }).start(); - } else { - zr.animate(effectShape.id, 'style', effect.loop).when(duration, { y: effectShape.style.y - distance }).when(duration * 2, { y: effectShape.style.y }).done(function () { - shape.effect.show = false; - zr.delShape(effectShape.id); - }).start(); - } - } - function largePoint(zr, effectList, shape, zlevel) { - var effect = shape.effect; - var color = effect.color || shape.style.strokeColor || shape.style.color; - var size = effect.scaleSize; - var shadowColor = effect.shadowColor || color; - var shadowBlur = typeof effect.shadowBlur != 'undefined' ? effect.shadowBlur : size * 2; - var devicePixelRatio = window.devicePixelRatio || 1; - var effectShape = new SymbolShape({ - zlevel: zlevel, - position: shape.position, - scale: shape.scale, - style: { - pointList: shape.style.pointList, - iconType: shape.style.iconType, - color: color, - strokeColor: color, - shadowColor: shadowColor, - shadowBlur: shadowBlur * devicePixelRatio, - random: true, - brushType: 'fill', - lineWidth: 1, - size: shape.style.size - }, - draggable: false, - hoverable: false - }); - effectList.push(effectShape); - zr.addShape(effectShape); - zr.modShape(shape.id, { invisible: true }); - var duration = Math.round(effect.period * 100); - var clip1 = {}; - var clip2 = {}; - for (var i = 0; i < 20; i++) { - effectShape.style['randomMap' + i] = 0; - clip1 = {}; - clip1['randomMap' + i] = 100; - clip2 = {}; - clip2['randomMap' + i] = 0; - effectShape.style['randomMap' + i] = Math.random() * 100; - zr.animate(effectShape.id, 'style', true).when(duration, clip1).when(duration * 2, clip2).when(duration * 3, clip1).when(duration * 4, clip1).delay(Math.random() * duration * i).start(); - } - } - function line(zr, effectList, shape, zlevel, isLarge) { - var effect = shape.effect; - var shapeStyle = shape.style; - var color = effect.color || shapeStyle.strokeColor || shapeStyle.color; - var shadowColor = effect.shadowColor || shapeStyle.strokeColor || color; - var size = shapeStyle.lineWidth * effect.scaleSize; - var shadowBlur = typeof effect.shadowBlur != 'undefined' ? effect.shadowBlur : size; - var effectShape = new CircleShape({ - zlevel: zlevel, - style: { - x: shadowBlur, - y: shadowBlur, - r: size, - color: color, - shadowColor: shadowColor, - shadowBlur: shadowBlur - }, - hoverable: false - }); - var offset = 0; - if (canvasSupported && !isLarge) { - var zlevel = effectShape.zlevel; - effectShape = zr.shapeToImage(effectShape, (size + shadowBlur) * 2, (size + shadowBlur) * 2); - effectShape.zlevel = zlevel; - effectShape.hoverable = false; - offset = shadowBlur; - } - if (!isLarge) { - ecData.clone(shape, effectShape); - effectShape.position = shape.position; - effectList.push(effectShape); - zr.addShape(effectShape); - } - var effectDone = function () { - if (!isLarge) { - shape.effect.show = false; - zr.delShape(effectShape.id); - } - effectShape.effectAnimator = null; - }; - if (shape instanceof Polyline) { - var distanceList = [0]; - var totalDist = 0; - var pointList = shapeStyle.pointList; - var controlPointList = shapeStyle.controlPointList; - for (var i = 1; i < pointList.length; i++) { - if (controlPointList) { - var cp1 = controlPointList[(i - 1) * 2]; - var cp2 = controlPointList[(i - 1) * 2 + 1]; - totalDist += vec2.dist(pointList[i - 1], cp1) + vec2.dist(cp1, cp2) + vec2.dist(cp2, pointList[i]); - } else { - totalDist += vec2.dist(pointList[i - 1], pointList[i]); - } - distanceList.push(totalDist); - } - var obj = { p: 0 }; - var animator = zr.animation.animate(obj, { loop: effect.loop }); - for (var i = 0; i < distanceList.length; i++) { - animator.when(distanceList[i] * effect.period, { p: i }); - } - animator.during(function () { - var i = Math.floor(obj.p); - var x, y; - if (i == pointList.length - 1) { - x = pointList[i][0]; - y = pointList[i][1]; - } else { - var t = obj.p - i; - var p0 = pointList[i]; - var p1 = pointList[i + 1]; - if (controlPointList) { - var cp1 = controlPointList[i * 2]; - var cp2 = controlPointList[i * 2 + 1]; - x = curveTool.cubicAt(p0[0], cp1[0], cp2[0], p1[0], t); - y = curveTool.cubicAt(p0[1], cp1[1], cp2[1], p1[1], t); - } else { - x = (p1[0] - p0[0]) * t + p0[0]; - y = (p1[1] - p0[1]) * t + p0[1]; - } - } - effectShape.style.x = x; - effectShape.style.y = y; - if (!isLarge) { - zr.modShape(effectShape); - } - }).done(effectDone).start(); - animator.duration = totalDist * effect.period; - effectShape.effectAnimator = animator; - } else { - var x0 = shapeStyle.xStart - offset; - var y0 = shapeStyle.yStart - offset; - var x2 = shapeStyle.xEnd - offset; - var y2 = shapeStyle.yEnd - offset; - effectShape.style.x = x0; - effectShape.style.y = y0; - var distance = (x2 - x0) * (x2 - x0) + (y2 - y0) * (y2 - y0); - var duration = Math.round(Math.sqrt(Math.round(distance * effect.period * effect.period))); - if (shape.style.curveness > 0) { - var x1 = shapeStyle.cpX1 - offset; - var y1 = shapeStyle.cpY1 - offset; - effectShape.effectAnimator = zr.animation.animate(effectShape, { loop: effect.loop }).when(duration, { p: 1 }).during(function (target, t) { - effectShape.style.x = curveTool.quadraticAt(x0, x1, x2, t); - effectShape.style.y = curveTool.quadraticAt(y0, y1, y2, t); - if (!isLarge) { - zr.modShape(effectShape); - } - }).done(effectDone).start(); - } else { - effectShape.effectAnimator = zr.animation.animate(effectShape.style, { loop: effect.loop }).when(duration, { - x: x2, - y: y2 - }).during(function () { - if (!isLarge) { - zr.modShape(effectShape); - } - }).done(effectDone).start(); - } - effectShape.effectAnimator.duration = duration; - } - return effectShape; - } - function largeLine(zr, effectList, shape, zlevel) { - var effectShape = new ShapeBundle({ - style: { shapeList: [] }, - zlevel: zlevel, - hoverable: false - }); - var shapeList = shape.style.shapeList; - var effect = shape.effect; - effectShape.position = shape.position; - var maxDuration = 0; - var subEffectAnimators = []; - for (var i = 0; i < shapeList.length; i++) { - shapeList[i].effect = effect; - var subEffectShape = line(zr, null, shapeList[i], zlevel, true); - var subEffectAnimator = subEffectShape.effectAnimator; - effectShape.style.shapeList.push(subEffectShape); - if (subEffectAnimator.duration > maxDuration) { - maxDuration = subEffectAnimator.duration; - } - if (i === 0) { - effectShape.style.color = subEffectShape.style.color; - effectShape.style.shadowBlur = subEffectShape.style.shadowBlur; - effectShape.style.shadowColor = subEffectShape.style.shadowColor; - } - subEffectAnimators.push(subEffectAnimator); - } - effectList.push(effectShape); - zr.addShape(effectShape); - var clearAllAnimators = function () { - for (var i = 0; i < subEffectAnimators.length; i++) { - subEffectAnimators[i].stop(); - } - }; - if (maxDuration) { - effectShape.__dummy = 0; - var animator = zr.animate(effectShape.id, '', effect.loop).when(maxDuration, { __dummy: 1 }).during(function () { - zr.modShape(effectShape); - }).done(function () { - shape.effect.show = false; - zr.delShape(effectShape.id); - }).start(); - var oldStop = animator.stop; - animator.stop = function () { - clearAllAnimators(); - oldStop.call(this); - }; - } - } - return { - point: point, - largePoint: largePoint, - line: line, - largeLine: largeLine - }; -});define('echarts/component/base', [ - 'require', - '../config', - '../util/ecData', - '../util/ecQuery', - '../util/number', - 'zrender/tool/util', - 'zrender/tool/env' -], function (require) { - var ecConfig = require('../config'); - var ecData = require('../util/ecData'); - var ecQuery = require('../util/ecQuery'); - var number = require('../util/number'); - var zrUtil = require('zrender/tool/util'); - function Base(ecTheme, messageCenter, zr, option, myChart) { - this.ecTheme = ecTheme; - this.messageCenter = messageCenter; - this.zr = zr; - this.option = option; - this.series = option.series; - this.myChart = myChart; - this.component = myChart.component; - this.shapeList = []; - this.effectList = []; - var self = this; - self._onlegendhoverlink = function (param) { - if (self.legendHoverLink) { - var targetName = param.target; - var name; - for (var i = self.shapeList.length - 1; i >= 0; i--) { - name = self.type == ecConfig.CHART_TYPE_PIE || self.type == ecConfig.CHART_TYPE_FUNNEL ? ecData.get(self.shapeList[i], 'name') : (ecData.get(self.shapeList[i], 'series') || {}).name; - if (name == targetName && !self.shapeList[i].invisible && !self.shapeList[i].__animating) { - self.zr.addHoverShape(self.shapeList[i]); - } - } - } - }; - messageCenter && messageCenter.bind(ecConfig.EVENT.LEGEND_HOVERLINK, this._onlegendhoverlink); - } - Base.prototype = { - canvasSupported: require('zrender/tool/env').canvasSupported, - _getZ: function (zWhat) { - if (this[zWhat] != null) { - return this[zWhat]; - } - var opt = this.ecTheme[this.type]; - if (opt && opt[zWhat] != null) { - return opt[zWhat]; - } - opt = ecConfig[this.type]; - if (opt && opt[zWhat] != null) { - return opt[zWhat]; - } - return 0; - }, - getZlevelBase: function () { - return this._getZ('zlevel'); - }, - getZBase: function () { - return this._getZ('z'); - }, - reformOption: function (opt) { - opt = zrUtil.merge(zrUtil.merge(opt || {}, zrUtil.clone(this.ecTheme[this.type] || {})), zrUtil.clone(ecConfig[this.type] || {})); - this.z = opt.z; - this.zlevel = opt.zlevel; - return opt; - }, - reformCssArray: function (p) { - if (p instanceof Array) { - switch (p.length + '') { - case '4': - return p; - case '3': - return [ - p[0], - p[1], - p[2], - p[1] - ]; - case '2': - return [ - p[0], - p[1], - p[0], - p[1] - ]; - case '1': - return [ - p[0], - p[0], - p[0], - p[0] - ]; - case '0': - return [ - 0, - 0, - 0, - 0 - ]; - } - } else { - return [ - p, - p, - p, - p - ]; - } - }, - getShapeById: function (id) { - for (var i = 0, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i].id === id) { - return this.shapeList[i]; - } - } - return null; - }, - getFont: function (textStyle) { - var finalTextStyle = this.getTextStyle(zrUtil.clone(textStyle)); - return finalTextStyle.fontStyle + ' ' + finalTextStyle.fontWeight + ' ' + finalTextStyle.fontSize + 'px ' + finalTextStyle.fontFamily; - }, - getTextStyle: function (targetStyle) { - return zrUtil.merge(zrUtil.merge(targetStyle || {}, this.ecTheme.textStyle), ecConfig.textStyle); - }, - getItemStyleColor: function (itemColor, seriesIndex, dataIndex, data) { - return typeof itemColor === 'function' ? itemColor.call(this.myChart, { - seriesIndex: seriesIndex, - series: this.series[seriesIndex], - dataIndex: dataIndex, - data: data - }) : itemColor; - }, - getDataFromOption: function (data, defaultData) { - return data != null ? data.value != null ? data.value : data : defaultData; - }, - subPixelOptimize: function (position, lineWidth) { - if (lineWidth % 2 === 1) { - position = Math.floor(position) + 0.5; - } else { - position = Math.round(position); - } - return position; - }, - resize: function () { - this.refresh && this.refresh(); - this.clearEffectShape && this.clearEffectShape(true); - var self = this; - setTimeout(function () { - self.animationEffect && self.animationEffect(); - }, 200); - }, - clear: function () { - this.clearEffectShape && this.clearEffectShape(); - this.zr && this.zr.delShape(this.shapeList); - this.shapeList = []; - }, - dispose: function () { - this.onbeforDispose && this.onbeforDispose(); - this.clear(); - this.shapeList = null; - this.effectList = null; - this.messageCenter && this.messageCenter.unbind(ecConfig.EVENT.LEGEND_HOVERLINK, this._onlegendhoverlink); - this.onafterDispose && this.onafterDispose(); - }, - query: ecQuery.query, - deepQuery: ecQuery.deepQuery, - deepMerge: ecQuery.deepMerge, - parsePercent: number.parsePercent, - parseCenter: number.parseCenter, - parseRadius: number.parseRadius, - numAddCommas: number.addCommas, - getPrecision: number.getPrecision - }; - return Base; -});define('echarts/layout/EdgeBundling', [ - 'require', - '../data/KDTree', - 'zrender/tool/vector' -], function (require) { - var KDTree = require('../data/KDTree'); - var vec2 = require('zrender/tool/vector'); - var v2Create = vec2.create; - var v2DistSquare = vec2.distSquare; - var v2Dist = vec2.dist; - var v2Copy = vec2.copy; - var v2Clone = vec2.clone; - function squaredDistance(a, b) { - a = a.array; - b = b.array; - var x = b[0] - a[0]; - var y = b[1] - a[1]; - var z = b[2] - a[2]; - var w = b[3] - a[3]; - return x * x + y * y + z * z + w * w; - } - function CoarsenedEdge(group) { - this.points = [ - group.mp0, - group.mp1 - ]; - this.group = group; - } - function Edge(edge) { - var points = edge.points; - if (points[0][1] < points[1][1] || edge instanceof CoarsenedEdge) { - this.array = [ - points[0][0], - points[0][1], - points[1][0], - points[1][1] - ]; - this._startPoint = points[0]; - this._endPoint = points[1]; - } else { - this.array = [ - points[1][0], - points[1][1], - points[0][0], - points[0][1] - ]; - this._startPoint = points[1]; - this._endPoint = points[0]; - } - this.ink = v2Dist(points[0], points[1]); - this.edge = edge; - this.group = null; - } - Edge.prototype.getStartPoint = function () { - return this._startPoint; - }; - Edge.prototype.getEndPoint = function () { - return this._endPoint; - }; - function BundledEdgeGroup() { - this.edgeList = []; - this.mp0 = v2Create(); - this.mp1 = v2Create(); - this.ink = 0; - } - BundledEdgeGroup.prototype.addEdge = function (edge) { - edge.group = this; - this.edgeList.push(edge); - }; - BundledEdgeGroup.prototype.removeEdge = function (edge) { - edge.group = null; - this.edgeList.splice(this.edgeList.indexOf(edge), 1); - }; - function EdgeBundling() { - this.maxNearestEdge = 6; - this.maxTurningAngle = Math.PI / 4; - this.maxIteration = 20; - } - EdgeBundling.prototype = { - constructor: EdgeBundling, - run: function (rawEdges) { - var res = this._iterate(rawEdges); - var nIterate = 0; - while (nIterate++ < this.maxIteration) { - var coarsenedEdges = []; - for (var i = 0; i < res.groups.length; i++) { - coarsenedEdges.push(new CoarsenedEdge(res.groups[i])); - } - var newRes = this._iterate(coarsenedEdges); - if (newRes.savedInk <= 0) { - break; - } else { - res = newRes; - } - } - var newEdges = []; - function pointApproxEqual(p0, p1) { - return v2DistSquare(p0, p1) < 1e-10; - } - function cleanEdgePoints(edgePoints, rawEdgePoints) { - var res = []; - var off = 0; - for (var i = 0; i < edgePoints.length; i++) { - if (!(off > 0 && pointApproxEqual(edgePoints[i], res[off - 1]))) { - res[off++] = v2Clone(edgePoints[i]); - } - } - if (rawEdgePoints[0] && !pointApproxEqual(res[0], rawEdgePoints[0])) { - res = res.reverse(); - } - return res; - } - var buildNewEdges = function (groups, fromEdgePoints) { - var newEdgePoints; - for (var i = 0; i < groups.length; i++) { - var group = groups[i]; - if (group.edgeList[0] && group.edgeList[0].edge instanceof CoarsenedEdge) { - var newGroups = []; - for (var j = 0; j < group.edgeList.length; j++) { - newGroups.push(group.edgeList[j].edge.group); - } - if (!fromEdgePoints) { - newEdgePoints = []; - } else { - newEdgePoints = fromEdgePoints.slice(); - } - newEdgePoints.unshift(group.mp0); - newEdgePoints.push(group.mp1); - buildNewEdges(newGroups, newEdgePoints); - } else { - for (var j = 0; j < group.edgeList.length; j++) { - var edge = group.edgeList[j]; - if (!fromEdgePoints) { - newEdgePoints = []; - } else { - newEdgePoints = fromEdgePoints.slice(); - } - newEdgePoints.unshift(group.mp0); - newEdgePoints.push(group.mp1); - newEdgePoints.unshift(edge.getStartPoint()); - newEdgePoints.push(edge.getEndPoint()); - newEdges.push({ - points: cleanEdgePoints(newEdgePoints, edge.edge.points), - rawEdge: edge.edge - }); - } - } - } - }; - buildNewEdges(res.groups); - return newEdges; - }, - _iterate: function (rawEdges) { - var edges = []; - var groups = []; - var totalSavedInk = 0; - for (var i = 0; i < rawEdges.length; i++) { - var edge = new Edge(rawEdges[i]); - edges.push(edge); - } - var tree = new KDTree(edges, 4); - var nearests = []; - var _mp0 = v2Create(); - var _mp1 = v2Create(); - var _newGroupInk = 0; - var mp0 = v2Create(); - var mp1 = v2Create(); - var newGroupInk = 0; - for (var i = 0; i < edges.length; i++) { - var edge = edges[i]; - if (edge.group) { - continue; - } - tree.nearestN(edge, this.maxNearestEdge, squaredDistance, nearests); - var maxSavedInk = 0; - var mostSavingInkEdge = null; - var lastCheckedGroup = null; - for (var j = 0; j < nearests.length; j++) { - var nearest = nearests[j]; - var savedInk = 0; - if (nearest.group) { - if (nearest.group !== lastCheckedGroup) { - lastCheckedGroup = nearest.group; - _newGroupInk = this._calculateGroupEdgeInk(nearest.group, edge, _mp0, _mp1); - savedInk = nearest.group.ink + edge.ink - _newGroupInk; - } - } else { - _newGroupInk = this._calculateEdgeEdgeInk(edge, nearest, _mp0, _mp1); - savedInk = nearest.ink + edge.ink - _newGroupInk; - } - if (savedInk > maxSavedInk) { - maxSavedInk = savedInk; - mostSavingInkEdge = nearest; - v2Copy(mp1, _mp1); - v2Copy(mp0, _mp0); - newGroupInk = _newGroupInk; - } - } - if (mostSavingInkEdge) { - totalSavedInk += maxSavedInk; - var group; - if (!mostSavingInkEdge.group) { - group = new BundledEdgeGroup(); - groups.push(group); - group.addEdge(mostSavingInkEdge); - } - group = mostSavingInkEdge.group; - v2Copy(group.mp0, mp0); - v2Copy(group.mp1, mp1); - group.ink = newGroupInk; - mostSavingInkEdge.group.addEdge(edge); - } else { - var group = new BundledEdgeGroup(); - groups.push(group); - v2Copy(group.mp0, edge.getStartPoint()); - v2Copy(group.mp1, edge.getEndPoint()); - group.ink = edge.ink; - group.addEdge(edge); - } - } - return { - groups: groups, - edges: edges, - savedInk: totalSavedInk - }; - }, - _calculateEdgeEdgeInk: function () { - var startPointSet = []; - var endPointSet = []; - return function (e0, e1, mp0, mp1) { - startPointSet[0] = e0.getStartPoint(); - startPointSet[1] = e1.getStartPoint(); - endPointSet[0] = e0.getEndPoint(); - endPointSet[1] = e1.getEndPoint(); - this._calculateMeetPoints(startPointSet, endPointSet, mp0, mp1); - var ink = v2Dist(startPointSet[0], mp0) + v2Dist(mp0, mp1) + v2Dist(mp1, endPointSet[0]) + v2Dist(startPointSet[1], mp0) + v2Dist(mp1, endPointSet[1]); - return ink; - }; - }(), - _calculateGroupEdgeInk: function (group, edgeTryAdd, mp0, mp1) { - var startPointSet = []; - var endPointSet = []; - for (var i = 0; i < group.edgeList.length; i++) { - var edge = group.edgeList[i]; - startPointSet.push(edge.getStartPoint()); - endPointSet.push(edge.getEndPoint()); - } - startPointSet.push(edgeTryAdd.getStartPoint()); - endPointSet.push(edgeTryAdd.getEndPoint()); - this._calculateMeetPoints(startPointSet, endPointSet, mp0, mp1); - var ink = v2Dist(mp0, mp1); - for (var i = 0; i < startPointSet.length; i++) { - ink += v2Dist(startPointSet[i], mp0) + v2Dist(endPointSet[i], mp1); - } - return ink; - }, - _calculateMeetPoints: function () { - var cp0 = v2Create(); - var cp1 = v2Create(); - return function (startPointSet, endPointSet, mp0, mp1) { - vec2.set(cp0, 0, 0); - vec2.set(cp1, 0, 0); - var len = startPointSet.length; - for (var i = 0; i < len; i++) { - vec2.add(cp0, cp0, startPointSet[i]); - } - vec2.scale(cp0, cp0, 1 / len); - len = endPointSet.length; - for (var i = 0; i < len; i++) { - vec2.add(cp1, cp1, endPointSet[i]); - } - vec2.scale(cp1, cp1, 1 / len); - this._limitTurningAngle(startPointSet, cp0, cp1, mp0); - this._limitTurningAngle(endPointSet, cp1, cp0, mp1); - }; - }(), - _limitTurningAngle: function () { - var v10 = v2Create(); - var vTmp = v2Create(); - var project = v2Create(); - var tmpOut = v2Create(); - return function (pointSet, p0, p1, out) { - var maxTurningAngleCos = Math.cos(this.maxTurningAngle); - var maxTurningAngleTan = Math.tan(this.maxTurningAngle); - vec2.sub(v10, p0, p1); - vec2.normalize(v10, v10); - vec2.copy(out, p0); - var maxMovement = 0; - for (var i = 0; i < pointSet.length; i++) { - var p = pointSet[i]; - vec2.sub(vTmp, p, p0); - var len = vec2.len(vTmp); - vec2.scale(vTmp, vTmp, 1 / len); - var turningAngleCos = vec2.dot(vTmp, v10); - if (turningAngleCos < maxTurningAngleCos) { - vec2.scaleAndAdd(project, p0, v10, len * turningAngleCos); - var distance = v2Dist(project, p); - var d = distance / maxTurningAngleTan; - vec2.scaleAndAdd(tmpOut, project, v10, -d); - var movement = v2DistSquare(tmpOut, p0); - if (movement > maxMovement) { - maxMovement = movement; - vec2.copy(out, tmpOut); - } - } - } - }; - }() - }; - return EdgeBundling; -});define('zrender/shape/Star', [ - 'require', - '../tool/math', - './Base', - '../tool/util' -], function (require) { - var math = require('../tool/math'); - var sin = math.sin; - var cos = math.cos; - var PI = Math.PI; - var Base = require('./Base'); - var Star = function (options) { - Base.call(this, options); - }; - Star.prototype = { - type: 'star', - buildPath: function (ctx, style) { - var n = style.n; - if (!n || n < 2) { - return; - } - var x = style.x; - var y = style.y; - var r = style.r; - var r0 = style.r0; - if (r0 == null) { - r0 = n > 4 ? r * cos(2 * PI / n) / cos(PI / n) : r / 3; - } - var dStep = PI / n; - var deg = -PI / 2; - var xStart = x + r * cos(deg); - var yStart = y + r * sin(deg); - deg += dStep; - var pointList = style.pointList = []; - pointList.push([ - xStart, - yStart - ]); - for (var i = 0, end = n * 2 - 1, ri; i < end; i++) { - ri = i % 2 === 0 ? r0 : r; - pointList.push([ - x + ri * cos(deg), - y + ri * sin(deg) - ]); - deg += dStep; - } - pointList.push([ - xStart, - yStart - ]); - ctx.moveTo(pointList[0][0], pointList[0][1]); - for (var i = 0; i < pointList.length; i++) { - ctx.lineTo(pointList[i][0], pointList[i][1]); - } - ctx.closePath(); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - style.__rect = { - x: Math.round(style.x - style.r - lineWidth / 2), - y: Math.round(style.y - style.r - lineWidth / 2), - width: style.r * 2 + lineWidth, - height: style.r * 2 + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Star, Base); - return Star; -});define('zrender/shape/Heart', [ - 'require', - './Base', - './util/PathProxy', - '../tool/area', - '../tool/util' -], function (require) { - 'use strict'; - var Base = require('./Base'); - var PathProxy = require('./util/PathProxy'); - var area = require('../tool/area'); - var Heart = function (options) { - Base.call(this, options); - this._pathProxy = new PathProxy(); - }; - Heart.prototype = { - type: 'heart', - buildPath: function (ctx, style) { - var path = this._pathProxy || new PathProxy(); - path.begin(ctx); - path.moveTo(style.x, style.y); - path.bezierCurveTo(style.x + style.a / 2, style.y - style.b * 2 / 3, style.x + style.a * 2, style.y + style.b / 3, style.x, style.y + style.b); - path.bezierCurveTo(style.x - style.a * 2, style.y + style.b / 3, style.x - style.a / 2, style.y - style.b * 2 / 3, style.x, style.y); - path.closePath(); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - if (!this._pathProxy.isEmpty()) { - this.buildPath(null, style); - } - return this._pathProxy.fastBoundingRect(); - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - if (this.isCoverRect(x, y)) { - return area.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, x, y); - } - } - }; - require('../tool/util').inherits(Heart, Base); - return Heart; -});define('zrender/shape/Droplet', [ - 'require', - './Base', - './util/PathProxy', - '../tool/area', - '../tool/util' -], function (require) { - 'use strict'; - var Base = require('./Base'); - var PathProxy = require('./util/PathProxy'); - var area = require('../tool/area'); - var Droplet = function (options) { - Base.call(this, options); - this._pathProxy = new PathProxy(); - }; - Droplet.prototype = { - type: 'droplet', - buildPath: function (ctx, style) { - var path = this._pathProxy || new PathProxy(); - path.begin(ctx); - path.moveTo(style.x, style.y + style.a); - path.bezierCurveTo(style.x + style.a, style.y + style.a, style.x + style.a * 3 / 2, style.y - style.a / 3, style.x, style.y - style.b); - path.bezierCurveTo(style.x - style.a * 3 / 2, style.y - style.a / 3, style.x - style.a, style.y + style.a, style.x, style.y + style.a); - path.closePath(); - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - if (!this._pathProxy.isEmpty()) { - this.buildPath(null, style); - } - return this._pathProxy.fastBoundingRect(); - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - if (this.isCoverRect(x, y)) { - return area.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, x, y); - } - } - }; - require('../tool/util').inherits(Droplet, Base); - return Droplet; -});define('zrender/tool/math', [], function () { - var _radians = Math.PI / 180; - function sin(angle, isDegrees) { - return Math.sin(isDegrees ? angle * _radians : angle); - } - function cos(angle, isDegrees) { - return Math.cos(isDegrees ? angle * _radians : angle); - } - function degreeToRadian(angle) { - return angle * _radians; - } - function radianToDegree(angle) { - return angle / _radians; - } - return { - sin: sin, - cos: cos, - degreeToRadian: degreeToRadian, - radianToDegree: radianToDegree - }; -});define('zrender/shape/util/PathProxy', [ - 'require', - '../../tool/vector' -], function (require) { - var vector = require('../../tool/vector'); - var PathSegment = function (command, points) { - this.command = command; - this.points = points || null; - }; - var PathProxy = function () { - this.pathCommands = []; - this._ctx = null; - this._min = []; - this._max = []; - }; - PathProxy.prototype.fastBoundingRect = function () { - var min = this._min; - var max = this._max; - min[0] = min[1] = Infinity; - max[0] = max[1] = -Infinity; - for (var i = 0; i < this.pathCommands.length; i++) { - var seg = this.pathCommands[i]; - var p = seg.points; - switch (seg.command) { - case 'M': - vector.min(min, min, p); - vector.max(max, max, p); - break; - case 'L': - vector.min(min, min, p); - vector.max(max, max, p); - break; - case 'C': - for (var j = 0; j < 6; j += 2) { - min[0] = Math.min(min[0], min[0], p[j]); - min[1] = Math.min(min[1], min[1], p[j + 1]); - max[0] = Math.max(max[0], max[0], p[j]); - max[1] = Math.max(max[1], max[1], p[j + 1]); - } - break; - case 'Q': - for (var j = 0; j < 4; j += 2) { - min[0] = Math.min(min[0], min[0], p[j]); - min[1] = Math.min(min[1], min[1], p[j + 1]); - max[0] = Math.max(max[0], max[0], p[j]); - max[1] = Math.max(max[1], max[1], p[j + 1]); - } - break; - case 'A': - var cx = p[0]; - var cy = p[1]; - var rx = p[2]; - var ry = p[3]; - min[0] = Math.min(min[0], min[0], cx - rx); - min[1] = Math.min(min[1], min[1], cy - ry); - max[0] = Math.max(max[0], max[0], cx + rx); - max[1] = Math.max(max[1], max[1], cy + ry); - break; - } - } - return { - x: min[0], - y: min[1], - width: max[0] - min[0], - height: max[1] - min[1] - }; - }; - PathProxy.prototype.begin = function (ctx) { - this._ctx = ctx || null; - this.pathCommands.length = 0; - return this; - }; - PathProxy.prototype.moveTo = function (x, y) { - this.pathCommands.push(new PathSegment('M', [ - x, - y - ])); - if (this._ctx) { - this._ctx.moveTo(x, y); - } - return this; - }; - PathProxy.prototype.lineTo = function (x, y) { - this.pathCommands.push(new PathSegment('L', [ - x, - y - ])); - if (this._ctx) { - this._ctx.lineTo(x, y); - } - return this; - }; - PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) { - this.pathCommands.push(new PathSegment('C', [ - x1, - y1, - x2, - y2, - x3, - y3 - ])); - if (this._ctx) { - this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); - } - return this; - }; - PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) { - this.pathCommands.push(new PathSegment('Q', [ - x1, - y1, - x2, - y2 - ])); - if (this._ctx) { - this._ctx.quadraticCurveTo(x1, y1, x2, y2); - } - return this; - }; - PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) { - this.pathCommands.push(new PathSegment('A', [ - cx, - cy, - r, - r, - startAngle, - endAngle - startAngle, - 0, - anticlockwise ? 0 : 1 - ])); - if (this._ctx) { - this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise); - } - return this; - }; - PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) { - if (this._ctx) { - this._ctx.arcTo(x1, y1, x2, y2, radius); - } - return this; - }; - PathProxy.prototype.rect = function (x, y, w, h) { - if (this._ctx) { - this._ctx.rect(x, y, w, h); - } - return this; - }; - PathProxy.prototype.closePath = function () { - this.pathCommands.push(new PathSegment('z')); - if (this._ctx) { - this._ctx.closePath(); - } - return this; - }; - PathProxy.prototype.isEmpty = function () { - return this.pathCommands.length === 0; - }; - PathProxy.PathSegment = PathSegment; - return PathProxy; -});define('zrender/shape/Line', [ - 'require', - './Base', - './util/dashedLineTo', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var dashedLineTo = require('./util/dashedLineTo'); - var Line = function (options) { - this.brushTypeOnly = 'stroke'; - this.textPosition = 'end'; - Base.call(this, options); - }; - Line.prototype = { - type: 'line', - buildPath: function (ctx, style) { - if (!style.lineType || style.lineType == 'solid') { - ctx.moveTo(style.xStart, style.yStart); - ctx.lineTo(style.xEnd, style.yEnd); - } else if (style.lineType == 'dashed' || style.lineType == 'dotted') { - var dashLength = (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); - dashedLineTo(ctx, style.xStart, style.yStart, style.xEnd, style.yEnd, dashLength); - } - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth = style.lineWidth || 1; - style.__rect = { - x: Math.min(style.xStart, style.xEnd) - lineWidth, - y: Math.min(style.yStart, style.yEnd) - lineWidth, - width: Math.abs(style.xStart - style.xEnd) + lineWidth, - height: Math.abs(style.yStart - style.yEnd) + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Line, Base); - return Line; -});define('zrender/shape/BezierCurve', [ - 'require', - './Base', - '../tool/util' -], function (require) { - 'use strict'; - var Base = require('./Base'); - var BezierCurve = function (options) { - this.brushTypeOnly = 'stroke'; - this.textPosition = 'end'; - Base.call(this, options); - }; - BezierCurve.prototype = { - type: 'bezier-curve', - buildPath: function (ctx, style) { - ctx.moveTo(style.xStart, style.yStart); - if (typeof style.cpX2 != 'undefined' && typeof style.cpY2 != 'undefined') { - ctx.bezierCurveTo(style.cpX1, style.cpY1, style.cpX2, style.cpY2, style.xEnd, style.yEnd); - } else { - ctx.quadraticCurveTo(style.cpX1, style.cpY1, style.xEnd, style.yEnd); - } - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var _minX = Math.min(style.xStart, style.xEnd, style.cpX1); - var _minY = Math.min(style.yStart, style.yEnd, style.cpY1); - var _maxX = Math.max(style.xStart, style.xEnd, style.cpX1); - var _maxY = Math.max(style.yStart, style.yEnd, style.cpY1); - var _x2 = style.cpX2; - var _y2 = style.cpY2; - if (typeof _x2 != 'undefined' && typeof _y2 != 'undefined') { - _minX = Math.min(_minX, _x2); - _minY = Math.min(_minY, _y2); - _maxX = Math.max(_maxX, _x2); - _maxY = Math.max(_maxY, _y2); - } - var lineWidth = style.lineWidth || 1; - style.__rect = { - x: _minX - lineWidth, - y: _minY - lineWidth, - width: _maxX - _minX + lineWidth, - height: _maxY - _minY + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(BezierCurve, Base); - return BezierCurve; -});define('zrender/shape/util/dashedLineTo', [], function () { - var dashPattern = [ - 5, - 5 - ]; - return function (ctx, x1, y1, x2, y2, dashLength) { - if (ctx.setLineDash) { - dashPattern[0] = dashPattern[1] = dashLength; - ctx.setLineDash(dashPattern); - ctx.moveTo(x1, y1); - ctx.lineTo(x2, y2); - return; - } - dashLength = typeof dashLength != 'number' ? 5 : dashLength; - var dx = x2 - x1; - var dy = y2 - y1; - var numDashes = Math.floor(Math.sqrt(dx * dx + dy * dy) / dashLength); - dx = dx / numDashes; - dy = dy / numDashes; - var flag = true; - for (var i = 0; i < numDashes; ++i) { - if (flag) { - ctx.moveTo(x1, y1); - } else { - ctx.lineTo(x1, y1); - } - flag = !flag; - x1 += dx; - y1 += dy; - } - ctx.lineTo(x2, y2); - }; -});define('zrender/shape/Polygon', [ - 'require', - './Base', - './util/smoothSpline', - './util/smoothBezier', - './util/dashedLineTo', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var smoothSpline = require('./util/smoothSpline'); - var smoothBezier = require('./util/smoothBezier'); - var dashedLineTo = require('./util/dashedLineTo'); - var Polygon = function (options) { - Base.call(this, options); - }; - Polygon.prototype = { - type: 'polygon', - buildPath: function (ctx, style) { - var pointList = style.pointList; - if (pointList.length < 2) { - return; - } - if (style.smooth && style.smooth !== 'spline') { - var controlPoints = smoothBezier(pointList, style.smooth, true, style.smoothConstraint); - ctx.moveTo(pointList[0][0], pointList[0][1]); - var cp1; - var cp2; - var p; - var len = pointList.length; - for (var i = 0; i < len; i++) { - cp1 = controlPoints[i * 2]; - cp2 = controlPoints[i * 2 + 1]; - p = pointList[(i + 1) % len]; - ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); - } - } else { - if (style.smooth === 'spline') { - pointList = smoothSpline(pointList, true); - } - if (!style.lineType || style.lineType == 'solid') { - ctx.moveTo(pointList[0][0], pointList[0][1]); - for (var i = 1, l = pointList.length; i < l; i++) { - ctx.lineTo(pointList[i][0], pointList[i][1]); - } - ctx.lineTo(pointList[0][0], pointList[0][1]); - } else if (style.lineType == 'dashed' || style.lineType == 'dotted') { - var dashLength = style._dashLength || (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); - style._dashLength = dashLength; - ctx.moveTo(pointList[0][0], pointList[0][1]); - for (var i = 1, l = pointList.length; i < l; i++) { - dashedLineTo(ctx, pointList[i - 1][0], pointList[i - 1][1], pointList[i][0], pointList[i][1], dashLength); - } - dashedLineTo(ctx, pointList[pointList.length - 1][0], pointList[pointList.length - 1][1], pointList[0][0], pointList[0][1], dashLength); - } - } - ctx.closePath(); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var minX = Number.MAX_VALUE; - var maxX = Number.MIN_VALUE; - var minY = Number.MAX_VALUE; - var maxY = Number.MIN_VALUE; - var pointList = style.pointList; - for (var i = 0, l = pointList.length; i < l; i++) { - if (pointList[i][0] < minX) { - minX = pointList[i][0]; - } - if (pointList[i][0] > maxX) { - maxX = pointList[i][0]; - } - if (pointList[i][1] < minY) { - minY = pointList[i][1]; - } - if (pointList[i][1] > maxY) { - maxY = pointList[i][1]; - } - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - style.__rect = { - x: Math.round(minX - lineWidth / 2), - y: Math.round(minY - lineWidth / 2), - width: maxX - minX + lineWidth, - height: maxY - minY + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Polygon, Base); - return Polygon; -});define('echarts/util/shape/normalIsCover', [], function () { - return function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - return this.isCoverRect(x, y); - }; -});define('zrender/shape/util/smoothSpline', [ - 'require', - '../../tool/vector' -], function (require) { - var vector = require('../../tool/vector'); - function interpolate(p0, p1, p2, p3, t, t2, t3) { - var v0 = (p2 - p0) * 0.5; - var v1 = (p3 - p1) * 0.5; - return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1; - } - return function (points, isLoop, constraint) { - var len = points.length; - var ret = []; - var distance = 0; - for (var i = 1; i < len; i++) { - distance += vector.distance(points[i - 1], points[i]); - } - var segs = distance / 5; - segs = segs < len ? len : segs; - for (var i = 0; i < segs; i++) { - var pos = i / (segs - 1) * (isLoop ? len : len - 1); - var idx = Math.floor(pos); - var w = pos - idx; - var p0; - var p1 = points[idx % len]; - var p2; - var p3; - if (!isLoop) { - p0 = points[idx === 0 ? idx : idx - 1]; - p2 = points[idx > len - 2 ? len - 1 : idx + 1]; - p3 = points[idx > len - 3 ? len - 1 : idx + 2]; - } else { - p0 = points[(idx - 1 + len) % len]; - p2 = points[(idx + 1) % len]; - p3 = points[(idx + 2) % len]; - } - var w2 = w * w; - var w3 = w * w2; - ret.push([ - interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3), - interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3) - ]); - } - return ret; - }; -});define('zrender/shape/util/smoothBezier', [ - 'require', - '../../tool/vector' -], function (require) { - var vector = require('../../tool/vector'); - return function (points, smooth, isLoop, constraint) { - var cps = []; - var v = []; - var v1 = []; - var v2 = []; - var prevPoint; - var nextPoint; - var hasConstraint = !!constraint; - var min, max; - if (hasConstraint) { - min = [ - Infinity, - Infinity - ]; - max = [ - -Infinity, - -Infinity - ]; - for (var i = 0, len = points.length; i < len; i++) { - vector.min(min, min, points[i]); - vector.max(max, max, points[i]); - } - vector.min(min, min, constraint[0]); - vector.max(max, max, constraint[1]); - } - for (var i = 0, len = points.length; i < len; i++) { - var point = points[i]; - var prevPoint; - var nextPoint; - if (isLoop) { - prevPoint = points[i ? i - 1 : len - 1]; - nextPoint = points[(i + 1) % len]; - } else { - if (i === 0 || i === len - 1) { - cps.push(vector.clone(points[i])); - continue; - } else { - prevPoint = points[i - 1]; - nextPoint = points[i + 1]; - } - } - vector.sub(v, nextPoint, prevPoint); - vector.scale(v, v, smooth); - var d0 = vector.distance(point, prevPoint); - var d1 = vector.distance(point, nextPoint); - var sum = d0 + d1; - if (sum !== 0) { - d0 /= sum; - d1 /= sum; - } - vector.scale(v1, v, -d0); - vector.scale(v2, v, d1); - var cp0 = vector.add([], point, v1); - var cp1 = vector.add([], point, v2); - if (hasConstraint) { - vector.max(cp0, cp0, min); - vector.min(cp0, cp0, max); - vector.max(cp1, cp1, min); - vector.min(cp1, cp1, max); - } - cps.push(cp0); - cps.push(cp1); - } - if (isLoop) { - cps.push(vector.clone(cps.shift())); - } - return cps; - }; -});define('echarts/util/ecQuery', [ - 'require', - 'zrender/tool/util' -], function (require) { - var zrUtil = require('zrender/tool/util'); - function query(optionTarget, optionLocation) { - if (typeof optionTarget == 'undefined') { - return; - } - if (!optionLocation) { - return optionTarget; - } - optionLocation = optionLocation.split('.'); - var length = optionLocation.length; - var curIdx = 0; - while (curIdx < length) { - optionTarget = optionTarget[optionLocation[curIdx]]; - if (typeof optionTarget == 'undefined') { - return; - } - curIdx++; - } - return optionTarget; - } - function deepQuery(ctrList, optionLocation) { - var finalOption; - for (var i = 0, l = ctrList.length; i < l; i++) { - finalOption = query(ctrList[i], optionLocation); - if (typeof finalOption != 'undefined') { - return finalOption; - } - } - } - function deepMerge(ctrList, optionLocation) { - var finalOption; - var len = ctrList.length; - while (len--) { - var tempOption = query(ctrList[len], optionLocation); - if (typeof tempOption != 'undefined') { - if (typeof finalOption == 'undefined') { - finalOption = zrUtil.clone(tempOption); - } else { - zrUtil.merge(finalOption, tempOption, true); - } - } - } - return finalOption; - } - return { - query: query, - deepQuery: deepQuery, - deepMerge: deepMerge - }; -});define('echarts/util/number', [], function () { - function _trim(str) { - return str.replace(/^\s+/, '').replace(/\s+$/, ''); - } - function parsePercent(value, maxValue) { - if (typeof value === 'string') { - if (_trim(value).match(/%$/)) { - return parseFloat(value) / 100 * maxValue; - } - return parseFloat(value); - } - return value; - } - function parseCenter(zr, center) { - return [ - parsePercent(center[0], zr.getWidth()), - parsePercent(center[1], zr.getHeight()) - ]; - } - function parseRadius(zr, radius) { - if (!(radius instanceof Array)) { - radius = [ - 0, - radius - ]; - } - var zrSize = Math.min(zr.getWidth(), zr.getHeight()) / 2; - return [ - parsePercent(radius[0], zrSize), - parsePercent(radius[1], zrSize) - ]; - } - function addCommas(x) { - if (isNaN(x)) { - return '-'; - } - x = (x + '').split('.'); - return x[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, '$1,') + (x.length > 1 ? '.' + x[1] : ''); - } - function getPrecision(val) { - var e = 1; - var count = 0; - while (Math.round(val * e) / e !== val) { - e *= 10; - count++; - } - return count; - } - return { - parsePercent: parsePercent, - parseCenter: parseCenter, - parseRadius: parseRadius, - addCommas: addCommas, - getPrecision: getPrecision - }; -});define('echarts/data/KDTree', [ - 'require', - './quickSelect' -], function (require) { - var quickSelect = require('./quickSelect'); - function Node(axis, data) { - this.left = null; - this.right = null; - this.axis = axis; - this.data = data; - } - var KDTree = function (points, dimension) { - if (!points.length) { - return; - } - if (!dimension) { - dimension = points[0].array.length; - } - this.dimension = dimension; - this.root = this._buildTree(points, 0, points.length - 1, 0); - this._stack = []; - this._nearstNList = []; - }; - KDTree.prototype._buildTree = function (points, left, right, axis) { - if (right < left) { - return null; - } - var medianIndex = Math.floor((left + right) / 2); - medianIndex = quickSelect(points, left, right, medianIndex, function (a, b) { - return a.array[axis] - b.array[axis]; - }); - var median = points[medianIndex]; - var node = new Node(axis, median); - axis = (axis + 1) % this.dimension; - if (right > left) { - node.left = this._buildTree(points, left, medianIndex - 1, axis); - node.right = this._buildTree(points, medianIndex + 1, right, axis); - } - return node; - }; - KDTree.prototype.nearest = function (target, squaredDistance) { - var curr = this.root; - var stack = this._stack; - var idx = 0; - var minDist = Infinity; - var nearestNode = null; - if (curr.data !== target) { - minDist = squaredDistance(curr.data, target); - nearestNode = curr; - } - if (target.array[curr.axis] < curr.data.array[curr.axis]) { - curr.right && (stack[idx++] = curr.right); - curr.left && (stack[idx++] = curr.left); - } else { - curr.left && (stack[idx++] = curr.left); - curr.right && (stack[idx++] = curr.right); - } - while (idx--) { - curr = stack[idx]; - var currDist = target.array[curr.axis] - curr.data.array[curr.axis]; - var isLeft = currDist < 0; - var needsCheckOtherSide = false; - currDist = currDist * currDist; - if (currDist < minDist) { - currDist = squaredDistance(curr.data, target); - if (currDist < minDist && curr.data !== target) { - minDist = currDist; - nearestNode = curr; - } - needsCheckOtherSide = true; - } - if (isLeft) { - if (needsCheckOtherSide) { - curr.right && (stack[idx++] = curr.right); - } - curr.left && (stack[idx++] = curr.left); - } else { - if (needsCheckOtherSide) { - curr.left && (stack[idx++] = curr.left); - } - curr.right && (stack[idx++] = curr.right); - } - } - return nearestNode.data; - }; - KDTree.prototype._addNearest = function (found, dist, node) { - var nearestNList = this._nearstNList; - for (var i = found - 1; i > 0; i--) { - if (dist >= nearestNList[i - 1].dist) { - break; - } else { - nearestNList[i].dist = nearestNList[i - 1].dist; - nearestNList[i].node = nearestNList[i - 1].node; - } - } - nearestNList[i].dist = dist; - nearestNList[i].node = node; - }; - KDTree.prototype.nearestN = function (target, N, squaredDistance, output) { - if (N <= 0) { - output.length = 0; - return output; - } - var curr = this.root; - var stack = this._stack; - var idx = 0; - var nearestNList = this._nearstNList; - for (var i = 0; i < N; i++) { - if (!nearestNList[i]) { - nearestNList[i] = {}; - } - nearestNList[i].dist = 0; - nearestNList[i].node = null; - } - var currDist = squaredDistance(curr.data, target); - var found = 0; - if (curr.data !== target) { - found++; - this._addNearest(found, currDist, curr); - } - if (target.array[curr.axis] < curr.data.array[curr.axis]) { - curr.right && (stack[idx++] = curr.right); - curr.left && (stack[idx++] = curr.left); - } else { - curr.left && (stack[idx++] = curr.left); - curr.right && (stack[idx++] = curr.right); - } - while (idx--) { - curr = stack[idx]; - var currDist = target.array[curr.axis] - curr.data.array[curr.axis]; - var isLeft = currDist < 0; - var needsCheckOtherSide = false; - currDist = currDist * currDist; - if (found < N || currDist < nearestNList[found - 1].dist) { - currDist = squaredDistance(curr.data, target); - if ((found < N || currDist < nearestNList[found - 1].dist) && curr.data !== target) { - if (found < N) { - found++; - } - this._addNearest(found, currDist, curr); - } - needsCheckOtherSide = true; - } - if (isLeft) { - if (needsCheckOtherSide) { - curr.right && (stack[idx++] = curr.right); - } - curr.left && (stack[idx++] = curr.left); - } else { - if (needsCheckOtherSide) { - curr.left && (stack[idx++] = curr.left); - } - curr.right && (stack[idx++] = curr.right); - } - } - for (var i = 0; i < found; i++) { - output[i] = nearestNList[i].node.data; - } - output.length = found; - return output; - }; - return KDTree; -});define('echarts/data/quickSelect', ['require'], function (require) { - function defaultCompareFunc(a, b) { - return a - b; - } - function swapElement(list, idx0, idx1) { - var tmp = list[idx0]; - list[idx0] = list[idx1]; - list[idx1] = tmp; - } - function select(list, left, right, nth, compareFunc) { - var pivotIdx = left; - while (right > left) { - var pivotIdx = Math.round((right + left) / 2); - var pivotValue = list[pivotIdx]; - swapElement(list, pivotIdx, right); - pivotIdx = left; - for (var i = left; i <= right - 1; i++) { - if (compareFunc(pivotValue, list[i]) >= 0) { - swapElement(list, i, pivotIdx); - pivotIdx++; - } - } - swapElement(list, right, pivotIdx); - if (pivotIdx === nth) { - return pivotIdx; - } else if (pivotIdx < nth) { - left = pivotIdx + 1; - } else { - right = pivotIdx - 1; - } - } - return left; - } - function quickSelect(list, left, right, nth, compareFunc) { - if (arguments.length <= 3) { - nth = left; - if (arguments.length == 2) { - compareFunc = defaultCompareFunc; - } else { - compareFunc = right; - } - left = 0; - right = list.length - 1; - } - return select(list, left, right, nth, compareFunc); - } - return quickSelect; -});define('echarts/component/dataView', [ - 'require', - './base', - '../config', - 'zrender/tool/util', - '../component' -], function (require) { - var Base = require('./base'); - var ecConfig = require('../config'); - var zrUtil = require('zrender/tool/util'); - function DataView(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.dom = myChart.dom; - this._tDom = document.createElement('div'); - this._textArea = document.createElement('textArea'); - this._buttonRefresh = document.createElement('button'); - this._buttonRefresh.setAttribute('type', 'button'); - this._buttonClose = document.createElement('button'); - this._buttonClose.setAttribute('type', 'button'); - this._hasShow = false; - this._zrHeight = zr.getHeight(); - this._zrWidth = zr.getWidth(); - this._tDom.className = 'echarts-dataview'; - this.hide(); - this.dom.firstChild.appendChild(this._tDom); - if (window.addEventListener) { - this._tDom.addEventListener('click', this._stop); - this._tDom.addEventListener('mousewheel', this._stop); - this._tDom.addEventListener('mousemove', this._stop); - this._tDom.addEventListener('mousedown', this._stop); - this._tDom.addEventListener('mouseup', this._stop); - this._tDom.addEventListener('touchstart', this._stop); - this._tDom.addEventListener('touchmove', this._stop); - this._tDom.addEventListener('touchend', this._stop); - } else { - this._tDom.attachEvent('onclick', this._stop); - this._tDom.attachEvent('onmousewheel', this._stop); - this._tDom.attachEvent('onmousemove', this._stop); - this._tDom.attachEvent('onmousedown', this._stop); - this._tDom.attachEvent('onmouseup', this._stop); - } - } - DataView.prototype = { - type: ecConfig.COMPONENT_TYPE_DATAVIEW, - _lang: [ - 'Data View', - 'close', - 'refresh' - ], - _gCssText: 'position:absolute;' + 'display:block;' + 'overflow:hidden;' + 'transition:height 0.8s,background-color 1s;' + '-moz-transition:height 0.8s,background-color 1s;' + '-webkit-transition:height 0.8s,background-color 1s;' + '-o-transition:height 0.8s,background-color 1s;' + 'z-index:1;' + 'left:0;' + 'top:0;', - hide: function () { - this._sizeCssText = 'width:' + this._zrWidth + 'px;' + 'height:' + 0 + 'px;' + 'background-color:#f0ffff;'; - this._tDom.style.cssText = this._gCssText + this._sizeCssText; - }, - show: function (newOption) { - this._hasShow = true; - var lang = this.query(this.option, 'toolbox.feature.dataView.lang') || this._lang; - this.option = newOption; - this._tDom.innerHTML = '

' + (lang[0] || this._lang[0]) + '

'; - var customContent = this.query(this.option, 'toolbox.feature.dataView.optionToContent'); - if (typeof customContent != 'function') { - this._textArea.value = this._optionToContent(); - } else { - this._textArea = document.createElement('div'); - this._textArea.innerHTML = customContent(this.option); - } - this._textArea.style.cssText = 'display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;' + 'width:100%;' + 'height:' + (this._zrHeight - 100) + 'px;'; - this._tDom.appendChild(this._textArea); - this._buttonClose.style.cssText = 'float:right;padding:1px 6px;'; - this._buttonClose.innerHTML = lang[1] || this._lang[1]; - var self = this; - this._buttonClose.onclick = function () { - self.hide(); - }; - this._tDom.appendChild(this._buttonClose); - if (this.query(this.option, 'toolbox.feature.dataView.readOnly') === false) { - this._buttonRefresh.style.cssText = 'float:right;margin-right:10px;padding:1px 6px;'; - this._buttonRefresh.innerHTML = lang[2] || this._lang[2]; - this._buttonRefresh.onclick = function () { - self._save(); - }; - this._textArea.readOnly = false; - this._textArea.style.cursor = 'default'; - } else { - this._buttonRefresh.style.cssText = 'display:none'; - this._textArea.readOnly = true; - this._textArea.style.cursor = 'text'; - } - this._tDom.appendChild(this._buttonRefresh); - this._sizeCssText = 'width:' + this._zrWidth + 'px;' + 'height:' + this._zrHeight + 'px;' + 'background-color:#fff;'; - this._tDom.style.cssText = this._gCssText + this._sizeCssText; - }, - _optionToContent: function () { - var i; - var j; - var k; - var len; - var data; - var valueList; - var axisList = []; - var content = ''; - if (this.option.xAxis) { - if (this.option.xAxis instanceof Array) { - axisList = this.option.xAxis; - } else { - axisList = [this.option.xAxis]; - } - for (i = 0, len = axisList.length; i < len; i++) { - if ((axisList[i].type || 'category') == 'category') { - valueList = []; - for (j = 0, k = axisList[i].data.length; j < k; j++) { - valueList.push(this.getDataFromOption(axisList[i].data[j])); - } - content += valueList.join(', ') + '\n\n'; - } - } - } - if (this.option.yAxis) { - if (this.option.yAxis instanceof Array) { - axisList = this.option.yAxis; - } else { - axisList = [this.option.yAxis]; - } - for (i = 0, len = axisList.length; i < len; i++) { - if (axisList[i].type == 'category') { - valueList = []; - for (j = 0, k = axisList[i].data.length; j < k; j++) { - valueList.push(this.getDataFromOption(axisList[i].data[j])); - } - content += valueList.join(', ') + '\n\n'; - } - } - } - var series = this.option.series; - var itemName; - for (i = 0, len = series.length; i < len; i++) { - valueList = []; - for (j = 0, k = series[i].data.length; j < k; j++) { - data = series[i].data[j]; - if (series[i].type == ecConfig.CHART_TYPE_PIE || series[i].type == ecConfig.CHART_TYPE_MAP) { - itemName = (data.name || '-') + ':'; - } else { - itemName = ''; - } - if (series[i].type == ecConfig.CHART_TYPE_SCATTER) { - data = this.getDataFromOption(data).join(', '); - } - valueList.push(itemName + this.getDataFromOption(data)); - } - content += (series[i].name || '-') + ' : \n'; - content += valueList.join(series[i].type == ecConfig.CHART_TYPE_SCATTER ? '\n' : ', '); - content += '\n\n'; - } - return content; - }, - _save: function () { - var customContent = this.query(this.option, 'toolbox.feature.dataView.contentToOption'); - if (typeof customContent != 'function') { - var text = this._textArea.value.split('\n'); - var content = []; - for (var i = 0, l = text.length; i < l; i++) { - text[i] = this._trim(text[i]); - if (text[i] !== '') { - content.push(text[i]); - } - } - this._contentToOption(content); - } else { - customContent(this._textArea, this.option); - } - this.hide(); - var self = this; - setTimeout(function () { - self.messageCenter && self.messageCenter.dispatch(ecConfig.EVENT.DATA_VIEW_CHANGED, null, { option: self.option }, self.myChart); - }, self.canvasSupported ? 800 : 100); - }, - _contentToOption: function (content) { - var i; - var j; - var k; - var len; - var data; - var axisList = []; - var contentIdx = 0; - var contentValueList; - var value; - if (this.option.xAxis) { - if (this.option.xAxis instanceof Array) { - axisList = this.option.xAxis; - } else { - axisList = [this.option.xAxis]; - } - for (i = 0, len = axisList.length; i < len; i++) { - if ((axisList[i].type || 'category') == 'category') { - contentValueList = content[contentIdx].split(','); - for (j = 0, k = axisList[i].data.length; j < k; j++) { - value = this._trim(contentValueList[j] || ''); - data = axisList[i].data[j]; - if (typeof axisList[i].data[j].value != 'undefined') { - axisList[i].data[j].value = value; - } else { - axisList[i].data[j] = value; - } - } - contentIdx++; - } - } - } - if (this.option.yAxis) { - if (this.option.yAxis instanceof Array) { - axisList = this.option.yAxis; - } else { - axisList = [this.option.yAxis]; - } - for (i = 0, len = axisList.length; i < len; i++) { - if (axisList[i].type == 'category') { - contentValueList = content[contentIdx].split(','); - for (j = 0, k = axisList[i].data.length; j < k; j++) { - value = this._trim(contentValueList[j] || ''); - data = axisList[i].data[j]; - if (typeof axisList[i].data[j].value != 'undefined') { - axisList[i].data[j].value = value; - } else { - axisList[i].data[j] = value; - } - } - contentIdx++; - } - } - } - var series = this.option.series; - for (i = 0, len = series.length; i < len; i++) { - contentIdx++; - if (series[i].type == ecConfig.CHART_TYPE_SCATTER) { - for (var j = 0, k = series[i].data.length; j < k; j++) { - contentValueList = content[contentIdx]; - value = contentValueList.replace(' ', '').split(','); - if (typeof series[i].data[j].value != 'undefined') { - series[i].data[j].value = value; - } else { - series[i].data[j] = value; - } - contentIdx++; - } - } else { - contentValueList = content[contentIdx].split(','); - for (var j = 0, k = series[i].data.length; j < k; j++) { - value = (contentValueList[j] || '').replace(/.*:/, ''); - value = this._trim(value); - value = value != '-' && value !== '' ? value - 0 : '-'; - if (typeof series[i].data[j].value != 'undefined') { - series[i].data[j].value = value; - } else { - series[i].data[j] = value; - } - } - contentIdx++; - } - } - }, - _trim: function (str) { - var trimer = new RegExp('(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)', 'g'); - return str.replace(trimer, ''); - }, - _stop: function (e) { - e = e || window.event; - if (e.stopPropagation) { - e.stopPropagation(); - } else { - e.cancelBubble = true; - } - }, - resize: function () { - this._zrHeight = this.zr.getHeight(); - this._zrWidth = this.zr.getWidth(); - if (this._tDom.offsetHeight > 10) { - this._sizeCssText = 'width:' + this._zrWidth + 'px;' + 'height:' + this._zrHeight + 'px;' + 'background-color:#fff;'; - this._tDom.style.cssText = this._gCssText + this._sizeCssText; - this._textArea.style.cssText = 'display:block;margin:0 0 8px 0;' + 'padding:4px 6px;overflow:auto;' + 'width:100%;' + 'height:' + (this._zrHeight - 100) + 'px;'; - } - }, - dispose: function () { - if (window.removeEventListener) { - this._tDom.removeEventListener('click', this._stop); - this._tDom.removeEventListener('mousewheel', this._stop); - this._tDom.removeEventListener('mousemove', this._stop); - this._tDom.removeEventListener('mousedown', this._stop); - this._tDom.removeEventListener('mouseup', this._stop); - this._tDom.removeEventListener('touchstart', this._stop); - this._tDom.removeEventListener('touchmove', this._stop); - this._tDom.removeEventListener('touchend', this._stop); - } else { - this._tDom.detachEvent('onclick', this._stop); - this._tDom.detachEvent('onmousewheel', this._stop); - this._tDom.detachEvent('onmousemove', this._stop); - this._tDom.detachEvent('onmousedown', this._stop); - this._tDom.detachEvent('onmouseup', this._stop); - } - this._buttonRefresh.onclick = null; - this._buttonClose.onclick = null; - if (this._hasShow) { - this._tDom.removeChild(this._textArea); - this._tDom.removeChild(this._buttonRefresh); - this._tDom.removeChild(this._buttonClose); - } - this._textArea = null; - this._buttonRefresh = null; - this._buttonClose = null; - this.dom.firstChild.removeChild(this._tDom); - this._tDom = null; - } - }; - zrUtil.inherits(DataView, Base); - require('../component').define('dataView', DataView); - return DataView; -});define('echarts/util/shape/Cross', [ - 'require', - 'zrender/shape/Base', - 'zrender/shape/Line', - 'zrender/tool/util', - './normalIsCover' -], function (require) { - var Base = require('zrender/shape/Base'); - var LineShape = require('zrender/shape/Line'); - var zrUtil = require('zrender/tool/util'); - function Cross(options) { - Base.call(this, options); - } - Cross.prototype = { - type: 'cross', - buildPath: function (ctx, style) { - var rect = style.rect; - style.xStart = rect.x; - style.xEnd = rect.x + rect.width; - style.yStart = style.yEnd = style.y; - LineShape.prototype.buildPath(ctx, style); - style.xStart = style.xEnd = style.x; - style.yStart = rect.y; - style.yEnd = rect.y + rect.height; - LineShape.prototype.buildPath(ctx, style); - }, - getRect: function (style) { - return style.rect; - }, - isCover: require('./normalIsCover') - }; - zrUtil.inherits(Cross, Base); - return Cross; -});define('zrender/shape/Sector', [ - 'require', - '../tool/math', - '../tool/computeBoundingBox', - '../tool/vector', - './Base', - '../tool/util' -], function (require) { - var math = require('../tool/math'); - var computeBoundingBox = require('../tool/computeBoundingBox'); - var vec2 = require('../tool/vector'); - var Base = require('./Base'); - var min0 = vec2.create(); - var min1 = vec2.create(); - var max0 = vec2.create(); - var max1 = vec2.create(); - var Sector = function (options) { - Base.call(this, options); - }; - Sector.prototype = { - type: 'sector', - buildPath: function (ctx, style) { - var x = style.x; - var y = style.y; - var r0 = style.r0 || 0; - var r = style.r; - var startAngle = style.startAngle; - var endAngle = style.endAngle; - var clockWise = style.clockWise || false; - startAngle = math.degreeToRadian(startAngle); - endAngle = math.degreeToRadian(endAngle); - if (!clockWise) { - startAngle = -startAngle; - endAngle = -endAngle; - } - var unitX = math.cos(startAngle); - var unitY = math.sin(startAngle); - ctx.moveTo(unitX * r0 + x, unitY * r0 + y); - ctx.lineTo(unitX * r + x, unitY * r + y); - ctx.arc(x, y, r, startAngle, endAngle, !clockWise); - ctx.lineTo(math.cos(endAngle) * r0 + x, math.sin(endAngle) * r0 + y); - if (r0 !== 0) { - ctx.arc(x, y, r0, endAngle, startAngle, clockWise); - } - ctx.closePath(); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var x = style.x; - var y = style.y; - var r0 = style.r0 || 0; - var r = style.r; - var startAngle = math.degreeToRadian(style.startAngle); - var endAngle = math.degreeToRadian(style.endAngle); - var clockWise = style.clockWise; - if (!clockWise) { - startAngle = -startAngle; - endAngle = -endAngle; - } - if (r0 > 1) { - computeBoundingBox.arc(x, y, r0, startAngle, endAngle, !clockWise, min0, max0); - } else { - min0[0] = max0[0] = x; - min0[1] = max0[1] = y; - } - computeBoundingBox.arc(x, y, r, startAngle, endAngle, !clockWise, min1, max1); - vec2.min(min0, min0, min1); - vec2.max(max0, max0, max1); - style.__rect = { - x: min0[0], - y: min0[1], - width: max0[0] - min0[0], - height: max0[1] - min0[1] - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Sector, Base); - return Sector; -});define('echarts/util/shape/Candle', [ - 'require', - 'zrender/shape/Base', - 'zrender/tool/util', - './normalIsCover' -], function (require) { - var Base = require('zrender/shape/Base'); - var zrUtil = require('zrender/tool/util'); - function Candle(options) { - Base.call(this, options); - } - Candle.prototype = { - type: 'candle', - _numberOrder: function (a, b) { - return b - a; - }, - buildPath: function (ctx, style) { - var yList = zrUtil.clone(style.y).sort(this._numberOrder); - ctx.moveTo(style.x, yList[3]); - ctx.lineTo(style.x, yList[2]); - ctx.moveTo(style.x - style.width / 2, yList[2]); - ctx.rect(style.x - style.width / 2, yList[2], style.width, yList[1] - yList[2]); - ctx.moveTo(style.x, yList[1]); - ctx.lineTo(style.x, yList[0]); - }, - getRect: function (style) { - if (!style.__rect) { - var lineWidth = 0; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } - var yList = zrUtil.clone(style.y).sort(this._numberOrder); - style.__rect = { - x: Math.round(style.x - style.width / 2 - lineWidth / 2), - y: Math.round(yList[3] - lineWidth / 2), - width: style.width + lineWidth, - height: yList[0] - yList[3] + lineWidth - }; - } - return style.__rect; - }, - isCover: require('./normalIsCover') - }; - zrUtil.inherits(Candle, Base); - return Candle; -});define('zrender/tool/computeBoundingBox', [ - 'require', - './vector', - './curve' -], function (require) { - var vec2 = require('./vector'); - var curve = require('./curve'); - function computeBoundingBox(points, min, max) { - if (points.length === 0) { - return; - } - var left = points[0][0]; - var right = points[0][0]; - var top = points[0][1]; - var bottom = points[0][1]; - for (var i = 1; i < points.length; i++) { - var p = points[i]; - if (p[0] < left) { - left = p[0]; - } - if (p[0] > right) { - right = p[0]; - } - if (p[1] < top) { - top = p[1]; - } - if (p[1] > bottom) { - bottom = p[1]; - } - } - min[0] = left; - min[1] = top; - max[0] = right; - max[1] = bottom; - } - function computeCubeBezierBoundingBox(p0, p1, p2, p3, min, max) { - var xDim = []; - curve.cubicExtrema(p0[0], p1[0], p2[0], p3[0], xDim); - for (var i = 0; i < xDim.length; i++) { - xDim[i] = curve.cubicAt(p0[0], p1[0], p2[0], p3[0], xDim[i]); - } - var yDim = []; - curve.cubicExtrema(p0[1], p1[1], p2[1], p3[1], yDim); - for (var i = 0; i < yDim.length; i++) { - yDim[i] = curve.cubicAt(p0[1], p1[1], p2[1], p3[1], yDim[i]); - } - xDim.push(p0[0], p3[0]); - yDim.push(p0[1], p3[1]); - var left = Math.min.apply(null, xDim); - var right = Math.max.apply(null, xDim); - var top = Math.min.apply(null, yDim); - var bottom = Math.max.apply(null, yDim); - min[0] = left; - min[1] = top; - max[0] = right; - max[1] = bottom; - } - function computeQuadraticBezierBoundingBox(p0, p1, p2, min, max) { - var t1 = curve.quadraticExtremum(p0[0], p1[0], p2[0]); - var t2 = curve.quadraticExtremum(p0[1], p1[1], p2[1]); - t1 = Math.max(Math.min(t1, 1), 0); - t2 = Math.max(Math.min(t2, 1), 0); - var ct1 = 1 - t1; - var ct2 = 1 - t2; - var x1 = ct1 * ct1 * p0[0] + 2 * ct1 * t1 * p1[0] + t1 * t1 * p2[0]; - var y1 = ct1 * ct1 * p0[1] + 2 * ct1 * t1 * p1[1] + t1 * t1 * p2[1]; - var x2 = ct2 * ct2 * p0[0] + 2 * ct2 * t2 * p1[0] + t2 * t2 * p2[0]; - var y2 = ct2 * ct2 * p0[1] + 2 * ct2 * t2 * p1[1] + t2 * t2 * p2[1]; - min[0] = Math.min(p0[0], p2[0], x1, x2); - min[1] = Math.min(p0[1], p2[1], y1, y2); - max[0] = Math.max(p0[0], p2[0], x1, x2); - max[1] = Math.max(p0[1], p2[1], y1, y2); - } - var start = vec2.create(); - var end = vec2.create(); - var extremity = vec2.create(); - var computeArcBoundingBox = function (x, y, r, startAngle, endAngle, anticlockwise, min, max) { - if (Math.abs(startAngle - endAngle) >= Math.PI * 2) { - min[0] = x - r; - min[1] = y - r; - max[0] = x + r; - max[1] = y + r; - return; - } - start[0] = Math.cos(startAngle) * r + x; - start[1] = Math.sin(startAngle) * r + y; - end[0] = Math.cos(endAngle) * r + x; - end[1] = Math.sin(endAngle) * r + y; - vec2.min(min, start, end); - vec2.max(max, start, end); - startAngle = startAngle % (Math.PI * 2); - if (startAngle < 0) { - startAngle = startAngle + Math.PI * 2; - } - endAngle = endAngle % (Math.PI * 2); - if (endAngle < 0) { - endAngle = endAngle + Math.PI * 2; - } - if (startAngle > endAngle && !anticlockwise) { - endAngle += Math.PI * 2; - } else if (startAngle < endAngle && anticlockwise) { - startAngle += Math.PI * 2; - } - if (anticlockwise) { - var tmp = endAngle; - endAngle = startAngle; - startAngle = tmp; - } - for (var angle = 0; angle < endAngle; angle += Math.PI / 2) { - if (angle > startAngle) { - extremity[0] = Math.cos(angle) * r + x; - extremity[1] = Math.sin(angle) * r + y; - vec2.min(min, extremity, min); - vec2.max(max, extremity, max); - } - } - }; - computeBoundingBox.cubeBezier = computeCubeBezierBoundingBox; - computeBoundingBox.quadraticBezier = computeQuadraticBezierBoundingBox; - computeBoundingBox.arc = computeArcBoundingBox; - return computeBoundingBox; -});define('echarts/util/shape/Chain', [ - 'require', - 'zrender/shape/Base', - './Icon', - 'zrender/shape/util/dashedLineTo', - 'zrender/tool/util', - 'zrender/tool/matrix' -], function (require) { - var Base = require('zrender/shape/Base'); - var IconShape = require('./Icon'); - var dashedLineTo = require('zrender/shape/util/dashedLineTo'); - var zrUtil = require('zrender/tool/util'); - var matrix = require('zrender/tool/matrix'); - function Chain(options) { - Base.call(this, options); - } - Chain.prototype = { - type: 'chain', - brush: function (ctx, isHighlight) { - var style = this.style; - if (isHighlight) { - style = this.getHighlightStyle(style, this.highlightStyle || {}); - } - ctx.save(); - this.setContext(ctx, style); - this.setTransform(ctx); - ctx.save(); - ctx.beginPath(); - this.buildLinePath(ctx, style); - ctx.stroke(); - ctx.restore(); - this.brushSymbol(ctx, style); - ctx.restore(); - return; - }, - buildLinePath: function (ctx, style) { - var x = style.x; - var y = style.y + 5; - var width = style.width; - var height = style.height / 2 - 10; - ctx.moveTo(x, y); - ctx.lineTo(x, y + height); - ctx.moveTo(x + width, y); - ctx.lineTo(x + width, y + height); - ctx.moveTo(x, y + height / 2); - if (!style.lineType || style.lineType == 'solid') { - ctx.lineTo(x + width, y + height / 2); - } else if (style.lineType == 'dashed' || style.lineType == 'dotted') { - var dashLength = (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); - dashedLineTo(ctx, x, y + height / 2, x + width, y + height / 2, dashLength); - } - }, - brushSymbol: function (ctx, style) { - var y = style.y + style.height / 4; - ctx.save(); - var chainPoint = style.chainPoint; - var curPoint; - for (var idx = 0, l = chainPoint.length; idx < l; idx++) { - curPoint = chainPoint[idx]; - if (curPoint.symbol != 'none') { - ctx.beginPath(); - var symbolSize = curPoint.symbolSize; - IconShape.prototype.buildPath(ctx, { - iconType: curPoint.symbol, - x: curPoint.x - symbolSize, - y: y - symbolSize, - width: symbolSize * 2, - height: symbolSize * 2, - n: curPoint.n - }); - ctx.fillStyle = curPoint.isEmpty ? '#fff' : style.strokeColor; - ctx.closePath(); - ctx.fill(); - ctx.stroke(); - } - if (curPoint.showLabel) { - ctx.font = curPoint.textFont; - ctx.fillStyle = curPoint.textColor; - ctx.textAlign = curPoint.textAlign; - ctx.textBaseline = curPoint.textBaseline; - if (curPoint.rotation) { - ctx.save(); - this._updateTextTransform(ctx, curPoint.rotation); - ctx.fillText(curPoint.name, curPoint.textX, curPoint.textY); - ctx.restore(); - } else { - ctx.fillText(curPoint.name, curPoint.textX, curPoint.textY); - } - } - } - ctx.restore(); - }, - _updateTextTransform: function (ctx, rotation) { - var _transform = matrix.create(); - matrix.identity(_transform); - if (rotation[0] !== 0) { - var originX = rotation[1] || 0; - var originY = rotation[2] || 0; - if (originX || originY) { - matrix.translate(_transform, _transform, [ - -originX, - -originY - ]); - } - matrix.rotate(_transform, _transform, rotation[0]); - if (originX || originY) { - matrix.translate(_transform, _transform, [ - originX, - originY - ]); - } - } - ctx.transform.apply(ctx, _transform); - }, - isCover: function (x, y) { - var rect = this.style; - if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) { - return true; - } else { - return false; - } - } - }; - zrUtil.inherits(Chain, Base); - return Chain; -});define('zrender/shape/Ring', [ - 'require', - './Base', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var Ring = function (options) { - Base.call(this, options); - }; - Ring.prototype = { - type: 'ring', - buildPath: function (ctx, style) { - ctx.arc(style.x, style.y, style.r, 0, Math.PI * 2, false); - ctx.moveTo(style.x + style.r0, style.y); - ctx.arc(style.x, style.y, style.r0, 0, Math.PI * 2, true); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - style.__rect = { - x: Math.round(style.x - style.r - lineWidth / 2), - y: Math.round(style.y - style.r - lineWidth / 2), - width: style.r * 2 + lineWidth, - height: style.r * 2 + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Ring, Base); - return Ring; -});define('echarts/component/axis', [ - 'require', - './base', - 'zrender/shape/Line', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/color', - './categoryAxis', - './valueAxis', - '../component' -], function (require) { - var Base = require('./base'); - var LineShape = require('zrender/shape/Line'); - var ecConfig = require('../config'); - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function Axis(ecTheme, messageCenter, zr, option, myChart, axisType) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.axisType = axisType; - this._axisList = []; - this.refresh(option); - } - Axis.prototype = { - type: ecConfig.COMPONENT_TYPE_AXIS, - axisBase: { - _buildAxisLine: function () { - var lineWidth = this.option.axisLine.lineStyle.width; - var halfLineWidth = lineWidth / 2; - var axShape = { - _axisShape: 'axisLine', - zlevel: this.getZlevelBase(), - z: this.getZBase() + 3, - hoverable: false - }; - var grid = this.grid; - switch (this.option.position) { - case 'left': - axShape.style = { - xStart: grid.getX() - halfLineWidth, - yStart: grid.getYend(), - xEnd: grid.getX() - halfLineWidth, - yEnd: grid.getY(), - lineCap: 'round' - }; - break; - case 'right': - axShape.style = { - xStart: grid.getXend() + halfLineWidth, - yStart: grid.getYend(), - xEnd: grid.getXend() + halfLineWidth, - yEnd: grid.getY(), - lineCap: 'round' - }; - break; - case 'bottom': - axShape.style = { - xStart: grid.getX(), - yStart: grid.getYend() + halfLineWidth, - xEnd: grid.getXend(), - yEnd: grid.getYend() + halfLineWidth, - lineCap: 'round' - }; - break; - case 'top': - axShape.style = { - xStart: grid.getX(), - yStart: grid.getY() - halfLineWidth, - xEnd: grid.getXend(), - yEnd: grid.getY() - halfLineWidth, - lineCap: 'round' - }; - break; - } - var style = axShape.style; - if (this.option.name !== '') { - style.text = this.option.name; - style.textPosition = this.option.nameLocation; - style.textFont = this.getFont(this.option.nameTextStyle); - if (this.option.nameTextStyle.align) { - style.textAlign = this.option.nameTextStyle.align; - } - if (this.option.nameTextStyle.baseline) { - style.textBaseline = this.option.nameTextStyle.baseline; - } - if (this.option.nameTextStyle.color) { - style.textColor = this.option.nameTextStyle.color; - } - } - style.strokeColor = this.option.axisLine.lineStyle.color; - style.lineWidth = lineWidth; - if (this.isHorizontal()) { - style.yStart = style.yEnd = this.subPixelOptimize(style.yEnd, lineWidth); - } else { - style.xStart = style.xEnd = this.subPixelOptimize(style.xEnd, lineWidth); - } - style.lineType = this.option.axisLine.lineStyle.type; - axShape = new LineShape(axShape); - this.shapeList.push(axShape); - }, - _axisLabelClickable: function (clickable, axShape) { - if (clickable) { - ecData.pack(axShape, undefined, -1, undefined, -1, axShape.style.text); - axShape.hoverable = true; - axShape.clickable = true; - axShape.highlightStyle = { - color: zrColor.lift(axShape.style.color, 1), - brushType: 'fill' - }; - return axShape; - } else { - return axShape; - } - }, - refixAxisShape: function (zeroX, zeroY) { - if (!this.option.axisLine.onZero) { - return; - } - var tickLength; - if (this.isHorizontal() && zeroY != null) { - for (var i = 0, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i]._axisShape === 'axisLine') { - this.shapeList[i].style.yStart = this.shapeList[i].style.yEnd = this.subPixelOptimize(zeroY, this.shapeList[i].stylelineWidth); - this.zr.modShape(this.shapeList[i].id); - } else if (this.shapeList[i]._axisShape === 'axisTick') { - tickLength = this.shapeList[i].style.yEnd - this.shapeList[i].style.yStart; - this.shapeList[i].style.yStart = zeroY - tickLength; - this.shapeList[i].style.yEnd = zeroY; - this.zr.modShape(this.shapeList[i].id); - } - } - } - if (!this.isHorizontal() && zeroX != null) { - for (var i = 0, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i]._axisShape === 'axisLine') { - this.shapeList[i].style.xStart = this.shapeList[i].style.xEnd = this.subPixelOptimize(zeroX, this.shapeList[i].stylelineWidth); - this.zr.modShape(this.shapeList[i].id); - } else if (this.shapeList[i]._axisShape === 'axisTick') { - tickLength = this.shapeList[i].style.xEnd - this.shapeList[i].style.xStart; - this.shapeList[i].style.xStart = zeroX; - this.shapeList[i].style.xEnd = zeroX + tickLength; - this.zr.modShape(this.shapeList[i].id); - } - } - } - }, - getPosition: function () { - return this.option.position; - }, - isHorizontal: function () { - return this.option.position === 'bottom' || this.option.position === 'top'; - } - }, - reformOption: function (opt) { - if (!opt || opt instanceof Array && opt.length === 0) { - opt = [{ type: ecConfig.COMPONENT_TYPE_AXIS_VALUE }]; - } else if (!(opt instanceof Array)) { - opt = [opt]; - } - if (opt.length > 2) { - opt = [ - opt[0], - opt[1] - ]; - } - if (this.axisType === 'xAxis') { - if (!opt[0].position || opt[0].position != 'bottom' && opt[0].position != 'top') { - opt[0].position = 'bottom'; - } - if (opt.length > 1) { - opt[1].position = opt[0].position === 'bottom' ? 'top' : 'bottom'; - } - for (var i = 0, l = opt.length; i < l; i++) { - opt[i].type = opt[i].type || 'category'; - opt[i].xAxisIndex = i; - opt[i].yAxisIndex = -1; - } - } else { - if (!opt[0].position || opt[0].position != 'left' && opt[0].position != 'right') { - opt[0].position = 'left'; - } - if (opt.length > 1) { - opt[1].position = opt[0].position === 'left' ? 'right' : 'left'; - } - for (var i = 0, l = opt.length; i < l; i++) { - opt[i].type = opt[i].type || 'value'; - opt[i].xAxisIndex = -1; - opt[i].yAxisIndex = i; - } - } - return opt; - }, - refresh: function (newOption) { - var axisOption; - if (newOption) { - this.option = newOption; - if (this.axisType === 'xAxis') { - this.option.xAxis = this.reformOption(newOption.xAxis); - axisOption = this.option.xAxis; - } else { - this.option.yAxis = this.reformOption(newOption.yAxis); - axisOption = this.option.yAxis; - } - this.series = newOption.series; - } - var CategoryAxis = require('./categoryAxis'); - var ValueAxis = require('./valueAxis'); - var len = Math.max(axisOption && axisOption.length || 0, this._axisList.length); - for (var i = 0; i < len; i++) { - if (this._axisList[i] && newOption && (!axisOption[i] || this._axisList[i].type != axisOption[i].type)) { - this._axisList[i].dispose && this._axisList[i].dispose(); - this._axisList[i] = false; - } - if (this._axisList[i]) { - this._axisList[i].refresh && this._axisList[i].refresh(axisOption ? axisOption[i] : false, this.series); - } else if (axisOption && axisOption[i]) { - this._axisList[i] = axisOption[i].type === 'category' ? new CategoryAxis(this.ecTheme, this.messageCenter, this.zr, axisOption[i], this.myChart, this.axisBase) : new ValueAxis(this.ecTheme, this.messageCenter, this.zr, axisOption[i], this.myChart, this.axisBase, this.series); - } - } - }, - getAxis: function (idx) { - return this._axisList[idx]; - }, - getAxisCount: function () { - return this._axisList.length; - }, - clear: function () { - for (var i = 0, l = this._axisList.length; i < l; i++) { - this._axisList[i].dispose && this._axisList[i].dispose(); - } - this._axisList = []; - } - }; - zrUtil.inherits(Axis, Base); - require('../component').define('axis', Axis); - return Axis; -});define('echarts/component/grid', [ - 'require', - './base', - 'zrender/shape/Rectangle', - '../config', - 'zrender/tool/util', - '../component' -], function (require) { - var Base = require('./base'); - var RectangleShape = require('zrender/shape/Rectangle'); - var ecConfig = require('../config'); - ecConfig.grid = { - zlevel: 0, - z: 0, - x: 80, - y: 60, - x2: 80, - y2: 60, - backgroundColor: 'rgba(0,0,0,0)', - borderWidth: 1, - borderColor: '#ccc' - }; - var zrUtil = require('zrender/tool/util'); - function Grid(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Grid.prototype = { - type: ecConfig.COMPONENT_TYPE_GRID, - getX: function () { - return this._x; - }, - getY: function () { - return this._y; - }, - getWidth: function () { - return this._width; - }, - getHeight: function () { - return this._height; - }, - getXend: function () { - return this._x + this._width; - }, - getYend: function () { - return this._y + this._height; - }, - getArea: function () { - return { - x: this._x, - y: this._y, - width: this._width, - height: this._height - }; - }, - getBbox: function () { - return [ - [ - this._x, - this._y - ], - [ - this.getXend(), - this.getYend() - ] - ]; - }, - refixAxisShape: function (component) { - var zeroX; - var zeroY; - var axisList = component.xAxis._axisList.concat(component.yAxis ? component.yAxis._axisList : []); - var len = axisList.length; - var axis; - while (len--) { - axis = axisList[len]; - if (axis.type == ecConfig.COMPONENT_TYPE_AXIS_VALUE && axis._min < 0 && axis._max >= 0) { - axis.isHorizontal() ? zeroX = axis.getCoord(0) : zeroY = axis.getCoord(0); - } - } - if (typeof zeroX != 'undefined' || typeof zeroY != 'undefined') { - len = axisList.length; - while (len--) { - axisList[len].refixAxisShape(zeroX, zeroY); - } - } - }, - refresh: function (newOption) { - if (newOption || this._zrWidth != this.zr.getWidth() || this._zrHeight != this.zr.getHeight()) { - this.clear(); - this.option = newOption || this.option; - this.option.grid = this.reformOption(this.option.grid); - var gridOption = this.option.grid; - this._zrWidth = this.zr.getWidth(); - this._zrHeight = this.zr.getHeight(); - this._x = this.parsePercent(gridOption.x, this._zrWidth); - this._y = this.parsePercent(gridOption.y, this._zrHeight); - var x2 = this.parsePercent(gridOption.x2, this._zrWidth); - var y2 = this.parsePercent(gridOption.y2, this._zrHeight); - if (typeof gridOption.width == 'undefined') { - this._width = this._zrWidth - this._x - x2; - } else { - this._width = this.parsePercent(gridOption.width, this._zrWidth); - } - this._width = this._width <= 0 ? 10 : this._width; - if (typeof gridOption.height == 'undefined') { - this._height = this._zrHeight - this._y - y2; - } else { - this._height = this.parsePercent(gridOption.height, this._zrHeight); - } - this._height = this._height <= 0 ? 10 : this._height; - this._x = this.subPixelOptimize(this._x, gridOption.borderWidth); - this._y = this.subPixelOptimize(this._y, gridOption.borderWidth); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._x, - y: this._y, - width: this._width, - height: this._height, - brushType: gridOption.borderWidth > 0 ? 'both' : 'fill', - color: gridOption.backgroundColor, - strokeColor: gridOption.borderColor, - lineWidth: gridOption.borderWidth - } - })); - this.zr.addShape(this.shapeList[0]); - } - } - }; - zrUtil.inherits(Grid, Base); - require('../component').define('grid', Grid); - return Grid; -});define('echarts/component/dataZoom', [ - 'require', - './base', - 'zrender/shape/Rectangle', - 'zrender/shape/Polygon', - '../util/shape/Icon', - '../config', - '../util/date', - 'zrender/tool/util', - '../component' -], function (require) { - var Base = require('./base'); - var RectangleShape = require('zrender/shape/Rectangle'); - var PolygonShape = require('zrender/shape/Polygon'); - var IconShape = require('../util/shape/Icon'); - var ecConfig = require('../config'); - ecConfig.dataZoom = { - zlevel: 0, - z: 4, - show: false, - orient: 'horizontal', - backgroundColor: 'rgba(0,0,0,0)', - dataBackgroundColor: '#eee', - fillerColor: 'rgba(144,197,237,0.2)', - handleColor: 'rgba(70,130,180,0.8)', - handleSize: 8, - showDetail: true, - realtime: true - }; - var ecDate = require('../util/date'); - var zrUtil = require('zrender/tool/util'); - function DataZoom(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._ondrift = function (dx, dy) { - return self.__ondrift(this, dx, dy); - }; - self._ondragend = function () { - return self.__ondragend(); - }; - this._fillerSize = 30; - this._isSilence = false; - this._zoom = {}; - this.option.dataZoom = this.reformOption(this.option.dataZoom); - this.zoomOption = this.option.dataZoom; - this._handleSize = this.zoomOption.handleSize; - if (!this.myChart.canvasSupported) { - this.zoomOption.realtime = false; - } - this._location = this._getLocation(); - this._zoom = this._getZoom(); - this._backupData(); - if (this.option.dataZoom.show) { - this._buildShape(); - } - this._syncData(); - } - DataZoom.prototype = { - type: ecConfig.COMPONENT_TYPE_DATAZOOM, - _buildShape: function () { - this._buildBackground(); - this._buildFiller(); - this._buildHandle(); - this._buildFrame(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - this._syncFrameShape(); - }, - _getLocation: function () { - var x; - var y; - var width; - var height; - var grid = this.component.grid; - if (this.zoomOption.orient == 'horizontal') { - width = this.zoomOption.width || grid.getWidth(); - height = this.zoomOption.height || this._fillerSize; - x = this.zoomOption.x != null ? this.zoomOption.x : grid.getX(); - y = this.zoomOption.y != null ? this.zoomOption.y : this.zr.getHeight() - height - 2; - } else { - width = this.zoomOption.width || this._fillerSize; - height = this.zoomOption.height || grid.getHeight(); - x = this.zoomOption.x != null ? this.zoomOption.x : 2; - y = this.zoomOption.y != null ? this.zoomOption.y : grid.getY(); - } - return { - x: x, - y: y, - width: width, - height: height - }; - }, - _getZoom: function () { - var series = this.option.series; - var xAxis = this.option.xAxis; - if (xAxis && !(xAxis instanceof Array)) { - xAxis = [xAxis]; - this.option.xAxis = xAxis; - } - var yAxis = this.option.yAxis; - if (yAxis && !(yAxis instanceof Array)) { - yAxis = [yAxis]; - this.option.yAxis = yAxis; - } - var zoomSeriesIndex = []; - var xAxisIndex; - var yAxisIndex; - var zOptIdx = this.zoomOption.xAxisIndex; - if (xAxis && zOptIdx == null) { - xAxisIndex = []; - for (var i = 0, l = xAxis.length; i < l; i++) { - if (xAxis[i].type == 'category' || xAxis[i].type == null) { - xAxisIndex.push(i); - } - } - } else { - if (zOptIdx instanceof Array) { - xAxisIndex = zOptIdx; - } else if (zOptIdx != null) { - xAxisIndex = [zOptIdx]; - } else { - xAxisIndex = []; - } - } - zOptIdx = this.zoomOption.yAxisIndex; - if (yAxis && zOptIdx == null) { - yAxisIndex = []; - for (var i = 0, l = yAxis.length; i < l; i++) { - if (yAxis[i].type == 'category') { - yAxisIndex.push(i); - } - } - } else { - if (zOptIdx instanceof Array) { - yAxisIndex = zOptIdx; - } else if (zOptIdx != null) { - yAxisIndex = [zOptIdx]; - } else { - yAxisIndex = []; - } - } - var serie; - for (var i = 0, l = series.length; i < l; i++) { - serie = series[i]; - if (serie.type != ecConfig.CHART_TYPE_LINE && serie.type != ecConfig.CHART_TYPE_BAR && serie.type != ecConfig.CHART_TYPE_SCATTER && serie.type != ecConfig.CHART_TYPE_K) { - continue; - } - for (var j = 0, k = xAxisIndex.length; j < k; j++) { - if (xAxisIndex[j] == (serie.xAxisIndex || 0)) { - zoomSeriesIndex.push(i); - break; - } - } - for (var j = 0, k = yAxisIndex.length; j < k; j++) { - if (yAxisIndex[j] == (serie.yAxisIndex || 0)) { - zoomSeriesIndex.push(i); - break; - } - } - if (this.zoomOption.xAxisIndex == null && this.zoomOption.yAxisIndex == null && serie.data && this.getDataFromOption(serie.data[0]) instanceof Array && (serie.type == ecConfig.CHART_TYPE_SCATTER || serie.type == ecConfig.CHART_TYPE_LINE || serie.type == ecConfig.CHART_TYPE_BAR)) { - zoomSeriesIndex.push(i); - } - } - var start = this._zoom.start != null ? this._zoom.start : this.zoomOption.start != null ? this.zoomOption.start : 0; - var end = this._zoom.end != null ? this._zoom.end : this.zoomOption.end != null ? this.zoomOption.end : 100; - if (start > end) { - start = start + end; - end = start - end; - start = start - end; - } - var size = Math.round((end - start) / 100 * (this.zoomOption.orient == 'horizontal' ? this._location.width : this._location.height)); - return { - start: start, - end: end, - start2: 0, - end2: 100, - size: size, - xAxisIndex: xAxisIndex, - yAxisIndex: yAxisIndex, - seriesIndex: zoomSeriesIndex, - scatterMap: this._zoom.scatterMap || {} - }; - }, - _backupData: function () { - this._originalData = { - xAxis: {}, - yAxis: {}, - series: {} - }; - var xAxis = this.option.xAxis; - var xAxisIndex = this._zoom.xAxisIndex; - for (var i = 0, l = xAxisIndex.length; i < l; i++) { - this._originalData.xAxis[xAxisIndex[i]] = xAxis[xAxisIndex[i]].data; - } - var yAxis = this.option.yAxis; - var yAxisIndex = this._zoom.yAxisIndex; - for (var i = 0, l = yAxisIndex.length; i < l; i++) { - this._originalData.yAxis[yAxisIndex[i]] = yAxis[yAxisIndex[i]].data; - } - var series = this.option.series; - var seriesIndex = this._zoom.seriesIndex; - var serie; - for (var i = 0, l = seriesIndex.length; i < l; i++) { - serie = series[seriesIndex[i]]; - this._originalData.series[seriesIndex[i]] = serie.data; - if (serie.data && this.getDataFromOption(serie.data[0]) instanceof Array && (serie.type == ecConfig.CHART_TYPE_SCATTER || serie.type == ecConfig.CHART_TYPE_LINE || serie.type == ecConfig.CHART_TYPE_BAR)) { - this._backupScale(); - this._calculScatterMap(seriesIndex[i]); - } - } - }, - _calculScatterMap: function (seriesIndex) { - this._zoom.scatterMap = this._zoom.scatterMap || {}; - this._zoom.scatterMap[seriesIndex] = this._zoom.scatterMap[seriesIndex] || {}; - var componentLibrary = require('../component'); - var Axis = componentLibrary.get('axis'); - var axisOption = zrUtil.clone(this.option.xAxis); - if (axisOption[0].type == 'category') { - axisOption[0].type = 'value'; - } - if (axisOption[1] && axisOption[1].type == 'category') { - axisOption[1].type = 'value'; - } - var vAxis = new Axis(this.ecTheme, null, false, { - xAxis: axisOption, - series: this.option.series - }, this, 'xAxis'); - var axisIndex = this.option.series[seriesIndex].xAxisIndex || 0; - this._zoom.scatterMap[seriesIndex].x = vAxis.getAxis(axisIndex).getExtremum(); - vAxis.dispose(); - axisOption = zrUtil.clone(this.option.yAxis); - if (axisOption[0].type == 'category') { - axisOption[0].type = 'value'; - } - if (axisOption[1] && axisOption[1].type == 'category') { - axisOption[1].type = 'value'; - } - vAxis = new Axis(this.ecTheme, null, false, { - yAxis: axisOption, - series: this.option.series - }, this, 'yAxis'); - axisIndex = this.option.series[seriesIndex].yAxisIndex || 0; - this._zoom.scatterMap[seriesIndex].y = vAxis.getAxis(axisIndex).getExtremum(); - vAxis.dispose(); - }, - _buildBackground: function () { - var width = this._location.width; - var height = this._location.height; - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._location.x, - y: this._location.y, - width: width, - height: height, - color: this.zoomOption.backgroundColor - } - })); - var maxLength = 0; - var xAxis = this._originalData.xAxis; - var xAxisIndex = this._zoom.xAxisIndex; - for (var i = 0, l = xAxisIndex.length; i < l; i++) { - maxLength = Math.max(maxLength, xAxis[xAxisIndex[i]].length); - } - var yAxis = this._originalData.yAxis; - var yAxisIndex = this._zoom.yAxisIndex; - for (var i = 0, l = yAxisIndex.length; i < l; i++) { - maxLength = Math.max(maxLength, yAxis[yAxisIndex[i]].length); - } - var seriesIndex = this._zoom.seriesIndex[0]; - var data = this._originalData.series[seriesIndex]; - var maxValue = Number.MIN_VALUE; - var minValue = Number.MAX_VALUE; - var value; - for (var i = 0, l = data.length; i < l; i++) { - value = this.getDataFromOption(data[i], 0); - if (this.option.series[seriesIndex].type == ecConfig.CHART_TYPE_K) { - value = value[1]; - } - if (isNaN(value)) { - value = 0; - } - maxValue = Math.max(maxValue, value); - minValue = Math.min(minValue, value); - } - var valueRange = maxValue - minValue; - var pointList = []; - var x = width / (maxLength - (maxLength > 1 ? 1 : 0)); - var y = height / (maxLength - (maxLength > 1 ? 1 : 0)); - var step = 1; - if (this.zoomOption.orient == 'horizontal' && x < 1) { - step = Math.floor(maxLength * 3 / width); - } else if (this.zoomOption.orient == 'vertical' && y < 1) { - step = Math.floor(maxLength * 3 / height); - } - for (var i = 0, l = maxLength; i < l; i += step) { - value = this.getDataFromOption(data[i], 0); - if (this.option.series[seriesIndex].type == ecConfig.CHART_TYPE_K) { - value = value[1]; - } - if (isNaN(value)) { - value = 0; - } - if (this.zoomOption.orient == 'horizontal') { - pointList.push([ - this._location.x + x * i, - this._location.y + height - 1 - Math.round((value - minValue) / valueRange * (height - 10)) - ]); - } else { - pointList.push([ - this._location.x + 1 + Math.round((value - minValue) / valueRange * (width - 10)), - this._location.y + y * (l - i - 1) - ]); - } - } - if (this.zoomOption.orient == 'horizontal') { - pointList.push([ - this._location.x + width, - this._location.y + height - ]); - pointList.push([ - this._location.x, - this._location.y + height - ]); - } else { - pointList.push([ - this._location.x, - this._location.y - ]); - pointList.push([ - this._location.x, - this._location.y + height - ]); - } - this.shapeList.push(new PolygonShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - pointList: pointList, - color: this.zoomOption.dataBackgroundColor - }, - hoverable: false - })); - }, - _buildFiller: function () { - this._fillerShae = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - draggable: true, - ondrift: this._ondrift, - ondragend: this._ondragend, - _type: 'filler' - }; - if (this.zoomOption.orient == 'horizontal') { - this._fillerShae.style = { - x: this._location.x + Math.round(this._zoom.start / 100 * this._location.width) + this._handleSize, - y: this._location.y, - width: this._zoom.size - this._handleSize * 2, - height: this._location.height, - color: this.zoomOption.fillerColor, - text: ':::', - textPosition: 'inside' - }; - } else { - this._fillerShae.style = { - x: this._location.x, - y: this._location.y + Math.round(this._zoom.start / 100 * this._location.height) + this._handleSize, - width: this._location.width, - height: this._zoom.size - this._handleSize * 2, - color: this.zoomOption.fillerColor, - text: '::', - textPosition: 'inside' - }; - } - this._fillerShae.highlightStyle = { - brushType: 'fill', - color: 'rgba(0,0,0,0)' - }; - this._fillerShae = new RectangleShape(this._fillerShae); - this.shapeList.push(this._fillerShae); - }, - _buildHandle: function () { - var detail = this.zoomOption.showDetail ? this._getDetail() : { - start: '', - end: '' - }; - this._startShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - draggable: true, - style: { - iconType: 'rectangle', - x: this._location.x, - y: this._location.y, - width: this._handleSize, - height: this._handleSize, - color: this.zoomOption.handleColor, - text: '=', - textPosition: 'inside' - }, - highlightStyle: { - text: detail.start, - brushType: 'fill', - textPosition: 'left' - }, - ondrift: this._ondrift, - ondragend: this._ondragend - }; - if (this.zoomOption.orient == 'horizontal') { - this._startShape.style.height = this._location.height; - this._endShape = zrUtil.clone(this._startShape); - this._startShape.style.x = this._fillerShae.style.x - this._handleSize, this._endShape.style.x = this._fillerShae.style.x + this._fillerShae.style.width; - this._endShape.highlightStyle.text = detail.end; - this._endShape.highlightStyle.textPosition = 'right'; - } else { - this._startShape.style.width = this._location.width; - this._endShape = zrUtil.clone(this._startShape); - this._startShape.style.y = this._fillerShae.style.y + this._fillerShae.style.height; - this._startShape.highlightStyle.textPosition = 'bottom'; - this._endShape.style.y = this._fillerShae.style.y - this._handleSize; - this._endShape.highlightStyle.text = detail.end; - this._endShape.highlightStyle.textPosition = 'top'; - } - this._startShape = new IconShape(this._startShape); - this._endShape = new IconShape(this._endShape); - this.shapeList.push(this._startShape); - this.shapeList.push(this._endShape); - }, - _buildFrame: function () { - var x = this.subPixelOptimize(this._location.x, 1); - var y = this.subPixelOptimize(this._location.y, 1); - this._startFrameShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: x, - y: y, - width: this._location.width - (x > this._location.x ? 1 : 0), - height: this._location.height - (y > this._location.y ? 1 : 0), - lineWidth: 1, - brushType: 'stroke', - strokeColor: this.zoomOption.handleColor - } - }; - this._endFrameShape = zrUtil.clone(this._startFrameShape); - this._startFrameShape = new RectangleShape(this._startFrameShape); - this._endFrameShape = new RectangleShape(this._endFrameShape); - this.shapeList.push(this._startFrameShape); - this.shapeList.push(this._endFrameShape); - return; - }, - _syncHandleShape: function () { - if (this.zoomOption.orient == 'horizontal') { - this._startShape.style.x = this._fillerShae.style.x - this._handleSize; - this._endShape.style.x = this._fillerShae.style.x + this._fillerShae.style.width; - this._zoom.start = (this._startShape.style.x - this._location.x) / this._location.width * 100; - this._zoom.end = (this._endShape.style.x + this._handleSize - this._location.x) / this._location.width * 100; - } else { - this._startShape.style.y = this._fillerShae.style.y + this._fillerShae.style.height; - this._endShape.style.y = this._fillerShae.style.y - this._handleSize; - this._zoom.start = (this._location.y + this._location.height - this._startShape.style.y) / this._location.height * 100; - this._zoom.end = (this._location.y + this._location.height - this._endShape.style.y - this._handleSize) / this._location.height * 100; - } - this.zr.modShape(this._startShape.id); - this.zr.modShape(this._endShape.id); - this._syncFrameShape(); - this.zr.refreshNextFrame(); - }, - _syncFillerShape: function () { - var a; - var b; - if (this.zoomOption.orient == 'horizontal') { - a = this._startShape.style.x; - b = this._endShape.style.x; - this._fillerShae.style.x = Math.min(a, b) + this._handleSize; - this._fillerShae.style.width = Math.abs(a - b) - this._handleSize; - this._zoom.start = (Math.min(a, b) - this._location.x) / this._location.width * 100; - this._zoom.end = (Math.max(a, b) + this._handleSize - this._location.x) / this._location.width * 100; - } else { - a = this._startShape.style.y; - b = this._endShape.style.y; - this._fillerShae.style.y = Math.min(a, b) + this._handleSize; - this._fillerShae.style.height = Math.abs(a - b) - this._handleSize; - this._zoom.start = (this._location.y + this._location.height - Math.max(a, b)) / this._location.height * 100; - this._zoom.end = (this._location.y + this._location.height - Math.min(a, b) - this._handleSize) / this._location.height * 100; - } - this.zr.modShape(this._fillerShae.id); - this._syncFrameShape(); - this.zr.refreshNextFrame(); - }, - _syncFrameShape: function () { - if (this.zoomOption.orient == 'horizontal') { - this._startFrameShape.style.width = this._fillerShae.style.x - this._location.x; - this._endFrameShape.style.x = this._fillerShae.style.x + this._fillerShae.style.width; - this._endFrameShape.style.width = this._location.x + this._location.width - this._endFrameShape.style.x; - } else { - this._startFrameShape.style.y = this._fillerShae.style.y + this._fillerShae.style.height; - this._startFrameShape.style.height = this._location.y + this._location.height - this._startFrameShape.style.y; - this._endFrameShape.style.height = this._fillerShae.style.y - this._location.y; - } - this.zr.modShape(this._startFrameShape.id); - this.zr.modShape(this._endFrameShape.id); - }, - _syncShape: function () { - if (!this.zoomOption.show) { - return; - } - if (this.zoomOption.orient == 'horizontal') { - this._startShape.style.x = this._location.x + this._zoom.start / 100 * this._location.width; - this._endShape.style.x = this._location.x + this._zoom.end / 100 * this._location.width - this._handleSize; - this._fillerShae.style.x = this._startShape.style.x + this._handleSize; - this._fillerShae.style.width = this._endShape.style.x - this._startShape.style.x - this._handleSize; - } else { - this._startShape.style.y = this._location.y + this._location.height - this._zoom.start / 100 * this._location.height; - this._endShape.style.y = this._location.y + this._location.height - this._zoom.end / 100 * this._location.height - this._handleSize; - this._fillerShae.style.y = this._endShape.style.y + this._handleSize; - this._fillerShae.style.height = this._startShape.style.y - this._endShape.style.y - this._handleSize; - } - this.zr.modShape(this._startShape.id); - this.zr.modShape(this._endShape.id); - this.zr.modShape(this._fillerShae.id); - this._syncFrameShape(); - this.zr.refresh(); - }, - _syncData: function (dispatchNow) { - var target; - var start; - var end; - var length; - var data; - for (var key in this._originalData) { - target = this._originalData[key]; - for (var idx in target) { - data = target[idx]; - if (data == null) { - continue; - } - length = data.length; - start = Math.floor(this._zoom.start / 100 * length); - end = Math.ceil(this._zoom.end / 100 * length); - if (!(this.getDataFromOption(data[0]) instanceof Array) || this.option[key][idx].type == ecConfig.CHART_TYPE_K) { - this.option[key][idx].data = data.slice(start, end); - } else { - this._setScale(); - this.option[key][idx].data = this._synScatterData(idx, data); - } - } - } - if (!this._isSilence && (this.zoomOption.realtime || dispatchNow)) { - this.messageCenter.dispatch(ecConfig.EVENT.DATA_ZOOM, null, { zoom: this._zoom }, this.myChart); - } - }, - _synScatterData: function (seriesIndex, data) { - if (this._zoom.start === 0 && this._zoom.end == 100 && this._zoom.start2 === 0 && this._zoom.end2 == 100) { - return data; - } - var newData = []; - var scale = this._zoom.scatterMap[seriesIndex]; - var total; - var xStart; - var xEnd; - var yStart; - var yEnd; - if (this.zoomOption.orient == 'horizontal') { - total = scale.x.max - scale.x.min; - xStart = this._zoom.start / 100 * total + scale.x.min; - xEnd = this._zoom.end / 100 * total + scale.x.min; - total = scale.y.max - scale.y.min; - yStart = this._zoom.start2 / 100 * total + scale.y.min; - yEnd = this._zoom.end2 / 100 * total + scale.y.min; - } else { - total = scale.x.max - scale.x.min; - xStart = this._zoom.start2 / 100 * total + scale.x.min; - xEnd = this._zoom.end2 / 100 * total + scale.x.min; - total = scale.y.max - scale.y.min; - yStart = this._zoom.start / 100 * total + scale.y.min; - yEnd = this._zoom.end / 100 * total + scale.y.min; - } - var dataMappingMethods; - if (dataMappingMethods = scale.x.dataMappingMethods) { - xStart = dataMappingMethods.coord2Value(xStart); - xEnd = dataMappingMethods.coord2Value(xEnd); - } - if (dataMappingMethods = scale.y.dataMappingMethods) { - yStart = dataMappingMethods.coord2Value(yStart); - yEnd = dataMappingMethods.coord2Value(yEnd); - } - var value; - for (var i = 0, l = data.length; i < l; i++) { - value = data[i].value || data[i]; - if (value[0] >= xStart && value[0] <= xEnd && value[1] >= yStart && value[1] <= yEnd) { - newData.push(data[i]); - } - } - return newData; - }, - _setScale: function () { - var needScale = this._zoom.start !== 0 || this._zoom.end !== 100 || this._zoom.start2 !== 0 || this._zoom.end2 !== 100; - var axis = { - xAxis: this.option.xAxis, - yAxis: this.option.yAxis - }; - for (var key in axis) { - for (var i = 0, l = axis[key].length; i < l; i++) { - axis[key][i].scale = needScale || axis[key][i]._scale; - } - } - }, - _backupScale: function () { - var axis = { - xAxis: this.option.xAxis, - yAxis: this.option.yAxis - }; - for (var key in axis) { - for (var i = 0, l = axis[key].length; i < l; i++) { - axis[key][i]._scale = axis[key][i].scale; - } - } - }, - _getDetail: function () { - var key = [ - 'xAxis', - 'yAxis' - ]; - for (var i = 0, l = key.length; i < l; i++) { - var target = this._originalData[key[i]]; - for (var idx in target) { - var data = target[idx]; - if (data == null) { - continue; - } - var length = data.length; - var start = Math.floor(this._zoom.start / 100 * length); - var end = Math.ceil(this._zoom.end / 100 * length); - end -= end > 0 ? 1 : 0; - return { - start: this.getDataFromOption(data[start]), - end: this.getDataFromOption(data[end]) - }; - } - } - key = this.zoomOption.orient == 'horizontal' ? 'xAxis' : 'yAxis'; - var seriesIndex = this._zoom.seriesIndex[0]; - var axisIndex = this.option.series[seriesIndex][key + 'Index'] || 0; - var axisType = this.option[key][axisIndex].type; - var min = this._zoom.scatterMap[seriesIndex][key.charAt(0)].min; - var max = this._zoom.scatterMap[seriesIndex][key.charAt(0)].max; - var gap = max - min; - if (axisType == 'value') { - return { - start: min + gap * this._zoom.start / 100, - end: min + gap * this._zoom.end / 100 - }; - } else if (axisType == 'time') { - max = min + gap * this._zoom.end / 100; - min = min + gap * this._zoom.start / 100; - var formatter = ecDate.getAutoFormatter(min, max).formatter; - return { - start: ecDate.format(formatter, min), - end: ecDate.format(formatter, max) - }; - } - return { - start: '', - end: '' - }; - }, - __ondrift: function (shape, dx, dy) { - if (this.zoomOption.zoomLock) { - shape = this._fillerShae; - } - var detailSize = shape._type == 'filler' ? this._handleSize : 0; - if (this.zoomOption.orient == 'horizontal') { - if (shape.style.x + dx - detailSize <= this._location.x) { - shape.style.x = this._location.x + detailSize; - } else if (shape.style.x + dx + shape.style.width + detailSize >= this._location.x + this._location.width) { - shape.style.x = this._location.x + this._location.width - shape.style.width - detailSize; - } else { - shape.style.x += dx; - } - } else { - if (shape.style.y + dy - detailSize <= this._location.y) { - shape.style.y = this._location.y + detailSize; - } else if (shape.style.y + dy + shape.style.height + detailSize >= this._location.y + this._location.height) { - shape.style.y = this._location.y + this._location.height - shape.style.height - detailSize; - } else { - shape.style.y += dy; - } - } - if (shape._type == 'filler') { - this._syncHandleShape(); - } else { - this._syncFillerShape(); - } - if (this.zoomOption.realtime) { - this._syncData(); - } - if (this.zoomOption.showDetail) { - var detail = this._getDetail(); - this._startShape.style.text = this._startShape.highlightStyle.text = detail.start; - this._endShape.style.text = this._endShape.highlightStyle.text = detail.end; - this._startShape.style.textPosition = this._startShape.highlightStyle.textPosition; - this._endShape.style.textPosition = this._endShape.highlightStyle.textPosition; - } - return true; - }, - __ondragend: function () { - if (this.zoomOption.showDetail) { - this._startShape.style.text = this._endShape.style.text = '='; - this._startShape.style.textPosition = this._endShape.style.textPosition = 'inside'; - this.zr.modShape(this._startShape.id); - this.zr.modShape(this._endShape.id); - this.zr.refreshNextFrame(); - } - this.isDragend = true; - }, - ondragend: function (param, status) { - if (!this.isDragend || !param.target) { - return; - } - !this.zoomOption.realtime && this._syncData(); - status.dragOut = true; - status.dragIn = true; - if (!this._isSilence && !this.zoomOption.realtime) { - this.messageCenter.dispatch(ecConfig.EVENT.DATA_ZOOM, null, { zoom: this._zoom }, this.myChart); - } - status.needRefresh = false; - this.isDragend = false; - return; - }, - ondataZoom: function (param, status) { - status.needRefresh = true; - return; - }, - absoluteZoom: function (param) { - this._zoom.start = param.start; - this._zoom.end = param.end; - this._zoom.start2 = param.start2; - this._zoom.end2 = param.end2; - this._syncShape(); - this._syncData(true); - return; - }, - rectZoom: function (param) { - if (!param) { - this._zoom.start = this._zoom.start2 = 0; - this._zoom.end = this._zoom.end2 = 100; - this._syncShape(); - this._syncData(true); - return this._zoom; - } - var gridArea = this.component.grid.getArea(); - var rect = { - x: param.x, - y: param.y, - width: param.width, - height: param.height - }; - if (rect.width < 0) { - rect.x += rect.width; - rect.width = -rect.width; - } - if (rect.height < 0) { - rect.y += rect.height; - rect.height = -rect.height; - } - if (rect.x > gridArea.x + gridArea.width || rect.y > gridArea.y + gridArea.height) { - return false; - } - if (rect.x < gridArea.x) { - rect.x = gridArea.x; - } - if (rect.x + rect.width > gridArea.x + gridArea.width) { - rect.width = gridArea.x + gridArea.width - rect.x; - } - if (rect.y + rect.height > gridArea.y + gridArea.height) { - rect.height = gridArea.y + gridArea.height - rect.y; - } - var total; - var sdx = (rect.x - gridArea.x) / gridArea.width; - var edx = 1 - (rect.x + rect.width - gridArea.x) / gridArea.width; - var sdy = 1 - (rect.y + rect.height - gridArea.y) / gridArea.height; - var edy = (rect.y - gridArea.y) / gridArea.height; - if (this.zoomOption.orient == 'horizontal') { - total = this._zoom.end - this._zoom.start; - this._zoom.start += total * sdx; - this._zoom.end -= total * edx; - total = this._zoom.end2 - this._zoom.start2; - this._zoom.start2 += total * sdy; - this._zoom.end2 -= total * edy; - } else { - total = this._zoom.end - this._zoom.start; - this._zoom.start += total * sdy; - this._zoom.end -= total * edy; - total = this._zoom.end2 - this._zoom.start2; - this._zoom.start2 += total * sdx; - this._zoom.end2 -= total * edx; - } - this._syncShape(); - this._syncData(true); - return this._zoom; - }, - syncBackupData: function (curOption) { - var start; - var target = this._originalData['series']; - var curSeries = curOption.series; - var curData; - for (var i = 0, l = curSeries.length; i < l; i++) { - curData = curSeries[i].data || curSeries[i].eventList; - if (target[i]) { - start = Math.floor(this._zoom.start / 100 * target[i].length); - } else { - start = 0; - } - for (var j = 0, k = curData.length; j < k; j++) { - if (target[i]) { - target[i][j + start] = curData[j]; - } - } - } - }, - syncOption: function (magicOption) { - this.silence(true); - this.option = magicOption; - this.option.dataZoom = this.reformOption(this.option.dataZoom); - this.zoomOption = this.option.dataZoom; - if (!this.myChart.canvasSupported) { - this.zoomOption.realtime = false; - } - this.clear(); - this._location = this._getLocation(); - this._zoom = this._getZoom(); - this._backupData(); - if (this.option.dataZoom && this.option.dataZoom.show) { - this._buildShape(); - } - this._syncData(); - this.silence(false); - }, - silence: function (s) { - this._isSilence = s; - }, - getRealDataIndex: function (sIdx, dIdx) { - if (!this._originalData || this._zoom.start === 0 && this._zoom.end == 100) { - return dIdx; - } - var sreies = this._originalData.series; - if (sreies[sIdx]) { - return Math.floor(this._zoom.start / 100 * sreies[sIdx].length) + dIdx; - } - return -1; - }, - resize: function () { - this.clear(); - this._location = this._getLocation(); - this._zoom = this._getZoom(); - if (this.option.dataZoom.show) { - this._buildShape(); - } - } - }; - zrUtil.inherits(DataZoom, Base); - require('../component').define('dataZoom', DataZoom); - return DataZoom; -});define('echarts/component/categoryAxis', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Line', - 'zrender/shape/Rectangle', - '../config', - 'zrender/tool/util', - 'zrender/tool/area', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var RectangleShape = require('zrender/shape/Rectangle'); - var ecConfig = require('../config'); - ecConfig.categoryAxis = { - zlevel: 0, - z: 0, - show: true, - position: 'bottom', - name: '', - nameLocation: 'end', - nameTextStyle: {}, - boundaryGap: true, - axisLine: { - show: true, - onZero: true, - lineStyle: { - color: '#48b', - width: 2, - type: 'solid' - } - }, - axisTick: { - show: true, - interval: 'auto', - inside: false, - length: 5, - lineStyle: { - color: '#333', - width: 1 - } - }, - axisLabel: { - show: true, - interval: 'auto', - rotate: 0, - margin: 8, - textStyle: { color: '#333' } - }, - splitLine: { - show: true, - lineStyle: { - color: ['#ccc'], - width: 1, - type: 'solid' - } - }, - splitArea: { - show: false, - areaStyle: { - color: [ - 'rgba(250,250,250,0.3)', - 'rgba(200,200,200,0.3)' - ] - } - } - }; - var zrUtil = require('zrender/tool/util'); - var zrArea = require('zrender/tool/area'); - function CategoryAxis(ecTheme, messageCenter, zr, option, myChart, axisBase) { - if (option.data.length < 1) { - console.error('option.data.length < 1.'); - return; - } - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.grid = this.component.grid; - for (var method in axisBase) { - this[method] = axisBase[method]; - } - this.refresh(option); - } - CategoryAxis.prototype = { - type: ecConfig.COMPONENT_TYPE_AXIS_CATEGORY, - _getReformedLabel: function (idx) { - var data = this.getDataFromOption(this.option.data[idx]); - var formatter = this.option.data[idx].formatter || this.option.axisLabel.formatter; - if (formatter) { - if (typeof formatter == 'function') { - data = formatter.call(this.myChart, data); - } else if (typeof formatter == 'string') { - data = formatter.replace('{value}', data); - } - } - return data; - }, - _getInterval: function () { - var interval = this.option.axisLabel.interval; - if (interval == 'auto') { - var fontSize = this.option.axisLabel.textStyle.fontSize; - var data = this.option.data; - var dataLength = this.option.data.length; - if (this.isHorizontal()) { - if (dataLength > 3) { - var gap = this.getGap(); - var isEnough = false; - var labelSpace; - var labelSize; - var step = Math.floor(0.5 / gap); - step = step < 1 ? 1 : step; - interval = Math.floor(15 / gap); - while (!isEnough && interval < dataLength) { - interval += step; - isEnough = true; - labelSpace = Math.floor(gap * interval); - for (var i = Math.floor((dataLength - 1) / interval) * interval; i >= 0; i -= interval) { - if (this.option.axisLabel.rotate !== 0) { - labelSize = fontSize; - } else if (data[i].textStyle) { - labelSize = zrArea.getTextWidth(this._getReformedLabel(i), this.getFont(zrUtil.merge(data[i].textStyle, this.option.axisLabel.textStyle))); - } else { - var label = this._getReformedLabel(i) + ''; - var wLen = (label.match(/\w/g) || '').length; - var oLen = label.length - wLen; - labelSize = wLen * fontSize * 2 / 3 + oLen * fontSize; - } - if (labelSpace < labelSize) { - isEnough = false; - break; - } - } - } - } else { - interval = 1; - } - } else { - if (dataLength > 3) { - var gap = this.getGap(); - interval = Math.floor(11 / gap); - while (gap * interval - 6 < fontSize && interval < dataLength) { - interval++; - } - } else { - interval = 1; - } - } - } else { - interval = typeof interval == 'function' ? 1 : interval - 0 + 1; - } - return interval; - }, - _buildShape: function () { - this._interval = this._getInterval(); - if (!this.option.show) { - return; - } - this.option.splitArea.show && this._buildSplitArea(); - this.option.splitLine.show && this._buildSplitLine(); - this.option.axisLine.show && this._buildAxisLine(); - this.option.axisTick.show && this._buildAxisTick(); - this.option.axisLabel.show && this._buildAxisLabel(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _buildAxisTick: function () { - var axShape; - var data = this.option.data; - var dataLength = this.option.data.length; - var tickOption = this.option.axisTick; - var length = tickOption.length; - var color = tickOption.lineStyle.color; - var lineWidth = tickOption.lineStyle.width; - var intervalFunction = typeof tickOption.interval == 'function' ? tickOption.interval : tickOption.interval == 'auto' ? typeof this.option.axisLabel.interval == 'function' ? this.option.axisLabel.interval : false : false; - var interval = intervalFunction ? 1 : tickOption.interval == 'auto' ? this._interval : tickOption.interval - 0 + 1; - var onGap = tickOption.onGap; - var optGap = onGap ? this.getGap() / 2 : typeof onGap == 'undefined' ? this.option.boundaryGap ? this.getGap() / 2 : 0 : 0; - var startIndex = optGap > 0 ? -interval : 0; - if (this.isHorizontal()) { - var yPosition = this.option.position == 'bottom' ? tickOption.inside ? this.grid.getYend() - length - 1 : this.grid.getYend() + 1 : tickOption.inside ? this.grid.getY() + 1 : this.grid.getY() - length - 1; - var x; - for (var i = startIndex; i < dataLength; i += interval) { - if (intervalFunction && !intervalFunction(i, data[i])) { - continue; - } - x = this.subPixelOptimize(this.getCoordByIndex(i) + (i >= 0 ? optGap : 0), lineWidth); - axShape = { - _axisShape: 'axisTick', - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: x, - yStart: yPosition, - xEnd: x, - yEnd: yPosition + length, - strokeColor: color, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } else { - var xPosition = this.option.position == 'left' ? tickOption.inside ? this.grid.getX() + 1 : this.grid.getX() - length - 1 : tickOption.inside ? this.grid.getXend() - length - 1 : this.grid.getXend() + 1; - var y; - for (var i = startIndex; i < dataLength; i += interval) { - if (intervalFunction && !intervalFunction(i, data[i])) { - continue; - } - y = this.subPixelOptimize(this.getCoordByIndex(i) - (i >= 0 ? optGap : 0), lineWidth); - axShape = { - _axisShape: 'axisTick', - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: xPosition, - yStart: y, - xEnd: xPosition + length, - yEnd: y, - strokeColor: color, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } - }, - _buildAxisLabel: function () { - var axShape; - var data = this.option.data; - var dataLength = this.option.data.length; - var labelOption = this.option.axisLabel; - var rotate = labelOption.rotate; - var margin = labelOption.margin; - var clickable = labelOption.clickable; - var textStyle = labelOption.textStyle; - var intervalFunction = typeof labelOption.interval == 'function' ? labelOption.interval : false; - var dataTextStyle; - if (this.isHorizontal()) { - var yPosition; - var baseLine; - if (this.option.position == 'bottom') { - yPosition = this.grid.getYend() + margin; - baseLine = 'top'; - } else { - yPosition = this.grid.getY() - margin; - baseLine = 'bottom'; - } - for (var i = 0; i < dataLength; i += this._interval) { - if (intervalFunction && !intervalFunction(i, data[i]) || this._getReformedLabel(i) === '') { - continue; - } - dataTextStyle = zrUtil.merge(data[i].textStyle || {}, textStyle); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 3, - hoverable: false, - style: { - x: this.getCoordByIndex(i), - y: yPosition, - color: dataTextStyle.color, - text: this._getReformedLabel(i), - textFont: this.getFont(dataTextStyle), - textAlign: dataTextStyle.align || 'center', - textBaseline: dataTextStyle.baseline || baseLine - } - }; - if (rotate) { - axShape.style.textAlign = rotate > 0 ? this.option.position == 'bottom' ? 'right' : 'left' : this.option.position == 'bottom' ? 'left' : 'right'; - axShape.rotation = [ - rotate * Math.PI / 180, - axShape.style.x, - axShape.style.y - ]; - } - this.shapeList.push(new TextShape(this._axisLabelClickable(clickable, axShape))); - } - } else { - var xPosition; - var align; - if (this.option.position == 'left') { - xPosition = this.grid.getX() - margin; - align = 'right'; - } else { - xPosition = this.grid.getXend() + margin; - align = 'left'; - } - for (var i = 0; i < dataLength; i += this._interval) { - if (intervalFunction && !intervalFunction(i, data[i]) || this._getReformedLabel(i) === '') { - continue; - } - dataTextStyle = zrUtil.merge(data[i].textStyle || {}, textStyle); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 3, - hoverable: false, - style: { - x: xPosition, - y: this.getCoordByIndex(i), - color: dataTextStyle.color, - text: this._getReformedLabel(i), - textFont: this.getFont(dataTextStyle), - textAlign: dataTextStyle.align || align, - textBaseline: dataTextStyle.baseline || i === 0 && this.option.name !== '' ? 'bottom' : i == dataLength - 1 && this.option.name !== '' ? 'top' : 'middle' - } - }; - if (rotate) { - axShape.rotation = [ - rotate * Math.PI / 180, - axShape.style.x, - axShape.style.y - ]; - } - this.shapeList.push(new TextShape(this._axisLabelClickable(clickable, axShape))); - } - } - }, - _buildSplitLine: function () { - var axShape; - var data = this.option.data; - var dataLength = this.option.data.length; - var sLineOption = this.option.splitLine; - var lineType = sLineOption.lineStyle.type; - var lineWidth = sLineOption.lineStyle.width; - var color = sLineOption.lineStyle.color; - color = color instanceof Array ? color : [color]; - var colorLength = color.length; - var intervalFunction = typeof this.option.axisLabel.interval == 'function' ? this.option.axisLabel.interval : false; - var onGap = sLineOption.onGap; - var optGap = onGap ? this.getGap() / 2 : typeof onGap == 'undefined' ? this.option.boundaryGap ? this.getGap() / 2 : 0 : 0; - dataLength -= onGap || typeof onGap == 'undefined' && this.option.boundaryGap ? 1 : 0; - if (this.isHorizontal()) { - var sy = this.grid.getY(); - var ey = this.grid.getYend(); - var x; - for (var i = 0; i < dataLength; i += this._interval) { - if (intervalFunction && !intervalFunction(i, data[i])) { - continue; - } - x = this.subPixelOptimize(this.getCoordByIndex(i) + optGap, lineWidth); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: x, - yStart: sy, - xEnd: x, - yEnd: ey, - strokeColor: color[i / this._interval % colorLength], - lineType: lineType, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } else { - var sx = this.grid.getX(); - var ex = this.grid.getXend(); - var y; - for (var i = 0; i < dataLength; i += this._interval) { - if (intervalFunction && !intervalFunction(i, data[i])) { - continue; - } - y = this.subPixelOptimize(this.getCoordByIndex(i) - optGap, lineWidth); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: sx, - yStart: y, - xEnd: ex, - yEnd: y, - strokeColor: color[i / this._interval % colorLength], - lineType: lineType, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } - }, - _buildSplitArea: function () { - var axShape; - var data = this.option.data; - var sAreaOption = this.option.splitArea; - var color = sAreaOption.areaStyle.color; - if (!(color instanceof Array)) { - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this.grid.getX(), - y: this.grid.getY(), - width: this.grid.getWidth(), - height: this.grid.getHeight(), - color: color - } - }; - this.shapeList.push(new RectangleShape(axShape)); - } else { - var colorLength = color.length; - var dataLength = this.option.data.length; - var intervalFunction = typeof this.option.axisLabel.interval == 'function' ? this.option.axisLabel.interval : false; - var onGap = sAreaOption.onGap; - var optGap = onGap ? this.getGap() / 2 : typeof onGap == 'undefined' ? this.option.boundaryGap ? this.getGap() / 2 : 0 : 0; - if (this.isHorizontal()) { - var y = this.grid.getY(); - var height = this.grid.getHeight(); - var lastX = this.grid.getX(); - var curX; - for (var i = 0; i <= dataLength; i += this._interval) { - if (intervalFunction && !intervalFunction(i, data[i]) && i < dataLength) { - continue; - } - curX = i < dataLength ? this.getCoordByIndex(i) + optGap : this.grid.getXend(); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: lastX, - y: y, - width: curX - lastX, - height: height, - color: color[i / this._interval % colorLength] - } - }; - this.shapeList.push(new RectangleShape(axShape)); - lastX = curX; - } - } else { - var x = this.grid.getX(); - var width = this.grid.getWidth(); - var lastYend = this.grid.getYend(); - var curY; - for (var i = 0; i <= dataLength; i += this._interval) { - if (intervalFunction && !intervalFunction(i, data[i]) && i < dataLength) { - continue; - } - curY = i < dataLength ? this.getCoordByIndex(i) - optGap : this.grid.getY(); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: x, - y: curY, - width: width, - height: lastYend - curY, - color: color[i / this._interval % colorLength] - } - }; - this.shapeList.push(new RectangleShape(axShape)); - lastYend = curY; - } - } - } - }, - refresh: function (newOption) { - if (newOption) { - this.option = this.reformOption(newOption); - this.option.axisLabel.textStyle = this.getTextStyle(this.option.axisLabel.textStyle); - } - this.clear(); - this._buildShape(); - }, - getGap: function () { - var dataLength = this.option.data.length; - var total = this.isHorizontal() ? this.grid.getWidth() : this.grid.getHeight(); - if (this.option.boundaryGap) { - return total / dataLength; - } else { - return total / (dataLength > 1 ? dataLength - 1 : 1); - } - }, - getCoord: function (value) { - var data = this.option.data; - var dataLength = data.length; - var gap = this.getGap(); - var position = this.option.boundaryGap ? gap / 2 : 0; - for (var i = 0; i < dataLength; i++) { - if (this.getDataFromOption(data[i]) == value) { - if (this.isHorizontal()) { - position = this.grid.getX() + position; - } else { - position = this.grid.getYend() - position; - } - return position; - } - position += gap; - } - }, - getCoordByIndex: function (dataIndex) { - if (dataIndex < 0) { - if (this.isHorizontal()) { - return this.grid.getX(); - } else { - return this.grid.getYend(); - } - } else if (dataIndex > this.option.data.length - 1) { - if (this.isHorizontal()) { - return this.grid.getXend(); - } else { - return this.grid.getY(); - } - } else { - var gap = this.getGap(); - var position = this.option.boundaryGap ? gap / 2 : 0; - position += dataIndex * gap; - if (this.isHorizontal()) { - position = this.grid.getX() + position; - } else { - position = this.grid.getYend() - position; - } - return position; - } - }, - getNameByIndex: function (dataIndex) { - return this.getDataFromOption(this.option.data[dataIndex]); - }, - getIndexByName: function (name) { - var data = this.option.data; - var dataLength = data.length; - for (var i = 0; i < dataLength; i++) { - if (this.getDataFromOption(data[i]) == name) { - return i; - } - } - return -1; - }, - getValueFromCoord: function () { - return ''; - }, - isMainAxis: function (dataIndex) { - return dataIndex % this._interval === 0; - } - }; - zrUtil.inherits(CategoryAxis, Base); - require('../component').define('categoryAxis', CategoryAxis); - return CategoryAxis; -});define('echarts/component/valueAxis', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Line', - 'zrender/shape/Rectangle', - '../config', - '../util/date', - 'zrender/tool/util', - '../util/smartSteps', - '../util/accMath', - '../util/smartLogSteps', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var RectangleShape = require('zrender/shape/Rectangle'); - var ecConfig = require('../config'); - ecConfig.valueAxis = { - zlevel: 0, - z: 0, - show: true, - position: 'left', - name: '', - nameLocation: 'end', - nameTextStyle: {}, - boundaryGap: [ - 0, - 0 - ], - axisLine: { - show: true, - onZero: true, - lineStyle: { - color: '#48b', - width: 2, - type: 'solid' - } - }, - axisTick: { - show: false, - inside: false, - length: 5, - lineStyle: { - color: '#333', - width: 1 - } - }, - axisLabel: { - show: true, - rotate: 0, - margin: 8, - textStyle: { color: '#333' } - }, - splitLine: { - show: true, - lineStyle: { - color: ['#ccc'], - width: 1, - type: 'solid' - } - }, - splitArea: { - show: false, - areaStyle: { - color: [ - 'rgba(250,250,250,0.3)', - 'rgba(200,200,200,0.3)' - ] - } - } - }; - var ecDate = require('../util/date'); - var zrUtil = require('zrender/tool/util'); - function ValueAxis(ecTheme, messageCenter, zr, option, myChart, axisBase, series) { - if (!series || series.length === 0) { - console.err('option.series.length == 0.'); - return; - } - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.series = series; - this.grid = this.component.grid; - for (var method in axisBase) { - this[method] = axisBase[method]; - } - this.refresh(option, series); - } - ValueAxis.prototype = { - type: ecConfig.COMPONENT_TYPE_AXIS_VALUE, - _buildShape: function () { - this._hasData = false; - this._calculateValue(); - if (!this._hasData || !this.option.show) { - return; - } - this.option.splitArea.show && this._buildSplitArea(); - this.option.splitLine.show && this._buildSplitLine(); - this.option.axisLine.show && this._buildAxisLine(); - this.option.axisTick.show && this._buildAxisTick(); - this.option.axisLabel.show && this._buildAxisLabel(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _buildAxisTick: function () { - var axShape; - var data = this._valueList; - var dataLength = this._valueList.length; - var tickOption = this.option.axisTick; - var length = tickOption.length; - var color = tickOption.lineStyle.color; - var lineWidth = tickOption.lineStyle.width; - if (this.isHorizontal()) { - var yPosition = this.option.position === 'bottom' ? tickOption.inside ? this.grid.getYend() - length - 1 : this.grid.getYend() + 1 : tickOption.inside ? this.grid.getY() + 1 : this.grid.getY() - length - 1; - var x; - for (var i = 0; i < dataLength; i++) { - x = this.subPixelOptimize(this.getCoord(data[i]), lineWidth); - axShape = { - _axisShape: 'axisTick', - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: x, - yStart: yPosition, - xEnd: x, - yEnd: yPosition + length, - strokeColor: color, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } else { - var xPosition = this.option.position === 'left' ? tickOption.inside ? this.grid.getX() + 1 : this.grid.getX() - length - 1 : tickOption.inside ? this.grid.getXend() - length - 1 : this.grid.getXend() + 1; - var y; - for (var i = 0; i < dataLength; i++) { - y = this.subPixelOptimize(this.getCoord(data[i]), lineWidth); - axShape = { - _axisShape: 'axisTick', - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: xPosition, - yStart: y, - xEnd: xPosition + length, - yEnd: y, - strokeColor: color, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } - }, - _buildAxisLabel: function () { - var axShape; - var data = this._valueList; - var dataLength = this._valueList.length; - var rotate = this.option.axisLabel.rotate; - var margin = this.option.axisLabel.margin; - var clickable = this.option.axisLabel.clickable; - var textStyle = this.option.axisLabel.textStyle; - if (this.isHorizontal()) { - var yPosition; - var baseLine; - if (this.option.position === 'bottom') { - yPosition = this.grid.getYend() + margin; - baseLine = 'top'; - } else { - yPosition = this.grid.getY() - margin; - baseLine = 'bottom'; - } - for (var i = 0; i < dataLength; i++) { - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 3, - hoverable: false, - style: { - x: this.getCoord(data[i]), - y: yPosition, - color: typeof textStyle.color === 'function' ? textStyle.color(data[i]) : textStyle.color, - text: this._valueLabel[i], - textFont: this.getFont(textStyle), - textAlign: textStyle.align || 'center', - textBaseline: textStyle.baseline || baseLine - } - }; - if (rotate) { - axShape.style.textAlign = rotate > 0 ? this.option.position === 'bottom' ? 'right' : 'left' : this.option.position === 'bottom' ? 'left' : 'right'; - axShape.rotation = [ - rotate * Math.PI / 180, - axShape.style.x, - axShape.style.y - ]; - } - this.shapeList.push(new TextShape(this._axisLabelClickable(clickable, axShape))); - } - } else { - var xPosition; - var align; - if (this.option.position === 'left') { - xPosition = this.grid.getX() - margin; - align = 'right'; - } else { - xPosition = this.grid.getXend() + margin; - align = 'left'; - } - for (var i = 0; i < dataLength; i++) { - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 3, - hoverable: false, - style: { - x: xPosition, - y: this.getCoord(data[i]), - color: typeof textStyle.color === 'function' ? textStyle.color(data[i]) : textStyle.color, - text: this._valueLabel[i], - textFont: this.getFont(textStyle), - textAlign: textStyle.align || align, - textBaseline: textStyle.baseline || (i === 0 && this.option.name !== '' ? 'bottom' : i === dataLength - 1 && this.option.name !== '' ? 'top' : 'middle') - } - }; - if (rotate) { - axShape.rotation = [ - rotate * Math.PI / 180, - axShape.style.x, - axShape.style.y - ]; - } - this.shapeList.push(new TextShape(this._axisLabelClickable(clickable, axShape))); - } - } - }, - _buildSplitLine: function () { - var axShape; - var data = this._valueList; - var dataLength = this._valueList.length; - var sLineOption = this.option.splitLine; - var lineType = sLineOption.lineStyle.type; - var lineWidth = sLineOption.lineStyle.width; - var color = sLineOption.lineStyle.color; - color = color instanceof Array ? color : [color]; - var colorLength = color.length; - if (this.isHorizontal()) { - var sy = this.grid.getY(); - var ey = this.grid.getYend(); - var x; - for (var i = 0; i < dataLength; i++) { - x = this.subPixelOptimize(this.getCoord(data[i]), lineWidth); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: x, - yStart: sy, - xEnd: x, - yEnd: ey, - strokeColor: color[i % colorLength], - lineType: lineType, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } else { - var sx = this.grid.getX(); - var ex = this.grid.getXend(); - var y; - for (var i = 0; i < dataLength; i++) { - y = this.subPixelOptimize(this.getCoord(data[i]), lineWidth); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: sx, - yStart: y, - xEnd: ex, - yEnd: y, - strokeColor: color[i % colorLength], - lineType: lineType, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } - }, - _buildSplitArea: function () { - var axShape; - var color = this.option.splitArea.areaStyle.color; - if (!(color instanceof Array)) { - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this.grid.getX(), - y: this.grid.getY(), - width: this.grid.getWidth(), - height: this.grid.getHeight(), - color: color - } - }; - this.shapeList.push(new RectangleShape(axShape)); - } else { - var colorLength = color.length; - var data = this._valueList; - var dataLength = this._valueList.length; - if (this.isHorizontal()) { - var y = this.grid.getY(); - var height = this.grid.getHeight(); - var lastX = this.grid.getX(); - var curX; - for (var i = 0; i <= dataLength; i++) { - curX = i < dataLength ? this.getCoord(data[i]) : this.grid.getXend(); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: lastX, - y: y, - width: curX - lastX, - height: height, - color: color[i % colorLength] - } - }; - this.shapeList.push(new RectangleShape(axShape)); - lastX = curX; - } - } else { - var x = this.grid.getX(); - var width = this.grid.getWidth(); - var lastYend = this.grid.getYend(); - var curY; - for (var i = 0; i <= dataLength; i++) { - curY = i < dataLength ? this.getCoord(data[i]) : this.grid.getY(); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: x, - y: curY, - width: width, - height: lastYend - curY, - color: color[i % colorLength] - } - }; - this.shapeList.push(new RectangleShape(axShape)); - lastYend = curY; - } - } - } - }, - _calculateValue: function () { - if (isNaN(this.option.min - 0) || isNaN(this.option.max - 0)) { - var data = {}; - var xIdx; - var yIdx; - var legend = this.component.legend; - for (var i = 0, l = this.series.length; i < l; i++) { - if (this.series[i].type != ecConfig.CHART_TYPE_LINE && this.series[i].type != ecConfig.CHART_TYPE_BAR && this.series[i].type != ecConfig.CHART_TYPE_SCATTER && this.series[i].type != ecConfig.CHART_TYPE_K && this.series[i].type != ecConfig.CHART_TYPE_EVENTRIVER) { - continue; - } - if (legend && !legend.isSelected(this.series[i].name)) { - continue; - } - xIdx = this.series[i].xAxisIndex || 0; - yIdx = this.series[i].yAxisIndex || 0; - if (this.option.xAxisIndex != xIdx && this.option.yAxisIndex != yIdx) { - continue; - } - this._calculSum(data, i); - } - var oriData; - for (var i in data) { - oriData = data[i]; - for (var j = 0, k = oriData.length; j < k; j++) { - if (!isNaN(oriData[j])) { - this._hasData = true; - this._min = oriData[j]; - this._max = oriData[j]; - break; - } - } - if (this._hasData) { - break; - } - } - for (var i in data) { - oriData = data[i]; - for (var j = 0, k = oriData.length; j < k; j++) { - if (!isNaN(oriData[j])) { - this._min = Math.min(this._min, oriData[j]); - this._max = Math.max(this._max, oriData[j]); - } - } - } - var boundaryGap = this.option.type !== 'log' ? this.option.boundaryGap : [ - 0, - 0 - ]; - var gap = Math.abs(this._max - this._min); - this._min = isNaN(this.option.min - 0) ? this._min - Math.abs(gap * boundaryGap[0]) : this.option.min - 0; - this._max = isNaN(this.option.max - 0) ? this._max + Math.abs(gap * boundaryGap[1]) : this.option.max - 0; - if (this._min === this._max) { - if (this._max === 0) { - this._max = 1; - } else if (this._max > 0) { - this._min = this._max / this.option.splitNumber != null ? this.option.splitNumber : 5; - } else { - this._max = this._max / this.option.splitNumber != null ? this.option.splitNumber : 5; - } - } - if (this.option.type === 'time') { - this._reformTimeValue(); - } else if (this.option.type === 'log') { - this._reformLogValue(); - } else { - this._reformValue(this.option.scale); - } - } else { - this._hasData = true; - this._min = this.option.min - 0; - this._max = this.option.max - 0; - if (this.option.type === 'time') { - this._reformTimeValue(); - } else if (this.option.type === 'log') { - this._reformLogValue(); - } else { - this._customerValue(); - } - } - }, - _calculSum: function (data, i) { - var key = this.series[i].name || 'kener'; - var value; - var oriData; - if (!this.series[i].stack) { - data[key] = data[key] || []; - if (this.series[i].type != ecConfig.CHART_TYPE_EVENTRIVER) { - oriData = this.series[i].data; - for (var j = 0, k = oriData.length; j < k; j++) { - value = this.getDataFromOption(oriData[j]); - if (this.series[i].type === ecConfig.CHART_TYPE_K) { - data[key].push(value[0]); - data[key].push(value[1]); - data[key].push(value[2]); - data[key].push(value[3]); - } else if (value instanceof Array) { - if (this.option.xAxisIndex != -1) { - data[key].push(this.option.type != 'time' ? value[0] : ecDate.getNewDate(value[0])); - } - if (this.option.yAxisIndex != -1) { - data[key].push(this.option.type != 'time' ? value[1] : ecDate.getNewDate(value[1])); - } - } else { - data[key].push(value); - } - } - } else { - oriData = this.series[i].data; - for (var j = 0, k = oriData.length; j < k; j++) { - var evolution = oriData[j].evolution; - for (var m = 0, n = evolution.length; m < n; m++) { - data[key].push(ecDate.getNewDate(evolution[m].time)); - } - } - } - } else { - var keyP = '__Magic_Key_Positive__' + this.series[i].stack; - var keyN = '__Magic_Key_Negative__' + this.series[i].stack; - data[keyP] = data[keyP] || []; - data[keyN] = data[keyN] || []; - data[key] = data[key] || []; - oriData = this.series[i].data; - for (var j = 0, k = oriData.length; j < k; j++) { - value = this.getDataFromOption(oriData[j]); - if (value === '-') { - continue; - } - value = value - 0; - if (value >= 0) { - if (data[keyP][j] != null) { - data[keyP][j] += value; - } else { - data[keyP][j] = value; - } - } else { - if (data[keyN][j] != null) { - data[keyN][j] += value; - } else { - data[keyN][j] = value; - } - } - if (this.option.scale) { - data[key].push(value); - } - } - } - }, - _reformValue: function (scale) { - var smartSteps = require('../util/smartSteps'); - var splitNumber = this.option.splitNumber; - if (!scale && this._min >= 0 && this._max >= 0) { - this._min = 0; - } - if (!scale && this._min <= 0 && this._max <= 0) { - this._max = 0; - } - var stepOpt = smartSteps(this._min, this._max, splitNumber); - splitNumber = splitNumber != null ? splitNumber : stepOpt.secs; - this._min = stepOpt.min; - this._max = stepOpt.max; - this._valueList = stepOpt.pnts; - this._reformLabelData(); - }, - _reformTimeValue: function () { - var splitNumber = this.option.splitNumber != null ? this.option.splitNumber : 5; - var curValue = ecDate.getAutoFormatter(this._min, this._max, splitNumber); - var formatter = curValue.formatter; - var gapValue = curValue.gapValue; - this._valueList = [ecDate.getNewDate(this._min)]; - var startGap; - switch (formatter) { - case 'week': - startGap = ecDate.nextMonday(this._min); - break; - case 'month': - startGap = ecDate.nextNthOnMonth(this._min, 1); - break; - case 'quarter': - startGap = ecDate.nextNthOnQuarterYear(this._min, 1); - break; - case 'half-year': - startGap = ecDate.nextNthOnHalfYear(this._min, 1); - break; - case 'year': - startGap = ecDate.nextNthOnYear(this._min, 1); - break; - default: - if (gapValue <= 3600000 * 2) { - startGap = (Math.floor(this._min / gapValue) + 1) * gapValue; - } else { - startGap = ecDate.getNewDate(this._min - -gapValue); - startGap.setHours(Math.round(startGap.getHours() / 6) * 6); - startGap.setMinutes(0); - startGap.setSeconds(0); - } - break; - } - if (startGap - this._min < gapValue / 2) { - startGap -= -gapValue; - } - curValue = ecDate.getNewDate(startGap); - splitNumber *= 1.5; - while (splitNumber-- >= 0) { - if (formatter == 'month' || formatter == 'quarter' || formatter == 'half-year' || formatter == 'year') { - curValue.setDate(1); - } - if (this._max - curValue < gapValue / 2) { - break; - } - this._valueList.push(curValue); - curValue = ecDate.getNewDate(curValue - -gapValue); - } - this._valueList.push(ecDate.getNewDate(this._max)); - this._reformLabelData(function (formatterStr) { - return function (value) { - return ecDate.format(formatterStr, value); - }; - }(formatter)); - }, - _customerValue: function () { - var accMath = require('../util/accMath'); - var splitNumber = this.option.splitNumber != null ? this.option.splitNumber : 5; - var splitGap = (this._max - this._min) / splitNumber; - this._valueList = []; - for (var i = 0; i <= splitNumber; i++) { - this._valueList.push(accMath.accAdd(this._min, accMath.accMul(splitGap, i))); - } - this._reformLabelData(); - }, - _reformLogValue: function () { - var thisOption = this.option; - var result = require('../util/smartLogSteps')({ - dataMin: this._min, - dataMax: this._max, - logPositive: thisOption.logPositive, - logLabelBase: thisOption.logLabelBase, - splitNumber: thisOption.splitNumber - }); - this._min = result.dataMin; - this._max = result.dataMax; - this._valueList = result.tickList; - this._dataMappingMethods = result.dataMappingMethods; - this._reformLabelData(result.labelFormatter); - }, - _reformLabelData: function (innerFormatter) { - this._valueLabel = []; - var formatter = this.option.axisLabel.formatter; - if (formatter) { - for (var i = 0, l = this._valueList.length; i < l; i++) { - if (typeof formatter === 'function') { - this._valueLabel.push(innerFormatter ? formatter.call(this.myChart, this._valueList[i], innerFormatter) : formatter.call(this.myChart, this._valueList[i])); - } else if (typeof formatter === 'string') { - this._valueLabel.push(innerFormatter ? ecDate.format(formatter, this._valueList[i]) : formatter.replace('{value}', this._valueList[i])); - } - } - } else { - for (var i = 0, l = this._valueList.length; i < l; i++) { - this._valueLabel.push(innerFormatter ? innerFormatter(this._valueList[i]) : this.numAddCommas(this._valueList[i])); - } - } - }, - getExtremum: function () { - this._calculateValue(); - var dataMappingMethods = this._dataMappingMethods; - return { - min: this._min, - max: this._max, - dataMappingMethods: dataMappingMethods ? zrUtil.merge({}, dataMappingMethods) : null - }; - }, - refresh: function (newOption, newSeries) { - if (newOption) { - this.option = this.reformOption(newOption); - this.option.axisLabel.textStyle = zrUtil.merge(this.option.axisLabel.textStyle || {}, this.ecTheme.textStyle); - this.series = newSeries; - } - if (this.zr) { - this.clear(); - this._buildShape(); - } - }, - getCoord: function (value) { - if (this._dataMappingMethods) { - value = this._dataMappingMethods.value2Coord(value); - } - value = value < this._min ? this._min : value; - value = value > this._max ? this._max : value; - var result; - if (!this.isHorizontal()) { - result = this.grid.getYend() - (value - this._min) / (this._max - this._min) * this.grid.getHeight(); - } else { - result = this.grid.getX() + (value - this._min) / (this._max - this._min) * this.grid.getWidth(); - } - return result; - }, - getCoordSize: function (value) { - if (!this.isHorizontal()) { - return Math.abs(value / (this._max - this._min) * this.grid.getHeight()); - } else { - return Math.abs(value / (this._max - this._min) * this.grid.getWidth()); - } - }, - getValueFromCoord: function (coord) { - var result; - if (!this.isHorizontal()) { - coord = coord < this.grid.getY() ? this.grid.getY() : coord; - coord = coord > this.grid.getYend() ? this.grid.getYend() : coord; - result = this._max - (coord - this.grid.getY()) / this.grid.getHeight() * (this._max - this._min); - } else { - coord = coord < this.grid.getX() ? this.grid.getX() : coord; - coord = coord > this.grid.getXend() ? this.grid.getXend() : coord; - result = this._min + (coord - this.grid.getX()) / this.grid.getWidth() * (this._max - this._min); - } - if (this._dataMappingMethods) { - result = this._dataMappingMethods.coord2Value(result); - } - return result.toFixed(2) - 0; - }, - isMaindAxis: function (value) { - for (var i = 0, l = this._valueList.length; i < l; i++) { - if (this._valueList[i] === value) { - return true; - } - } - return false; - } - }; - zrUtil.inherits(ValueAxis, Base); - require('../component').define('valueAxis', ValueAxis); - return ValueAxis; -});define('echarts/util/date', [], function () { - var _timeGap = [ - { - formatter: 'hh : mm : ss', - value: 1000 - }, - { - formatter: 'hh : mm : ss', - value: 1000 * 5 - }, - { - formatter: 'hh : mm : ss', - value: 1000 * 10 - }, - { - formatter: 'hh : mm : ss', - value: 1000 * 15 - }, - { - formatter: 'hh : mm : ss', - value: 1000 * 30 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 60000 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 60000 * 5 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 60000 * 10 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 60000 * 15 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 60000 * 30 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 3600000 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 3600000 * 2 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 3600000 * 6 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 3600000 * 12 - }, - { - formatter: 'MM - dd\nyyyy', - value: 3600000 * 24 - }, - { - formatter: 'week', - value: 3600000 * 24 * 7 - }, - { - formatter: 'month', - value: 3600000 * 24 * 31 - }, - { - formatter: 'quarter', - value: 3600000 * 24 * 380 / 4 - }, - { - formatter: 'half-year', - value: 3600000 * 24 * 380 / 2 - }, - { - formatter: 'year', - value: 3600000 * 24 * 380 - } - ]; - function getAutoFormatter(min, max, splitNumber) { - splitNumber = splitNumber > 1 ? splitNumber : 2; - var curValue; - var totalGap; - var formatter; - var gapValue; - for (var i = 0, l = _timeGap.length; i < l; i++) { - curValue = _timeGap[i].value; - totalGap = Math.ceil(max / curValue) * curValue - Math.floor(min / curValue) * curValue; - if (Math.round(totalGap / curValue) <= splitNumber * 1.2) { - formatter = _timeGap[i].formatter; - gapValue = _timeGap[i].value; - break; - } - } - if (formatter == null) { - formatter = 'year'; - curValue = 3600000 * 24 * 367; - totalGap = Math.ceil(max / curValue) * curValue - Math.floor(min / curValue) * curValue; - gapValue = Math.round(totalGap / (splitNumber - 1) / curValue) * curValue; - } - return { - formatter: formatter, - gapValue: gapValue - }; - } - function s2d(v) { - return v < 10 ? '0' + v : v; - } - function format(formatter, value) { - if (formatter == 'week' || formatter == 'month' || formatter == 'quarter' || formatter == 'half-year' || formatter == 'year') { - formatter = 'MM - dd\nyyyy'; - } - var date = getNewDate(value); - var y = date.getFullYear(); - var M = date.getMonth() + 1; - var d = date.getDate(); - var h = date.getHours(); - var m = date.getMinutes(); - var s = date.getSeconds(); - formatter = formatter.replace('MM', s2d(M)); - formatter = formatter.toLowerCase(); - formatter = formatter.replace('yyyy', y); - formatter = formatter.replace('yy', y % 100); - formatter = formatter.replace('dd', s2d(d)); - formatter = formatter.replace('d', d); - formatter = formatter.replace('hh', s2d(h)); - formatter = formatter.replace('h', h); - formatter = formatter.replace('mm', s2d(m)); - formatter = formatter.replace('m', m); - formatter = formatter.replace('ss', s2d(s)); - formatter = formatter.replace('s', s); - return formatter; - } - function nextMonday(value) { - value = getNewDate(value); - value.setDate(value.getDate() + 8 - value.getDay()); - return value; - } - function nextNthPerNmonth(value, nth, nmon) { - value = getNewDate(value); - value.setMonth(Math.ceil((value.getMonth() + 1) / nmon) * nmon); - value.setDate(nth); - return value; - } - function nextNthOnMonth(value, nth) { - return nextNthPerNmonth(value, nth, 1); - } - function nextNthOnQuarterYear(value, nth) { - return nextNthPerNmonth(value, nth, 3); - } - function nextNthOnHalfYear(value, nth) { - return nextNthPerNmonth(value, nth, 6); - } - function nextNthOnYear(value, nth) { - return nextNthPerNmonth(value, nth, 12); - } - function getNewDate(value) { - return value instanceof Date ? value : new Date(typeof value == 'string' ? value.replace(/-/g, '/') : value); - } - return { - getAutoFormatter: getAutoFormatter, - getNewDate: getNewDate, - format: format, - nextMonday: nextMonday, - nextNthPerNmonth: nextNthPerNmonth, - nextNthOnMonth: nextNthOnMonth, - nextNthOnQuarterYear: nextNthOnQuarterYear, - nextNthOnHalfYear: nextNthOnHalfYear, - nextNthOnYear: nextNthOnYear - }; -});define('echarts/util/smartSteps', [], function () { - var mySteps = [ - 10, - 20, - 25, - 50 - ]; - var mySections = [ - 4, - 5, - 6 - ]; - var custOpts; - var custSteps; - var custSecs; - var minLocked; - var maxLocked; - var MT = Math; - var MATH_ROUND = MT.round; - var MATH_FLOOR = MT.floor; - var MATH_CEIL = MT.ceil; - var MATH_ABS = MT.abs; - function MATH_LOG(n) { - return MT.log(MATH_ABS(n)) / MT.LN10; - } - function MATH_POW(n) { - return MT.pow(10, n); - } - function MATH_ISINT(n) { - return n === MATH_FLOOR(n); - } - function smartSteps(min, max, section, opts) { - custOpts = opts || {}; - custSteps = custOpts.steps || mySteps; - custSecs = custOpts.secs || mySections; - section = MATH_ROUND(+section || 0) % 99; - min = +min || 0; - max = +max || 0; - minLocked = maxLocked = 0; - if ('min' in custOpts) { - min = +custOpts.min || 0; - minLocked = 1; - } - if ('max' in custOpts) { - max = +custOpts.max || 0; - maxLocked = 1; - } - if (min > max) { - max = [ - min, - min = max - ][0]; - } - var span = max - min; - if (minLocked && maxLocked) { - return bothLocked(min, max, section); - } - if (span < (section || 5)) { - if (MATH_ISINT(min) && MATH_ISINT(max)) { - return forInteger(min, max, section); - } else if (span === 0) { - return forSpan0(min, max, section); - } - } - return coreCalc(min, max, section); - } - function makeResult(newMin, newMax, section, expon) { - expon = expon || 0; - var expStep = expNum((newMax - newMin) / section, -1); - var expMin = expNum(newMin, -1, 1); - var expMax = expNum(newMax, -1); - var minExp = MT.min(expStep.e, expMin.e, expMax.e); - if (expMin.c === 0) { - minExp = MT.min(expStep.e, expMax.e); - } else if (expMax.c === 0) { - minExp = MT.min(expStep.e, expMin.e); - } - expFixTo(expStep, { - c: 0, - e: minExp - }); - expFixTo(expMin, expStep, 1); - expFixTo(expMax, expStep); - expon += minExp; - newMin = expMin.c; - newMax = expMax.c; - var step = (newMax - newMin) / section; - var zoom = MATH_POW(expon); - var fixTo = 0; - var points = []; - for (var i = section + 1; i--;) { - points[i] = (newMin + step * i) * zoom; - } - if (expon < 0) { - fixTo = decimals(zoom); - step = +(step * zoom).toFixed(fixTo); - newMin = +(newMin * zoom).toFixed(fixTo); - newMax = +(newMax * zoom).toFixed(fixTo); - for (var i = points.length; i--;) { - points[i] = points[i].toFixed(fixTo); - +points[i] === 0 && (points[i] = '0'); - } - } else { - newMin *= zoom; - newMax *= zoom; - step *= zoom; - } - custSecs = 0; - custSteps = 0; - custOpts = 0; - return { - min: newMin, - max: newMax, - secs: section, - step: step, - fix: fixTo, - exp: expon, - pnts: points - }; - } - function expNum(num, digit, byFloor) { - digit = MATH_ROUND(digit % 10) || 2; - if (digit < 0) { - if (MATH_ISINT(num)) { - digit = ('' + MATH_ABS(num)).replace(/0+$/, '').length || 1; - } else { - num = num.toFixed(15).replace(/0+$/, ''); - digit = num.replace('.', '').replace(/^[-0]+/, '').length; - num = +num; - } - } - var expon = MATH_FLOOR(MATH_LOG(num)) - digit + 1; - var cNum = +(num * MATH_POW(-expon)).toFixed(15) || 0; - cNum = byFloor ? MATH_FLOOR(cNum) : MATH_CEIL(cNum); - !cNum && (expon = 0); - if (('' + MATH_ABS(cNum)).length > digit) { - expon += 1; - cNum /= 10; - } - return { - c: cNum, - e: expon - }; - } - function expFixTo(expnum1, expnum2, byFloor) { - var deltaExp = expnum2.e - expnum1.e; - if (deltaExp) { - expnum1.e += deltaExp; - expnum1.c *= MATH_POW(-deltaExp); - expnum1.c = byFloor ? MATH_FLOOR(expnum1.c) : MATH_CEIL(expnum1.c); - } - } - function expFixMin(expnum1, expnum2, byFloor) { - if (expnum1.e < expnum2.e) { - expFixTo(expnum2, expnum1, byFloor); - } else { - expFixTo(expnum1, expnum2, byFloor); - } - } - function getCeil(num, rounds) { - rounds = rounds || mySteps; - num = expNum(num); - var cNum = num.c; - var i = 0; - while (cNum > rounds[i]) { - i++; - } - if (!rounds[i]) { - cNum /= 10; - num.e += 1; - i = 0; - while (cNum > rounds[i]) { - i++; - } - } - num.c = rounds[i]; - return num; - } - function coreCalc(min, max, section) { - var step; - var secs = section || +custSecs.slice(-1); - var expStep = getCeil((max - min) / secs, custSteps); - var expSpan = expNum(max - min); - var expMin = expNum(min, -1, 1); - var expMax = expNum(max, -1); - expFixTo(expSpan, expStep); - expFixTo(expMin, expStep, 1); - expFixTo(expMax, expStep); - if (!section) { - secs = look4sections(expMin, expMax); - } else { - step = look4step(expMin, expMax, secs); - } - if (MATH_ISINT(min) && MATH_ISINT(max) && min * max >= 0) { - if (max - min < secs) { - return forInteger(min, max, secs); - } - secs = tryForInt(min, max, section, expMin, expMax, secs); - } - var arrMM = cross0(min, max, expMin.c, expMax.c); - expMin.c = arrMM[0]; - expMax.c = arrMM[1]; - if (minLocked || maxLocked) { - singleLocked(min, max, expMin, expMax); - } - return makeResult(expMin.c, expMax.c, secs, expMax.e); - } - function look4sections(expMin, expMax) { - var section; - var tmpStep, tmpMin, tmpMax; - var reference = []; - for (var i = custSecs.length; i--;) { - section = custSecs[i]; - tmpStep = getCeil((expMax.c - expMin.c) / section, custSteps); - tmpStep = tmpStep.c * MATH_POW(tmpStep.e); - tmpMin = MATH_FLOOR(expMin.c / tmpStep) * tmpStep; - tmpMax = MATH_CEIL(expMax.c / tmpStep) * tmpStep; - reference[i] = { - min: tmpMin, - max: tmpMax, - step: tmpStep, - span: tmpMax - tmpMin - }; - } - reference.sort(function (a, b) { - var delta = a.span - b.span; - if (delta === 0) { - delta = a.step - b.step; - } - return delta; - }); - reference = reference[0]; - section = reference.span / reference.step; - expMin.c = reference.min; - expMax.c = reference.max; - return section < 3 ? section * 2 : section; - } - function look4step(expMin, expMax, secs) { - var span; - var tmpMax; - var tmpMin = expMax.c; - var tmpStep = (expMax.c - expMin.c) / secs - 1; - while (tmpMin > expMin.c) { - tmpStep = getCeil(tmpStep + 1, custSteps); - tmpStep = tmpStep.c * MATH_POW(tmpStep.e); - span = tmpStep * secs; - tmpMax = MATH_CEIL(expMax.c / tmpStep) * tmpStep; - tmpMin = tmpMax - span; - } - var deltaMin = expMin.c - tmpMin; - var deltaMax = tmpMax - expMax.c; - var deltaDelta = deltaMin - deltaMax; - if (deltaDelta > tmpStep * 1.1) { - deltaDelta = MATH_ROUND(deltaDelta / tmpStep / 2) * tmpStep; - tmpMin += deltaDelta; - tmpMax += deltaDelta; - } - expMin.c = tmpMin; - expMax.c = tmpMax; - return tmpStep; - } - function tryForInt(min, max, section, expMin, expMax, secs) { - var span = expMax.c - expMin.c; - var step = span / secs * MATH_POW(expMax.e); - if (!MATH_ISINT(step)) { - step = MATH_FLOOR(step); - span = step * secs; - if (span < max - min) { - step += 1; - span = step * secs; - if (!section && step * (secs - 1) >= max - min) { - secs -= 1; - span = step * secs; - } - } - if (span >= max - min) { - var delta = span - (max - min); - expMin.c = MATH_ROUND(min - delta / 2); - expMax.c = MATH_ROUND(max + delta / 2); - expMin.e = 0; - expMax.e = 0; - } - } - return secs; - } - function forInteger(min, max, section) { - section = section || 5; - if (minLocked) { - max = min + section; - } else if (maxLocked) { - min = max - section; - } else { - var delta = section - (max - min); - var newMin = MATH_ROUND(min - delta / 2); - var newMax = MATH_ROUND(max + delta / 2); - var arrMM = cross0(min, max, newMin, newMax); - min = arrMM[0]; - max = arrMM[1]; - } - return makeResult(min, max, section); - } - function forSpan0(min, max, section) { - section = section || 5; - var delta = MT.min(MATH_ABS(max / section), section) / 2.1; - if (minLocked) { - max = min + delta; - } else if (maxLocked) { - min = max - delta; - } else { - min = min - delta; - max = max + delta; - } - return coreCalc(min, max, section); - } - function cross0(min, max, newMin, newMax) { - if (min >= 0 && newMin < 0) { - newMax -= newMin; - newMin = 0; - } else if (max <= 0 && newMax > 0) { - newMin -= newMax; - newMax = 0; - } - return [ - newMin, - newMax - ]; - } - function decimals(num) { - num = (+num).toFixed(15).split('.'); - return num.pop().replace(/0+$/, '').length; - } - function singleLocked(min, max, emin, emax) { - if (minLocked) { - var expMin = expNum(min, 4, 1); - if (emin.e - expMin.e > 6) { - expMin = { - c: 0, - e: emin.e - }; - } - expFixMin(emin, expMin); - expFixMin(emax, expMin); - emax.c += expMin.c - emin.c; - emin.c = expMin.c; - } else if (maxLocked) { - var expMax = expNum(max, 4); - if (emax.e - expMax.e > 6) { - expMax = { - c: 0, - e: emax.e - }; - } - expFixMin(emin, expMax); - expFixMin(emax, expMax); - emin.c += expMax.c - emax.c; - emax.c = expMax.c; - } - } - function bothLocked(min, max, section) { - var trySecs = section ? [section] : custSecs; - var span = max - min; - if (span === 0) { - max = expNum(max, 3); - section = trySecs[0]; - max.c = MATH_ROUND(max.c + section / 2); - return makeResult(max.c - section, max.c, section, max.e); - } - if (MATH_ABS(max / span) < 0.000001) { - max = 0; - } - if (MATH_ABS(min / span) < 0.000001) { - min = 0; - } - var step, deltaSpan, score; - var scoreS = [ - [ - 5, - 10 - ], - [ - 10, - 2 - ], - [ - 50, - 10 - ], - [ - 100, - 2 - ] - ]; - var reference = []; - var debugLog = []; - var expSpan = expNum(max - min, 3); - var expMin = expNum(min, -1, 1); - var expMax = expNum(max, -1); - expFixTo(expMin, expSpan, 1); - expFixTo(expMax, expSpan); - span = expMax.c - expMin.c; - expSpan.c = span; - for (var i = trySecs.length; i--;) { - section = trySecs[i]; - step = MATH_CEIL(span / section); - deltaSpan = step * section - span; - score = (deltaSpan + 3) * 3; - score += (section - trySecs[0] + 2) * 2; - if (section % 5 === 0) { - score -= 10; - } - for (var j = scoreS.length; j--;) { - if (step % scoreS[j][0] === 0) { - score /= scoreS[j][1]; - } - } - debugLog[i] = [ - section, - step, - deltaSpan, - score - ].join(); - reference[i] = { - secs: section, - step: step, - delta: deltaSpan, - score: score - }; - } - reference.sort(function (a, b) { - return a.score - b.score; - }); - reference = reference[0]; - expMin.c = MATH_ROUND(expMin.c - reference.delta / 2); - expMax.c = MATH_ROUND(expMax.c + reference.delta / 2); - return makeResult(expMin.c, expMax.c, reference.secs, expSpan.e); - } - return smartSteps; -});define('echarts/util/smartLogSteps', [ - 'require', - './number' -], function (require) { - var number = require('./number'); - var Mt = Math; - var mathLog = Mt.log; - var mathPow = Mt.pow; - var mathAbs = Mt.abs; - var mathCeil = Mt.ceil; - var mathFloor = Mt.floor; - var LOG_BASE = Mt.E; - var LN10 = Mt.LN10; - var LN2 = Mt.LN2; - var LN2D10 = LN2 / LN10; - var EPSILON = 1e-9; - var DEFAULT_SPLIT_NUMBER = 5; - var MIN_BASE_10_SPLIT_NUMBER = 2; - var SUPERSCRIPTS = { - '0': '⁰', - '1': '¹', - '2': '²', - '3': '³', - '4': '⁴', - '5': '⁵', - '6': '⁶', - '7': '⁷', - '8': '⁸', - '9': '⁹', - '-': '⁻' - }; - var logPositive; - var logLabelBase; - var logLabelMode; - var lnBase; - var custOpts; - var splitNumber; - var logMappingOffset; - var absMin; - var absMax; - var tickList; - function smartLogSteps(opts) { - clearStaticVariables(); - custOpts = opts || {}; - reformSetting(); - makeTicksList(); - return [ - makeResult(), - clearStaticVariables() - ][0]; - } - function clearStaticVariables() { - logPositive = custOpts = logMappingOffset = lnBase = absMin = absMax = splitNumber = tickList = logLabelBase = logLabelMode = null; - } - function reformSetting() { - logLabelBase = custOpts.logLabelBase; - if (logLabelBase == null) { - logLabelMode = 'plain'; - logLabelBase = 10; - lnBase = LN10; - } else { - logLabelBase = +logLabelBase; - if (logLabelBase < 1) { - logLabelBase = 10; - } - logLabelMode = 'exponent'; - lnBase = mathLog(logLabelBase); - } - splitNumber = custOpts.splitNumber; - splitNumber == null && (splitNumber = DEFAULT_SPLIT_NUMBER); - var dataMin = parseFloat(custOpts.dataMin); - var dataMax = parseFloat(custOpts.dataMax); - if (!isFinite(dataMin) && !isFinite(dataMax)) { - dataMin = dataMax = 1; - } else if (!isFinite(dataMin)) { - dataMin = dataMax; - } else if (!isFinite(dataMax)) { - dataMax = dataMin; - } else if (dataMin > dataMax) { - dataMax = [ - dataMin, - dataMin = dataMax - ][0]; - } - logPositive = custOpts.logPositive; - if (logPositive == null) { - logPositive = dataMax > 0 || dataMin === 0; - } - absMin = logPositive ? dataMin : -dataMax; - absMax = logPositive ? dataMax : -dataMin; - absMin < EPSILON && (absMin = EPSILON); - absMax < EPSILON && (absMax = EPSILON); - } - function makeTicksList() { - tickList = []; - var maxDataLog = fixAccurate(mathLog(absMax) / lnBase); - var minDataLog = fixAccurate(mathLog(absMin) / lnBase); - var maxExpon = mathCeil(maxDataLog); - var minExpon = mathFloor(minDataLog); - var spanExpon = maxExpon - minExpon; - var spanDataLog = maxDataLog - minDataLog; - if (logLabelMode === 'exponent') { - baseAnalysis(); - } else { - !(spanExpon <= MIN_BASE_10_SPLIT_NUMBER && splitNumber > MIN_BASE_10_SPLIT_NUMBER) ? baseAnalysis() : detailAnalysis(); - } - function baseAnalysis() { - if (spanExpon < splitNumber) { - splitNumber = spanExpon; - } - var stepExpon = mathFloor(fixAccurate(spanExpon / splitNumber)); - var splitNumberAdjust = mathCeil(fixAccurate(spanExpon / stepExpon)); - var spanExponAdjust = stepExpon * splitNumberAdjust; - var halfDiff = (spanExponAdjust - spanDataLog) / 2; - var minExponAdjust = mathFloor(fixAccurate(minDataLog - halfDiff)); - if (aroundZero(minExponAdjust - minDataLog)) { - minExponAdjust -= 1; - } - logMappingOffset = -minExponAdjust * lnBase; - for (var n = minExponAdjust; n - stepExpon <= maxDataLog; n += stepExpon) { - tickList.push(mathPow(logLabelBase, n)); - } - } - function detailAnalysis() { - var minDecimal = toDecimalFrom4Hex(minExpon, 0); - var endDecimal = minDecimal + 2; - while (minDecimal < endDecimal && toH(minDecimal + 1) + toK(minDecimal + 1) * LN2D10 < minDataLog) { - minDecimal++; - } - var maxDecimal = toDecimalFrom4Hex(maxExpon, 0); - var endDecimal = maxDecimal - 2; - while (maxDecimal > endDecimal && toH(maxDecimal - 1) + toK(maxDecimal - 1) * LN2D10 > maxDataLog) { - maxDecimal--; - } - logMappingOffset = -(toH(minDecimal) * LN10 + toK(minDecimal) * LN2); - for (var i = minDecimal; i <= maxDecimal; i++) { - var h = toH(i); - var k = toK(i); - tickList.push(mathPow(10, h) * mathPow(2, k)); - } - } - function toDecimalFrom4Hex(h, k) { - return h * 3 + k; - } - function toK(decimal) { - return decimal - toH(decimal) * 3; - } - function toH(decimal) { - return mathFloor(fixAccurate(decimal / 3)); - } - } - function makeResult() { - var resultTickList = []; - for (var i = 0, len = tickList.length; i < len; i++) { - resultTickList[i] = (logPositive ? 1 : -1) * tickList[i]; - } - !logPositive && resultTickList.reverse(); - var dataMappingMethods = makeDataMappingMethods(); - var value2Coord = dataMappingMethods.value2Coord; - var newDataMin = value2Coord(resultTickList[0]); - var newDataMax = value2Coord(resultTickList[resultTickList.length - 1]); - if (newDataMin === newDataMax) { - newDataMin -= 1; - newDataMax += 1; - } - return { - dataMin: newDataMin, - dataMax: newDataMax, - tickList: resultTickList, - logPositive: logPositive, - labelFormatter: makeLabelFormatter(), - dataMappingMethods: dataMappingMethods - }; - } - function makeLabelFormatter() { - if (logLabelMode === 'exponent') { - var myLogLabelBase = logLabelBase; - var myLnBase = lnBase; - return function (value) { - if (!isFinite(parseFloat(value))) { - return ''; - } - var sign = ''; - if (value < 0) { - value = -value; - sign = '-'; - } - return sign + myLogLabelBase + makeSuperscriptExponent(mathLog(value) / myLnBase); - }; - } else { - return function (value) { - if (!isFinite(parseFloat(value))) { - return ''; - } - return number.addCommas(formatNumber(value)); - }; - } - } - function makeDataMappingMethods() { - var myLogPositive = logPositive; - var myLogMappingOffset = logMappingOffset; - return { - value2Coord: function (x) { - if (x == null || isNaN(x) || !isFinite(x)) { - return x; - } - x = parseFloat(x); - if (!isFinite(x)) { - x = EPSILON; - } else if (myLogPositive && x < EPSILON) { - x = EPSILON; - } else if (!myLogPositive && x > -EPSILON) { - x = -EPSILON; - } - x = mathAbs(x); - return (myLogPositive ? 1 : -1) * (mathLog(x) + myLogMappingOffset); - }, - coord2Value: function (x) { - if (x == null || isNaN(x) || !isFinite(x)) { - return x; - } - x = parseFloat(x); - if (!isFinite(x)) { - x = EPSILON; - } - return myLogPositive ? mathPow(LOG_BASE, x - myLogMappingOffset) : -mathPow(LOG_BASE, -x + myLogMappingOffset); - } - }; - } - function fixAccurate(result) { - return +Number(+result).toFixed(14); - } - function formatNumber(num) { - return Number(num).toFixed(15).replace(/\.?0*$/, ''); - } - function makeSuperscriptExponent(exponent) { - exponent = formatNumber(Math.round(exponent)); - var result = []; - for (var i = 0, len = exponent.length; i < len; i++) { - var cha = exponent.charAt(i); - result.push(SUPERSCRIPTS[cha] || ''); - } - return result.join(''); - } - function aroundZero(val) { - return val > -EPSILON && val < EPSILON; - } - return smartLogSteps; -});define('echarts/chart/line', [ - 'require', - './base', - 'zrender/shape/Polyline', - '../util/shape/Icon', - '../util/shape/HalfSmoothPolygon', - '../component/axis', - '../component/grid', - '../component/dataZoom', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var PolylineShape = require('zrender/shape/Polyline'); - var IconShape = require('../util/shape/Icon'); - var HalfSmoothPolygonShape = require('../util/shape/HalfSmoothPolygon'); - require('../component/axis'); - require('../component/grid'); - require('../component/dataZoom'); - var ecConfig = require('../config'); - ecConfig.line = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - xAxisIndex: 0, - yAxisIndex: 0, - dataFilter: 'nearest', - itemStyle: { - normal: { - label: { show: false }, - lineStyle: { - width: 2, - type: 'solid', - shadowColor: 'rgba(0,0,0,0)', - shadowBlur: 0, - shadowOffsetX: 0, - shadowOffsetY: 0 - } - }, - emphasis: { label: { show: false } } - }, - symbolSize: 2, - showAllSymbol: false - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function Line(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Line.prototype = { - type: ecConfig.CHART_TYPE_LINE, - _buildShape: function () { - this.finalPLMap = {}; - this._buildPosition(); - }, - _buildHorizontal: function (seriesArray, maxDataLength, locationMap, xMarkMap) { - var series = this.series; - var seriesIndex = locationMap[0][0]; - var serie = series[seriesIndex]; - var categoryAxis = this.component.xAxis.getAxis(serie.xAxisIndex || 0); - var valueAxis; - var x; - var y; - var lastYP; - var baseYP; - var lastYN; - var baseYN; - var curPLMap = {}; - var data; - var value; - for (var i = 0, l = maxDataLength; i < l; i++) { - if (categoryAxis.getNameByIndex(i) == null) { - break; - } - x = categoryAxis.getCoordByIndex(i); - for (var j = 0, k = locationMap.length; j < k; j++) { - valueAxis = this.component.yAxis.getAxis(series[locationMap[j][0]].yAxisIndex || 0); - baseYP = lastYP = baseYN = lastYN = valueAxis.getCoord(0); - for (var m = 0, n = locationMap[j].length; m < n; m++) { - seriesIndex = locationMap[j][m]; - serie = series[seriesIndex]; - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - curPLMap[seriesIndex] = curPLMap[seriesIndex] || []; - xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { - min: Number.POSITIVE_INFINITY, - max: Number.NEGATIVE_INFINITY, - sum: 0, - counter: 0, - average: 0 - }; - if (value === '-') { - if (curPLMap[seriesIndex].length > 0) { - this.finalPLMap[seriesIndex] = this.finalPLMap[seriesIndex] || []; - this.finalPLMap[seriesIndex].push(curPLMap[seriesIndex]); - curPLMap[seriesIndex] = []; - } - continue; - } - if (value >= 0) { - lastYP -= m > 0 ? valueAxis.getCoordSize(value) : baseYP - valueAxis.getCoord(value); - y = lastYP; - } else if (value < 0) { - lastYN += m > 0 ? valueAxis.getCoordSize(value) : valueAxis.getCoord(value) - baseYN; - y = lastYN; - } - curPLMap[seriesIndex].push([ - x, - y, - i, - categoryAxis.getNameByIndex(i), - x, - baseYP - ]); - if (xMarkMap[seriesIndex].min > value) { - xMarkMap[seriesIndex].min = value; - xMarkMap[seriesIndex].minY = y; - xMarkMap[seriesIndex].minX = x; - } - if (xMarkMap[seriesIndex].max < value) { - xMarkMap[seriesIndex].max = value; - xMarkMap[seriesIndex].maxY = y; - xMarkMap[seriesIndex].maxX = x; - } - xMarkMap[seriesIndex].sum += value; - xMarkMap[seriesIndex].counter++; - } - } - lastYP = this.component.grid.getY(); - var symbolSize; - for (var j = 0, k = locationMap.length; j < k; j++) { - for (var m = 0, n = locationMap[j].length; m < n; m++) { - seriesIndex = locationMap[j][m]; - serie = series[seriesIndex]; - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - if (value != '-') { - continue; - } - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - symbolSize = this.deepQuery([ - data, - serie - ], 'symbolSize'); - lastYP += symbolSize * 2 + 5; - y = lastYP; - this.shapeList.push(this._getCalculableItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y, 'horizontal')); - } - } - } - } - for (var sId in curPLMap) { - if (curPLMap[sId].length > 0) { - this.finalPLMap[sId] = this.finalPLMap[sId] || []; - this.finalPLMap[sId].push(curPLMap[sId]); - curPLMap[sId] = []; - } - } - this._calculMarkMapXY(xMarkMap, locationMap, 'y'); - this._buildBorkenLine(seriesArray, this.finalPLMap, categoryAxis, 'horizontal'); - }, - _buildVertical: function (seriesArray, maxDataLength, locationMap, xMarkMap) { - var series = this.series; - var seriesIndex = locationMap[0][0]; - var serie = series[seriesIndex]; - var categoryAxis = this.component.yAxis.getAxis(serie.yAxisIndex || 0); - var valueAxis; - var x; - var y; - var lastXP; - var baseXP; - var lastXN; - var baseXN; - var curPLMap = {}; - var data; - var value; - for (var i = 0, l = maxDataLength; i < l; i++) { - if (categoryAxis.getNameByIndex(i) == null) { - break; - } - y = categoryAxis.getCoordByIndex(i); - for (var j = 0, k = locationMap.length; j < k; j++) { - valueAxis = this.component.xAxis.getAxis(series[locationMap[j][0]].xAxisIndex || 0); - baseXP = lastXP = baseXN = lastXN = valueAxis.getCoord(0); - for (var m = 0, n = locationMap[j].length; m < n; m++) { - seriesIndex = locationMap[j][m]; - serie = series[seriesIndex]; - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - curPLMap[seriesIndex] = curPLMap[seriesIndex] || []; - xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { - min: Number.POSITIVE_INFINITY, - max: Number.NEGATIVE_INFINITY, - sum: 0, - counter: 0, - average: 0 - }; - if (value === '-') { - if (curPLMap[seriesIndex].length > 0) { - this.finalPLMap[seriesIndex] = this.finalPLMap[seriesIndex] || []; - this.finalPLMap[seriesIndex].push(curPLMap[seriesIndex]); - curPLMap[seriesIndex] = []; - } - continue; - } - if (value >= 0) { - lastXP += m > 0 ? valueAxis.getCoordSize(value) : valueAxis.getCoord(value) - baseXP; - x = lastXP; - } else if (value < 0) { - lastXN -= m > 0 ? valueAxis.getCoordSize(value) : baseXN - valueAxis.getCoord(value); - x = lastXN; - } - curPLMap[seriesIndex].push([ - x, - y, - i, - categoryAxis.getNameByIndex(i), - baseXP, - y - ]); - if (xMarkMap[seriesIndex].min > value) { - xMarkMap[seriesIndex].min = value; - xMarkMap[seriesIndex].minX = x; - xMarkMap[seriesIndex].minY = y; - } - if (xMarkMap[seriesIndex].max < value) { - xMarkMap[seriesIndex].max = value; - xMarkMap[seriesIndex].maxX = x; - xMarkMap[seriesIndex].maxY = y; - } - xMarkMap[seriesIndex].sum += value; - xMarkMap[seriesIndex].counter++; - } - } - lastXP = this.component.grid.getXend(); - var symbolSize; - for (var j = 0, k = locationMap.length; j < k; j++) { - for (var m = 0, n = locationMap[j].length; m < n; m++) { - seriesIndex = locationMap[j][m]; - serie = series[seriesIndex]; - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - if (value != '-') { - continue; - } - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - symbolSize = this.deepQuery([ - data, - serie - ], 'symbolSize'); - lastXP -= symbolSize * 2 + 5; - x = lastXP; - this.shapeList.push(this._getCalculableItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y, 'vertical')); - } - } - } - } - for (var sId in curPLMap) { - if (curPLMap[sId].length > 0) { - this.finalPLMap[sId] = this.finalPLMap[sId] || []; - this.finalPLMap[sId].push(curPLMap[sId]); - curPLMap[sId] = []; - } - } - this._calculMarkMapXY(xMarkMap, locationMap, 'x'); - this._buildBorkenLine(seriesArray, this.finalPLMap, categoryAxis, 'vertical'); - }, - _buildOther: function (seriesArray, maxDataLength, locationMap, xMarkMap) { - var series = this.series; - var curPLMap = {}; - var xAxis; - for (var j = 0, k = locationMap.length; j < k; j++) { - for (var m = 0, n = locationMap[j].length; m < n; m++) { - var seriesIndex = locationMap[j][m]; - var serie = series[seriesIndex]; - xAxis = this.component.xAxis.getAxis(serie.xAxisIndex || 0); - var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex || 0); - var baseY = yAxis.getCoord(0); - curPLMap[seriesIndex] = curPLMap[seriesIndex] || []; - xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { - min0: Number.POSITIVE_INFINITY, - min1: Number.POSITIVE_INFINITY, - max0: Number.NEGATIVE_INFINITY, - max1: Number.NEGATIVE_INFINITY, - sum0: 0, - sum1: 0, - counter0: 0, - counter1: 0, - average0: 0, - average1: 0 - }; - for (var i = 0, l = serie.data.length; i < l; i++) { - var data = serie.data[i]; - var value = this.getDataFromOption(data, '-'); - if (!(value instanceof Array)) { - continue; - } - var x = xAxis.getCoord(value[0]); - var y = yAxis.getCoord(value[1]); - curPLMap[seriesIndex].push([ - x, - y, - i, - value[0], - x, - baseY - ]); - if (xMarkMap[seriesIndex].min0 > value[0]) { - xMarkMap[seriesIndex].min0 = value[0]; - xMarkMap[seriesIndex].minY0 = y; - xMarkMap[seriesIndex].minX0 = x; - } - if (xMarkMap[seriesIndex].max0 < value[0]) { - xMarkMap[seriesIndex].max0 = value[0]; - xMarkMap[seriesIndex].maxY0 = y; - xMarkMap[seriesIndex].maxX0 = x; - } - xMarkMap[seriesIndex].sum0 += value[0]; - xMarkMap[seriesIndex].counter0++; - if (xMarkMap[seriesIndex].min1 > value[1]) { - xMarkMap[seriesIndex].min1 = value[1]; - xMarkMap[seriesIndex].minY1 = y; - xMarkMap[seriesIndex].minX1 = x; - } - if (xMarkMap[seriesIndex].max1 < value[1]) { - xMarkMap[seriesIndex].max1 = value[1]; - xMarkMap[seriesIndex].maxY1 = y; - xMarkMap[seriesIndex].maxX1 = x; - } - xMarkMap[seriesIndex].sum1 += value[1]; - xMarkMap[seriesIndex].counter1++; - } - } - } - for (var sId in curPLMap) { - if (curPLMap[sId].length > 0) { - this.finalPLMap[sId] = this.finalPLMap[sId] || []; - this.finalPLMap[sId].push(curPLMap[sId]); - curPLMap[sId] = []; - } - } - this._calculMarkMapXY(xMarkMap, locationMap, 'xy'); - this._buildBorkenLine(seriesArray, this.finalPLMap, xAxis, 'other'); - }, - _buildBorkenLine: function (seriesArray, pointList, categoryAxis, curOrient) { - var orient = curOrient == 'other' ? 'horizontal' : curOrient; - var series = this.series; - var data; - for (var sIdx = seriesArray.length - 1; sIdx >= 0; sIdx--) { - var seriesIndex = seriesArray[sIdx]; - var serie = series[seriesIndex]; - var seriesPL = pointList[seriesIndex]; - if (serie.type === this.type && seriesPL != null) { - var bbox = this._getBbox(seriesIndex, orient); - var defaultColor = this._sIndex2ColorMap[seriesIndex]; - var lineWidth = this.query(serie, 'itemStyle.normal.lineStyle.width'); - var lineType = this.query(serie, 'itemStyle.normal.lineStyle.type'); - var lineColor = this.query(serie, 'itemStyle.normal.lineStyle.color'); - var normalColor = this.getItemStyleColor(this.query(serie, 'itemStyle.normal.color'), seriesIndex, -1); - var isFill = this.query(serie, 'itemStyle.normal.areaStyle') != null; - var fillNormalColor = this.query(serie, 'itemStyle.normal.areaStyle.color'); - for (var i = 0, l = seriesPL.length; i < l; i++) { - var singlePL = seriesPL[i]; - var isLarge = curOrient != 'other' && this._isLarge(orient, singlePL); - if (!isLarge) { - for (var j = 0, k = singlePL.length; j < k; j++) { - data = serie.data[singlePL[j][2]]; - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable') || this.deepQuery([ - data, - serie - ], 'showAllSymbol') || categoryAxis.type === 'categoryAxis' && categoryAxis.isMainAxis(singlePL[j][2]) && this.deepQuery([ - data, - serie - ], 'symbol') != 'none') { - this.shapeList.push(this._getSymbol(seriesIndex, singlePL[j][2], singlePL[j][3], singlePL[j][0], singlePL[j][1], orient)); - } - } - } else { - singlePL = this._getLargePointList(orient, singlePL, serie.dataFilter); - } - var polylineShape = new PolylineShape({ - zlevel: serie.zlevel, - z: serie.z, - style: { - miterLimit: lineWidth, - pointList: singlePL, - strokeColor: lineColor || normalColor || defaultColor, - lineWidth: lineWidth, - lineType: lineType, - smooth: this._getSmooth(serie.smooth), - smoothConstraint: bbox, - shadowColor: this.query(serie, 'itemStyle.normal.lineStyle.shadowColor'), - shadowBlur: this.query(serie, 'itemStyle.normal.lineStyle.shadowBlur'), - shadowOffsetX: this.query(serie, 'itemStyle.normal.lineStyle.shadowOffsetX'), - shadowOffsetY: this.query(serie, 'itemStyle.normal.lineStyle.shadowOffsetY') - }, - hoverable: false, - _main: true, - _seriesIndex: seriesIndex, - _orient: orient - }); - ecData.pack(polylineShape, series[seriesIndex], seriesIndex, 0, i, series[seriesIndex].name); - this.shapeList.push(polylineShape); - if (isFill) { - var halfSmoothPolygonShape = new HalfSmoothPolygonShape({ - zlevel: serie.zlevel, - z: serie.z, - style: { - miterLimit: lineWidth, - pointList: zrUtil.clone(singlePL).concat([ - [ - singlePL[singlePL.length - 1][4], - singlePL[singlePL.length - 1][5] - ], - [ - singlePL[0][4], - singlePL[0][5] - ] - ]), - brushType: 'fill', - smooth: this._getSmooth(serie.smooth), - smoothConstraint: bbox, - color: fillNormalColor ? fillNormalColor : zrColor.alpha(defaultColor, 0.5) - }, - highlightStyle: { brushType: 'fill' }, - hoverable: false, - _main: true, - _seriesIndex: seriesIndex, - _orient: orient - }); - ecData.pack(halfSmoothPolygonShape, series[seriesIndex], seriesIndex, 0, i, series[seriesIndex].name); - this.shapeList.push(halfSmoothPolygonShape); - } - } - } - } - }, - _getBbox: function (seriesIndex, orient) { - var bbox = this.component.grid.getBbox(); - var xMarkMap = this.xMarkMap[seriesIndex]; - if (xMarkMap.minX0 != null) { - return [ - [ - Math.min(xMarkMap.minX0, xMarkMap.maxX0, xMarkMap.minX1, xMarkMap.maxX1), - Math.min(xMarkMap.minY0, xMarkMap.maxY0, xMarkMap.minY1, xMarkMap.maxY1) - ], - [ - Math.max(xMarkMap.minX0, xMarkMap.maxX0, xMarkMap.minX1, xMarkMap.maxX1), - Math.max(xMarkMap.minY0, xMarkMap.maxY0, xMarkMap.minY1, xMarkMap.maxY1) - ] - ]; - } else if (orient === 'horizontal') { - bbox[0][1] = Math.min(xMarkMap.minY, xMarkMap.maxY); - bbox[1][1] = Math.max(xMarkMap.minY, xMarkMap.maxY); - } else { - bbox[0][0] = Math.min(xMarkMap.minX, xMarkMap.maxX); - bbox[1][0] = Math.max(xMarkMap.minX, xMarkMap.maxX); - } - return bbox; - }, - _isLarge: function (orient, singlePL) { - if (singlePL.length < 2) { - return false; - } else { - return orient === 'horizontal' ? Math.abs(singlePL[0][0] - singlePL[1][0]) < 0.5 : Math.abs(singlePL[0][1] - singlePL[1][1]) < 0.5; - } - }, - _getLargePointList: function (orient, singlePL, filter) { - var total; - if (orient === 'horizontal') { - total = this.component.grid.getWidth(); - } else { - total = this.component.grid.getHeight(); - } - var len = singlePL.length; - var newList = []; - if (typeof filter != 'function') { - switch (filter) { - case 'min': - filter = function (arr) { - return Math.max.apply(null, arr); - }; - break; - case 'max': - filter = function (arr) { - return Math.min.apply(null, arr); - }; - break; - case 'average': - filter = function (arr) { - var total = 0; - for (var i = 0; i < arr.length; i++) { - total += arr[i]; - } - return total / arr.length; - }; - break; - default: - filter = function (arr) { - return arr[0]; - }; - } - } - var windowData = []; - for (var i = 0; i < total; i++) { - var idx0 = Math.floor(len / total * i); - var idx1 = Math.min(Math.floor(len / total * (i + 1)), len); - if (idx1 <= idx0) { - continue; - } - for (var j = idx0; j < idx1; j++) { - windowData[j - idx0] = orient === 'horizontal' ? singlePL[j][1] : singlePL[j][0]; - } - windowData.length = idx1 - idx0; - var filteredVal = filter(windowData); - var nearestIdx = -1; - var minDist = Infinity; - for (var j = idx0; j < idx1; j++) { - var val = orient === 'horizontal' ? singlePL[j][1] : singlePL[j][0]; - var dist = Math.abs(val - filteredVal); - if (dist < minDist) { - nearestIdx = j; - minDist = dist; - } - } - var newItem = singlePL[nearestIdx].slice(); - if (orient === 'horizontal') { - newItem[1] = filteredVal; - } else { - newItem[0] = filteredVal; - } - newList.push(newItem); - } - return newList; - }, - _getSmooth: function (isSmooth) { - if (isSmooth) { - return 0.3; - } else { - return 0; - } - }, - _getCalculableItem: function (seriesIndex, dataIndex, name, x, y, orient) { - var series = this.series; - var color = series[seriesIndex].calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor; - var itemShape = this._getSymbol(seriesIndex, dataIndex, name, x, y, orient); - itemShape.style.color = color; - itemShape.style.strokeColor = color; - itemShape.rotation = [ - 0, - 0 - ]; - itemShape.hoverable = false; - itemShape.draggable = false; - itemShape.style.text = undefined; - return itemShape; - }, - _getSymbol: function (seriesIndex, dataIndex, name, x, y, orient) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var itemShape = this.getSymbolShape(serie, seriesIndex, data, dataIndex, name, x, y, this._sIndex2ShapeMap[seriesIndex], this._sIndex2ColorMap[seriesIndex], '#fff', orient === 'vertical' ? 'horizontal' : 'vertical'); - itemShape.zlevel = serie.zlevel; - itemShape.z = serie.z + 1; - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - this.setCalculable(itemShape); - itemShape.draggable = true; - } - return itemShape; - }, - getMarkCoord: function (seriesIndex, mpData) { - var serie = this.series[seriesIndex]; - var xMarkMap = this.xMarkMap[seriesIndex]; - var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex); - var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex); - if (mpData.type && (mpData.type === 'max' || mpData.type === 'min' || mpData.type === 'average')) { - var valueIndex = mpData.valueIndex != null ? mpData.valueIndex : xMarkMap.maxX0 != null ? '1' : ''; - return [ - xMarkMap[mpData.type + 'X' + valueIndex], - xMarkMap[mpData.type + 'Y' + valueIndex], - xMarkMap[mpData.type + 'Line' + valueIndex], - xMarkMap[mpData.type + valueIndex] - ]; - } - return [ - typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0), - typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0) - ]; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - }, - ontooltipHover: function (param, tipShape) { - var seriesIndex = param.seriesIndex; - var dataIndex = param.dataIndex; - var seriesPL; - var singlePL; - var len = seriesIndex.length; - while (len--) { - seriesPL = this.finalPLMap[seriesIndex[len]]; - if (seriesPL) { - for (var i = 0, l = seriesPL.length; i < l; i++) { - singlePL = seriesPL[i]; - for (var j = 0, k = singlePL.length; j < k; j++) { - if (dataIndex === singlePL[j][2]) { - tipShape.push(this._getSymbol(seriesIndex[len], singlePL[j][2], singlePL[j][3], singlePL[j][0], singlePL[j][1], 'horizontal')); - } - } - } - } - } - }, - addDataAnimation: function (params, done) { - var series = this.series; - var aniMap = {}; - for (var i = 0, l = params.length; i < l; i++) { - aniMap[params[i][0]] = params[i]; - } - var x; - var dx; - var y; - var dy; - var seriesIndex; - var pointList; - var isHorizontal; - var aniCount = 0; - function animationDone() { - aniCount--; - if (aniCount === 0) { - done && done(); - } - } - function animationDuring(target) { - target.style.controlPointList = null; - } - for (var i = this.shapeList.length - 1; i >= 0; i--) { - seriesIndex = this.shapeList[i]._seriesIndex; - if (aniMap[seriesIndex] && !aniMap[seriesIndex][3]) { - if (this.shapeList[i]._main && this.shapeList[i].style.pointList.length > 1) { - pointList = this.shapeList[i].style.pointList; - dx = Math.abs(pointList[0][0] - pointList[1][0]); - dy = Math.abs(pointList[0][1] - pointList[1][1]); - isHorizontal = this.shapeList[i]._orient === 'horizontal'; - if (aniMap[seriesIndex][2]) { - if (this.shapeList[i].type === 'half-smooth-polygon') { - var len = pointList.length; - this.shapeList[i].style.pointList[len - 3] = pointList[len - 2]; - this.shapeList[i].style.pointList[len - 3][isHorizontal ? 0 : 1] = pointList[len - 4][isHorizontal ? 0 : 1]; - this.shapeList[i].style.pointList[len - 2] = pointList[len - 1]; - } - this.shapeList[i].style.pointList.pop(); - isHorizontal ? (x = dx, y = 0) : (x = 0, y = -dy); - } else { - this.shapeList[i].style.pointList.shift(); - if (this.shapeList[i].type === 'half-smooth-polygon') { - var targetPoint = this.shapeList[i].style.pointList.pop(); - isHorizontal ? targetPoint[0] = pointList[0][0] : targetPoint[1] = pointList[0][1]; - this.shapeList[i].style.pointList.push(targetPoint); - } - isHorizontal ? (x = -dx, y = 0) : (x = 0, y = dy); - } - this.shapeList[i].style.controlPointList = null; - this.zr.modShape(this.shapeList[i]); - } else { - if (aniMap[seriesIndex][2] && this.shapeList[i]._dataIndex === series[seriesIndex].data.length - 1) { - this.zr.delShape(this.shapeList[i].id); - continue; - } else if (!aniMap[seriesIndex][2] && this.shapeList[i]._dataIndex === 0) { - this.zr.delShape(this.shapeList[i].id); - continue; - } - } - this.shapeList[i].position = [ - 0, - 0 - ]; - aniCount++; - this.zr.animate(this.shapeList[i].id, '').when(this.query(this.option, 'animationDurationUpdate'), { - position: [ - x, - y - ] - }).during(animationDuring).done(animationDone).start(); - } - } - if (!aniCount) { - done && done(); - } - } - }; - function legendLineIcon(ctx, style, refreshNextFrame) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - var dy = height / 2; - if (style.symbol.match('empty')) { - ctx.fillStyle = '#fff'; - } - style.brushType = 'both'; - var symbol = style.symbol.replace('empty', '').toLowerCase(); - if (symbol.match('star')) { - dy = symbol.replace('star', '') - 0 || 5; - y -= 1; - symbol = 'star'; - } else if (symbol === 'rectangle' || symbol === 'arrow') { - x += (width - height) / 2; - width = height; - } - var imageLocation = ''; - if (symbol.match('image')) { - imageLocation = symbol.replace(new RegExp('^image:\\/\\/'), ''); - symbol = 'image'; - x += Math.round((width - height) / 2) - 1; - width = height = height + 2; - } - symbol = IconShape.prototype.iconLibrary[symbol]; - if (symbol) { - var x2 = style.x; - var y2 = style.y; - ctx.moveTo(x2, y2 + dy); - ctx.lineTo(x2 + 5, y2 + dy); - ctx.moveTo(x2 + style.width - 5, y2 + dy); - ctx.lineTo(x2 + style.width, y2 + dy); - var self = this; - symbol(ctx, { - x: x + 4, - y: y + 4, - width: width - 8, - height: height - 8, - n: dy, - image: imageLocation - }, function () { - self.modSelf(); - refreshNextFrame(); - }); - } else { - ctx.moveTo(x, y + dy); - ctx.lineTo(x + width, y + dy); - } - } - IconShape.prototype.iconLibrary['legendLineIcon'] = legendLineIcon; - zrUtil.inherits(Line, ChartBase); - require('../chart').define('line', Line); - return Line; -});define('echarts/util/shape/HalfSmoothPolygon', [ - 'require', - 'zrender/shape/Base', - 'zrender/shape/util/smoothBezier', - 'zrender/tool/util', - 'zrender/shape/Polygon' -], function (require) { - var Base = require('zrender/shape/Base'); - var smoothBezier = require('zrender/shape/util/smoothBezier'); - var zrUtil = require('zrender/tool/util'); - function HalfSmoothPolygon(options) { - Base.call(this, options); - } - HalfSmoothPolygon.prototype = { - type: 'half-smooth-polygon', - buildPath: function (ctx, style) { - var pointList = style.pointList; - if (pointList.length < 2) { - return; - } - if (style.smooth) { - var controlPoints = smoothBezier(pointList.slice(0, -2), style.smooth, false, style.smoothConstraint); - ctx.moveTo(pointList[0][0], pointList[0][1]); - var cp1; - var cp2; - var p; - var l = pointList.length; - for (var i = 0; i < l - 3; i++) { - cp1 = controlPoints[i * 2]; - cp2 = controlPoints[i * 2 + 1]; - p = pointList[i + 1]; - ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); - } - ctx.lineTo(pointList[l - 2][0], pointList[l - 2][1]); - ctx.lineTo(pointList[l - 1][0], pointList[l - 1][1]); - ctx.lineTo(pointList[0][0], pointList[0][1]); - } else { - require('zrender/shape/Polygon').prototype.buildPath(ctx, style); - } - return; - } - }; - zrUtil.inherits(HalfSmoothPolygon, Base); - return HalfSmoothPolygon; -});define('echarts/chart/bar', [ - 'require', - './base', - 'zrender/shape/Rectangle', - '../component/axis', - '../component/grid', - '../component/dataZoom', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var RectangleShape = require('zrender/shape/Rectangle'); - require('../component/axis'); - require('../component/grid'); - require('../component/dataZoom'); - var ecConfig = require('../config'); - ecConfig.bar = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - xAxisIndex: 0, - yAxisIndex: 0, - barMinHeight: 0, - barGap: '30%', - barCategoryGap: '20%', - itemStyle: { - normal: { - barBorderColor: '#fff', - barBorderRadius: 0, - barBorderWidth: 0, - label: { show: false } - }, - emphasis: { - barBorderColor: '#fff', - barBorderRadius: 0, - barBorderWidth: 0, - label: { show: false } - } - } - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function Bar(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Bar.prototype = { - type: ecConfig.CHART_TYPE_BAR, - _buildShape: function () { - this._buildPosition(); - }, - _buildNormal: function (seriesArray, maxDataLength, locationMap, xMarkMap, orient) { - var series = this.series; - var seriesIndex = locationMap[0][0]; - var serie = series[seriesIndex]; - var isHorizontal = orient == 'horizontal'; - var xAxis = this.component.xAxis; - var yAxis = this.component.yAxis; - var categoryAxis = isHorizontal ? xAxis.getAxis(serie.xAxisIndex) : yAxis.getAxis(serie.yAxisIndex); - var valueAxis; - var size = this._mapSize(categoryAxis, locationMap); - var gap = size.gap; - var barGap = size.barGap; - var barWidthMap = size.barWidthMap; - var barMaxWidthMap = size.barMaxWidthMap; - var barWidth = size.barWidth; - var barMinHeightMap = size.barMinHeightMap; - var barHeight; - var curBarWidth; - var interval = size.interval; - var x; - var y; - var lastP; - var baseP; - var lastN; - var baseN; - var barShape; - var data; - var value; - var islandR = this.deepQuery([ - this.ecTheme, - ecConfig - ], 'island.r'); - for (var i = 0, l = maxDataLength; i < l; i++) { - if (categoryAxis.getNameByIndex(i) == null) { - break; - } - isHorizontal ? x = categoryAxis.getCoordByIndex(i) - gap / 2 : y = categoryAxis.getCoordByIndex(i) + gap / 2; - for (var j = 0, k = locationMap.length; j < k; j++) { - var yAxisIndex = series[locationMap[j][0]].yAxisIndex || 0; - var xAxisIndex = series[locationMap[j][0]].xAxisIndex || 0; - valueAxis = isHorizontal ? yAxis.getAxis(yAxisIndex) : xAxis.getAxis(xAxisIndex); - baseP = lastP = baseN = lastN = valueAxis.getCoord(0); - for (var m = 0, n = locationMap[j].length; m < n; m++) { - seriesIndex = locationMap[j][m]; - serie = series[seriesIndex]; - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { - min: Number.POSITIVE_INFINITY, - max: Number.NEGATIVE_INFINITY, - sum: 0, - counter: 0, - average: 0 - }; - curBarWidth = Math.min(barMaxWidthMap[seriesIndex] || Number.MAX_VALUE, barWidthMap[seriesIndex] || barWidth); - if (value === '-') { - continue; - } - if (value > 0) { - barHeight = m > 0 ? valueAxis.getCoordSize(value) : isHorizontal ? baseP - valueAxis.getCoord(value) : valueAxis.getCoord(value) - baseP; - if (n === 1 && barMinHeightMap[seriesIndex] > barHeight) { - barHeight = barMinHeightMap[seriesIndex]; - } - if (isHorizontal) { - lastP -= barHeight; - y = lastP; - } else { - x = lastP; - lastP += barHeight; - } - } else if (value < 0) { - barHeight = m > 0 ? valueAxis.getCoordSize(value) : isHorizontal ? valueAxis.getCoord(value) - baseN : baseN - valueAxis.getCoord(value); - if (n === 1 && barMinHeightMap[seriesIndex] > barHeight) { - barHeight = barMinHeightMap[seriesIndex]; - } - if (isHorizontal) { - y = lastN; - lastN += barHeight; - } else { - lastN -= barHeight; - x = lastN; - } - } else { - barHeight = 0; - if (isHorizontal) { - lastP -= barHeight; - y = lastP; - } else { - x = lastP; - lastP += barHeight; - } - } - xMarkMap[seriesIndex][i] = isHorizontal ? x + curBarWidth / 2 : y - curBarWidth / 2; - if (xMarkMap[seriesIndex].min > value) { - xMarkMap[seriesIndex].min = value; - if (isHorizontal) { - xMarkMap[seriesIndex].minY = y; - xMarkMap[seriesIndex].minX = xMarkMap[seriesIndex][i]; - } else { - xMarkMap[seriesIndex].minX = x + barHeight; - xMarkMap[seriesIndex].minY = xMarkMap[seriesIndex][i]; - } - } - if (xMarkMap[seriesIndex].max < value) { - xMarkMap[seriesIndex].max = value; - if (isHorizontal) { - xMarkMap[seriesIndex].maxY = y; - xMarkMap[seriesIndex].maxX = xMarkMap[seriesIndex][i]; - } else { - xMarkMap[seriesIndex].maxX = x + barHeight; - xMarkMap[seriesIndex].maxY = xMarkMap[seriesIndex][i]; - } - } - xMarkMap[seriesIndex].sum += value; - xMarkMap[seriesIndex].counter++; - if (i % interval === 0) { - barShape = this._getBarItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y - (isHorizontal ? 0 : curBarWidth), isHorizontal ? curBarWidth : barHeight, isHorizontal ? barHeight : curBarWidth, isHorizontal ? 'vertical' : 'horizontal'); - this.shapeList.push(new RectangleShape(barShape)); - } - } - for (var m = 0, n = locationMap[j].length; m < n; m++) { - seriesIndex = locationMap[j][m]; - serie = series[seriesIndex]; - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - curBarWidth = Math.min(barMaxWidthMap[seriesIndex] || Number.MAX_VALUE, barWidthMap[seriesIndex] || barWidth); - if (value != '-') { - continue; - } - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - if (isHorizontal) { - lastP -= islandR; - y = lastP; - } else { - x = lastP; - lastP += islandR; - } - barShape = this._getBarItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y - (isHorizontal ? 0 : curBarWidth), isHorizontal ? curBarWidth : islandR, isHorizontal ? islandR : curBarWidth, isHorizontal ? 'vertical' : 'horizontal'); - barShape.hoverable = false; - barShape.draggable = false; - barShape.style.lineWidth = 1; - barShape.style.brushType = 'stroke'; - barShape.style.strokeColor = serie.calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor; - this.shapeList.push(new RectangleShape(barShape)); - } - } - isHorizontal ? x += curBarWidth + barGap : y -= curBarWidth + barGap; - } - } - this._calculMarkMapXY(xMarkMap, locationMap, isHorizontal ? 'y' : 'x'); - }, - _buildHorizontal: function (seriesArray, maxDataLength, locationMap, xMarkMap) { - return this._buildNormal(seriesArray, maxDataLength, locationMap, xMarkMap, 'horizontal'); - }, - _buildVertical: function (seriesArray, maxDataLength, locationMap, xMarkMap) { - return this._buildNormal(seriesArray, maxDataLength, locationMap, xMarkMap, 'vertical'); - }, - _buildOther: function (seriesArray, maxDataLength, locationMap, xMarkMap) { - var series = this.series; - for (var j = 0, k = locationMap.length; j < k; j++) { - for (var m = 0, n = locationMap[j].length; m < n; m++) { - var seriesIndex = locationMap[j][m]; - var serie = series[seriesIndex]; - var xAxisIndex = serie.xAxisIndex || 0; - var xAxis = this.component.xAxis.getAxis(xAxisIndex); - var baseX = xAxis.getCoord(0); - var yAxisIndex = serie.yAxisIndex || 0; - var yAxis = this.component.yAxis.getAxis(yAxisIndex); - var baseY = yAxis.getCoord(0); - xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || { - min0: Number.POSITIVE_INFINITY, - min1: Number.POSITIVE_INFINITY, - max0: Number.NEGATIVE_INFINITY, - max1: Number.NEGATIVE_INFINITY, - sum0: 0, - sum1: 0, - counter0: 0, - counter1: 0, - average0: 0, - average1: 0 - }; - for (var i = 0, l = serie.data.length; i < l; i++) { - var data = serie.data[i]; - var value = this.getDataFromOption(data, '-'); - if (!(value instanceof Array)) { - continue; - } - var x = xAxis.getCoord(value[0]); - var y = yAxis.getCoord(value[1]); - var queryTarget = [ - data, - serie - ]; - var barWidth = this.deepQuery(queryTarget, 'barWidth') || 10; - var barHeight = this.deepQuery(queryTarget, 'barHeight'); - var orient; - var barShape; - if (barHeight != null) { - orient = 'horizontal'; - if (value[0] > 0) { - barWidth = x - baseX; - x -= barWidth; - } else if (value[0] < 0) { - barWidth = baseX - x; - } else { - barWidth = 0; - } - barShape = this._getBarItem(seriesIndex, i, value[0], x, y - barHeight / 2, barWidth, barHeight, orient); - } else { - orient = 'vertical'; - if (value[1] > 0) { - barHeight = baseY - y; - } else if (value[1] < 0) { - barHeight = y - baseY; - y -= barHeight; - } else { - barHeight = 0; - } - barShape = this._getBarItem(seriesIndex, i, value[0], x - barWidth / 2, y, barWidth, barHeight, orient); - } - this.shapeList.push(new RectangleShape(barShape)); - x = xAxis.getCoord(value[0]); - y = yAxis.getCoord(value[1]); - if (xMarkMap[seriesIndex].min0 > value[0]) { - xMarkMap[seriesIndex].min0 = value[0]; - xMarkMap[seriesIndex].minY0 = y; - xMarkMap[seriesIndex].minX0 = x; - } - if (xMarkMap[seriesIndex].max0 < value[0]) { - xMarkMap[seriesIndex].max0 = value[0]; - xMarkMap[seriesIndex].maxY0 = y; - xMarkMap[seriesIndex].maxX0 = x; - } - xMarkMap[seriesIndex].sum0 += value[0]; - xMarkMap[seriesIndex].counter0++; - if (xMarkMap[seriesIndex].min1 > value[1]) { - xMarkMap[seriesIndex].min1 = value[1]; - xMarkMap[seriesIndex].minY1 = y; - xMarkMap[seriesIndex].minX1 = x; - } - if (xMarkMap[seriesIndex].max1 < value[1]) { - xMarkMap[seriesIndex].max1 = value[1]; - xMarkMap[seriesIndex].maxY1 = y; - xMarkMap[seriesIndex].maxX1 = x; - } - xMarkMap[seriesIndex].sum1 += value[1]; - xMarkMap[seriesIndex].counter1++; - } - } - } - this._calculMarkMapXY(xMarkMap, locationMap, 'xy'); - }, - _mapSize: function (categoryAxis, locationMap, ignoreUserDefined) { - var res = this._findSpecialBarSzie(locationMap, ignoreUserDefined); - var barWidthMap = res.barWidthMap; - var barMaxWidthMap = res.barMaxWidthMap; - var barMinHeightMap = res.barMinHeightMap; - var sBarWidthCounter = res.sBarWidthCounter; - var sBarWidthTotal = res.sBarWidthTotal; - var barGap = res.barGap; - var barCategoryGap = res.barCategoryGap; - var gap; - var barWidth; - var interval = 1; - if (locationMap.length != sBarWidthCounter) { - if (!ignoreUserDefined) { - gap = typeof barCategoryGap === 'string' && barCategoryGap.match(/%$/) ? (categoryAxis.getGap() * (100 - parseFloat(barCategoryGap)) / 100).toFixed(2) - 0 : categoryAxis.getGap() - barCategoryGap; - if (typeof barGap === 'string' && barGap.match(/%$/)) { - barGap = parseFloat(barGap) / 100; - barWidth = +((gap - sBarWidthTotal) / ((locationMap.length - 1) * barGap + locationMap.length - sBarWidthCounter)).toFixed(2); - barGap = barWidth * barGap; - } else { - barGap = parseFloat(barGap); - barWidth = +((gap - sBarWidthTotal - barGap * (locationMap.length - 1)) / (locationMap.length - sBarWidthCounter)).toFixed(2); - } - if (barWidth <= 0) { - return this._mapSize(categoryAxis, locationMap, true); - } - } else { - gap = categoryAxis.getGap(); - barGap = 0; - barWidth = +(gap / locationMap.length).toFixed(2); - if (barWidth <= 0) { - interval = Math.floor(locationMap.length / gap); - barWidth = 1; - } - } - } else { - gap = sBarWidthCounter > 1 ? typeof barCategoryGap === 'string' && barCategoryGap.match(/%$/) ? +(categoryAxis.getGap() * (100 - parseFloat(barCategoryGap)) / 100).toFixed(2) : categoryAxis.getGap() - barCategoryGap : sBarWidthTotal; - barWidth = 0; - barGap = sBarWidthCounter > 1 ? +((gap - sBarWidthTotal) / (sBarWidthCounter - 1)).toFixed(2) : 0; - if (barGap < 0) { - return this._mapSize(categoryAxis, locationMap, true); - } - } - return this._recheckBarMaxWidth(locationMap, barWidthMap, barMaxWidthMap, barMinHeightMap, gap, barWidth, barGap, interval); - }, - _findSpecialBarSzie: function (locationMap, ignoreUserDefined) { - var series = this.series; - var barWidthMap = {}; - var barMaxWidthMap = {}; - var barMinHeightMap = {}; - var sBarWidth; - var sBarMaxWidth; - var sBarWidthCounter = 0; - var sBarWidthTotal = 0; - var barGap; - var barCategoryGap; - for (var j = 0, k = locationMap.length; j < k; j++) { - var hasFound = { - barWidth: false, - barMaxWidth: false - }; - for (var m = 0, n = locationMap[j].length; m < n; m++) { - var seriesIndex = locationMap[j][m]; - var queryTarget = series[seriesIndex]; - if (!ignoreUserDefined) { - if (!hasFound.barWidth) { - sBarWidth = this.query(queryTarget, 'barWidth'); - if (sBarWidth != null) { - barWidthMap[seriesIndex] = sBarWidth; - sBarWidthTotal += sBarWidth; - sBarWidthCounter++; - hasFound.barWidth = true; - for (var ii = 0, ll = m; ii < ll; ii++) { - var pSeriesIndex = locationMap[j][ii]; - barWidthMap[pSeriesIndex] = sBarWidth; - } - } - } else { - barWidthMap[seriesIndex] = sBarWidth; - } - if (!hasFound.barMaxWidth) { - sBarMaxWidth = this.query(queryTarget, 'barMaxWidth'); - if (sBarMaxWidth != null) { - barMaxWidthMap[seriesIndex] = sBarMaxWidth; - hasFound.barMaxWidth = true; - for (var ii = 0, ll = m; ii < ll; ii++) { - var pSeriesIndex = locationMap[j][ii]; - barMaxWidthMap[pSeriesIndex] = sBarMaxWidth; - } - } - } else { - barMaxWidthMap[seriesIndex] = sBarMaxWidth; - } - } - barMinHeightMap[seriesIndex] = this.query(queryTarget, 'barMinHeight'); - barGap = barGap != null ? barGap : this.query(queryTarget, 'barGap'); - barCategoryGap = barCategoryGap != null ? barCategoryGap : this.query(queryTarget, 'barCategoryGap'); - } - } - return { - barWidthMap: barWidthMap, - barMaxWidthMap: barMaxWidthMap, - barMinHeightMap: barMinHeightMap, - sBarWidth: sBarWidth, - sBarMaxWidth: sBarMaxWidth, - sBarWidthCounter: sBarWidthCounter, - sBarWidthTotal: sBarWidthTotal, - barGap: barGap, - barCategoryGap: barCategoryGap - }; - }, - _recheckBarMaxWidth: function (locationMap, barWidthMap, barMaxWidthMap, barMinHeightMap, gap, barWidth, barGap, interval) { - for (var j = 0, k = locationMap.length; j < k; j++) { - var seriesIndex = locationMap[j][0]; - if (barMaxWidthMap[seriesIndex] && barMaxWidthMap[seriesIndex] < barWidth) { - gap -= barWidth - barMaxWidthMap[seriesIndex]; - } - } - return { - barWidthMap: barWidthMap, - barMaxWidthMap: barMaxWidthMap, - barMinHeightMap: barMinHeightMap, - gap: gap, - barWidth: barWidth, - barGap: barGap, - interval: interval - }; - }, - _getBarItem: function (seriesIndex, dataIndex, name, x, y, width, height, orient) { - var series = this.series; - var barShape; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var defaultColor = this._sIndex2ColorMap[seriesIndex]; - var queryTarget = [ - data, - serie - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal'); - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis'); - var normalBorderWidth = normal.barBorderWidth; - barShape = { - zlevel: serie.zlevel, - z: serie.z, - clickable: this.deepQuery(queryTarget, 'clickable'), - style: { - x: x, - y: y, - width: width, - height: height, - brushType: 'both', - color: this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color') || defaultColor, seriesIndex, dataIndex, data), - radius: normal.barBorderRadius, - lineWidth: normalBorderWidth, - strokeColor: normal.barBorderColor - }, - highlightStyle: { - color: this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), seriesIndex, dataIndex, data), - radius: emphasis.barBorderRadius, - lineWidth: emphasis.barBorderWidth, - strokeColor: emphasis.barBorderColor - }, - _orient: orient - }; - var barShapeStyle = barShape.style; - barShape.highlightStyle.color = barShape.highlightStyle.color || (typeof barShapeStyle.color === 'string' ? zrColor.lift(barShapeStyle.color, -0.3) : barShapeStyle.color); - barShapeStyle.x = Math.floor(barShapeStyle.x); - barShapeStyle.y = Math.floor(barShapeStyle.y); - barShapeStyle.height = Math.ceil(barShapeStyle.height); - barShapeStyle.width = Math.ceil(barShapeStyle.width); - if (normalBorderWidth > 0 && barShapeStyle.height > normalBorderWidth && barShapeStyle.width > normalBorderWidth) { - barShapeStyle.y += normalBorderWidth / 2; - barShapeStyle.height -= normalBorderWidth; - barShapeStyle.x += normalBorderWidth / 2; - barShapeStyle.width -= normalBorderWidth; - } else { - barShapeStyle.brushType = 'fill'; - } - barShape.highlightStyle.textColor = barShape.highlightStyle.color; - barShape = this.addLabel(barShape, serie, data, name, orient); - var barShapeStyleList = [ - barShapeStyle, - barShape.highlightStyle - ]; - for (var i = 0, l = barShapeStyleList.length; i < l; i++) { - var textPosition = barShapeStyleList[i].textPosition; - if (textPosition === 'insideLeft' || textPosition === 'insideRight' || textPosition === 'insideTop' || textPosition === 'insideBottom') { - var gap = 5; - switch (textPosition) { - case 'insideLeft': - barShapeStyleList[i].textX = barShapeStyle.x + gap; - barShapeStyleList[i].textY = barShapeStyle.y + barShapeStyle.height / 2; - barShapeStyleList[i].textAlign = 'left'; - barShapeStyleList[i].textBaseline = 'middle'; - break; - case 'insideRight': - barShapeStyleList[i].textX = barShapeStyle.x + barShapeStyle.width - gap; - barShapeStyleList[i].textY = barShapeStyle.y + barShapeStyle.height / 2; - barShapeStyleList[i].textAlign = 'right'; - barShapeStyleList[i].textBaseline = 'middle'; - break; - case 'insideTop': - barShapeStyleList[i].textX = barShapeStyle.x + barShapeStyle.width / 2; - barShapeStyleList[i].textY = barShapeStyle.y + gap / 2; - barShapeStyleList[i].textAlign = 'center'; - barShapeStyleList[i].textBaseline = 'top'; - break; - case 'insideBottom': - barShapeStyleList[i].textX = barShapeStyle.x + barShapeStyle.width / 2; - barShapeStyleList[i].textY = barShapeStyle.y + barShapeStyle.height - gap / 2; - barShapeStyleList[i].textAlign = 'center'; - barShapeStyleList[i].textBaseline = 'bottom'; - break; - } - barShapeStyleList[i].textPosition = 'specific'; - barShapeStyleList[i].textColor = barShapeStyleList[i].textColor || '#fff'; - } - } - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - this.setCalculable(barShape); - barShape.draggable = true; - } - ecData.pack(barShape, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, name); - return barShape; - }, - getMarkCoord: function (seriesIndex, mpData) { - var serie = this.series[seriesIndex]; - var xMarkMap = this.xMarkMap[seriesIndex]; - var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex); - var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex); - var dataIndex; - var pos; - if (mpData.type && (mpData.type === 'max' || mpData.type === 'min' || mpData.type === 'average')) { - var valueIndex = mpData.valueIndex != null ? mpData.valueIndex : xMarkMap.maxX0 != null ? '1' : ''; - pos = [ - xMarkMap[mpData.type + 'X' + valueIndex], - xMarkMap[mpData.type + 'Y' + valueIndex], - xMarkMap[mpData.type + 'Line' + valueIndex], - xMarkMap[mpData.type + valueIndex] - ]; - } else if (xMarkMap.isHorizontal) { - dataIndex = typeof mpData.xAxis === 'string' && xAxis.getIndexByName ? xAxis.getIndexByName(mpData.xAxis) : mpData.xAxis || 0; - var x = xMarkMap[dataIndex]; - x = x != null ? x : typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0); - pos = [ - x, - yAxis.getCoord(mpData.yAxis || 0) - ]; - } else { - dataIndex = typeof mpData.yAxis === 'string' && yAxis.getIndexByName ? yAxis.getIndexByName(mpData.yAxis) : mpData.yAxis || 0; - var y = xMarkMap[dataIndex]; - y = y != null ? y : typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0); - pos = [ - xAxis.getCoord(mpData.xAxis || 0), - y - ]; - } - return pos; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - }, - addDataAnimation: function (params, done) { - var series = this.series; - var aniMap = {}; - for (var i = 0, l = params.length; i < l; i++) { - aniMap[params[i][0]] = params[i]; - } - var x; - var dx; - var y; - var dy; - var serie; - var seriesIndex; - var dataIndex; - var aniCount = 0; - function animationDone() { - aniCount--; - if (aniCount === 0) { - done && done(); - } - } - for (var i = this.shapeList.length - 1; i >= 0; i--) { - seriesIndex = ecData.get(this.shapeList[i], 'seriesIndex'); - if (aniMap[seriesIndex] && !aniMap[seriesIndex][3]) { - if (this.shapeList[i].type === 'rectangle') { - dataIndex = ecData.get(this.shapeList[i], 'dataIndex'); - serie = series[seriesIndex]; - if (aniMap[seriesIndex][2] && dataIndex === serie.data.length - 1) { - this.zr.delShape(this.shapeList[i].id); - continue; - } else if (!aniMap[seriesIndex][2] && dataIndex === 0) { - this.zr.delShape(this.shapeList[i].id); - continue; - } - if (this.shapeList[i]._orient === 'horizontal') { - dy = this.component.yAxis.getAxis(serie.yAxisIndex || 0).getGap(); - y = aniMap[seriesIndex][2] ? -dy : dy; - x = 0; - } else { - dx = this.component.xAxis.getAxis(serie.xAxisIndex || 0).getGap(); - x = aniMap[seriesIndex][2] ? dx : -dx; - y = 0; - } - this.shapeList[i].position = [ - 0, - 0 - ]; - aniCount++; - this.zr.animate(this.shapeList[i].id, '').when(this.query(this.option, 'animationDurationUpdate'), { - position: [ - x, - y - ] - }).done(animationDone).start(); - } - } - } - if (!aniCount) { - done && done(); - } - } - }; - zrUtil.inherits(Bar, ChartBase); - require('../chart').define('bar', Bar); - return Bar; -});define('echarts/chart/scatter', [ - 'require', - './base', - '../util/shape/Symbol', - '../component/axis', - '../component/grid', - '../component/dataZoom', - '../component/dataRange', - '../config', - 'zrender/tool/util', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var SymbolShape = require('../util/shape/Symbol'); - require('../component/axis'); - require('../component/grid'); - require('../component/dataZoom'); - require('../component/dataRange'); - var ecConfig = require('../config'); - ecConfig.scatter = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - xAxisIndex: 0, - yAxisIndex: 0, - symbolSize: 4, - large: false, - largeThreshold: 2000, - itemStyle: { - normal: { label: { show: false } }, - emphasis: { label: { show: false } } - } - }; - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function Scatter(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Scatter.prototype = { - type: ecConfig.CHART_TYPE_SCATTER, - _buildShape: function () { - var series = this.series; - this._sIndex2ColorMap = {}; - this._symbol = this.option.symbolList; - this._sIndex2ShapeMap = {}; - this.selectedMap = {}; - this.xMarkMap = {}; - var legend = this.component.legend; - var seriesArray = []; - var serie; - var serieName; - var iconShape; - var iconType; - for (var i = 0, l = series.length; i < l; i++) { - serie = series[i]; - serieName = serie.name; - if (serie.type === ecConfig.CHART_TYPE_SCATTER) { - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - this._sIndex2ShapeMap[i] = this.query(serie, 'symbol') || this._symbol[i % this._symbol.length]; - if (legend) { - this.selectedMap[serieName] = legend.isSelected(serieName); - this._sIndex2ColorMap[i] = zrColor.alpha(legend.getColor(serieName), 0.5); - iconShape = legend.getItemShape(serieName); - if (iconShape) { - var iconType = this._sIndex2ShapeMap[i]; - iconShape.style.brushType = iconType.match('empty') ? 'stroke' : 'both'; - iconType = iconType.replace('empty', '').toLowerCase(); - if (iconType.match('rectangle')) { - iconShape.style.x += Math.round((iconShape.style.width - iconShape.style.height) / 2); - iconShape.style.width = iconShape.style.height; - } - if (iconType.match('star')) { - iconShape.style.n = iconType.replace('star', '') - 0 || 5; - iconType = 'star'; - } - if (iconType.match('image')) { - iconShape.style.image = iconType.replace(new RegExp('^image:\\/\\/'), ''); - iconShape.style.x += Math.round((iconShape.style.width - iconShape.style.height) / 2); - iconShape.style.width = iconShape.style.height; - iconType = 'image'; - } - iconShape.style.iconType = iconType; - legend.setItemShape(serieName, iconShape); - } - } else { - this.selectedMap[serieName] = true; - this._sIndex2ColorMap[i] = zrColor.alpha(this.zr.getColor(i), 0.5); - } - if (this.selectedMap[serieName]) { - seriesArray.push(i); - } - } - } - this._buildSeries(seriesArray); - this.addShapeList(); - }, - _buildSeries: function (seriesArray) { - if (seriesArray.length === 0) { - return; - } - var series = this.series; - var seriesIndex; - var serie; - var data; - var value; - var xAxis; - var yAxis; - var pointList = {}; - var x; - var y; - for (var j = 0, k = seriesArray.length; j < k; j++) { - seriesIndex = seriesArray[j]; - serie = series[seriesIndex]; - if (serie.data.length === 0) { - continue; - } - xAxis = this.component.xAxis.getAxis(serie.xAxisIndex || 0); - yAxis = this.component.yAxis.getAxis(serie.yAxisIndex || 0); - pointList[seriesIndex] = []; - for (var i = 0, l = serie.data.length; i < l; i++) { - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - if (value === '-' || value.length < 2) { - continue; - } - x = xAxis.getCoord(value[0]); - y = yAxis.getCoord(value[1]); - pointList[seriesIndex].push([ - x, - y, - i, - data.name || '' - ]); - } - this.xMarkMap[seriesIndex] = this._markMap(xAxis, yAxis, serie.data, pointList[seriesIndex]); - this.buildMark(seriesIndex); - } - this._buildPointList(pointList); - }, - _markMap: function (xAxis, yAxis, data, pointList) { - var xMarkMap = { - min0: Number.POSITIVE_INFINITY, - max0: Number.NEGATIVE_INFINITY, - sum0: 0, - counter0: 0, - average0: 0, - min1: Number.POSITIVE_INFINITY, - max1: Number.NEGATIVE_INFINITY, - sum1: 0, - counter1: 0, - average1: 0 - }; - var value; - for (var i = 0, l = pointList.length; i < l; i++) { - value = data[pointList[i][2]].value || data[pointList[i][2]]; - if (xMarkMap.min0 > value[0]) { - xMarkMap.min0 = value[0]; - xMarkMap.minY0 = pointList[i][1]; - xMarkMap.minX0 = pointList[i][0]; - } - if (xMarkMap.max0 < value[0]) { - xMarkMap.max0 = value[0]; - xMarkMap.maxY0 = pointList[i][1]; - xMarkMap.maxX0 = pointList[i][0]; - } - xMarkMap.sum0 += value[0]; - xMarkMap.counter0++; - if (xMarkMap.min1 > value[1]) { - xMarkMap.min1 = value[1]; - xMarkMap.minY1 = pointList[i][1]; - xMarkMap.minX1 = pointList[i][0]; - } - if (xMarkMap.max1 < value[1]) { - xMarkMap.max1 = value[1]; - xMarkMap.maxY1 = pointList[i][1]; - xMarkMap.maxX1 = pointList[i][0]; - } - xMarkMap.sum1 += value[1]; - xMarkMap.counter1++; - } - var gridX = this.component.grid.getX(); - var gridXend = this.component.grid.getXend(); - var gridY = this.component.grid.getY(); - var gridYend = this.component.grid.getYend(); - xMarkMap.average0 = xMarkMap.sum0 / xMarkMap.counter0; - var x = xAxis.getCoord(xMarkMap.average0); - xMarkMap.averageLine0 = [ - [ - x, - gridYend - ], - [ - x, - gridY - ] - ]; - xMarkMap.minLine0 = [ - [ - xMarkMap.minX0, - gridYend - ], - [ - xMarkMap.minX0, - gridY - ] - ]; - xMarkMap.maxLine0 = [ - [ - xMarkMap.maxX0, - gridYend - ], - [ - xMarkMap.maxX0, - gridY - ] - ]; - xMarkMap.average1 = xMarkMap.sum1 / xMarkMap.counter1; - var y = yAxis.getCoord(xMarkMap.average1); - xMarkMap.averageLine1 = [ - [ - gridX, - y - ], - [ - gridXend, - y - ] - ]; - xMarkMap.minLine1 = [ - [ - gridX, - xMarkMap.minY1 - ], - [ - gridXend, - xMarkMap.minY1 - ] - ]; - xMarkMap.maxLine1 = [ - [ - gridX, - xMarkMap.maxY1 - ], - [ - gridXend, - xMarkMap.maxY1 - ] - ]; - return xMarkMap; - }, - _buildPointList: function (pointList) { - var series = this.series; - var serie; - var seriesPL; - var singlePoint; - var shape; - for (var seriesIndex in pointList) { - serie = series[seriesIndex]; - seriesPL = pointList[seriesIndex]; - if (serie.large && serie.data.length > serie.largeThreshold) { - this.shapeList.push(this._getLargeSymbol(serie, seriesPL, this.getItemStyleColor(this.query(serie, 'itemStyle.normal.color'), seriesIndex, -1) || this._sIndex2ColorMap[seriesIndex])); - continue; - } - for (var i = 0, l = seriesPL.length; i < l; i++) { - singlePoint = seriesPL[i]; - shape = this._getSymbol(seriesIndex, singlePoint[2], singlePoint[3], singlePoint[0], singlePoint[1]); - shape && this.shapeList.push(shape); - } - } - }, - _getSymbol: function (seriesIndex, dataIndex, name, x, y) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var dataRange = this.component.dataRange; - var rangColor; - if (dataRange) { - rangColor = isNaN(data[2]) ? this._sIndex2ColorMap[seriesIndex] : dataRange.getColor(data[2]); - if (!rangColor) { - return null; - } - } else { - rangColor = this._sIndex2ColorMap[seriesIndex]; - } - var itemShape = this.getSymbolShape(serie, seriesIndex, data, dataIndex, name, x, y, this._sIndex2ShapeMap[seriesIndex], rangColor, 'rgba(0,0,0,0)', 'vertical'); - itemShape.zlevel = serie.zlevel; - itemShape.z = serie.z; - itemShape._main = true; - return itemShape; - }, - _getLargeSymbol: function (serie, pointList, nColor) { - return new SymbolShape({ - zlevel: serie.zlevel, - z: serie.z, - _main: true, - hoverable: false, - style: { - pointList: pointList, - color: nColor, - strokeColor: nColor - }, - highlightStyle: { pointList: [] } - }); - }, - getMarkCoord: function (seriesIndex, mpData) { - var serie = this.series[seriesIndex]; - var xMarkMap = this.xMarkMap[seriesIndex]; - var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex); - var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex); - var pos; - if (mpData.type && (mpData.type === 'max' || mpData.type === 'min' || mpData.type === 'average')) { - var valueIndex = mpData.valueIndex != null ? mpData.valueIndex : 1; - pos = [ - xMarkMap[mpData.type + 'X' + valueIndex], - xMarkMap[mpData.type + 'Y' + valueIndex], - xMarkMap[mpData.type + 'Line' + valueIndex], - xMarkMap[mpData.type + valueIndex] - ]; - } else { - pos = [ - typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0), - typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0) - ]; - } - return pos; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - }, - ondataRange: function (param, status) { - if (this.component.dataRange) { - this.refresh(); - status.needRefresh = true; - } - return; - } - }; - zrUtil.inherits(Scatter, ChartBase); - require('../chart').define('scatter', Scatter); - return Scatter; -});define('echarts/component/dataRange', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Rectangle', - '../util/shape/HandlePolygon', - '../config', - 'zrender/tool/util', - 'zrender/tool/event', - 'zrender/tool/area', - 'zrender/tool/color', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var RectangleShape = require('zrender/shape/Rectangle'); - var HandlePolygonShape = require('../util/shape/HandlePolygon'); - var ecConfig = require('../config'); - ecConfig.dataRange = { - zlevel: 0, - z: 4, - show: true, - orient: 'vertical', - x: 'left', - y: 'bottom', - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - itemGap: 10, - itemWidth: 20, - itemHeight: 14, - precision: 0, - splitNumber: 5, - splitList: null, - calculable: false, - selectedMode: true, - hoverLink: true, - realtime: true, - color: [ - '#006edd', - '#e0ffff' - ], - textStyle: { color: '#333' } - }; - var zrUtil = require('zrender/tool/util'); - var zrEvent = require('zrender/tool/event'); - var zrArea = require('zrender/tool/area'); - var zrColor = require('zrender/tool/color'); - function DataRange(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._ondrift = function (dx, dy) { - return self.__ondrift(this, dx, dy); - }; - self._ondragend = function () { - return self.__ondragend(); - }; - self._dataRangeSelected = function (param) { - return self.__dataRangeSelected(param); - }; - self._dispatchHoverLink = function (param) { - return self.__dispatchHoverLink(param); - }; - self._onhoverlink = function (params) { - return self.__onhoverlink(params); - }; - this._selectedMap = {}; - this._range = {}; - this.refresh(option); - messageCenter.bind(ecConfig.EVENT.HOVER, this._onhoverlink); - } - DataRange.prototype = { - type: ecConfig.COMPONENT_TYPE_DATARANGE, - _textGap: 10, - _buildShape: function () { - this._itemGroupLocation = this._getItemGroupLocation(); - this._buildBackground(); - if (this._isContinuity()) { - this._buildGradient(); - } else { - this._buildItem(); - } - if (this.dataRangeOption.show) { - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - } - this._syncShapeFromRange(); - }, - _buildItem: function () { - var data = this._valueTextList; - var dataLength = data.length; - var itemName; - var itemShape; - var textShape; - var font = this.getFont(this.dataRangeOption.textStyle); - var lastX = this._itemGroupLocation.x; - var lastY = this._itemGroupLocation.y; - var itemWidth = this.dataRangeOption.itemWidth; - var itemHeight = this.dataRangeOption.itemHeight; - var itemGap = this.dataRangeOption.itemGap; - var textHeight = zrArea.getTextHeight('国', font); - var color; - if (this.dataRangeOption.orient == 'vertical' && this.dataRangeOption.x == 'right') { - lastX = this._itemGroupLocation.x + this._itemGroupLocation.width - itemWidth; - } - var needValueText = true; - if (this.dataRangeOption.text) { - needValueText = false; - if (this.dataRangeOption.text[0]) { - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[0]); - if (this.dataRangeOption.orient == 'horizontal') { - lastX += zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap; - } else { - lastY += textHeight + this._textGap; - textShape.style.y += textHeight / 2 + this._textGap; - textShape.style.textBaseline = 'bottom'; - } - this.shapeList.push(new TextShape(textShape)); - } - } - for (var i = 0; i < dataLength; i++) { - itemName = data[i]; - color = this.getColorByIndex(i); - itemShape = this._getItemShape(lastX, lastY, itemWidth, itemHeight, this._selectedMap[i] ? color : '#ccc'); - itemShape._idx = i; - itemShape.onmousemove = this._dispatchHoverLink; - if (this.dataRangeOption.selectedMode) { - itemShape.clickable = true; - itemShape.onclick = this._dataRangeSelected; - } - this.shapeList.push(new RectangleShape(itemShape)); - if (needValueText) { - textShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX + itemWidth + 5, - y: lastY, - color: this._selectedMap[i] ? this.dataRangeOption.textStyle.color : '#ccc', - text: data[i], - textFont: font, - textBaseline: 'top' - }, - highlightStyle: { brushType: 'fill' } - }; - if (this.dataRangeOption.orient == 'vertical' && this.dataRangeOption.x == 'right') { - textShape.style.x -= itemWidth + 10; - textShape.style.textAlign = 'right'; - } - textShape._idx = i; - textShape.onmousemove = this._dispatchHoverLink; - if (this.dataRangeOption.selectedMode) { - textShape.clickable = true; - textShape.onclick = this._dataRangeSelected; - } - this.shapeList.push(new TextShape(textShape)); - } - if (this.dataRangeOption.orient == 'horizontal') { - lastX += itemWidth + (needValueText ? 5 : 0) + (needValueText ? zrArea.getTextWidth(itemName, font) : 0) + itemGap; - } else { - lastY += itemHeight + itemGap; - } - } - if (!needValueText && this.dataRangeOption.text[1]) { - if (this.dataRangeOption.orient == 'horizontal') { - lastX = lastX - itemGap + this._textGap; - } else { - lastY = lastY - itemGap + this._textGap; - } - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[1]); - if (this.dataRangeOption.orient != 'horizontal') { - textShape.style.y -= 5; - textShape.style.textBaseline = 'top'; - } - this.shapeList.push(new TextShape(textShape)); - } - }, - _buildGradient: function () { - var itemShape; - var textShape; - var font = this.getFont(this.dataRangeOption.textStyle); - var lastX = this._itemGroupLocation.x; - var lastY = this._itemGroupLocation.y; - var itemWidth = this.dataRangeOption.itemWidth; - var itemHeight = this.dataRangeOption.itemHeight; - var textHeight = zrArea.getTextHeight('国', font); - var mSize = 10; - var needValueText = true; - if (this.dataRangeOption.text) { - needValueText = false; - if (this.dataRangeOption.text[0]) { - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[0]); - if (this.dataRangeOption.orient == 'horizontal') { - lastX += zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap; - } else { - lastY += textHeight + this._textGap; - textShape.style.y += textHeight / 2 + this._textGap; - textShape.style.textBaseline = 'bottom'; - } - this.shapeList.push(new TextShape(textShape)); - } - } - var zrColor = require('zrender/tool/color'); - var per = 1 / (this.dataRangeOption.color.length - 1); - var colorList = []; - for (var i = 0, l = this.dataRangeOption.color.length; i < l; i++) { - colorList.push([ - i * per, - this.dataRangeOption.color[i] - ]); - } - if (this.dataRangeOption.orient == 'horizontal') { - itemShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX, - y: lastY, - width: itemWidth * mSize, - height: itemHeight, - color: zrColor.getLinearGradient(lastX, lastY, lastX + itemWidth * mSize, lastY, colorList) - }, - hoverable: false - }; - lastX += itemWidth * mSize + this._textGap; - } else { - itemShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX, - y: lastY, - width: itemWidth, - height: itemHeight * mSize, - color: zrColor.getLinearGradient(lastX, lastY, lastX, lastY + itemHeight * mSize, colorList) - }, - hoverable: false - }; - lastY += itemHeight * mSize + this._textGap; - } - this.shapeList.push(new RectangleShape(itemShape)); - this._calculableLocation = itemShape.style; - if (this.dataRangeOption.calculable) { - this._buildFiller(); - this._bulidMask(); - this._bulidHandle(); - } - this._buildIndicator(); - if (!needValueText && this.dataRangeOption.text[1]) { - textShape = this._getTextShape(lastX, lastY, this.dataRangeOption.text[1]); - this.shapeList.push(new TextShape(textShape)); - } - }, - _buildIndicator: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - var size = 5; - var pointList; - var textPosition; - if (this.dataRangeOption.orient == 'horizontal') { - if (this.dataRangeOption.y != 'bottom') { - pointList = [ - [ - x, - y + height - ], - [ - x - size, - y + height + size - ], - [ - x + size, - y + height + size - ] - ]; - textPosition = 'bottom'; - } else { - pointList = [ - [ - x, - y - ], - [ - x - size, - y - size - ], - [ - x + size, - y - size - ] - ]; - textPosition = 'top'; - } - } else { - if (this.dataRangeOption.x != 'right') { - pointList = [ - [ - x + width, - y - ], - [ - x + width + size, - y - size - ], - [ - x + width + size, - y + size - ] - ]; - textPosition = 'right'; - } else { - pointList = [ - [ - x, - y - ], - [ - x - size, - y - size - ], - [ - x - size, - y + size - ] - ]; - textPosition = 'left'; - } - } - this._indicatorShape = { - style: { - pointList: pointList, - color: '#fff', - __rect: { - x: Math.min(pointList[0][0], pointList[1][0]), - y: Math.min(pointList[0][1], pointList[1][1]), - width: size * (this.dataRangeOption.orient == 'horizontal' ? 2 : 1), - height: size * (this.dataRangeOption.orient == 'horizontal' ? 1 : 2) - } - }, - highlightStyle: { - brushType: 'fill', - textPosition: textPosition, - textColor: this.dataRangeOption.textStyle.color - }, - hoverable: false - }; - this._indicatorShape = new HandlePolygonShape(this._indicatorShape); - }, - _buildFiller: function () { - this._fillerShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - x: this._calculableLocation.x, - y: this._calculableLocation.y, - width: this._calculableLocation.width, - height: this._calculableLocation.height, - color: 'rgba(255,255,255,0)' - }, - highlightStyle: { - strokeColor: 'rgba(255,255,255,0.5)', - lineWidth: 1 - }, - draggable: true, - ondrift: this._ondrift, - ondragend: this._ondragend, - onmousemove: this._dispatchHoverLink, - _type: 'filler' - }; - this._fillerShape = new RectangleShape(this._fillerShape); - this.shapeList.push(this._fillerShape); - }, - _bulidHandle: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - var font = this.getFont(this.dataRangeOption.textStyle); - var textHeight = zrArea.getTextHeight('国', font); - var textWidth = Math.max(zrArea.getTextWidth(this._textFormat(this.dataRangeOption.max), font), zrArea.getTextWidth(this._textFormat(this.dataRangeOption.min), font)) + 2; - var pointListStart; - var textXStart; - var textYStart; - var coverRectStart; - var pointListEnd; - var textXEnd; - var textYEnd; - var coverRectEnd; - if (this.dataRangeOption.orient == 'horizontal') { - if (this.dataRangeOption.y != 'bottom') { - pointListStart = [ - [ - x, - y - ], - [ - x, - y + height + textHeight - ], - [ - x - textHeight, - y + height + textHeight - ], - [ - x - 1, - y + height - ], - [ - x - 1, - y - ] - ]; - textXStart = x - textWidth / 2 - textHeight; - textYStart = y + height + textHeight / 2 + 2; - coverRectStart = { - x: x - textWidth - textHeight, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x + width, - y - ], - [ - x + width, - y + height + textHeight - ], - [ - x + width + textHeight, - y + height + textHeight - ], - [ - x + width + 1, - y + height - ], - [ - x + width + 1, - y - ] - ]; - textXEnd = x + width + textWidth / 2 + textHeight; - textYEnd = textYStart; - coverRectEnd = { - x: x + width, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - } else { - pointListStart = [ - [ - x, - y + height - ], - [ - x, - y - textHeight - ], - [ - x - textHeight, - y - textHeight - ], - [ - x - 1, - y - ], - [ - x - 1, - y + height - ] - ]; - textXStart = x - textWidth / 2 - textHeight; - textYStart = y - textHeight / 2 - 2; - coverRectStart = { - x: x - textWidth - textHeight, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x + width, - y + height - ], - [ - x + width, - y - textHeight - ], - [ - x + width + textHeight, - y - textHeight - ], - [ - x + width + 1, - y - ], - [ - x + width + 1, - y + height - ] - ]; - textXEnd = x + width + textWidth / 2 + textHeight; - textYEnd = textYStart; - coverRectEnd = { - x: x + width, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - } - } else { - textWidth += textHeight; - if (this.dataRangeOption.x != 'right') { - pointListStart = [ - [ - x, - y - ], - [ - x + width + textHeight, - y - ], - [ - x + width + textHeight, - y - textHeight - ], - [ - x + width, - y - 1 - ], - [ - x, - y - 1 - ] - ]; - textXStart = x + width + textWidth / 2 + textHeight / 2; - textYStart = y - textHeight / 2; - coverRectStart = { - x: x + width, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x, - y + height - ], - [ - x + width + textHeight, - y + height - ], - [ - x + width + textHeight, - y + textHeight + height - ], - [ - x + width, - y + 1 + height - ], - [ - x, - y + height + 1 - ] - ]; - textXEnd = textXStart; - textYEnd = y + height + textHeight / 2; - coverRectEnd = { - x: x + width, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - } else { - pointListStart = [ - [ - x + width, - y - ], - [ - x - textHeight, - y - ], - [ - x - textHeight, - y - textHeight - ], - [ - x, - y - 1 - ], - [ - x + width, - y - 1 - ] - ]; - textXStart = x - textWidth / 2 - textHeight / 2; - textYStart = y - textHeight / 2; - coverRectStart = { - x: x - textWidth - textHeight, - y: y - textHeight, - width: textWidth + textHeight, - height: textHeight - }; - pointListEnd = [ - [ - x + width, - y + height - ], - [ - x - textHeight, - y + height - ], - [ - x - textHeight, - y + textHeight + height - ], - [ - x, - y + 1 + height - ], - [ - x + width, - y + height + 1 - ] - ]; - textXEnd = textXStart; - textYEnd = y + height + textHeight / 2; - coverRectEnd = { - x: x - textWidth - textHeight, - y: y + height, - width: textWidth + textHeight, - height: textHeight - }; - } - } - this._startShape = { - style: { - pointList: pointListStart, - text: this._textFormat(this.dataRangeOption.max), - textX: textXStart, - textY: textYStart, - textFont: font, - color: this.getColor(this.dataRangeOption.max), - rect: coverRectStart, - x: pointListStart[0][0], - y: pointListStart[0][1], - _x: pointListStart[0][0], - _y: pointListStart[0][1] - } - }; - this._startShape.highlightStyle = { - strokeColor: this._startShape.style.color, - lineWidth: 1 - }; - this._endShape = { - style: { - pointList: pointListEnd, - text: this._textFormat(this.dataRangeOption.min), - textX: textXEnd, - textY: textYEnd, - textFont: font, - color: this.getColor(this.dataRangeOption.min), - rect: coverRectEnd, - x: pointListEnd[0][0], - y: pointListEnd[0][1], - _x: pointListEnd[0][0], - _y: pointListEnd[0][1] - } - }; - this._endShape.highlightStyle = { - strokeColor: this._endShape.style.color, - lineWidth: 1 - }; - this._startShape.zlevel = this._endShape.zlevel = this.getZlevelBase(); - this._startShape.z = this._endShape.z = this.getZBase() + 1; - this._startShape.draggable = this._endShape.draggable = true; - this._startShape.ondrift = this._endShape.ondrift = this._ondrift; - this._startShape.ondragend = this._endShape.ondragend = this._ondragend; - this._startShape.style.textColor = this._endShape.style.textColor = this.dataRangeOption.textStyle.color; - this._startShape.style.textAlign = this._endShape.style.textAlign = 'center'; - this._startShape.style.textPosition = this._endShape.style.textPosition = 'specific'; - this._startShape.style.textBaseline = this._endShape.style.textBaseline = 'middle'; - this._startShape.style.width = this._endShape.style.width = 0; - this._startShape.style.height = this._endShape.style.height = 0; - this._startShape.style.textPosition = this._endShape.style.textPosition = 'specific'; - this._startShape = new HandlePolygonShape(this._startShape); - this._endShape = new HandlePolygonShape(this._endShape); - this.shapeList.push(this._startShape); - this.shapeList.push(this._endShape); - }, - _bulidMask: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - this._startMask = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - x: x, - y: y, - width: this.dataRangeOption.orient == 'horizontal' ? 0 : width, - height: this.dataRangeOption.orient == 'horizontal' ? height : 0, - color: '#ccc' - }, - hoverable: false - }; - this._endMask = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - x: this.dataRangeOption.orient == 'horizontal' ? x + width : x, - y: this.dataRangeOption.orient == 'horizontal' ? y : y + height, - width: this.dataRangeOption.orient == 'horizontal' ? 0 : width, - height: this.dataRangeOption.orient == 'horizontal' ? height : 0, - color: '#ccc' - }, - hoverable: false - }; - this._startMask = new RectangleShape(this._startMask); - this._endMask = new RectangleShape(this._endMask); - this.shapeList.push(this._startMask); - this.shapeList.push(this._endMask); - }, - _buildBackground: function () { - var padding = this.reformCssArray(this.dataRangeOption.padding); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._itemGroupLocation.x - padding[3], - y: this._itemGroupLocation.y - padding[0], - width: this._itemGroupLocation.width + padding[3] + padding[1], - height: this._itemGroupLocation.height + padding[0] + padding[2], - brushType: this.dataRangeOption.borderWidth === 0 ? 'fill' : 'both', - color: this.dataRangeOption.backgroundColor, - strokeColor: this.dataRangeOption.borderColor, - lineWidth: this.dataRangeOption.borderWidth - } - })); - }, - _getItemGroupLocation: function () { - var data = this._valueTextList; - var dataLength = data.length; - var itemGap = this.dataRangeOption.itemGap; - var itemWidth = this.dataRangeOption.itemWidth; - var itemHeight = this.dataRangeOption.itemHeight; - var totalWidth = 0; - var totalHeight = 0; - var font = this.getFont(this.dataRangeOption.textStyle); - var textHeight = zrArea.getTextHeight('国', font); - var mSize = 10; - if (this.dataRangeOption.orient == 'horizontal') { - if (this.dataRangeOption.text || this._isContinuity()) { - totalWidth = (this._isContinuity() ? itemWidth * mSize + itemGap : dataLength * (itemWidth + itemGap)) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[0] != 'undefined' ? zrArea.getTextWidth(this.dataRangeOption.text[0], font) + this._textGap : 0) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[1] != 'undefined' ? zrArea.getTextWidth(this.dataRangeOption.text[1], font) + this._textGap : 0); - } else { - itemWidth += 5; - for (var i = 0; i < dataLength; i++) { - totalWidth += itemWidth + zrArea.getTextWidth(data[i], font) + itemGap; - } - } - totalWidth -= itemGap; - totalHeight = Math.max(textHeight, itemHeight); - } else { - var maxWidth; - if (this.dataRangeOption.text || this._isContinuity()) { - totalHeight = (this._isContinuity() ? itemHeight * mSize + itemGap : dataLength * (itemHeight + itemGap)) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[0] != 'undefined' ? this._textGap + textHeight : 0) + (this.dataRangeOption.text && typeof this.dataRangeOption.text[1] != 'undefined' ? this._textGap + textHeight : 0); - maxWidth = Math.max(zrArea.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[0] || '', font), zrArea.getTextWidth(this.dataRangeOption.text && this.dataRangeOption.text[1] || '', font)); - totalWidth = Math.max(itemWidth, maxWidth); - } else { - totalHeight = (itemHeight + itemGap) * dataLength; - itemWidth += 5; - maxWidth = 0; - for (var i = 0; i < dataLength; i++) { - maxWidth = Math.max(maxWidth, zrArea.getTextWidth(data[i], font)); - } - totalWidth = itemWidth + maxWidth; - } - totalHeight -= itemGap; - } - var padding = this.reformCssArray(this.dataRangeOption.padding); - var x; - var zrWidth = this.zr.getWidth(); - switch (this.dataRangeOption.x) { - case 'center': - x = Math.floor((zrWidth - totalWidth) / 2); - break; - case 'left': - x = padding[3] + this.dataRangeOption.borderWidth; - break; - case 'right': - x = zrWidth - totalWidth - padding[1] - this.dataRangeOption.borderWidth; - break; - default: - x = this.parsePercent(this.dataRangeOption.x, zrWidth); - x = isNaN(x) ? 0 : x; - break; - } - var y; - var zrHeight = this.zr.getHeight(); - switch (this.dataRangeOption.y) { - case 'top': - y = padding[0] + this.dataRangeOption.borderWidth; - break; - case 'bottom': - y = zrHeight - totalHeight - padding[2] - this.dataRangeOption.borderWidth; - break; - case 'center': - y = Math.floor((zrHeight - totalHeight) / 2); - break; - default: - y = this.parsePercent(this.dataRangeOption.y, zrHeight); - y = isNaN(y) ? 0 : y; - break; - } - if (this.dataRangeOption.calculable) { - var handlerWidth = Math.max(zrArea.getTextWidth(this.dataRangeOption.max, font), zrArea.getTextWidth(this.dataRangeOption.min, font)) + textHeight; - if (this.dataRangeOption.orient == 'horizontal') { - if (x < handlerWidth) { - x = handlerWidth; - } - if (x + totalWidth + handlerWidth > zrWidth) { - x -= handlerWidth; - } - } else { - if (y < textHeight) { - y = textHeight; - } - if (y + totalHeight + textHeight > zrHeight) { - y -= textHeight; - } - } - } - return { - x: x, - y: y, - width: totalWidth, - height: totalHeight - }; - }, - _getTextShape: function (x, y, text) { - return { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: this.dataRangeOption.orient == 'horizontal' ? x : this._itemGroupLocation.x + this._itemGroupLocation.width / 2, - y: this.dataRangeOption.orient == 'horizontal' ? this._itemGroupLocation.y + this._itemGroupLocation.height / 2 : y, - color: this.dataRangeOption.textStyle.color, - text: text, - textFont: this.getFont(this.dataRangeOption.textStyle), - textBaseline: this.dataRangeOption.orient == 'horizontal' ? 'middle' : 'top', - textAlign: this.dataRangeOption.orient == 'horizontal' ? 'left' : 'center' - }, - hoverable: false - }; - }, - _getItemShape: function (x, y, width, height, color) { - return { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: x, - y: y + 1, - width: width, - height: height - 2, - color: color - }, - highlightStyle: { - strokeColor: color, - lineWidth: 1 - } - }; - }, - __ondrift: function (shape, dx, dy) { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - if (this.dataRangeOption.orient == 'horizontal') { - if (shape.style.x + dx <= x) { - shape.style.x = x; - } else if (shape.style.x + dx + shape.style.width >= x + width) { - shape.style.x = x + width - shape.style.width; - } else { - shape.style.x += dx; - } - } else { - if (shape.style.y + dy <= y) { - shape.style.y = y; - } else if (shape.style.y + dy + shape.style.height >= y + height) { - shape.style.y = y + height - shape.style.height; - } else { - shape.style.y += dy; - } - } - if (shape._type == 'filler') { - this._syncHandleShape(); - } else { - this._syncFillerShape(shape); - } - if (this.dataRangeOption.realtime) { - this._dispatchDataRange(); - } - return true; - }, - __ondragend: function () { - this.isDragend = true; - }, - ondragend: function (param, status) { - if (!this.isDragend || !param.target) { - return; - } - status.dragOut = true; - status.dragIn = true; - if (!this.dataRangeOption.realtime) { - this._dispatchDataRange(); - } - status.needRefresh = false; - this.isDragend = false; - return; - }, - _syncShapeFromRange: function () { - var range = this.dataRangeOption.range || {}; - var optRangeStart = range.start; - var optRangeEnd = range.end; - if (optRangeEnd < optRangeStart) { - optRangeStart = [ - optRangeEnd, - optRangeEnd = optRangeStart - ][0]; - } - this._range.end = optRangeStart != null ? optRangeStart : this._range.end != null ? this._range.end : 0; - this._range.start = optRangeEnd != null ? optRangeEnd : this._range.start != null ? this._range.start : 100; - if (this._range.start != 100 || this._range.end !== 0) { - if (this.dataRangeOption.orient == 'horizontal') { - var width = this._fillerShape.style.width; - this._fillerShape.style.x += width * (100 - this._range.start) / 100; - this._fillerShape.style.width = width * (this._range.start - this._range.end) / 100; - } else { - var height = this._fillerShape.style.height; - this._fillerShape.style.y += height * (100 - this._range.start) / 100; - this._fillerShape.style.height = height * (this._range.start - this._range.end) / 100; - } - this.zr.modShape(this._fillerShape.id); - this._syncHandleShape(); - } - }, - _syncHandleShape: function () { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - if (this.dataRangeOption.orient == 'horizontal') { - this._startShape.style.x = this._fillerShape.style.x; - this._startMask.style.width = this._startShape.style.x - x; - this._endShape.style.x = this._fillerShape.style.x + this._fillerShape.style.width; - this._endMask.style.x = this._endShape.style.x; - this._endMask.style.width = x + width - this._endShape.style.x; - this._range.start = Math.ceil(100 - (this._startShape.style.x - x) / width * 100); - this._range.end = Math.floor(100 - (this._endShape.style.x - x) / width * 100); - } else { - this._startShape.style.y = this._fillerShape.style.y; - this._startMask.style.height = this._startShape.style.y - y; - this._endShape.style.y = this._fillerShape.style.y + this._fillerShape.style.height; - this._endMask.style.y = this._endShape.style.y; - this._endMask.style.height = y + height - this._endShape.style.y; - this._range.start = Math.ceil(100 - (this._startShape.style.y - y) / height * 100); - this._range.end = Math.floor(100 - (this._endShape.style.y - y) / height * 100); - } - this._syncShape(); - }, - _syncFillerShape: function (e) { - var x = this._calculableLocation.x; - var y = this._calculableLocation.y; - var width = this._calculableLocation.width; - var height = this._calculableLocation.height; - var a; - var b; - if (this.dataRangeOption.orient == 'horizontal') { - a = this._startShape.style.x; - b = this._endShape.style.x; - if (e.id == this._startShape.id && a >= b) { - b = a; - this._endShape.style.x = a; - } else if (e.id == this._endShape.id && a >= b) { - a = b; - this._startShape.style.x = a; - } - this._fillerShape.style.x = a; - this._fillerShape.style.width = b - a; - this._startMask.style.width = a - x; - this._endMask.style.x = b; - this._endMask.style.width = x + width - b; - this._range.start = Math.ceil(100 - (a - x) / width * 100); - this._range.end = Math.floor(100 - (b - x) / width * 100); - } else { - a = this._startShape.style.y; - b = this._endShape.style.y; - if (e.id == this._startShape.id && a >= b) { - b = a; - this._endShape.style.y = a; - } else if (e.id == this._endShape.id && a >= b) { - a = b; - this._startShape.style.y = a; - } - this._fillerShape.style.y = a; - this._fillerShape.style.height = b - a; - this._startMask.style.height = a - y; - this._endMask.style.y = b; - this._endMask.style.height = y + height - b; - this._range.start = Math.ceil(100 - (a - y) / height * 100); - this._range.end = Math.floor(100 - (b - y) / height * 100); - } - this._syncShape(); - }, - _syncShape: function () { - this._startShape.position = [ - this._startShape.style.x - this._startShape.style._x, - this._startShape.style.y - this._startShape.style._y - ]; - this._startShape.style.text = this._textFormat(this._gap * this._range.start + this.dataRangeOption.min); - this._startShape.style.color = this._startShape.highlightStyle.strokeColor = this.getColor(this._gap * this._range.start + this.dataRangeOption.min); - this._endShape.position = [ - this._endShape.style.x - this._endShape.style._x, - this._endShape.style.y - this._endShape.style._y - ]; - this._endShape.style.text = this._textFormat(this._gap * this._range.end + this.dataRangeOption.min); - this._endShape.style.color = this._endShape.highlightStyle.strokeColor = this.getColor(this._gap * this._range.end + this.dataRangeOption.min); - this.zr.modShape(this._startShape.id); - this.zr.modShape(this._endShape.id); - this.zr.modShape(this._startMask.id); - this.zr.modShape(this._endMask.id); - this.zr.modShape(this._fillerShape.id); - this.zr.refreshNextFrame(); - }, - _dispatchDataRange: function () { - this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE, null, { - range: { - start: this._range.end, - end: this._range.start - } - }, this.myChart); - }, - __dataRangeSelected: function (param) { - if (this.dataRangeOption.selectedMode === 'single') { - for (var k in this._selectedMap) { - this._selectedMap[k] = false; - } - } - var idx = param.target._idx; - this._selectedMap[idx] = !this._selectedMap[idx]; - var valueMax; - var valueMin; - if (this._useCustomizedSplit()) { - valueMax = this._splitList[idx].max; - valueMin = this._splitList[idx].min; - } else { - valueMax = (this._colorList.length - idx) * this._gap + this.dataRangeOption.min; - valueMin = valueMax - this._gap; - } - this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE_SELECTED, param.event, { - selected: this._selectedMap, - target: idx, - valueMax: valueMax, - valueMin: valueMin - }, this.myChart); - this.messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this.myChart); - }, - __dispatchHoverLink: function (param) { - var valueMin; - var valueMax; - if (this.dataRangeOption.calculable) { - var totalValue = this.dataRangeOption.max - this.dataRangeOption.min; - var curValue; - if (this.dataRangeOption.orient == 'horizontal') { - curValue = (1 - (zrEvent.getX(param.event) - this._calculableLocation.x) / this._calculableLocation.width) * totalValue; - } else { - curValue = (1 - (zrEvent.getY(param.event) - this._calculableLocation.y) / this._calculableLocation.height) * totalValue; - } - valueMin = curValue - totalValue * 0.05; - valueMax = curValue + totalValue * 0.05; - } else if (this._useCustomizedSplit()) { - var idx = param.target._idx; - valueMax = this._splitList[idx].max; - valueMin = this._splitList[idx].min; - } else { - var idx = param.target._idx; - valueMax = (this._colorList.length - idx) * this._gap + this.dataRangeOption.min; - valueMin = valueMax - this._gap; - } - this.messageCenter.dispatch(ecConfig.EVENT.DATA_RANGE_HOVERLINK, param.event, { - valueMin: valueMin, - valueMax: valueMax - }, this.myChart); - }, - __onhoverlink: function (param) { - if (this.dataRangeOption.show && this.dataRangeOption.hoverLink && this._indicatorShape && param && param.seriesIndex != null && param.dataIndex != null) { - var curValue = param.value; - if (curValue === '' || isNaN(curValue)) { - return; - } - if (curValue < this.dataRangeOption.min) { - curValue = this.dataRangeOption.min; - } else if (curValue > this.dataRangeOption.max) { - curValue = this.dataRangeOption.max; - } - if (this.dataRangeOption.orient == 'horizontal') { - this._indicatorShape.position = [ - (this.dataRangeOption.max - curValue) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.width, - 0 - ]; - } else { - this._indicatorShape.position = [ - 0, - (this.dataRangeOption.max - curValue) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._calculableLocation.height - ]; - } - this._indicatorShape.style.text = this._textFormat(param.value); - this._indicatorShape.style.color = this.getColor(curValue); - this.zr.addHoverShape(this._indicatorShape); - } - }, - _textFormat: function (valueStart, valueEnd) { - var dataRangeOption = this.dataRangeOption; - if (valueStart !== -Number.MAX_VALUE) { - valueStart = (+valueStart).toFixed(dataRangeOption.precision); - } - if (valueEnd != null && valueEnd !== Number.MAX_VALUE) { - valueEnd = (+valueEnd).toFixed(dataRangeOption.precision); - } - if (dataRangeOption.formatter) { - if (typeof dataRangeOption.formatter == 'string') { - return dataRangeOption.formatter.replace('{value}', valueStart === -Number.MAX_VALUE ? 'min' : valueStart).replace('{value2}', valueEnd === Number.MAX_VALUE ? 'max' : valueEnd); - } else if (typeof dataRangeOption.formatter == 'function') { - return dataRangeOption.formatter.call(this.myChart, valueStart, valueEnd); - } - } - if (valueEnd == null) { - return valueStart; - } else { - if (valueStart === -Number.MAX_VALUE) { - return '< ' + valueEnd; - } else if (valueEnd === Number.MAX_VALUE) { - return '> ' + valueStart; - } else { - return valueStart + ' - ' + valueEnd; - } - } - }, - _isContinuity: function () { - var dataRangeOption = this.dataRangeOption; - return !(dataRangeOption.splitList ? dataRangeOption.splitList.length > 0 : dataRangeOption.splitNumber > 0) || dataRangeOption.calculable; - }, - _useCustomizedSplit: function () { - var dataRangeOption = this.dataRangeOption; - return dataRangeOption.splitList && dataRangeOption.splitList.length > 0; - }, - _buildColorList: function (splitNumber) { - this._colorList = zrColor.getGradientColors(this.dataRangeOption.color, Math.max((splitNumber - this.dataRangeOption.color.length) / (this.dataRangeOption.color.length - 1), 0) + 1); - if (this._colorList.length > splitNumber) { - var len = this._colorList.length; - var newColorList = [this._colorList[0]]; - var step = len / (splitNumber - 1); - for (var i = 1; i < splitNumber - 1; i++) { - newColorList.push(this._colorList[Math.floor(i * step)]); - } - newColorList.push(this._colorList[len - 1]); - this._colorList = newColorList; - } - if (this._useCustomizedSplit()) { - var splitList = this._splitList; - for (var i = 0, len = splitList.length; i < len; i++) { - if (splitList[i].color) { - this._colorList[i] = splitList[i].color; - } - } - } - }, - _buildGap: function (splitNumber) { - if (!this._useCustomizedSplit()) { - var precision = this.dataRangeOption.precision; - this._gap = (this.dataRangeOption.max - this.dataRangeOption.min) / splitNumber; - while (this._gap.toFixed(precision) - 0 != this._gap && precision < 5) { - precision++; - } - this.dataRangeOption.precision = precision; - this._gap = ((this.dataRangeOption.max - this.dataRangeOption.min) / splitNumber).toFixed(precision) - 0; - } - }, - _buildDataList: function (splitNumber) { - var valueTextList = this._valueTextList = []; - var dataRangeOption = this.dataRangeOption; - var useCustomizedSplit = this._useCustomizedSplit(); - for (var i = 0; i < splitNumber; i++) { - this._selectedMap[i] = true; - var text = ''; - if (useCustomizedSplit) { - var splitListItem = this._splitList[splitNumber - 1 - i]; - if (splitListItem.label != null) { - text = splitListItem.label; - } else if (splitListItem.single != null) { - text = this._textFormat(splitListItem.single); - } else { - text = this._textFormat(splitListItem.min, splitListItem.max); - } - } else { - text = this._textFormat(i * this._gap + dataRangeOption.min, (i + 1) * this._gap + dataRangeOption.min); - } - valueTextList.unshift(text); - } - }, - _buildSplitList: function () { - if (!this._useCustomizedSplit()) { - return; - } - var splitList = this.dataRangeOption.splitList; - var splitRangeList = this._splitList = []; - for (var i = 0, len = splitList.length; i < len; i++) { - var splitListItem = splitList[i]; - if (!splitListItem || splitListItem.start == null && splitListItem.end == null) { - throw new Error('Empty item exists in splitList!'); - } - var reformedItem = { - label: splitListItem.label, - color: splitListItem.color - }; - reformedItem.min = splitListItem.start; - reformedItem.max = splitListItem.end; - if (reformedItem.min > reformedItem.max) { - reformedItem.min = [ - reformedItem.max, - reformedItem.max = reformedItem.min - ][0]; - } - if (reformedItem.min === reformedItem.max) { - reformedItem.single = reformedItem.max; - } - if (reformedItem.min == null) { - reformedItem.min = -Number.MAX_VALUE; - } - if (reformedItem.max == null) { - reformedItem.max = Number.MAX_VALUE; - } - splitRangeList.push(reformedItem); - } - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.option.dataRange = this.reformOption(this.option.dataRange); - var dataRangeOption = this.dataRangeOption = this.option.dataRange; - if (!this._useCustomizedSplit() && (dataRangeOption.min == null || dataRangeOption.max == null)) { - throw new Error('option.dataRange.min or option.dataRange.max has not been defined.'); - } - if (!this.myChart.canvasSupported) { - dataRangeOption.realtime = false; - } - var splitNumber = this._isContinuity() ? 100 : this._useCustomizedSplit() ? dataRangeOption.splitList.length : dataRangeOption.splitNumber; - this._buildSplitList(); - this._buildColorList(splitNumber); - this._buildGap(splitNumber); - this._buildDataList(splitNumber); - } - this.clear(); - this._buildShape(); - }, - getColor: function (value) { - if (isNaN(value)) { - return null; - } - var idx; - if (!this._useCustomizedSplit()) { - if (this.dataRangeOption.min == this.dataRangeOption.max) { - return this._colorList[0]; - } - if (value < this.dataRangeOption.min) { - value = this.dataRangeOption.min; - } else if (value > this.dataRangeOption.max) { - value = this.dataRangeOption.max; - } - if (this.dataRangeOption.calculable) { - if (value - (this._gap * this._range.start + this.dataRangeOption.min) > 0.00005 || value - (this._gap * this._range.end + this.dataRangeOption.min) < -0.00005) { - return null; - } - } - idx = this._colorList.length - Math.ceil((value - this.dataRangeOption.min) / (this.dataRangeOption.max - this.dataRangeOption.min) * this._colorList.length); - if (idx == this._colorList.length) { - idx--; - } - } else { - var splitRangeList = this._splitList; - for (var i = 0, len = splitRangeList.length; i < len; i++) { - if (splitRangeList[i].min <= value && splitRangeList[i].max >= value) { - idx = i; - break; - } - } - } - if (this._selectedMap[idx]) { - return this._colorList[idx]; - } else { - return null; - } - }, - getColorByIndex: function (idx) { - if (idx >= this._colorList.length) { - idx = this._colorList.length - 1; - } else if (idx < 0) { - idx = 0; - } - return this._colorList[idx]; - }, - onbeforDispose: function () { - this.messageCenter.unbind(ecConfig.EVENT.HOVER, this._onhoverlink); - } - }; - zrUtil.inherits(DataRange, Base); - require('../component').define('dataRange', DataRange); - return DataRange; -});define('echarts/util/shape/HandlePolygon', [ - 'require', - 'zrender/shape/Base', - 'zrender/shape/Polygon', - 'zrender/tool/util' -], function (require) { - var Base = require('zrender/shape/Base'); - var PolygonShape = require('zrender/shape/Polygon'); - var zrUtil = require('zrender/tool/util'); - function HandlePolygon(options) { - Base.call(this, options); - } - HandlePolygon.prototype = { - type: 'handle-polygon', - buildPath: function (ctx, style) { - PolygonShape.prototype.buildPath(ctx, style); - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - var rect = this.style.rect; - if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) { - return true; - } else { - return false; - } - } - }; - zrUtil.inherits(HandlePolygon, Base); - return HandlePolygon; -});define('echarts/chart/k', [ - 'require', - './base', - '../util/shape/Candle', - '../component/axis', - '../component/grid', - '../component/dataZoom', - '../config', - '../util/ecData', - 'zrender/tool/util', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var CandleShape = require('../util/shape/Candle'); - require('../component/axis'); - require('../component/grid'); - require('../component/dataZoom'); - var ecConfig = require('../config'); - ecConfig.k = { - zlevel: 0, - z: 2, - clickable: true, - hoverable: true, - legendHoverLink: false, - xAxisIndex: 0, - yAxisIndex: 0, - itemStyle: { - normal: { - color: '#fff', - color0: '#00aa11', - lineStyle: { - width: 1, - color: '#ff3200', - color0: '#00aa11' - }, - label: { show: false } - }, - emphasis: { label: { show: false } } - } - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - function K(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - K.prototype = { - type: ecConfig.CHART_TYPE_K, - _buildShape: function () { - var series = this.series; - this.selectedMap = {}; - var _position2sIndexMap = { - top: [], - bottom: [] - }; - var xAxis; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === ecConfig.CHART_TYPE_K) { - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - xAxis = this.component.xAxis.getAxis(series[i].xAxisIndex); - if (xAxis.type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { - _position2sIndexMap[xAxis.getPosition()].push(i); - } - } - } - for (var position in _position2sIndexMap) { - if (_position2sIndexMap[position].length > 0) { - this._buildSinglePosition(position, _position2sIndexMap[position]); - } - } - this.addShapeList(); - }, - _buildSinglePosition: function (position, seriesArray) { - var mapData = this._mapData(seriesArray); - var locationMap = mapData.locationMap; - var maxDataLength = mapData.maxDataLength; - if (maxDataLength === 0 || locationMap.length === 0) { - return; - } - this._buildHorizontal(seriesArray, maxDataLength, locationMap); - for (var i = 0, l = seriesArray.length; i < l; i++) { - this.buildMark(seriesArray[i]); - } - }, - _mapData: function (seriesArray) { - var series = this.series; - var serie; - var serieName; - var legend = this.component.legend; - var locationMap = []; - var maxDataLength = 0; - for (var i = 0, l = seriesArray.length; i < l; i++) { - serie = series[seriesArray[i]]; - serieName = serie.name; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (this.selectedMap[serieName]) { - locationMap.push(seriesArray[i]); - } - maxDataLength = Math.max(maxDataLength, serie.data.length); - } - return { - locationMap: locationMap, - maxDataLength: maxDataLength - }; - }, - _buildHorizontal: function (seriesArray, maxDataLength, locationMap) { - var series = this.series; - var seriesIndex; - var serie; - var xAxisIndex; - var categoryAxis; - var yAxisIndex; - var valueAxis; - var pointList = {}; - var candleWidth; - var data; - var value; - var barMaxWidth; - for (var j = 0, k = locationMap.length; j < k; j++) { - seriesIndex = locationMap[j]; - serie = series[seriesIndex]; - xAxisIndex = serie.xAxisIndex || 0; - categoryAxis = this.component.xAxis.getAxis(xAxisIndex); - candleWidth = serie.barWidth || Math.floor(categoryAxis.getGap() / 2); - barMaxWidth = serie.barMaxWidth; - if (barMaxWidth && barMaxWidth < candleWidth) { - candleWidth = barMaxWidth; - } - yAxisIndex = serie.yAxisIndex || 0; - valueAxis = this.component.yAxis.getAxis(yAxisIndex); - pointList[seriesIndex] = []; - for (var i = 0, l = maxDataLength; i < l; i++) { - if (categoryAxis.getNameByIndex(i) == null) { - break; - } - data = serie.data[i]; - value = this.getDataFromOption(data, '-'); - if (value === '-' || value.length != 4) { - continue; - } - pointList[seriesIndex].push([ - categoryAxis.getCoordByIndex(i), - candleWidth, - valueAxis.getCoord(value[0]), - valueAxis.getCoord(value[1]), - valueAxis.getCoord(value[2]), - valueAxis.getCoord(value[3]), - i, - categoryAxis.getNameByIndex(i) - ]); - } - } - this._buildKLine(seriesArray, pointList); - }, - _buildKLine: function (seriesArray, pointList) { - var series = this.series; - var nLineWidth; - var nLineColor; - var nLineColor0; - var nColor; - var nColor0; - var eLineWidth; - var eLineColor; - var eLineColor0; - var eColor; - var eColor0; - var serie; - var queryTarget; - var data; - var seriesPL; - var singlePoint; - var candleType; - var seriesIndex; - for (var sIdx = 0, len = seriesArray.length; sIdx < len; sIdx++) { - seriesIndex = seriesArray[sIdx]; - serie = series[seriesIndex]; - seriesPL = pointList[seriesIndex]; - if (this._isLarge(seriesPL)) { - seriesPL = this._getLargePointList(seriesPL); - } - if (serie.type === ecConfig.CHART_TYPE_K && seriesPL != null) { - queryTarget = serie; - nLineWidth = this.query(queryTarget, 'itemStyle.normal.lineStyle.width'); - nLineColor = this.query(queryTarget, 'itemStyle.normal.lineStyle.color'); - nLineColor0 = this.query(queryTarget, 'itemStyle.normal.lineStyle.color0'); - nColor = this.query(queryTarget, 'itemStyle.normal.color'); - nColor0 = this.query(queryTarget, 'itemStyle.normal.color0'); - eLineWidth = this.query(queryTarget, 'itemStyle.emphasis.lineStyle.width'); - eLineColor = this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color'); - eLineColor0 = this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color0'); - eColor = this.query(queryTarget, 'itemStyle.emphasis.color'); - eColor0 = this.query(queryTarget, 'itemStyle.emphasis.color0'); - for (var i = 0, l = seriesPL.length; i < l; i++) { - singlePoint = seriesPL[i]; - data = serie.data[singlePoint[6]]; - queryTarget = data; - candleType = singlePoint[3] < singlePoint[2]; - this.shapeList.push(this._getCandle(seriesIndex, singlePoint[6], singlePoint[7], singlePoint[0], singlePoint[1], singlePoint[2], singlePoint[3], singlePoint[4], singlePoint[5], candleType ? this.query(queryTarget, 'itemStyle.normal.color') || nColor : this.query(queryTarget, 'itemStyle.normal.color0') || nColor0, this.query(queryTarget, 'itemStyle.normal.lineStyle.width') || nLineWidth, candleType ? this.query(queryTarget, 'itemStyle.normal.lineStyle.color') || nLineColor : this.query(queryTarget, 'itemStyle.normal.lineStyle.color0') || nLineColor0, candleType ? this.query(queryTarget, 'itemStyle.emphasis.color') || eColor || nColor : this.query(queryTarget, 'itemStyle.emphasis.color0') || eColor0 || nColor0, this.query(queryTarget, 'itemStyle.emphasis.lineStyle.width') || eLineWidth || nLineWidth, candleType ? this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color') || eLineColor || nLineColor : this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color0') || eLineColor0 || nLineColor0)); - } - } - } - }, - _isLarge: function (singlePL) { - return singlePL[0][1] < 0.5; - }, - _getLargePointList: function (singlePL) { - var total = this.component.grid.getWidth(); - var len = singlePL.length; - var newList = []; - for (var i = 0; i < total; i++) { - newList[i] = singlePL[Math.floor(len / total * i)]; - } - return newList; - }, - _getCandle: function (seriesIndex, dataIndex, name, x, width, y0, y1, y2, y3, nColor, nLinewidth, nLineColor, eColor, eLinewidth, eLineColor) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var queryTarget = [ - data, - serie - ]; - var itemShape = { - zlevel: serie.zlevel, - z: serie.z, - clickable: this.deepQuery(queryTarget, 'clickable'), - hoverable: this.deepQuery(queryTarget, 'hoverable'), - style: { - x: x, - y: [ - y0, - y1, - y2, - y3 - ], - width: width, - color: nColor, - strokeColor: nLineColor, - lineWidth: nLinewidth, - brushType: 'both' - }, - highlightStyle: { - color: eColor, - strokeColor: eLineColor, - lineWidth: eLinewidth - }, - _seriesIndex: seriesIndex - }; - itemShape = this.addLabel(itemShape, serie, data, name); - ecData.pack(itemShape, serie, seriesIndex, data, dataIndex, name); - itemShape = new CandleShape(itemShape); - return itemShape; - }, - getMarkCoord: function (seriesIndex, mpData) { - var serie = this.series[seriesIndex]; - var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex); - var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex); - return [ - typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0), - typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0) - ]; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - }, - addDataAnimation: function (params, done) { - var series = this.series; - var aniMap = {}; - for (var i = 0, l = params.length; i < l; i++) { - aniMap[params[i][0]] = params[i]; - } - var x; - var dx; - var y; - var serie; - var seriesIndex; - var dataIndex; - var aniCount = 0; - function animationDone() { - aniCount--; - if (aniCount === 0) { - done && done(); - } - } - for (var i = 0, l = this.shapeList.length; i < l; i++) { - seriesIndex = this.shapeList[i]._seriesIndex; - if (aniMap[seriesIndex] && !aniMap[seriesIndex][3]) { - if (this.shapeList[i].type === 'candle') { - dataIndex = ecData.get(this.shapeList[i], 'dataIndex'); - serie = series[seriesIndex]; - if (aniMap[seriesIndex][2] && dataIndex === serie.data.length - 1) { - this.zr.delShape(this.shapeList[i].id); - continue; - } else if (!aniMap[seriesIndex][2] && dataIndex === 0) { - this.zr.delShape(this.shapeList[i].id); - continue; - } - dx = this.component.xAxis.getAxis(serie.xAxisIndex || 0).getGap(); - x = aniMap[seriesIndex][2] ? dx : -dx; - y = 0; - aniCount++; - this.zr.animate(this.shapeList[i].id, '').when(this.query(this.option, 'animationDurationUpdate'), { - position: [ - x, - y - ] - }).done(animationDone).start(); - } - } - } - if (!aniCount) { - done && done(); - } - } - }; - zrUtil.inherits(K, ChartBase); - require('../chart').define('k', K); - return K; -});define('echarts/chart/pie', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Ring', - 'zrender/shape/Circle', - 'zrender/shape/Sector', - 'zrender/shape/Polyline', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/math', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var TextShape = require('zrender/shape/Text'); - var RingShape = require('zrender/shape/Ring'); - var CircleShape = require('zrender/shape/Circle'); - var SectorShape = require('zrender/shape/Sector'); - var PolylineShape = require('zrender/shape/Polyline'); - var ecConfig = require('../config'); - ecConfig.pie = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - center: [ - '50%', - '50%' - ], - radius: [ - 0, - '75%' - ], - clockWise: true, - startAngle: 90, - minAngle: 0, - selectedOffset: 10, - itemStyle: { - normal: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - label: { - show: true, - position: 'outer' - }, - labelLine: { - show: true, - length: 20, - lineStyle: { - width: 1, - type: 'solid' - } - } - }, - emphasis: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - label: { show: false }, - labelLine: { - show: false, - length: 20, - lineStyle: { - width: 1, - type: 'solid' - } - } - } - } - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrMath = require('zrender/tool/math'); - var zrColor = require('zrender/tool/color'); - function Pie(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self.shapeHandler.onmouseover = function (param) { - var shape = param.target; - var seriesIndex = ecData.get(shape, 'seriesIndex'); - var dataIndex = ecData.get(shape, 'dataIndex'); - var percent = ecData.get(shape, 'special'); - var center = [ - shape.style.x, - shape.style.y - ]; - var startAngle = shape.style.startAngle; - var endAngle = shape.style.endAngle; - var midAngle = ((endAngle + startAngle) / 2 + 360) % 360; - var defaultColor = shape.highlightStyle.color; - var label = self.getLabel(seriesIndex, dataIndex, percent, center, midAngle, defaultColor, true); - if (label) { - self.zr.addHoverShape(label); - } - var labelLine = self.getLabelLine(seriesIndex, dataIndex, center, shape.style.r0, shape.style.r, midAngle, defaultColor, true); - if (labelLine) { - self.zr.addHoverShape(labelLine); - } - }; - this.refresh(option); - } - Pie.prototype = { - type: ecConfig.CHART_TYPE_PIE, - _buildShape: function () { - var series = this.series; - var legend = this.component.legend; - this.selectedMap = {}; - this._selected = {}; - var center; - var radius; - var pieCase; - this._selectedMode = false; - var serieName; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === ecConfig.CHART_TYPE_PIE) { - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - serieName = series[i].name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (!this.selectedMap[serieName]) { - continue; - } - center = this.parseCenter(this.zr, series[i].center); - radius = this.parseRadius(this.zr, series[i].radius); - this._selectedMode = this._selectedMode || series[i].selectedMode; - this._selected[i] = []; - if (this.deepQuery([ - series[i], - this.option - ], 'calculable')) { - pieCase = { - zlevel: series[i].zlevel, - z: series[i].z, - hoverable: false, - style: { - x: center[0], - y: center[1], - r0: radius[0] <= 10 ? 0 : radius[0] - 10, - r: radius[1] + 10, - brushType: 'stroke', - lineWidth: 1, - strokeColor: series[i].calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor - } - }; - ecData.pack(pieCase, series[i], i, undefined, -1); - this.setCalculable(pieCase); - pieCase = radius[0] <= 10 ? new CircleShape(pieCase) : new RingShape(pieCase); - this.shapeList.push(pieCase); - } - this._buildSinglePie(i); - this.buildMark(i); - } - } - this.addShapeList(); - }, - _buildSinglePie: function (seriesIndex) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data; - var legend = this.component.legend; - var itemName; - var totalSelected = 0; - var totalSelectedValue0 = 0; - var totalValue = 0; - var maxValue = Number.NEGATIVE_INFINITY; - var singleShapeList = []; - for (var i = 0, l = data.length; i < l; i++) { - itemName = data[i].name; - this.selectedMap[itemName] = legend ? legend.isSelected(itemName) : true; - if (this.selectedMap[itemName] && !isNaN(data[i].value)) { - if (+data[i].value !== 0) { - totalSelected++; - } else { - totalSelectedValue0++; - } - totalValue += +data[i].value; - maxValue = Math.max(maxValue, +data[i].value); - } - } - if (totalValue === 0) { - return; - } - var percent = 100; - var clockWise = serie.clockWise; - var startAngle = (serie.startAngle.toFixed(2) - 0 + 360) % 360; - var endAngle; - var minAngle = serie.minAngle || 0.01; - var totalAngle = 360 - minAngle * totalSelected - 0.01 * totalSelectedValue0; - var defaultColor; - var roseType = serie.roseType; - var center; - var radius; - var r0; - var r1; - for (var i = 0, l = data.length; i < l; i++) { - itemName = data[i].name; - if (!this.selectedMap[itemName] || isNaN(data[i].value)) { - continue; - } - defaultColor = legend ? legend.getColor(itemName) : this.zr.getColor(i); - percent = data[i].value / totalValue; - if (roseType != 'area') { - endAngle = clockWise ? startAngle - percent * totalAngle - (percent !== 0 ? minAngle : 0.01) : percent * totalAngle + startAngle + (percent !== 0 ? minAngle : 0.01); - } else { - endAngle = clockWise ? startAngle - 360 / l : 360 / l + startAngle; - } - endAngle = endAngle.toFixed(2) - 0; - percent = (percent * 100).toFixed(2); - center = this.parseCenter(this.zr, serie.center); - radius = this.parseRadius(this.zr, serie.radius); - r0 = +radius[0]; - r1 = +radius[1]; - if (roseType === 'radius') { - r1 = data[i].value / maxValue * (r1 - r0) * 0.8 + (r1 - r0) * 0.2 + r0; - } else if (roseType === 'area') { - r1 = Math.sqrt(data[i].value / maxValue) * (r1 - r0) + r0; - } - if (clockWise) { - var temp; - temp = startAngle; - startAngle = endAngle; - endAngle = temp; - } - this._buildItem(singleShapeList, seriesIndex, i, percent, data[i].selected, center, r0, r1, startAngle, endAngle, defaultColor); - if (!clockWise) { - startAngle = endAngle; - } - } - this._autoLabelLayout(singleShapeList, center, r1); - for (var i = 0, l = singleShapeList.length; i < l; i++) { - this.shapeList.push(singleShapeList[i]); - } - singleShapeList = null; - }, - _buildItem: function (singleShapeList, seriesIndex, dataIndex, percent, isSelected, center, r0, r1, startAngle, endAngle, defaultColor) { - var series = this.series; - var midAngle = ((endAngle + startAngle) / 2 + 360) % 360; - var sector = this.getSector(seriesIndex, dataIndex, percent, isSelected, center, r0, r1, startAngle, endAngle, defaultColor); - ecData.pack(sector, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name, percent); - singleShapeList.push(sector); - var label = this.getLabel(seriesIndex, dataIndex, percent, center, midAngle, defaultColor, false); - var labelLine = this.getLabelLine(seriesIndex, dataIndex, center, r0, r1, midAngle, defaultColor, false); - if (labelLine) { - ecData.pack(labelLine, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name, percent); - singleShapeList.push(labelLine); - } - if (label) { - ecData.pack(label, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name, percent); - label._labelLine = labelLine; - singleShapeList.push(label); - } - }, - getSector: function (seriesIndex, dataIndex, percent, isSelected, center, r0, r1, startAngle, endAngle, defaultColor) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var queryTarget = [ - data, - serie - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor; - var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor); - var sector = { - zlevel: serie.zlevel, - z: serie.z, - clickable: this.deepQuery(queryTarget, 'clickable'), - style: { - x: center[0], - y: center[1], - r0: r0, - r: r1, - startAngle: startAngle, - endAngle: endAngle, - brushType: 'both', - color: normalColor, - lineWidth: normal.borderWidth, - strokeColor: normal.borderColor, - lineJoin: 'round' - }, - highlightStyle: { - color: emphasisColor, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor, - lineJoin: 'round' - }, - _seriesIndex: seriesIndex, - _dataIndex: dataIndex - }; - if (isSelected) { - var midAngle = ((sector.style.startAngle + sector.style.endAngle) / 2).toFixed(2) - 0; - sector.style._hasSelected = true; - sector.style._x = sector.style.x; - sector.style._y = sector.style.y; - var offset = this.query(serie, 'selectedOffset'); - sector.style.x += zrMath.cos(midAngle, true) * offset; - sector.style.y -= zrMath.sin(midAngle, true) * offset; - this._selected[seriesIndex][dataIndex] = true; - } else { - this._selected[seriesIndex][dataIndex] = false; - } - if (this._selectedMode) { - sector.onclick = this.shapeHandler.onclick; - } - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - this.setCalculable(sector); - sector.draggable = true; - } - if (this._needLabel(serie, data, true) || this._needLabelLine(serie, data, true)) { - sector.onmouseover = this.shapeHandler.onmouseover; - } - sector = new SectorShape(sector); - return sector; - }, - getLabel: function (seriesIndex, dataIndex, percent, center, midAngle, defaultColor, isEmphasis) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - if (!this._needLabel(serie, data, isEmphasis)) { - return; - } - var status = isEmphasis ? 'emphasis' : 'normal'; - var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle); - var labelControl = itemStyle[status].label; - var textStyle = labelControl.textStyle || {}; - var centerX = center[0]; - var centerY = center[1]; - var x; - var y; - var radius = this.parseRadius(this.zr, serie.radius); - var textAlign; - var textBaseline = 'middle'; - labelControl.position = labelControl.position || itemStyle.normal.label.position; - if (labelControl.position === 'center') { - x = centerX; - y = centerY; - textAlign = 'center'; - } else if (labelControl.position === 'inner' || labelControl.position === 'inside') { - radius = (radius[0] + radius[1]) * (labelControl.distance || 0.5); - x = Math.round(centerX + radius * zrMath.cos(midAngle, true)); - y = Math.round(centerY - radius * zrMath.sin(midAngle, true)); - defaultColor = '#fff'; - textAlign = 'center'; - } else { - radius = radius[1] - -itemStyle[status].labelLine.length; - x = Math.round(centerX + radius * zrMath.cos(midAngle, true)); - y = Math.round(centerY - radius * zrMath.sin(midAngle, true)); - textAlign = midAngle >= 90 && midAngle <= 270 ? 'right' : 'left'; - } - if (labelControl.position != 'center' && labelControl.position != 'inner' && labelControl.position != 'inside') { - x += textAlign === 'left' ? 20 : -20; - } - data.__labelX = x - (textAlign === 'left' ? 5 : -5); - data.__labelY = y; - var ts = new TextShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - x: x, - y: y, - color: textStyle.color || defaultColor, - text: this.getLabelText(seriesIndex, dataIndex, percent, status), - textAlign: textStyle.align || textAlign, - textBaseline: textStyle.baseline || textBaseline, - textFont: this.getFont(textStyle) - }, - highlightStyle: { brushType: 'fill' } - }); - ts._radius = radius; - ts._labelPosition = labelControl.position || 'outer'; - ts._rect = ts.getRect(ts.style); - ts._seriesIndex = seriesIndex; - ts._dataIndex = dataIndex; - return ts; - }, - getLabelText: function (seriesIndex, dataIndex, percent, status) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var formatter = this.deepQuery([ - data, - serie - ], 'itemStyle.' + status + '.label.formatter'); - if (formatter) { - if (typeof formatter === 'function') { - return formatter.call(this.myChart, { - seriesIndex: seriesIndex, - seriesName: serie.name || '', - series: serie, - dataIndex: dataIndex, - data: data, - name: data.name, - value: data.value, - percent: percent - }); - } else if (typeof formatter === 'string') { - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{d}', '{d0}'); - formatter = formatter.replace('{a0}', serie.name).replace('{b0}', data.name).replace('{c0}', data.value).replace('{d0}', percent); - return formatter; - } - } else { - return data.name; - } - }, - getLabelLine: function (seriesIndex, dataIndex, center, r0, r1, midAngle, defaultColor, isEmphasis) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - if (this._needLabelLine(serie, data, isEmphasis)) { - var status = isEmphasis ? 'emphasis' : 'normal'; - var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle); - var labelLineControl = itemStyle[status].labelLine; - var lineStyle = labelLineControl.lineStyle || {}; - var centerX = center[0]; - var centerY = center[1]; - var minRadius = r1; - var maxRadius = this.parseRadius(this.zr, serie.radius)[1] - -labelLineControl.length; - var cosValue = zrMath.cos(midAngle, true); - var sinValue = zrMath.sin(midAngle, true); - return new PolylineShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - pointList: [ - [ - centerX + minRadius * cosValue, - centerY - minRadius * sinValue - ], - [ - centerX + maxRadius * cosValue, - centerY - maxRadius * sinValue - ], - [ - data.__labelX, - data.__labelY - ] - ], - strokeColor: lineStyle.color || defaultColor, - lineType: lineStyle.type, - lineWidth: lineStyle.width - }, - _seriesIndex: seriesIndex, - _dataIndex: dataIndex - }); - } else { - return; - } - }, - _needLabel: function (serie, data, isEmphasis) { - return this.deepQuery([ - data, - serie - ], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.label.show'); - }, - _needLabelLine: function (serie, data, isEmphasis) { - return this.deepQuery([ - data, - serie - ], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.labelLine.show'); - }, - _autoLabelLayout: function (sList, center, r) { - var leftList = []; - var rightList = []; - for (var i = 0, l = sList.length; i < l; i++) { - if (sList[i]._labelPosition === 'outer' || sList[i]._labelPosition === 'outside') { - sList[i]._rect._y = sList[i]._rect.y; - if (sList[i]._rect.x < center[0]) { - leftList.push(sList[i]); - } else { - rightList.push(sList[i]); - } - } - } - this._layoutCalculate(leftList, center, r, -1); - this._layoutCalculate(rightList, center, r, 1); - }, - _layoutCalculate: function (tList, center, r, direction) { - tList.sort(function (a, b) { - return a._rect.y - b._rect.y; - }); - function _changeDown(start, end, delta, direction) { - for (var j = start; j < end; j++) { - tList[j]._rect.y += delta; - tList[j].style.y += delta; - if (tList[j]._labelLine) { - tList[j]._labelLine.style.pointList[1][1] += delta; - tList[j]._labelLine.style.pointList[2][1] += delta; - } - if (j > start && j + 1 < end && tList[j + 1]._rect.y > tList[j]._rect.y + tList[j]._rect.height) { - _changeUp(j, delta / 2); - return; - } - } - _changeUp(end - 1, delta / 2); - } - function _changeUp(end, delta) { - for (var j = end; j >= 0; j--) { - tList[j]._rect.y -= delta; - tList[j].style.y -= delta; - if (tList[j]._labelLine) { - tList[j]._labelLine.style.pointList[1][1] -= delta; - tList[j]._labelLine.style.pointList[2][1] -= delta; - } - if (j > 0 && tList[j]._rect.y > tList[j - 1]._rect.y + tList[j - 1]._rect.height) { - break; - } - } - } - function _changeX(sList, isDownList, center, r, direction) { - var x = center[0]; - var y = center[1]; - var deltaX; - var deltaY; - var length; - var lastDeltaX = direction > 0 ? isDownList ? Number.MAX_VALUE : 0 : isDownList ? Number.MAX_VALUE : 0; - for (var i = 0, l = sList.length; i < l; i++) { - deltaY = Math.abs(sList[i]._rect.y - y); - length = sList[i]._radius - r; - deltaX = deltaY < r + length ? Math.sqrt((r + length + 20) * (r + length + 20) - Math.pow(sList[i]._rect.y - y, 2)) : Math.abs(sList[i]._rect.x + (direction > 0 ? 0 : sList[i]._rect.width) - x); - if (isDownList && deltaX >= lastDeltaX) { - deltaX = lastDeltaX - 10; - } - if (!isDownList && deltaX <= lastDeltaX) { - deltaX = lastDeltaX + 10; - } - sList[i]._rect.x = sList[i].style.x = x + deltaX * direction; - if (sList[i]._labelLine) { - sList[i]._labelLine.style.pointList[2][0] = x + (deltaX - 5) * direction; - sList[i]._labelLine.style.pointList[1][0] = x + (deltaX - 20) * direction; - } - lastDeltaX = deltaX; - } - } - var lastY = 0; - var delta; - var len = tList.length; - var upList = []; - var downList = []; - for (var i = 0; i < len; i++) { - delta = tList[i]._rect.y - lastY; - if (delta < 0) { - _changeDown(i, len, -delta, direction); - } - lastY = tList[i]._rect.y + tList[i]._rect.height; - } - if (this.zr.getHeight() - lastY < 0) { - _changeUp(len - 1, lastY - this.zr.getHeight()); - } - for (var i = 0; i < len; i++) { - if (tList[i]._rect.y >= center[1]) { - downList.push(tList[i]); - } else { - upList.push(tList[i]); - } - } - _changeX(downList, true, center, r, direction); - _changeX(upList, false, center, r, direction); - }, - reformOption: function (opt) { - var _merge = zrUtil.merge; - opt = _merge(_merge(opt || {}, zrUtil.clone(this.ecTheme.pie || {})), zrUtil.clone(ecConfig.pie)); - opt.itemStyle.normal.label.textStyle = this.getTextStyle(opt.itemStyle.normal.label.textStyle); - opt.itemStyle.emphasis.label.textStyle = this.getTextStyle(opt.itemStyle.emphasis.label.textStyle); - this.z = opt.z; - this.zlevel = opt.zlevel; - return opt; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - }, - addDataAnimation: function (params, done) { - var series = this.series; - var aniMap = {}; - for (var i = 0, l = params.length; i < l; i++) { - aniMap[params[i][0]] = params[i]; - } - var aniCount = 0; - function animationDone() { - aniCount--; - if (aniCount === 0) { - done && done(); - } - } - var sectorMap = {}; - var textMap = {}; - var lineMap = {}; - var backupShapeList = this.shapeList; - this.shapeList = []; - var seriesIndex; - var isHead; - var dataGrow; - var deltaIdxMap = {}; - for (var i = 0, l = params.length; i < l; i++) { - seriesIndex = params[i][0]; - isHead = params[i][2]; - dataGrow = params[i][3]; - if (series[seriesIndex] && series[seriesIndex].type === ecConfig.CHART_TYPE_PIE) { - if (isHead) { - if (!dataGrow) { - sectorMap[seriesIndex + '_' + series[seriesIndex].data.length] = 'delete'; - } - deltaIdxMap[seriesIndex] = 1; - } else { - if (!dataGrow) { - sectorMap[seriesIndex + '_-1'] = 'delete'; - deltaIdxMap[seriesIndex] = -1; - } else { - deltaIdxMap[seriesIndex] = 0; - } - } - this._buildSinglePie(seriesIndex); - } - } - var dataIndex; - var key; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - seriesIndex = this.shapeList[i]._seriesIndex; - dataIndex = this.shapeList[i]._dataIndex; - key = seriesIndex + '_' + dataIndex; - switch (this.shapeList[i].type) { - case 'sector': - sectorMap[key] = this.shapeList[i]; - break; - case 'text': - textMap[key] = this.shapeList[i]; - break; - case 'polyline': - lineMap[key] = this.shapeList[i]; - break; - } - } - this.shapeList = []; - var targeSector; - for (var i = 0, l = backupShapeList.length; i < l; i++) { - seriesIndex = backupShapeList[i]._seriesIndex; - if (aniMap[seriesIndex]) { - dataIndex = backupShapeList[i]._dataIndex + deltaIdxMap[seriesIndex]; - key = seriesIndex + '_' + dataIndex; - targeSector = sectorMap[key]; - if (!targeSector) { - continue; - } - if (backupShapeList[i].type === 'sector') { - if (targeSector != 'delete') { - aniCount++; - this.zr.animate(backupShapeList[i].id, 'style').when(400, { - startAngle: targeSector.style.startAngle, - endAngle: targeSector.style.endAngle - }).done(animationDone).start(); - } else { - aniCount++; - this.zr.animate(backupShapeList[i].id, 'style').when(400, deltaIdxMap[seriesIndex] < 0 ? { startAngle: backupShapeList[i].style.startAngle } : { endAngle: backupShapeList[i].style.endAngle }).done(animationDone).start(); - } - } else if (backupShapeList[i].type === 'text' || backupShapeList[i].type === 'polyline') { - if (targeSector === 'delete') { - this.zr.delShape(backupShapeList[i].id); - } else { - switch (backupShapeList[i].type) { - case 'text': - aniCount++; - targeSector = textMap[key]; - this.zr.animate(backupShapeList[i].id, 'style').when(400, { - x: targeSector.style.x, - y: targeSector.style.y - }).done(animationDone).start(); - break; - case 'polyline': - aniCount++; - targeSector = lineMap[key]; - this.zr.animate(backupShapeList[i].id, 'style').when(400, { pointList: targeSector.style.pointList }).done(animationDone).start(); - break; - } - } - } - } - } - this.shapeList = backupShapeList; - if (!aniCount) { - done && done(); - } - }, - onclick: function (param) { - var series = this.series; - if (!this.isClick || !param.target) { - return; - } - this.isClick = false; - var offset; - var target = param.target; - var style = target.style; - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - for (var i = 0, len = this.shapeList.length; i < len; i++) { - if (this.shapeList[i].id === target.id) { - seriesIndex = ecData.get(target, 'seriesIndex'); - dataIndex = ecData.get(target, 'dataIndex'); - if (!style._hasSelected) { - var midAngle = ((style.startAngle + style.endAngle) / 2).toFixed(2) - 0; - target.style._hasSelected = true; - this._selected[seriesIndex][dataIndex] = true; - target.style._x = target.style.x; - target.style._y = target.style.y; - offset = this.query(series[seriesIndex], 'selectedOffset'); - target.style.x += zrMath.cos(midAngle, true) * offset; - target.style.y -= zrMath.sin(midAngle, true) * offset; - } else { - target.style.x = target.style._x; - target.style.y = target.style._y; - target.style._hasSelected = false; - this._selected[seriesIndex][dataIndex] = false; - } - this.zr.modShape(target.id); - } else if (this.shapeList[i].style._hasSelected && this._selectedMode === 'single') { - seriesIndex = ecData.get(this.shapeList[i], 'seriesIndex'); - dataIndex = ecData.get(this.shapeList[i], 'dataIndex'); - this.shapeList[i].style.x = this.shapeList[i].style._x; - this.shapeList[i].style.y = this.shapeList[i].style._y; - this.shapeList[i].style._hasSelected = false; - this._selected[seriesIndex][dataIndex] = false; - this.zr.modShape(this.shapeList[i].id); - } - } - this.messageCenter.dispatch(ecConfig.EVENT.PIE_SELECTED, param.event, { - selected: this._selected, - target: ecData.get(target, 'name') - }, this.myChart); - this.zr.refreshNextFrame(); - } - }; - zrUtil.inherits(Pie, ChartBase); - require('../chart').define('pie', Pie); - return Pie; -});define('echarts/chart/radar', [ - 'require', - './base', - 'zrender/shape/Polygon', - '../component/polar', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/color', - '../util/accMath', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var PolygonShape = require('zrender/shape/Polygon'); - require('../component/polar'); - var ecConfig = require('../config'); - ecConfig.radar = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - polarIndex: 0, - itemStyle: { - normal: { - label: { show: false }, - lineStyle: { - width: 2, - type: 'solid' - } - }, - emphasis: { label: { show: false } } - }, - symbolSize: 2 - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function Radar(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Radar.prototype = { - type: ecConfig.CHART_TYPE_RADAR, - _buildShape: function () { - this.selectedMap = {}; - this._symbol = this.option.symbolList; - this._queryTarget; - this._dropBoxList = []; - this._radarDataCounter = 0; - var series = this.series; - var legend = this.component.legend; - var serieName; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === ecConfig.CHART_TYPE_RADAR) { - this.serie = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - serieName = this.serie.name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (this.selectedMap[serieName]) { - this._queryTarget = [ - this.serie, - this.option - ]; - if (this.deepQuery(this._queryTarget, 'calculable')) { - this._addDropBox(i); - } - this._buildSingleRadar(i); - this.buildMark(i); - } - } - } - this.addShapeList(); - }, - _buildSingleRadar: function (index) { - var legend = this.component.legend; - var iconShape; - var data = this.serie.data; - var defaultColor; - var name; - var pointList; - var calculable = this.deepQuery(this._queryTarget, 'calculable'); - for (var i = 0; i < data.length; i++) { - name = data[i].name || ''; - this.selectedMap[name] = legend ? legend.isSelected(name) : true; - if (!this.selectedMap[name]) { - continue; - } - if (legend) { - defaultColor = legend.getColor(name); - iconShape = legend.getItemShape(name); - if (iconShape) { - iconShape.style.brushType = this.deepQuery([ - data[i], - this.serie - ], 'itemStyle.normal.areaStyle') ? 'both' : 'stroke'; - legend.setItemShape(name, iconShape); - } - } else { - defaultColor = this.zr.getColor(i); - } - pointList = this._getPointList(this.serie.polarIndex, data[i]); - this._addSymbol(pointList, defaultColor, i, index, this.serie.polarIndex); - this._addDataShape(pointList, defaultColor, data[i], index, i, calculable); - this._radarDataCounter++; - } - }, - _getPointList: function (polarIndex, dataArr) { - var pointList = []; - var vector; - var polar = this.component.polar; - var value; - for (var i = 0, l = dataArr.value.length; i < l; i++) { - value = this.getDataFromOption(dataArr.value[i]); - vector = value != '-' ? polar.getVector(polarIndex, i, value) : false; - if (vector) { - pointList.push(vector); - } - } - return pointList; - }, - _addSymbol: function (pointList, defaultColor, dataIndex, seriesIndex, polarIndex) { - var series = this.series; - var itemShape; - var polar = this.component.polar; - for (var i = 0, l = pointList.length; i < l; i++) { - itemShape = this.getSymbolShape(this.deepMerge([ - series[seriesIndex].data[dataIndex], - series[seriesIndex] - ]), seriesIndex, series[seriesIndex].data[dataIndex].value[i], i, polar.getIndicatorText(polarIndex, i), pointList[i][0], pointList[i][1], this._symbol[this._radarDataCounter % this._symbol.length], defaultColor, '#fff', 'vertical'); - itemShape.zlevel = this.getZlevelBase(); - itemShape.z = this.getZBase() + 1; - ecData.set(itemShape, 'data', series[seriesIndex].data[dataIndex]); - ecData.set(itemShape, 'value', series[seriesIndex].data[dataIndex].value); - ecData.set(itemShape, 'dataIndex', dataIndex); - ecData.set(itemShape, 'special', i); - this.shapeList.push(itemShape); - } - }, - _addDataShape: function (pointList, defaultColor, data, seriesIndex, dataIndex, calculable) { - var series = this.series; - var queryTarget = [ - data, - this.serie - ]; - var nColor = this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color'), seriesIndex, dataIndex, data); - var nLineWidth = this.deepQuery(queryTarget, 'itemStyle.normal.lineStyle.width'); - var nLineType = this.deepQuery(queryTarget, 'itemStyle.normal.lineStyle.type'); - var nAreaColor = this.deepQuery(queryTarget, 'itemStyle.normal.areaStyle.color'); - var nIsAreaFill = this.deepQuery(queryTarget, 'itemStyle.normal.areaStyle'); - var shape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - pointList: pointList, - brushType: nIsAreaFill ? 'both' : 'stroke', - color: nAreaColor || nColor || (typeof defaultColor === 'string' ? zrColor.alpha(defaultColor, 0.5) : defaultColor), - strokeColor: nColor || defaultColor, - lineWidth: nLineWidth, - lineType: nLineType - }, - highlightStyle: { - brushType: this.deepQuery(queryTarget, 'itemStyle.emphasis.areaStyle') || nIsAreaFill ? 'both' : 'stroke', - color: this.deepQuery(queryTarget, 'itemStyle.emphasis.areaStyle.color') || nAreaColor || nColor || (typeof defaultColor === 'string' ? zrColor.alpha(defaultColor, 0.5) : defaultColor), - strokeColor: this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), seriesIndex, dataIndex, data) || nColor || defaultColor, - lineWidth: this.deepQuery(queryTarget, 'itemStyle.emphasis.lineStyle.width') || nLineWidth, - lineType: this.deepQuery(queryTarget, 'itemStyle.emphasis.lineStyle.type') || nLineType - } - }; - ecData.pack(shape, series[seriesIndex], seriesIndex, data, dataIndex, data.name, this.component.polar.getIndicator(series[seriesIndex].polarIndex)); - if (calculable) { - shape.draggable = true; - this.setCalculable(shape); - } - shape = new PolygonShape(shape); - this.shapeList.push(shape); - }, - _addDropBox: function (index) { - var series = this.series; - var polarIndex = this.deepQuery(this._queryTarget, 'polarIndex'); - if (!this._dropBoxList[polarIndex]) { - var shape = this.component.polar.getDropBox(polarIndex); - shape.zlevel = this.getZlevelBase(); - shape.z = this.getZBase(); - this.setCalculable(shape); - ecData.pack(shape, series, index, undefined, -1); - this.shapeList.push(shape); - this._dropBoxList[polarIndex] = true; - } - }, - ondragend: function (param, status) { - var series = this.series; - if (!this.isDragend || !param.target) { - return; - } - var target = param.target; - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - this.component.legend && this.component.legend.del(series[seriesIndex].data[dataIndex].name); - series[seriesIndex].data.splice(dataIndex, 1); - status.dragOut = true; - status.needRefresh = true; - this.isDragend = false; - return; - }, - ondrop: function (param, status) { - var series = this.series; - if (!this.isDrop || !param.target) { - return; - } - var target = param.target; - var dragged = param.dragged; - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - var data; - var legend = this.component.legend; - var value; - if (dataIndex === -1) { - data = { - value: ecData.get(dragged, 'value'), - name: ecData.get(dragged, 'name') - }; - series[seriesIndex].data.push(data); - legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor); - } else { - var accMath = require('../util/accMath'); - data = series[seriesIndex].data[dataIndex]; - legend && legend.del(data.name); - data.name += this.option.nameConnector + ecData.get(dragged, 'name'); - value = ecData.get(dragged, 'value'); - for (var i = 0; i < value.length; i++) { - data.value[i] = accMath.accAdd(data.value[i], value[i]); - } - legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor); - } - status.dragIn = status.dragIn || true; - this.isDrop = false; - return; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - } - }; - zrUtil.inherits(Radar, ChartBase); - require('../chart').define('radar', Radar); - return Radar; -});define('echarts/component/polar', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Line', - 'zrender/shape/Polygon', - 'zrender/shape/Circle', - 'zrender/shape/Ring', - '../config', - 'zrender/tool/util', - '../util/coordinates', - '../util/accMath', - '../util/smartSteps', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var PolygonShape = require('zrender/shape/Polygon'); - var Circle = require('zrender/shape/Circle'); - var Ring = require('zrender/shape/Ring'); - var ecConfig = require('../config'); - ecConfig.polar = { - zlevel: 0, - z: 0, - center: [ - '50%', - '50%' - ], - radius: '75%', - startAngle: 90, - boundaryGap: [ - 0, - 0 - ], - splitNumber: 5, - name: { - show: true, - textStyle: { color: '#333' } - }, - axisLine: { - show: true, - lineStyle: { - color: '#ccc', - width: 1, - type: 'solid' - } - }, - axisLabel: { - show: false, - textStyle: { color: '#333' } - }, - splitArea: { - show: true, - areaStyle: { - color: [ - 'rgba(250,250,250,0.3)', - 'rgba(200,200,200,0.3)' - ] - } - }, - splitLine: { - show: true, - lineStyle: { - width: 1, - color: '#ccc' - } - }, - type: 'polygon' - }; - var zrUtil = require('zrender/tool/util'); - var ecCoordinates = require('../util/coordinates'); - function Polar(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Polar.prototype = { - type: ecConfig.COMPONENT_TYPE_POLAR, - _buildShape: function () { - for (var i = 0; i < this.polar.length; i++) { - this._index = i; - this.reformOption(this.polar[i]); - this._queryTarget = [ - this.polar[i], - this.option - ]; - this._createVector(i); - this._buildSpiderWeb(i); - this._buildText(i); - this._adjustIndicatorValue(i); - this._addAxisLabel(i); - } - for (var i = 0; i < this.shapeList.length; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _createVector: function (index) { - var item = this.polar[index]; - var indicator = this.deepQuery(this._queryTarget, 'indicator'); - var length = indicator.length; - var startAngle = item.startAngle; - var dStep = 2 * Math.PI / length; - var radius = this._getRadius(); - var __ecIndicator = item.__ecIndicator = []; - var vector; - for (var i = 0; i < length; i++) { - vector = ecCoordinates.polar2cartesian(radius, startAngle * Math.PI / 180 + dStep * i); - __ecIndicator.push({ - vector: [ - vector[1], - -vector[0] - ] - }); - } - }, - _getRadius: function () { - var item = this.polar[this._index]; - return this.parsePercent(item.radius, Math.min(this.zr.getWidth(), this.zr.getHeight()) / 2); - }, - _buildSpiderWeb: function (index) { - var item = this.polar[index]; - var __ecIndicator = item.__ecIndicator; - var splitArea = item.splitArea; - var splitLine = item.splitLine; - var center = this.getCenter(index); - var splitNumber = item.splitNumber; - var strokeColor = splitLine.lineStyle.color; - var lineWidth = splitLine.lineStyle.width; - var show = splitLine.show; - var axisLine = this.deepQuery(this._queryTarget, 'axisLine'); - this._addArea(__ecIndicator, splitNumber, center, splitArea, strokeColor, lineWidth, show); - axisLine.show && this._addLine(__ecIndicator, center, axisLine); - }, - _addAxisLabel: function (index) { - var accMath = require('../util/accMath'); - var item = this.polar[index]; - var indicator = this.deepQuery(this._queryTarget, 'indicator'); - var __ecIndicator = item.__ecIndicator; - var axisLabel; - var vector; - var style; - var newStyle; - var splitNumber = this.deepQuery(this._queryTarget, 'splitNumber'); - var center = this.getCenter(index); - var vector; - var value; - var text; - var theta; - var offset; - var interval; - for (var i = 0; i < indicator.length; i++) { - axisLabel = this.deepQuery([ - indicator[i], - item, - this.option - ], 'axisLabel'); - if (axisLabel.show) { - var textStyle = this.deepQuery([ - axisLabel, - item, - this.option - ], 'textStyle'); - var formatter = this.deepQuery([ - axisLabel, - item - ], 'formatter'); - style = {}; - style.textFont = this.getFont(textStyle); - style.color = textStyle.color; - style = zrUtil.merge(style, axisLabel); - style.lineWidth = style.width; - vector = __ecIndicator[i].vector; - value = __ecIndicator[i].value; - theta = i / indicator.length * 2 * Math.PI; - offset = axisLabel.offset || 10; - interval = axisLabel.interval || 0; - if (!value) { - return; - } - for (var j = 1; j <= splitNumber; j += interval + 1) { - newStyle = zrUtil.merge({}, style); - text = accMath.accAdd(value.min, accMath.accMul(value.step, j)); - if (typeof formatter === 'function') { - text = formatter(text); - } else if (typeof formatter === 'string') { - text = formatter.replace('{a}', '{a0}').replace('{a0}', text); - } else { - text = this.numAddCommas(text); - } - newStyle.text = text; - newStyle.x = j * vector[0] / splitNumber + Math.cos(theta) * offset + center[0]; - newStyle.y = j * vector[1] / splitNumber + Math.sin(theta) * offset + center[1]; - this.shapeList.push(new TextShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: newStyle, - draggable: false, - hoverable: false - })); - } - } - } - }, - _buildText: function (index) { - var item = this.polar[index]; - var __ecIndicator = item.__ecIndicator; - var vector; - var indicator = this.deepQuery(this._queryTarget, 'indicator'); - var center = this.getCenter(index); - var style; - var textAlign; - var name; - var rotation; - var x = 0; - var y = 0; - var margin; - var textStyle; - for (var i = 0; i < indicator.length; i++) { - name = this.deepQuery([ - indicator[i], - item, - this.option - ], 'name'); - if (!name.show) { - continue; - } - textStyle = this.deepQuery([ - name, - item, - this.option - ], 'textStyle'); - style = {}; - style.textFont = this.getFont(textStyle); - style.color = textStyle.color; - if (typeof name.formatter == 'function') { - style.text = name.formatter.call(this.myChart, indicator[i].text, i); - } else if (typeof name.formatter == 'string') { - style.text = name.formatter.replace('{value}', indicator[i].text); - } else { - style.text = indicator[i].text; - } - __ecIndicator[i].text = style.text; - vector = __ecIndicator[i].vector; - if (Math.round(vector[0]) > 0) { - textAlign = 'left'; - } else if (Math.round(vector[0]) < 0) { - textAlign = 'right'; - } else { - textAlign = 'center'; - } - if (name.margin == null) { - vector = this._mapVector(vector, center, 1.1); - } else { - margin = name.margin; - x = vector[0] > 0 ? margin : -margin; - y = vector[1] > 0 ? margin : -margin; - x = vector[0] === 0 ? 0 : x; - y = vector[1] === 0 ? 0 : y; - vector = this._mapVector(vector, center, 1); - } - style.textAlign = textAlign; - style.x = vector[0] + x; - style.y = vector[1] + y; - if (name.rotate) { - rotation = [ - name.rotate / 180 * Math.PI, - vector[0], - vector[1] - ]; - } else { - rotation = [ - 0, - 0, - 0 - ]; - } - this.shapeList.push(new TextShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: style, - draggable: false, - hoverable: false, - rotation: rotation - })); - } - }, - getIndicatorText: function (polarIndex, indicatorIndex) { - return this.polar[polarIndex] && this.polar[polarIndex].__ecIndicator[indicatorIndex] && this.polar[polarIndex].__ecIndicator[indicatorIndex].text; - }, - getDropBox: function (index) { - var index = index || 0; - var item = this.polar[index]; - var center = this.getCenter(index); - var __ecIndicator = item.__ecIndicator; - var len = __ecIndicator.length; - var pointList = []; - var vector; - var shape; - var type = item.type; - if (type == 'polygon') { - for (var i = 0; i < len; i++) { - vector = __ecIndicator[i].vector; - pointList.push(this._mapVector(vector, center, 1.2)); - } - shape = this._getShape(pointList, 'fill', 'rgba(0,0,0,0)', '', 1); - } else if (type == 'circle') { - shape = this._getCircle('', 1, 1.2, center, 'fill', 'rgba(0,0,0,0)'); - } - return shape; - }, - _addArea: function (__ecIndicator, splitNumber, center, splitArea, strokeColor, lineWidth, show) { - var shape; - var scale; - var scale1; - var pointList; - var type = this.deepQuery(this._queryTarget, 'type'); - for (var i = 0; i < splitNumber; i++) { - scale = (splitNumber - i) / splitNumber; - if (show) { - if (type == 'polygon') { - pointList = this._getPointList(__ecIndicator, scale, center); - shape = this._getShape(pointList, 'stroke', '', strokeColor, lineWidth); - } else if (type == 'circle') { - shape = this._getCircle(strokeColor, lineWidth, scale, center, 'stroke'); - } - this.shapeList.push(shape); - } - if (splitArea.show) { - scale1 = (splitNumber - i - 1) / splitNumber; - this._addSplitArea(__ecIndicator, splitArea, scale, scale1, center, i); - } - } - }, - _getCircle: function (strokeColor, lineWidth, scale, center, brushType, color) { - var radius = this._getRadius(); - return new Circle({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: center[0], - y: center[1], - r: radius * scale, - brushType: brushType, - strokeColor: strokeColor, - lineWidth: lineWidth, - color: color - }, - hoverable: false, - draggable: false - }); - }, - _getRing: function (color, scale0, scale1, center) { - var radius = this._getRadius(); - return new Ring({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: center[0], - y: center[1], - r: scale0 * radius, - r0: scale1 * radius, - color: color, - brushType: 'fill' - }, - hoverable: false, - draggable: false - }); - }, - _getPointList: function (__ecIndicator, scale, center) { - var pointList = []; - var len = __ecIndicator.length; - var vector; - for (var i = 0; i < len; i++) { - vector = __ecIndicator[i].vector; - pointList.push(this._mapVector(vector, center, scale)); - } - return pointList; - }, - _getShape: function (pointList, brushType, color, strokeColor, lineWidth) { - return new PolygonShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - pointList: pointList, - brushType: brushType, - color: color, - strokeColor: strokeColor, - lineWidth: lineWidth - }, - hoverable: false, - draggable: false - }); - }, - _addSplitArea: function (__ecIndicator, splitArea, scale, scale1, center, colorInd) { - var indLen = __ecIndicator.length; - var color; - var colorArr = splitArea.areaStyle.color; - var colorLen; - var vector; - var vector1; - var pointList = []; - var indLen = __ecIndicator.length; - var shape; - var type = this.deepQuery(this._queryTarget, 'type'); - if (typeof colorArr == 'string') { - colorArr = [colorArr]; - } - colorLen = colorArr.length; - color = colorArr[colorInd % colorLen]; - if (type == 'polygon') { - for (var i = 0; i < indLen; i++) { - pointList = []; - vector = __ecIndicator[i].vector; - vector1 = __ecIndicator[(i + 1) % indLen].vector; - pointList.push(this._mapVector(vector, center, scale)); - pointList.push(this._mapVector(vector, center, scale1)); - pointList.push(this._mapVector(vector1, center, scale1)); - pointList.push(this._mapVector(vector1, center, scale)); - shape = this._getShape(pointList, 'fill', color, '', 1); - this.shapeList.push(shape); - } - } else if (type == 'circle') { - shape = this._getRing(color, scale, scale1, center); - this.shapeList.push(shape); - } - }, - _mapVector: function (vector, center, scale) { - return [ - vector[0] * scale + center[0], - vector[1] * scale + center[1] - ]; - }, - getCenter: function (index) { - var index = index || 0; - return this.parseCenter(this.zr, this.polar[index].center); - }, - _addLine: function (__ecIndicator, center, axisLine) { - var indLen = __ecIndicator.length; - var line; - var vector; - var lineStyle = axisLine.lineStyle; - var strokeColor = lineStyle.color; - var lineWidth = lineStyle.width; - var lineType = lineStyle.type; - for (var i = 0; i < indLen; i++) { - vector = __ecIndicator[i].vector; - line = this._getLine(center[0], center[1], vector[0] + center[0], vector[1] + center[1], strokeColor, lineWidth, lineType); - this.shapeList.push(line); - } - }, - _getLine: function (xStart, yStart, xEnd, yEnd, strokeColor, lineWidth, lineType) { - return new LineShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - xStart: xStart, - yStart: yStart, - xEnd: xEnd, - yEnd: yEnd, - strokeColor: strokeColor, - lineWidth: lineWidth, - lineType: lineType - }, - hoverable: false - }); - }, - _adjustIndicatorValue: function (index) { - var item = this.polar[index]; - var indicator = this.deepQuery(this._queryTarget, 'indicator'); - var len = indicator.length; - var __ecIndicator = item.__ecIndicator; - var max; - var min; - var data = this._getSeriesData(index); - var boundaryGap = item.boundaryGap; - var splitNumber = item.splitNumber; - var scale = item.scale; - var opts; - var smartSteps = require('../util/smartSteps'); - for (var i = 0; i < len; i++) { - if (typeof indicator[i].max == 'number') { - max = indicator[i].max; - min = indicator[i].min || 0; - opts = { - max: max, - min: min - }; - } else { - var value = this._findValue(data, i, splitNumber, boundaryGap); - min = value.min; - max = value.max; - } - if (!scale && min >= 0 && max >= 0) { - min = 0; - } - if (!scale && min <= 0 && max <= 0) { - max = 0; - } - var stepOpt = smartSteps(min, max, splitNumber, opts); - __ecIndicator[i].value = { - min: stepOpt.min, - max: stepOpt.max, - step: stepOpt.step - }; - } - }, - _getSeriesData: function (index) { - var data = []; - var serie; - var serieData; - var legend = this.component.legend; - var polarIndex; - for (var i = 0; i < this.series.length; i++) { - serie = this.series[i]; - if (serie.type != ecConfig.CHART_TYPE_RADAR) { - continue; - } - serieData = serie.data || []; - for (var j = 0; j < serieData.length; j++) { - polarIndex = this.deepQuery([ - serieData[j], - serie, - this.option - ], 'polarIndex') || 0; - if (polarIndex == index && (!legend || legend.isSelected(serieData[j].name))) { - data.push(serieData[j]); - } - } - } - return data; - }, - _findValue: function (data, index, splitNumber, boundaryGap) { - var max; - var min; - var one; - if (!data || data.length === 0) { - return; - } - function _compare(item) { - (item > max || max === undefined) && (max = item); - (item < min || min === undefined) && (min = item); - } - if (data.length == 1) { - min = 0; - } - if (data.length != 1) { - for (var i = 0; i < data.length; i++) { - _compare(this.getDataFromOption(data[i].value[index])); - } - } else { - one = data[0]; - for (var i = 0; i < one.value.length; i++) { - _compare(this.getDataFromOption(one.value[i])); - } - } - var gap = Math.abs(max - min); - min = min - Math.abs(gap * boundaryGap[0]); - max = max + Math.abs(gap * boundaryGap[1]); - if (min === max) { - if (max === 0) { - max = 1; - } else if (max > 0) { - min = max / splitNumber; - } else { - max = max / splitNumber; - } - } - return { - max: max, - min: min - }; - }, - getVector: function (polarIndex, indicatorIndex, value) { - polarIndex = polarIndex || 0; - indicatorIndex = indicatorIndex || 0; - var __ecIndicator = this.polar[polarIndex].__ecIndicator; - if (indicatorIndex >= __ecIndicator.length) { - return; - } - var indicator = this.polar[polarIndex].__ecIndicator[indicatorIndex]; - var center = this.getCenter(polarIndex); - var vector = indicator.vector; - var max = indicator.value.max; - var min = indicator.value.min; - var alpha; - if (typeof value == 'undefined') { - return center; - } - switch (value) { - case 'min': - value = min; - break; - case 'max': - value = max; - break; - case 'center': - value = (max + min) / 2; - break; - } - if (max != min) { - alpha = (value - min) / (max - min); - } else { - alpha = 0.5; - } - return this._mapVector(vector, center, alpha); - }, - isInside: function (vector) { - var polar = this.getNearestIndex(vector); - if (polar) { - return polar.polarIndex; - } - return -1; - }, - getNearestIndex: function (vector) { - var item; - var center; - var radius; - var polarVector; - var startAngle; - var indicator; - var len; - var angle; - var finalAngle; - for (var i = 0; i < this.polar.length; i++) { - item = this.polar[i]; - center = this.getCenter(i); - if (vector[0] == center[0] && vector[1] == center[1]) { - return { - polarIndex: i, - valueIndex: 0 - }; - } - radius = this._getRadius(); - startAngle = item.startAngle; - indicator = item.indicator; - len = indicator.length; - angle = 2 * Math.PI / len; - polarVector = ecCoordinates.cartesian2polar(vector[0] - center[0], center[1] - vector[1]); - if (vector[0] - center[0] < 0) { - polarVector[1] += Math.PI; - } - if (polarVector[1] < 0) { - polarVector[1] += 2 * Math.PI; - } - finalAngle = polarVector[1] - startAngle / 180 * Math.PI + Math.PI * 2; - if (Math.abs(Math.cos(finalAngle % (angle / 2))) * radius > polarVector[0]) { - return { - polarIndex: i, - valueIndex: Math.floor((finalAngle + angle / 2) / angle) % len - }; - } - } - }, - getIndicator: function (index) { - var index = index || 0; - return this.polar[index].indicator; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.polar = this.option.polar; - this.series = this.option.series; - } - this.clear(); - this._buildShape(); - } - }; - zrUtil.inherits(Polar, Base); - require('../component').define('polar', Polar); - return Polar; -});define('echarts/util/coordinates', [ - 'require', - 'zrender/tool/math' -], function (require) { - var zrMath = require('zrender/tool/math'); - function polar2cartesian(r, theta) { - return [ - r * zrMath.sin(theta), - r * zrMath.cos(theta) - ]; - } - function cartesian2polar(x, y) { - return [ - Math.sqrt(x * x + y * y), - Math.atan(y / x) - ]; - } - return { - polar2cartesian: polar2cartesian, - cartesian2polar: cartesian2polar - }; -});define('echarts/chart/chord', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Line', - 'zrender/shape/Sector', - '../util/shape/Ribbon', - '../util/shape/Icon', - 'zrender/shape/BezierCurve', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/vector', - '../data/Graph', - '../layout/Chord', - '../chart' -], function (require) { - 'use strict'; - var ChartBase = require('./base'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var SectorShape = require('zrender/shape/Sector'); - var RibbonShape = require('../util/shape/Ribbon'); - var IconShape = require('../util/shape/Icon'); - var BezierCurveShape = require('zrender/shape/BezierCurve'); - var ecConfig = require('../config'); - ecConfig.chord = { - zlevel: 0, - z: 2, - clickable: true, - radius: [ - '65%', - '75%' - ], - center: [ - '50%', - '50%' - ], - padding: 2, - sort: 'none', - sortSub: 'none', - startAngle: 90, - clockWise: true, - ribbonType: true, - minRadius: 10, - maxRadius: 20, - symbol: 'circle', - showScale: false, - showScaleText: false, - itemStyle: { - normal: { - borderWidth: 0, - borderColor: '#000', - label: { - show: true, - rotate: false, - distance: 5 - }, - chordStyle: { - width: 1, - color: 'black', - borderWidth: 1, - borderColor: '#999', - opacity: 0.5 - } - }, - emphasis: { - borderWidth: 0, - borderColor: '#000', - chordStyle: { - width: 1, - color: 'black', - borderWidth: 1, - borderColor: '#999' - } - } - } - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var vec2 = require('zrender/tool/vector'); - var Graph = require('../data/Graph'); - var ChordLayout = require('../layout/Chord'); - function Chord(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.scaleLineLength = 4; - this.scaleUnitAngle = 4; - this.refresh(option); - } - Chord.prototype = { - type: ecConfig.CHART_TYPE_CHORD, - _init: function () { - var series = this.series; - this.selectedMap = {}; - var chordSeriesMap = {}; - var chordSeriesGroups = {}; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === this.type) { - var _isSelected = this.isSelected(series[i].name); - this.selectedMap[series[i].name] = _isSelected; - if (_isSelected) { - this.buildMark(i); - } - this.reformOption(series[i]); - chordSeriesMap[series[i].name] = series[i]; - } - } - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === this.type) { - if (series[i].insertToSerie) { - var referenceSerie = chordSeriesMap[series[i].insertToSerie]; - series[i]._referenceSerie = referenceSerie; - } else { - chordSeriesGroups[series[i].name] = [series[i]]; - } - } - } - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === this.type) { - if (series[i].insertToSerie) { - var mainSerie = series[i]._referenceSerie; - while (mainSerie && mainSerie._referenceSerie) { - mainSerie = mainSerie._referenceSerie; - } - if (chordSeriesGroups[mainSerie.name] && this.selectedMap[series[i].name]) { - chordSeriesGroups[mainSerie.name].push(series[i]); - } - } - } - } - for (var name in chordSeriesGroups) { - this._buildChords(chordSeriesGroups[name]); - } - this.addShapeList(); - }, - _getNodeCategory: function (serie, group) { - return serie.categories && serie.categories[group.category || 0]; - }, - _getNodeQueryTarget: function (serie, group) { - var category = this._getNodeCategory(serie, group); - return [ - group, - category, - serie - ]; - }, - _getEdgeQueryTarget: function (serie, edge, type) { - type = type || 'normal'; - return [ - edge.itemStyle && edge.itemStyle[type], - serie.itemStyle[type].chordStyle - ]; - }, - _buildChords: function (series) { - var graphs = []; - var mainSerie = series[0]; - var nodeFilter = function (n) { - return n.layout.size > 0; - }; - var createEdgeFilter = function (graph) { - return function (e) { - return graph.getEdge(e.node2, e.node1); - }; - }; - for (var i = 0; i < series.length; i++) { - var serie = series[i]; - if (this.selectedMap[serie.name]) { - var graph; - if (serie.matrix) { - graph = this._getSerieGraphFromDataMatrix(serie, mainSerie); - } else if (serie.links) { - graph = this._getSerieGraphFromNodeLinks(serie, mainSerie); - } - graph.filterNode(nodeFilter, this); - if (serie.ribbonType) { - graph.filterEdge(createEdgeFilter(graph)); - } - graphs.push(graph); - graph.__serie = serie; - } - } - if (!graphs.length) { - return; - } - var mainGraph = graphs[0]; - if (!mainSerie.ribbonType) { - var minRadius = mainSerie.minRadius; - var maxRadius = mainSerie.maxRadius; - var min = Infinity, max = -Infinity; - mainGraph.eachNode(function (node) { - max = Math.max(node.layout.size, max); - min = Math.min(node.layout.size, min); - }); - var multiplier = (maxRadius - minRadius) / (max - min); - mainGraph.eachNode(function (node) { - var queryTarget = this._getNodeQueryTarget(mainSerie, node); - var symbolSize = this.query(queryTarget, 'symbolSize'); - if (max === min) { - node.layout.size = symbolSize || min; - } else { - node.layout.size = symbolSize || (node.layout.size - min) * multiplier + minRadius; - } - }, this); - } - var layout = new ChordLayout(); - layout.clockWise = mainSerie.clockWise; - layout.startAngle = mainSerie.startAngle * Math.PI / 180; - if (!layout.clockWise) { - layout.startAngle = -layout.startAngle; - } - layout.padding = mainSerie.padding * Math.PI / 180; - layout.sort = mainSerie.sort; - layout.sortSub = mainSerie.sortSub; - layout.directed = mainSerie.ribbonType; - layout.run(graphs); - var showLabel = this.query(mainSerie, 'itemStyle.normal.label.show'); - if (mainSerie.ribbonType) { - this._buildSectors(mainSerie, 0, mainGraph, mainSerie, graphs); - if (showLabel) { - this._buildLabels(mainSerie, 0, mainGraph, mainSerie, graphs); - } - for (var i = 0, j = 0; i < series.length; i++) { - if (this.selectedMap[series[i].name]) { - this._buildRibbons(series, i, graphs[j++], mainSerie); - } - } - if (mainSerie.showScale) { - this._buildScales(mainSerie, 0, mainGraph); - } - } else { - this._buildNodeIcons(mainSerie, 0, mainGraph, mainSerie, graphs); - if (showLabel) { - this._buildLabels(mainSerie, 0, mainGraph, mainSerie, graphs); - } - for (var i = 0, j = 0; i < series.length; i++) { - if (this.selectedMap[series[i].name]) { - this._buildEdgeCurves(series, i, graphs[j++], mainSerie, mainGraph); - } - } - } - this._initHoverHandler(series, graphs); - }, - _getSerieGraphFromDataMatrix: function (serie, mainSerie) { - var nodesData = []; - var count = 0; - var matrix = []; - for (var i = 0; i < serie.matrix.length; i++) { - matrix[i] = serie.matrix[i].slice(); - } - var data = serie.data || serie.nodes; - for (var i = 0; i < data.length; i++) { - var node = {}; - var group = data[i]; - group.rawIndex = i; - for (var key in group) { - if (key === 'name') { - node['id'] = group['name']; - } else { - node[key] = group[key]; - } - } - var category = this._getNodeCategory(mainSerie, group); - var name = category ? category.name : group.name; - this.selectedMap[name] = this.isSelected(name); - if (this.selectedMap[name]) { - nodesData.push(node); - count++; - } else { - matrix.splice(count, 1); - for (var j = 0; j < matrix.length; j++) { - matrix[j].splice(count, 1); - } - } - } - var graph = Graph.fromMatrix(nodesData, matrix, true); - graph.eachNode(function (n, idx) { - n.layout = { size: n.data.outValue }; - n.rawIndex = n.data.rawIndex; - }); - graph.eachEdge(function (e) { - e.layout = { weight: e.data.weight }; - }); - return graph; - }, - _getSerieGraphFromNodeLinks: function (serie, mainSerie) { - var graph = new Graph(true); - var nodes = serie.data || serie.nodes; - for (var i = 0, len = nodes.length; i < len; i++) { - var n = nodes[i]; - if (!n || n.ignore) { - continue; - } - var category = this._getNodeCategory(mainSerie, n); - var name = category ? category.name : n.name; - this.selectedMap[name] = this.isSelected(name); - if (this.selectedMap[name]) { - var node = graph.addNode(n.name, n); - node.rawIndex = i; - } - } - for (var i = 0, len = serie.links.length; i < len; i++) { - var e = serie.links[i]; - var n1 = e.source; - var n2 = e.target; - if (typeof n1 === 'number') { - n1 = nodes[n1]; - if (n1) { - n1 = n1.name; - } - } - if (typeof n2 === 'number') { - n2 = nodes[n2]; - if (n2) { - n2 = n2.name; - } - } - var edge = graph.addEdge(n1, n2, e); - if (edge) { - edge.rawIndex = i; - } - } - graph.eachNode(function (n) { - var value = n.data.value; - if (value == null) { - value = 0; - if (mainSerie.ribbonType) { - for (var i = 0; i < n.outEdges.length; i++) { - value += n.outEdges[i].data.weight || 0; - } - } else { - for (var i = 0; i < n.edges.length; i++) { - value += n.edges[i].data.weight || 0; - } - } - } - n.layout = { size: value }; - }); - graph.eachEdge(function (e) { - e.layout = { weight: e.data.weight == null ? 1 : e.data.weight }; - }); - return graph; - }, - _initHoverHandler: function (series, graphs) { - var mainSerie = series[0]; - var mainGraph = graphs[0]; - var self = this; - mainGraph.eachNode(function (node) { - node.shape.onmouseover = function () { - mainGraph.eachNode(function (n) { - n.shape.style.opacity = 0.1; - if (n.labelShape) { - n.labelShape.style.opacity = 0.1; - n.labelShape.modSelf(); - } - n.shape.modSelf(); - }); - for (var i = 0; i < graphs.length; i++) { - for (var j = 0; j < graphs[i].edges.length; j++) { - var e = graphs[i].edges[j]; - var queryTarget = self._getEdgeQueryTarget(graphs[i].__serie, e.data); - e.shape.style.opacity = self.deepQuery(queryTarget, 'opacity') * 0.1; - e.shape.modSelf(); - } - } - node.shape.style.opacity = 1; - if (node.labelShape) { - node.labelShape.style.opacity = 1; - } - for (var i = 0; i < graphs.length; i++) { - var n = graphs[i].getNodeById(node.id); - if (n) { - for (var j = 0; j < n.outEdges.length; j++) { - var e = n.outEdges[j]; - var queryTarget = self._getEdgeQueryTarget(graphs[i].__serie, e.data); - e.shape.style.opacity = self.deepQuery(queryTarget, 'opacity'); - var other = graphs[0].getNodeById(e.node2.id); - if (other) { - if (other.shape) { - other.shape.style.opacity = 1; - } - if (other.labelShape) { - other.labelShape.style.opacity = 1; - } - } - } - } - } - self.zr.refreshNextFrame(); - }; - node.shape.onmouseout = function () { - mainGraph.eachNode(function (n) { - n.shape.style.opacity = 1; - if (n.labelShape) { - n.labelShape.style.opacity = 1; - n.labelShape.modSelf(); - } - n.shape.modSelf(); - }); - for (var i = 0; i < graphs.length; i++) { - for (var j = 0; j < graphs[i].edges.length; j++) { - var e = graphs[i].edges[j]; - var queryTarget = [ - e.data, - mainSerie - ]; - e.shape.style.opacity = self.deepQuery(queryTarget, 'itemStyle.normal.chordStyle.opacity'); - e.shape.modSelf(); - } - } - self.zr.refreshNextFrame(); - }; - }); - }, - _buildSectors: function (serie, serieIdx, graph, mainSerie) { - var center = this.parseCenter(this.zr, mainSerie.center); - var radius = this.parseRadius(this.zr, mainSerie.radius); - var clockWise = mainSerie.clockWise; - var sign = clockWise ? 1 : -1; - graph.eachNode(function (node) { - var category = this._getNodeCategory(mainSerie, node.data); - var color = category ? this.getColor(category.name) : this.getColor(node.id); - var startAngle = node.layout.startAngle / Math.PI * 180 * sign; - var endAngle = node.layout.endAngle / Math.PI * 180 * sign; - var sector = new SectorShape({ - zlevel: serie.zlevel, - z: serie.z, - style: { - x: center[0], - y: center[1], - r0: radius[0], - r: radius[1], - startAngle: startAngle, - endAngle: endAngle, - brushType: 'fill', - opacity: 1, - color: color, - clockWise: clockWise - }, - clickable: mainSerie.clickable, - highlightStyle: { brushType: 'fill' } - }); - sector.style.lineWidth = this.deepQuery([ - node.data, - mainSerie - ], 'itemStyle.normal.borderWidth'); - sector.highlightStyle.lineWidth = this.deepQuery([ - node.data, - mainSerie - ], 'itemStyle.emphasis.borderWidth'); - sector.style.strokeColor = this.deepQuery([ - node.data, - mainSerie - ], 'itemStyle.normal.borderColor'); - sector.highlightStyle.strokeColor = this.deepQuery([ - node.data, - mainSerie - ], 'itemStyle.emphasis.borderColor'); - if (sector.style.lineWidth > 0) { - sector.style.brushType = 'both'; - } - if (sector.highlightStyle.lineWidth > 0) { - sector.highlightStyle.brushType = 'both'; - } - ecData.pack(sector, serie, serieIdx, node.data, node.rawIndex, node.id, node.category); - this.shapeList.push(sector); - node.shape = sector; - }, this); - }, - _buildNodeIcons: function (serie, serieIdx, graph, mainSerie) { - var center = this.parseCenter(this.zr, mainSerie.center); - var radius = this.parseRadius(this.zr, mainSerie.radius); - var r = radius[1]; - graph.eachNode(function (node) { - var startAngle = node.layout.startAngle; - var endAngle = node.layout.endAngle; - var angle = (startAngle + endAngle) / 2; - var x = r * Math.cos(angle); - var y = r * Math.sin(angle); - var queryTarget = this._getNodeQueryTarget(mainSerie, node.data); - var category = this._getNodeCategory(mainSerie, node.data); - var color = this.deepQuery(queryTarget, 'itemStyle.normal.color'); - if (!color) { - color = category ? this.getColor(category.name) : this.getColor(node.id); - } - var iconShape = new IconShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - style: { - x: -node.layout.size, - y: -node.layout.size, - width: node.layout.size * 2, - height: node.layout.size * 2, - iconType: this.deepQuery(queryTarget, 'symbol'), - color: color, - brushType: 'both', - lineWidth: this.deepQuery(queryTarget, 'itemStyle.normal.borderWidth'), - strokeColor: this.deepQuery(queryTarget, 'itemStyle.normal.borderColor') - }, - highlightStyle: { - color: this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), - lineWidth: this.deepQuery(queryTarget, 'itemStyle.emphasis.borderWidth'), - strokeColor: this.deepQuery(queryTarget, 'itemStyle.emphasis.borderColor') - }, - clickable: mainSerie.clickable, - position: [ - x + center[0], - y + center[1] - ] - }); - ecData.pack(iconShape, serie, serieIdx, node.data, node.rawIndex, node.id, node.category); - this.shapeList.push(iconShape); - node.shape = iconShape; - }, this); - }, - _buildLabels: function (serie, serieIdx, graph, mainSerie) { - var rotateLabel = this.query(mainSerie, 'itemStyle.normal.label.rotate'); - var labelDistance = this.query(mainSerie, 'itemStyle.normal.label.distance'); - var center = this.parseCenter(this.zr, mainSerie.center); - var radius = this.parseRadius(this.zr, mainSerie.radius); - var clockWise = mainSerie.clockWise; - var sign = clockWise ? 1 : -1; - graph.eachNode(function (node) { - var startAngle = node.layout.startAngle / Math.PI * 180 * sign; - var endAngle = node.layout.endAngle / Math.PI * 180 * sign; - var angle = (startAngle * -sign + endAngle * -sign) / 2; - angle %= 360; - if (angle < 0) { - angle += 360; - } - var isRightSide = angle <= 90 || angle >= 270; - angle = angle * Math.PI / 180; - var v = [ - Math.cos(angle), - -Math.sin(angle) - ]; - var distance = 0; - if (mainSerie.ribbonType) { - distance = mainSerie.showScaleText ? 35 + labelDistance : labelDistance; - } else { - distance = labelDistance + node.layout.size; - } - var start = vec2.scale([], v, radius[1] + distance); - vec2.add(start, start, center); - var labelShape = { - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - text: node.data.label == null ? node.id : node.data.label, - textAlign: isRightSide ? 'left' : 'right' - } - }; - if (rotateLabel) { - labelShape.rotation = isRightSide ? angle : Math.PI + angle; - if (isRightSide) { - labelShape.style.x = radius[1] + distance; - } else { - labelShape.style.x = -radius[1] - distance; - } - labelShape.style.y = 0; - labelShape.position = center.slice(); - } else { - labelShape.style.x = start[0]; - labelShape.style.y = start[1]; - } - labelShape.style.color = this.deepQuery([ - node.data, - mainSerie - ], 'itemStyle.normal.label.textStyle.color') || '#000000'; - labelShape.style.textFont = this.getFont(this.deepQuery([ - node.data, - mainSerie - ], 'itemStyle.normal.label.textStyle')); - labelShape = new TextShape(labelShape); - this.shapeList.push(labelShape); - node.labelShape = labelShape; - }, this); - }, - _buildRibbons: function (series, serieIdx, graph, mainSerie) { - var serie = series[serieIdx]; - var center = this.parseCenter(this.zr, mainSerie.center); - var radius = this.parseRadius(this.zr, mainSerie.radius); - graph.eachEdge(function (edge, idx) { - var color; - var other = graph.getEdge(edge.node2, edge.node1); - if (!other || edge.shape) { - return; - } - if (other.shape) { - edge.shape = other.shape; - return; - } - var s0 = edge.layout.startAngle / Math.PI * 180; - var s1 = edge.layout.endAngle / Math.PI * 180; - var t0 = other.layout.startAngle / Math.PI * 180; - var t1 = other.layout.endAngle / Math.PI * 180; - if (series.length === 1) { - if (edge.layout.weight <= other.layout.weight) { - color = this.getColor(edge.node1.id); - } else { - color = this.getColor(edge.node2.id); - } - } else { - color = this.getColor(serie.name); - } - var queryTarget = this._getEdgeQueryTarget(serie, edge.data); - var queryTargetEmphasis = this._getEdgeQueryTarget(serie, edge.data, 'emphasis'); - var ribbon = new RibbonShape({ - zlevel: serie.zlevel, - z: serie.z, - style: { - x: center[0], - y: center[1], - r: radius[0], - source0: s0, - source1: s1, - target0: t0, - target1: t1, - brushType: 'both', - opacity: this.deepQuery(queryTarget, 'opacity'), - color: color, - lineWidth: this.deepQuery(queryTarget, 'borderWidth'), - strokeColor: this.deepQuery(queryTarget, 'borderColor'), - clockWise: mainSerie.clockWise - }, - clickable: mainSerie.clickable, - highlightStyle: { - brushType: 'both', - opacity: this.deepQuery(queryTargetEmphasis, 'opacity'), - lineWidth: this.deepQuery(queryTargetEmphasis, 'borderWidth'), - strokeColor: this.deepQuery(queryTargetEmphasis, 'borderColor') - } - }); - var node1, node2; - if (edge.layout.weight <= other.layout.weight) { - node1 = other.node1; - node2 = other.node2; - } else { - node1 = edge.node1; - node2 = edge.node2; - } - ecData.pack(ribbon, serie, serieIdx, edge.data, edge.rawIndex == null ? idx : edge.rawIndex, edge.data.name || node1.id + '-' + node2.id, node1.id, node2.id); - this.shapeList.push(ribbon); - edge.shape = ribbon; - }, this); - }, - _buildEdgeCurves: function (series, serieIdx, graph, mainSerie, mainGraph) { - var serie = series[serieIdx]; - var center = this.parseCenter(this.zr, mainSerie.center); - graph.eachEdge(function (e, idx) { - var node1 = mainGraph.getNodeById(e.node1.id); - var node2 = mainGraph.getNodeById(e.node2.id); - var shape1 = node1.shape; - var shape2 = node2.shape; - var queryTarget = this._getEdgeQueryTarget(serie, e.data); - var queryTargetEmphasis = this._getEdgeQueryTarget(serie, e.data, 'emphasis'); - var curveShape = new BezierCurveShape({ - zlevel: serie.zlevel, - z: serie.z, - style: { - xStart: shape1.position[0], - yStart: shape1.position[1], - xEnd: shape2.position[0], - yEnd: shape2.position[1], - cpX1: center[0], - cpY1: center[1], - lineWidth: this.deepQuery(queryTarget, 'width'), - strokeColor: this.deepQuery(queryTarget, 'color'), - opacity: this.deepQuery(queryTarget, 'opacity') - }, - highlightStyle: { - lineWidth: this.deepQuery(queryTargetEmphasis, 'width'), - strokeColor: this.deepQuery(queryTargetEmphasis, 'color'), - opacity: this.deepQuery(queryTargetEmphasis, 'opacity') - } - }); - ecData.pack(curveShape, serie, serieIdx, e.data, e.rawIndex == null ? idx : e.rawIndex, e.data.name || e.node1.id + '-' + e.node2.id, e.node1.id, e.node2.id); - this.shapeList.push(curveShape); - e.shape = curveShape; - }, this); - }, - _buildScales: function (serie, serieIdx, graph) { - var clockWise = serie.clockWise; - var center = this.parseCenter(this.zr, serie.center); - var radius = this.parseRadius(this.zr, serie.radius); - var sign = clockWise ? 1 : -1; - var sumValue = 0; - var maxValue = -Infinity; - var unitPostfix; - var unitScale; - if (serie.showScaleText) { - graph.eachNode(function (node) { - var val = node.data.value; - if (val > maxValue) { - maxValue = val; - } - sumValue += val; - }); - if (maxValue > 10000000000) { - unitPostfix = 'b'; - unitScale = 1e-9; - } else if (maxValue > 10000000) { - unitPostfix = 'm'; - unitScale = 0.000001; - } else if (maxValue > 10000) { - unitPostfix = 'k'; - unitScale = 0.001; - } else { - unitPostfix = ''; - unitScale = 1; - } - } - var unitValue = sumValue / (360 - serie.padding); - graph.eachNode(function (node) { - var startAngle = node.layout.startAngle / Math.PI * 180; - var endAngle = node.layout.endAngle / Math.PI * 180; - var scaleAngle = startAngle; - while (true) { - if (clockWise && scaleAngle > endAngle || !clockWise && scaleAngle < endAngle) { - break; - } - var theta = scaleAngle / 180 * Math.PI; - var v = [ - Math.cos(theta), - Math.sin(theta) - ]; - var start = vec2.scale([], v, radius[1] + 1); - vec2.add(start, start, center); - var end = vec2.scale([], v, radius[1] + this.scaleLineLength); - vec2.add(end, end, center); - var scaleShape = new LineShape({ - zlevel: serie.zlevel, - z: serie.z - 1, - hoverable: false, - style: { - xStart: start[0], - yStart: start[1], - xEnd: end[0], - yEnd: end[1], - lineCap: 'round', - brushType: 'stroke', - strokeColor: '#666', - lineWidth: 1 - } - }); - this.shapeList.push(scaleShape); - scaleAngle += sign * this.scaleUnitAngle; - } - if (!serie.showScaleText) { - return; - } - var scaleTextAngle = startAngle; - var step = unitValue * 5 * this.scaleUnitAngle; - var scaleValue = 0; - while (true) { - if (clockWise && scaleTextAngle > endAngle || !clockWise && scaleTextAngle < endAngle) { - break; - } - var theta = scaleTextAngle; - theta = theta % 360; - if (theta < 0) { - theta += 360; - } - var isRightSide = theta <= 90 || theta >= 270; - var textShape = new TextShape({ - zlevel: serie.zlevel, - z: serie.z - 1, - hoverable: false, - style: { - x: isRightSide ? radius[1] + this.scaleLineLength + 4 : -radius[1] - this.scaleLineLength - 4, - y: 0, - text: Math.round(scaleValue * 10) / 10 + unitPostfix, - textAlign: isRightSide ? 'left' : 'right' - }, - position: center.slice(), - rotation: isRightSide ? [ - -theta / 180 * Math.PI, - 0, - 0 - ] : [ - -(theta + 180) / 180 * Math.PI, - 0, - 0 - ] - }); - this.shapeList.push(textShape); - scaleValue += step * unitScale; - scaleTextAngle += sign * this.scaleUnitAngle * 5; - } - }, this); - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.legend = this.component.legend; - if (this.legend) { - this.getColor = function (param) { - return this.legend.getColor(param); - }; - this.isSelected = function (param) { - return this.legend.isSelected(param); - }; - } else { - var colorMap = {}; - var count = 0; - this.getColor = function (key) { - if (colorMap[key]) { - return colorMap[key]; - } - if (!colorMap[key]) { - colorMap[key] = this.zr.getColor(count++); - } - return colorMap[key]; - }; - this.isSelected = function () { - return true; - }; - } - this.backupShapeList(); - this._init(); - }, - reformOption: function (opt) { - var _merge = zrUtil.merge; - opt = _merge(_merge(opt || {}, this.ecTheme.chord), ecConfig.chord); - opt.itemStyle.normal.label.textStyle = this.getTextStyle(opt.itemStyle.normal.label.textStyle); - this.z = opt.z; - this.zlevel = opt.zlevel; - } - }; - zrUtil.inherits(Chord, ChartBase); - require('../chart').define('chord', Chord); - return Chord; -});define('echarts/util/shape/Ribbon', [ - 'require', - 'zrender/shape/Base', - 'zrender/shape/util/PathProxy', - 'zrender/tool/util', - 'zrender/tool/area' -], function (require) { - var Base = require('zrender/shape/Base'); - var PathProxy = require('zrender/shape/util/PathProxy'); - var zrUtil = require('zrender/tool/util'); - var area = require('zrender/tool/area'); - function RibbonShape(options) { - Base.call(this, options); - this._pathProxy = new PathProxy(); - } - RibbonShape.prototype = { - type: 'ribbon', - buildPath: function (ctx, style) { - var clockWise = style.clockWise || false; - var path = this._pathProxy; - path.begin(ctx); - var cx = style.x; - var cy = style.y; - var r = style.r; - var s0 = style.source0 / 180 * Math.PI; - var s1 = style.source1 / 180 * Math.PI; - var t0 = style.target0 / 180 * Math.PI; - var t1 = style.target1 / 180 * Math.PI; - var sx0 = cx + Math.cos(s0) * r; - var sy0 = cy + Math.sin(s0) * r; - var sx1 = cx + Math.cos(s1) * r; - var sy1 = cy + Math.sin(s1) * r; - var tx0 = cx + Math.cos(t0) * r; - var ty0 = cy + Math.sin(t0) * r; - var tx1 = cx + Math.cos(t1) * r; - var ty1 = cy + Math.sin(t1) * r; - path.moveTo(sx0, sy0); - path.arc(cx, cy, style.r, s0, s1, !clockWise); - path.bezierCurveTo((cx - sx1) * 0.7 + sx1, (cy - sy1) * 0.7 + sy1, (cx - tx0) * 0.7 + tx0, (cy - ty0) * 0.7 + ty0, tx0, ty0); - if (style.source0 === style.target0 && style.source1 === style.target1) { - return; - } - path.arc(cx, cy, style.r, t0, t1, !clockWise); - path.bezierCurveTo((cx - tx1) * 0.7 + tx1, (cy - ty1) * 0.7 + ty1, (cx - sx0) * 0.7 + sx0, (cy - sy0) * 0.7 + sy0, sx0, sy0); - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - if (!this._pathProxy.isEmpty()) { - this.buildPath(null, style); - } - return this._pathProxy.fastBoundingRect(); - }, - isCover: function (x, y) { - var rect = this.getRect(this.style); - if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) { - return area.isInsidePath(this._pathProxy.pathCommands, 0, 'fill', x, y); - } - } - }; - zrUtil.inherits(RibbonShape, Base); - return RibbonShape; -});define('echarts/data/Graph', [ - 'require', - 'zrender/tool/util' -], function (require) { - var util = require('zrender/tool/util'); - 'use strict'; - var Graph = function (directed) { - this._directed = directed || false; - this.nodes = []; - this.edges = []; - this._nodesMap = {}; - this._edgesMap = {}; - }; - Graph.prototype.isDirected = function () { - return this._directed; - }; - Graph.prototype.addNode = function (id, data) { - if (this._nodesMap[id]) { - return this._nodesMap[id]; - } - var node = new Graph.Node(id, data); - this.nodes.push(node); - this._nodesMap[id] = node; - return node; - }; - Graph.prototype.getNodeById = function (id) { - return this._nodesMap[id]; - }; - Graph.prototype.addEdge = function (n1, n2, data) { - if (typeof n1 == 'string') { - n1 = this._nodesMap[n1]; - } - if (typeof n2 == 'string') { - n2 = this._nodesMap[n2]; - } - if (!n1 || !n2) { - return; - } - var key = n1.id + '-' + n2.id; - if (this._edgesMap[key]) { - return this._edgesMap[key]; - } - var edge = new Graph.Edge(n1, n2, data); - if (this._directed) { - n1.outEdges.push(edge); - n2.inEdges.push(edge); - } - n1.edges.push(edge); - if (n1 !== n2) { - n2.edges.push(edge); - } - this.edges.push(edge); - this._edgesMap[key] = edge; - return edge; - }; - Graph.prototype.removeEdge = function (edge) { - var n1 = edge.node1; - var n2 = edge.node2; - var key = n1.id + '-' + n2.id; - if (this._directed) { - n1.outEdges.splice(util.indexOf(n1.outEdges, edge), 1); - n2.inEdges.splice(util.indexOf(n2.inEdges, edge), 1); - } - n1.edges.splice(util.indexOf(n1.edges, edge), 1); - if (n1 !== n2) { - n2.edges.splice(util.indexOf(n2.edges, edge), 1); - } - delete this._edgesMap[key]; - this.edges.splice(util.indexOf(this.edges, edge), 1); - }; - Graph.prototype.getEdge = function (n1, n2) { - if (typeof n1 !== 'string') { - n1 = n1.id; - } - if (typeof n2 !== 'string') { - n2 = n2.id; - } - if (this._directed) { - return this._edgesMap[n1 + '-' + n2]; - } else { - return this._edgesMap[n1 + '-' + n2] || this._edgesMap[n2 + '-' + n1]; - } - }; - Graph.prototype.removeNode = function (node) { - if (typeof node === 'string') { - node = this._nodesMap[node]; - if (!node) { - return; - } - } - delete this._nodesMap[node.id]; - this.nodes.splice(util.indexOf(this.nodes, node), 1); - for (var i = 0; i < this.edges.length;) { - var edge = this.edges[i]; - if (edge.node1 === node || edge.node2 === node) { - this.removeEdge(edge); - } else { - i++; - } - } - }; - Graph.prototype.filterNode = function (cb, context) { - var len = this.nodes.length; - for (var i = 0; i < len;) { - if (cb.call(context, this.nodes[i], i)) { - i++; - } else { - this.removeNode(this.nodes[i]); - len--; - } - } - }; - Graph.prototype.filterEdge = function (cb, context) { - var len = this.edges.length; - for (var i = 0; i < len;) { - if (cb.call(context, this.edges[i], i)) { - i++; - } else { - this.removeEdge(this.edges[i]); - len--; - } - } - }; - Graph.prototype.eachNode = function (cb, context) { - var len = this.nodes.length; - for (var i = 0; i < len; i++) { - if (this.nodes[i]) { - cb.call(context, this.nodes[i], i); - } - } - }; - Graph.prototype.eachEdge = function (cb, context) { - var len = this.edges.length; - for (var i = 0; i < len; i++) { - if (this.edges[i]) { - cb.call(context, this.edges[i], i); - } - } - }; - Graph.prototype.clear = function () { - this.nodes.length = 0; - this.edges.length = 0; - this._nodesMap = {}; - this._edgesMap = {}; - }; - Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) { - if (typeof startNode === 'string') { - startNode = this._nodesMap[startNode]; - } - if (!startNode) { - return; - } - var edgeType = 'edges'; - if (direction === 'out') { - edgeType = 'outEdges'; - } else if (direction === 'in') { - edgeType = 'inEdges'; - } - for (var i = 0; i < this.nodes.length; i++) { - this.nodes[i].__visited = false; - } - if (cb.call(context, startNode, null)) { - return; - } - var queue = [startNode]; - while (queue.length) { - var currentNode = queue.shift(); - var edges = currentNode[edgeType]; - for (var i = 0; i < edges.length; i++) { - var e = edges[i]; - var otherNode = e.node1 === currentNode ? e.node2 : e.node1; - if (!otherNode.__visited) { - if (cb.call(otherNode, otherNode, currentNode)) { - return; - } - queue.push(otherNode); - otherNode.__visited = true; - } - } - } - }; - Graph.prototype.clone = function () { - var graph = new Graph(this._directed); - for (var i = 0; i < this.nodes.length; i++) { - graph.addNode(this.nodes[i].id, this.nodes[i].data); - } - for (var i = 0; i < this.edges.length; i++) { - var e = this.edges[i]; - graph.addEdge(e.node1.id, e.node2.id, e.data); - } - return graph; - }; - var Node = function (id, data) { - this.id = id; - this.data = data || null; - this.inEdges = []; - this.outEdges = []; - this.edges = []; - }; - Node.prototype.degree = function () { - return this.edges.length; - }; - Node.prototype.inDegree = function () { - return this.inEdges.length; - }; - Node.prototype.outDegree = function () { - return this.outEdges.length; - }; - var Edge = function (node1, node2, data) { - this.node1 = node1; - this.node2 = node2; - this.data = data || null; - }; - Graph.Node = Node; - Graph.Edge = Edge; - Graph.fromMatrix = function (nodesData, matrix, directed) { - if (!matrix || !matrix.length || matrix[0].length !== matrix.length || nodesData.length !== matrix.length) { - return; - } - var size = matrix.length; - var graph = new Graph(directed); - for (var i = 0; i < size; i++) { - var node = graph.addNode(nodesData[i].id, nodesData[i]); - node.data.value = 0; - if (directed) { - node.data.outValue = node.data.inValue = 0; - } - } - for (var i = 0; i < size; i++) { - for (var j = 0; j < size; j++) { - var item = matrix[i][j]; - if (directed) { - graph.nodes[i].data.outValue += item; - graph.nodes[j].data.inValue += item; - } - graph.nodes[i].data.value += item; - graph.nodes[j].data.value += item; - } - } - for (var i = 0; i < size; i++) { - for (var j = i; j < size; j++) { - var item = matrix[i][j]; - if (item === 0) { - continue; - } - var n1 = graph.nodes[i]; - var n2 = graph.nodes[j]; - var edge = graph.addEdge(n1, n2, {}); - edge.data.weight = item; - if (i !== j) { - if (directed && matrix[j][i]) { - var inEdge = graph.addEdge(n2, n1, {}); - inEdge.data.weight = matrix[j][i]; - } - } - } - } - return graph; - }; - return Graph; -});define('echarts/layout/Chord', ['require'], function (require) { - var ChordLayout = function (opts) { - opts = opts || {}; - this.sort = opts.sort || null; - this.sortSub = opts.sortSub || null; - this.padding = 0.05; - this.startAngle = opts.startAngle || 0; - this.clockWise = opts.clockWise == null ? false : opts.clockWise; - this.center = opts.center || [ - 0, - 0 - ]; - this.directed = true; - }; - ChordLayout.prototype.run = function (graphs) { - if (!(graphs instanceof Array)) { - graphs = [graphs]; - } - var gl = graphs.length; - if (!gl) { - return; - } - var graph0 = graphs[0]; - var nl = graph0.nodes.length; - var groups = []; - var sumSize = 0; - for (var i = 0; i < nl; i++) { - var g0node = graph0.nodes[i]; - var group = { - size: 0, - subGroups: [], - node: g0node - }; - groups.push(group); - var sumWeight = 0; - for (var k = 0; k < graphs.length; k++) { - var graph = graphs[k]; - var node = graph.getNodeById(g0node.id); - if (!node) { - continue; - } - group.size += node.layout.size; - var edges = this.directed ? node.outEdges : node.edges; - for (var j = 0; j < edges.length; j++) { - var e = edges[j]; - var w = e.layout.weight; - group.subGroups.push({ - weight: w, - edge: e, - graph: graph - }); - sumWeight += w; - } - } - sumSize += group.size; - var multiplier = group.size / sumWeight; - for (var j = 0; j < group.subGroups.length; j++) { - group.subGroups[j].weight *= multiplier; - } - if (this.sortSub === 'ascending') { - group.subGroups.sort(compareSubGroups); - } else if (this.sort === 'descending') { - group.subGroups.sort(compareSubGroups); - group.subGroups.reverse(); - } - } - if (this.sort === 'ascending') { - groups.sort(compareGroups); - } else if (this.sort === 'descending') { - groups.sort(compareGroups); - groups.reverse(); - } - var multiplier = (Math.PI * 2 - this.padding * nl) / sumSize; - var angle = this.startAngle; - var sign = this.clockWise ? 1 : -1; - for (var i = 0; i < nl; i++) { - var group = groups[i]; - group.node.layout.startAngle = angle; - group.node.layout.endAngle = angle + sign * group.size * multiplier; - group.node.layout.subGroups = []; - for (var j = 0; j < group.subGroups.length; j++) { - var subGroup = group.subGroups[j]; - subGroup.edge.layout.startAngle = angle; - angle += sign * subGroup.weight * multiplier; - subGroup.edge.layout.endAngle = angle; - } - angle = group.node.layout.endAngle + sign * this.padding; - } - }; - var compareSubGroups = function (a, b) { - return a.weight - b.weight; - }; - var compareGroups = function (a, b) { - return a.size - b.size; - }; - return ChordLayout; -});define('echarts/chart/force', [ - 'require', - './base', - '../data/Graph', - '../layout/Force', - 'zrender/shape/Line', - 'zrender/shape/BezierCurve', - 'zrender/shape/Image', - '../util/shape/Icon', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/config', - 'zrender/tool/vector', - '../chart' -], function (require) { - 'use strict'; - var ChartBase = require('./base'); - var Graph = require('../data/Graph'); - var ForceLayout = require('../layout/Force'); - var LineShape = require('zrender/shape/Line'); - var BezierCurveShape = require('zrender/shape/BezierCurve'); - var ImageShape = require('zrender/shape/Image'); - var IconShape = require('../util/shape/Icon'); - var ecConfig = require('../config'); - ecConfig.force = { - zlevel: 1, - z: 2, - center: [ - '50%', - '50%' - ], - size: '100%', - preventOverlap: false, - coolDown: 0.99, - minRadius: 10, - maxRadius: 20, - ratioScaling: false, - large: false, - useWorker: false, - steps: 1, - scaling: 1, - gravity: 1, - symbol: 'circle', - symbolSize: 0, - linkSymbol: null, - linkSymbolSize: [ - 10, - 15 - ], - draggable: true, - clickable: true, - roam: false, - itemStyle: { - normal: { - label: { - show: false, - position: 'inside' - }, - nodeStyle: { - brushType: 'both', - borderColor: '#5182ab', - borderWidth: 1 - }, - linkStyle: { - color: '#5182ab', - width: 1, - type: 'line' - } - }, - emphasis: { - label: { show: false }, - nodeStyle: {}, - linkStyle: { opacity: 0 } - } - } - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrConfig = require('zrender/config'); - var vec2 = require('zrender/tool/vector'); - function Force(ecTheme, messageCenter, zr, option, myChart) { - var self = this; - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.__nodePositionMap = {}; - this._graph = new Graph(true); - this._layout = new ForceLayout(); - this._layout.onupdate = function () { - self._step(); - }; - this._steps = 1; - this.ondragstart = function () { - ondragstart.apply(self, arguments); - }; - this.ondragend = function () { - ondragend.apply(self, arguments); - }; - this.ondrop = function () { - }; - this.shapeHandler.ondragstart = function () { - self.isDragstart = true; - }; - this.onmousemove = function () { - onmousemove.apply(self, arguments); - }; - this.refresh(option); - } - Force.prototype = { - constructor: Force, - type: ecConfig.CHART_TYPE_FORCE, - _init: function () { - this.selectedMap = {}; - var legend = this.component.legend; - var series = this.series; - var serieName; - this.clear(); - for (var i = 0, l = series.length; i < l; i++) { - var serie = series[i]; - if (serie.type === ecConfig.CHART_TYPE_FORCE) { - series[i] = this.reformOption(series[i]); - serieName = series[i].name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (!this.selectedMap[serieName]) { - continue; - } - this.buildMark(i); - this._initSerie(serie, i); - break; - } - } - this.animationEffect(); - }, - _getNodeCategory: function (serie, node) { - return serie.categories && serie.categories[node.category || 0]; - }, - _getNodeQueryTarget: function (serie, node, type) { - type = type || 'normal'; - var category = this._getNodeCategory(serie, node) || {}; - return [ - node.itemStyle && node.itemStyle[type], - category && category.itemStyle && category.itemStyle[type], - serie.itemStyle[type].nodeStyle - ]; - }, - _getEdgeQueryTarget: function (serie, edge, type) { - type = type || 'normal'; - return [ - edge.itemStyle && edge.itemStyle[type], - serie.itemStyle[type].linkStyle - ]; - }, - _initSerie: function (serie, serieIdx) { - this._temperature = 1; - if (serie.matrix) { - this._graph = this._getSerieGraphFromDataMatrix(serie); - } else if (serie.links) { - this._graph = this._getSerieGraphFromNodeLinks(serie); - } - this._buildLinkShapes(serie, serieIdx); - this._buildNodeShapes(serie, serieIdx); - var panable = serie.roam === true || serie.roam === 'move'; - var zoomable = serie.roam === true || serie.roam === 'scale'; - this.zr.modLayer(this.getZlevelBase(), { - panable: panable, - zoomable: zoomable - }); - if (this.query('markPoint.effect.show') || this.query('markLine.effect.show')) { - this.zr.modLayer(ecConfig.EFFECT_ZLEVEL, { - panable: panable, - zoomable: zoomable - }); - } - this._initLayout(serie); - this._step(); - }, - _getSerieGraphFromDataMatrix: function (serie) { - var nodesData = []; - var count = 0; - var matrix = []; - for (var i = 0; i < serie.matrix.length; i++) { - matrix[i] = serie.matrix[i].slice(); - } - var data = serie.data || serie.nodes; - for (var i = 0; i < data.length; i++) { - var node = {}; - var group = data[i]; - for (var key in group) { - if (key === 'name') { - node['id'] = group['name']; - } else { - node[key] = group[key]; - } - } - var category = this._getNodeCategory(serie, group); - var name = category ? category.name : group.name; - this.selectedMap[name] = this.isSelected(name); - if (this.selectedMap[name]) { - nodesData.push(node); - count++; - } else { - matrix.splice(count, 1); - for (var j = 0; j < matrix.length; j++) { - matrix[j].splice(count, 1); - } - } - } - var graph = Graph.fromMatrix(nodesData, matrix, true); - graph.eachNode(function (n, idx) { - n.layout = { - size: n.data.value, - mass: 0 - }; - n.rawIndex = idx; - }); - graph.eachEdge(function (e) { - e.layout = { weight: e.data.weight }; - }); - return graph; - }, - _getSerieGraphFromNodeLinks: function (serie) { - var graph = new Graph(true); - var nodes = serie.data || serie.nodes; - for (var i = 0, len = nodes.length; i < len; i++) { - var n = nodes[i]; - if (!n || n.ignore) { - continue; - } - var category = this._getNodeCategory(serie, n); - var name = category ? category.name : n.name; - this.selectedMap[name] = this.isSelected(name); - if (this.selectedMap[name]) { - var node = graph.addNode(n.name, n); - node.rawIndex = i; - } - } - for (var i = 0, len = serie.links.length; i < len; i++) { - var e = serie.links[i]; - var n1 = e.source; - var n2 = e.target; - if (typeof n1 === 'number') { - n1 = nodes[n1]; - if (n1) { - n1 = n1.name; - } - } - if (typeof n2 === 'number') { - n2 = nodes[n2]; - if (n2) { - n2 = n2.name; - } - } - var edge = graph.addEdge(n1, n2, e); - if (edge) { - edge.rawIndex = i; - } - } - graph.eachNode(function (n) { - var value = n.data.value; - if (value == null) { - value = 0; - for (var i = 0; i < n.edges.length; i++) { - value += n.edges[i].data.weight || 0; - } - } - n.layout = { - size: value, - mass: 0 - }; - }); - graph.eachEdge(function (e) { - e.layout = { weight: e.data.weight == null ? 1 : e.data.weight }; - }); - return graph; - }, - _initLayout: function (serie) { - var graph = this._graph; - var len = graph.nodes.length; - var minRadius = this.query(serie, 'minRadius'); - var maxRadius = this.query(serie, 'maxRadius'); - this._steps = serie.steps || 1; - var layout = this._layout; - layout.center = this.parseCenter(this.zr, serie.center); - layout.width = this.parsePercent(serie.size, this.zr.getWidth()); - layout.height = this.parsePercent(serie.size, this.zr.getHeight()); - layout.large = serie.large; - layout.scaling = serie.scaling; - layout.ratioScaling = serie.ratioScaling; - layout.gravity = serie.gravity; - layout.temperature = 1; - layout.coolDown = serie.coolDown; - layout.preventNodeEdgeOverlap = serie.preventOverlap; - layout.preventNodeOverlap = serie.preventOverlap; - var min = Infinity; - var max = -Infinity; - for (var i = 0; i < len; i++) { - var gNode = graph.nodes[i]; - max = Math.max(gNode.layout.size, max); - min = Math.min(gNode.layout.size, min); - } - var divider = max - min; - for (var i = 0; i < len; i++) { - var gNode = graph.nodes[i]; - if (divider > 0) { - gNode.layout.size = (gNode.layout.size - min) * (maxRadius - minRadius) / divider + minRadius; - gNode.layout.mass = gNode.layout.size / maxRadius; - } else { - gNode.layout.size = (maxRadius - minRadius) / 2; - gNode.layout.mass = 0.5; - } - } - for (var i = 0; i < len; i++) { - var gNode = graph.nodes[i]; - if (typeof this.__nodePositionMap[gNode.id] !== 'undefined') { - gNode.layout.position = vec2.create(); - vec2.copy(gNode.layout.position, this.__nodePositionMap[gNode.id]); - } else if (typeof gNode.data.initial !== 'undefined') { - gNode.layout.position = vec2.create(); - vec2.copy(gNode.layout.position, gNode.data.initial); - } else { - var center = this._layout.center; - var size = Math.min(this._layout.width, this._layout.height); - gNode.layout.position = _randomInSquare(center[0], center[1], size * 0.8); - } - var style = gNode.shape.style; - var radius = gNode.layout.size; - style.width = style.width || radius * 2; - style.height = style.height || radius * 2; - style.x = -style.width / 2; - style.y = -style.height / 2; - vec2.copy(gNode.shape.position, gNode.layout.position); - } - len = graph.edges.length; - max = -Infinity; - for (var i = 0; i < len; i++) { - var e = graph.edges[i]; - if (e.layout.weight > max) { - max = e.layout.weight; - } - } - for (var i = 0; i < len; i++) { - var e = graph.edges[i]; - e.layout.weight /= max; - } - this._layout.init(graph, serie.useWorker); - }, - _buildNodeShapes: function (serie, serieIdx) { - var graph = this._graph; - var categories = this.query(serie, 'categories'); - graph.eachNode(function (node) { - var category = this._getNodeCategory(serie, node.data); - var queryTarget = [ - node.data, - category, - serie - ]; - var styleQueryTarget = this._getNodeQueryTarget(serie, node.data); - var emphasisStyleQueryTarget = this._getNodeQueryTarget(serie, node.data, 'emphasis'); - var shape = new IconShape({ - style: { - x: 0, - y: 0, - color: this.deepQuery(styleQueryTarget, 'color'), - brushType: 'both', - strokeColor: this.deepQuery(styleQueryTarget, 'strokeColor') || this.deepQuery(styleQueryTarget, 'borderColor'), - lineWidth: this.deepQuery(styleQueryTarget, 'lineWidth') || this.deepQuery(styleQueryTarget, 'borderWidth') - }, - highlightStyle: { - color: this.deepQuery(emphasisStyleQueryTarget, 'color'), - strokeColor: this.deepQuery(emphasisStyleQueryTarget, 'strokeColor') || this.deepQuery(emphasisStyleQueryTarget, 'borderColor'), - lineWidth: this.deepQuery(emphasisStyleQueryTarget, 'lineWidth') || this.deepQuery(emphasisStyleQueryTarget, 'borderWidth') - }, - clickable: serie.clickable, - zlevel: this.getZlevelBase(), - z: this.getZBase() - }); - if (!shape.style.color) { - shape.style.color = category ? this.getColor(category.name) : this.getColor(node.id); - } - shape.style.iconType = this.deepQuery(queryTarget, 'symbol'); - var symbolSize = this.deepQuery(queryTarget, 'symbolSize') || 0; - if (typeof symbolSize === 'number') { - symbolSize = [ - symbolSize, - symbolSize - ]; - } - shape.style.width = symbolSize[0] * 2; - shape.style.height = symbolSize[1] * 2; - if (shape.style.iconType.match('image')) { - shape.style.image = shape.style.iconType.replace(new RegExp('^image:\\/\\/'), ''); - shape = new ImageShape({ - style: shape.style, - highlightStyle: shape.highlightStyle, - clickable: shape.clickable, - zlevel: this.getZlevelBase(), - z: this.getZBase() - }); - } - if (this.deepQuery(queryTarget, 'itemStyle.normal.label.show')) { - shape.style.text = node.data.label == null ? node.id : node.data.label; - shape.style.textPosition = this.deepQuery(queryTarget, 'itemStyle.normal.label.position'); - shape.style.textColor = this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle.color'); - shape.style.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle') || {}); - } - if (this.deepQuery(queryTarget, 'itemStyle.emphasis.label.show')) { - shape.highlightStyle.textPosition = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.position'); - shape.highlightStyle.textColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle.color'); - shape.highlightStyle.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle') || {}); - } - if (this.deepQuery(queryTarget, 'draggable')) { - this.setCalculable(shape); - shape.dragEnableTime = 0; - shape.draggable = true; - shape.ondragstart = this.shapeHandler.ondragstart; - shape.ondragover = null; - } - var categoryName = ''; - if (typeof node.category !== 'undefined') { - var category = categories[node.category]; - categoryName = category && category.name || ''; - } - ecData.pack(shape, serie, serieIdx, node.data, node.rawIndex, node.data.name || '', node.category); - this.shapeList.push(shape); - this.zr.addShape(shape); - node.shape = shape; - }, this); - }, - _buildLinkShapes: function (serie, serieIdx) { - var graph = this._graph; - var len = graph.edges.length; - for (var i = 0; i < len; i++) { - var gEdge = graph.edges[i]; - var link = gEdge.data; - var source = gEdge.node1; - var target = gEdge.node2; - var otherEdge = graph.getEdge(target, source); - var queryTarget = this._getEdgeQueryTarget(serie, link); - var linkType = this.deepQuery(queryTarget, 'type'); - if (serie.linkSymbol && serie.linkSymbol !== 'none') { - linkType = 'line'; - } - var LinkShapeCtor = linkType === 'line' ? LineShape : BezierCurveShape; - var linkShape = new LinkShapeCtor({ - style: { - xStart: 0, - yStart: 0, - xEnd: 0, - yEnd: 0 - }, - clickable: this.query(serie, 'clickable'), - highlightStyle: {}, - zlevel: this.getZlevelBase(), - z: this.getZBase() - }); - if (otherEdge && otherEdge.shape) { - linkShape.style.offset = 4; - otherEdge.shape.style.offset = 4; - } - zrUtil.merge(linkShape.style, this.query(serie, 'itemStyle.normal.linkStyle'), true); - zrUtil.merge(linkShape.highlightStyle, this.query(serie, 'itemStyle.emphasis.linkStyle'), true); - if (typeof link.itemStyle !== 'undefined') { - if (link.itemStyle.normal) { - zrUtil.merge(linkShape.style, link.itemStyle.normal, true); - } - if (link.itemStyle.emphasis) { - zrUtil.merge(linkShape.highlightStyle, link.itemStyle.emphasis, true); - } - } - linkShape.style.lineWidth = linkShape.style.lineWidth || linkShape.style.width; - linkShape.style.strokeColor = linkShape.style.strokeColor || linkShape.style.color; - linkShape.highlightStyle.lineWidth = linkShape.highlightStyle.lineWidth || linkShape.highlightStyle.width; - linkShape.highlightStyle.strokeColor = linkShape.highlightStyle.strokeColor || linkShape.highlightStyle.color; - ecData.pack(linkShape, serie, serieIdx, gEdge.data, gEdge.rawIndex == null ? i : gEdge.rawIndex, gEdge.data.name || source.id + ' - ' + target.id, source.id, target.id); - this.shapeList.push(linkShape); - this.zr.addShape(linkShape); - gEdge.shape = linkShape; - if (serie.linkSymbol && serie.linkSymbol !== 'none') { - var symbolShape = new IconShape({ - style: { - x: -5, - y: 0, - width: serie.linkSymbolSize[0], - height: serie.linkSymbolSize[1], - iconType: serie.linkSymbol, - brushType: 'fill', - color: linkShape.style.strokeColor - }, - highlightStyle: { brushType: 'fill' }, - position: [ - 0, - 0 - ], - rotation: 0, - zlevel: this.getZlevelBase(), - z: this.getZBase() - }); - linkShape._symbolShape = symbolShape; - this.shapeList.push(symbolShape); - this.zr.addShape(symbolShape); - } - } - }, - _updateLinkShapes: function () { - var v = vec2.create(); - var n = vec2.create(); - var p1 = vec2.create(); - var p2 = vec2.create(); - var edges = this._graph.edges; - for (var i = 0, len = edges.length; i < len; i++) { - var edge = edges[i]; - var sourceShape = edge.node1.shape; - var targetShape = edge.node2.shape; - vec2.copy(p1, sourceShape.position); - vec2.copy(p2, targetShape.position); - var edgeShapeStyle = edge.shape.style; - vec2.sub(v, p1, p2); - vec2.normalize(v, v); - if (edgeShapeStyle.offset) { - n[0] = v[1]; - n[1] = -v[0]; - vec2.scaleAndAdd(p1, p1, n, edgeShapeStyle.offset); - vec2.scaleAndAdd(p2, p2, n, edgeShapeStyle.offset); - } else if (edge.shape.type === 'bezier-curve') { - edgeShapeStyle.cpX1 = (p1[0] + p2[0]) / 2 - (p2[1] - p1[1]) / 4; - edgeShapeStyle.cpY1 = (p1[1] + p2[1]) / 2 - (p1[0] - p2[0]) / 4; - } - edgeShapeStyle.xStart = p1[0]; - edgeShapeStyle.yStart = p1[1]; - edgeShapeStyle.xEnd = p2[0]; - edgeShapeStyle.yEnd = p2[1]; - edge.shape.modSelf(); - if (edge.shape._symbolShape) { - var symbolShape = edge.shape._symbolShape; - vec2.copy(symbolShape.position, p2); - vec2.scaleAndAdd(symbolShape.position, symbolShape.position, v, targetShape.style.width / 2 + 2); - var angle = Math.atan2(v[1], v[0]); - symbolShape.rotation = Math.PI / 2 - angle; - symbolShape.modSelf(); - } - } - }, - _syncNodePositions: function () { - var graph = this._graph; - for (var i = 0; i < graph.nodes.length; i++) { - var gNode = graph.nodes[i]; - var position = gNode.layout.position; - var node = gNode.data; - var shape = gNode.shape; - var fixX = shape.fixed || node.fixX; - var fixY = shape.fixed || node.fixY; - if (fixX === true) { - fixX = 1; - } else if (isNaN(fixX)) { - fixX = 0; - } - if (fixY === true) { - fixY = 1; - } else if (isNaN(fixY)) { - fixY = 0; - } - shape.position[0] += (position[0] - shape.position[0]) * (1 - fixX); - shape.position[1] += (position[1] - shape.position[1]) * (1 - fixY); - vec2.copy(position, shape.position); - var nodeName = node.name; - if (nodeName) { - var gPos = this.__nodePositionMap[nodeName]; - if (!gPos) { - gPos = this.__nodePositionMap[nodeName] = vec2.create(); - } - vec2.copy(gPos, position); - } - shape.modSelf(); - } - }, - _step: function (e) { - this._syncNodePositions(); - this._updateLinkShapes(); - this.zr.refreshNextFrame(); - if (this._layout.temperature > 0.01) { - this._layout.step(this._steps); - } else { - this.messageCenter.dispatch(ecConfig.EVENT.FORCE_LAYOUT_END, {}, {}, this.myChart); - } - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = this.option.series; - } - this.legend = this.component.legend; - if (this.legend) { - this.getColor = function (param) { - return this.legend.getColor(param); - }; - this.isSelected = function (param) { - return this.legend.isSelected(param); - }; - } else { - var colorMap = {}; - var count = 0; - this.getColor = function (key) { - if (colorMap[key]) { - return colorMap[key]; - } - if (!colorMap[key]) { - colorMap[key] = this.zr.getColor(count++); - } - return colorMap[key]; - }; - this.isSelected = function () { - return true; - }; - } - this._init(); - }, - dispose: function () { - this.clear(); - this.shapeList = null; - this.effectList = null; - this._layout.dispose(); - this._layout = null; - this.__nodePositionMap = {}; - }, - getPosition: function () { - var position = []; - this._graph.eachNode(function (n) { - if (n.layout) { - position.push({ - name: n.data.name, - position: Array.prototype.slice.call(n.layout.position) - }); - } - }); - return position; - } - }; - function ondragstart(param) { - if (!this.isDragstart || !param.target) { - return; - } - var shape = param.target; - shape.fixed = true; - this.isDragstart = false; - this.zr.on(zrConfig.EVENT.MOUSEMOVE, this.onmousemove); - } - function onmousemove() { - this._layout.temperature = 0.8; - this._step(); - } - function ondragend(param, status) { - if (!this.isDragend || !param.target) { - return; - } - var shape = param.target; - shape.fixed = false; - status.dragIn = true; - status.needRefresh = false; - this.isDragend = false; - this.zr.un(zrConfig.EVENT.MOUSEMOVE, this.onmousemove); - } - function _randomInSquare(x, y, size) { - var v = vec2.create(); - v[0] = (Math.random() - 0.5) * size + x; - v[1] = (Math.random() - 0.5) * size + y; - return v; - } - zrUtil.inherits(Force, ChartBase); - require('../chart').define('force', Force); - return Force; -});define('echarts/layout/Force', [ - 'require', - './forceLayoutWorker', - 'zrender/tool/vector' -], function (require) { - var ForceLayoutWorker = require('./forceLayoutWorker'); - var vec2 = require('zrender/tool/vector'); - var requestAnimationFrame = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (func) { - setTimeout(func, 16); - }; - var ArrayCtor = typeof Float32Array == 'undefined' ? Array : Float32Array; - var workerUrl; - function createWorkerUrl() { - if (typeof Worker !== 'undefined' && typeof Blob !== 'undefined') { - try { - var blob = new Blob([ForceLayoutWorker.getWorkerCode()]); - workerUrl = window.URL.createObjectURL(blob); - } catch (e) { - workerUrl = ''; - } - } - return workerUrl; - } - var ForceLayout = function (opts) { - if (typeof workerUrl === 'undefined') { - createWorkerUrl(); - } - opts = opts || {}; - this.width = opts.width || 500; - this.height = opts.height || 500; - this.center = opts.center || [ - this.width / 2, - this.height / 2 - ]; - this.ratioScaling = opts.ratioScaling || false; - this.scaling = opts.scaling || 1; - this.gravity = typeof opts.gravity !== 'undefined' ? opts.gravity : 1; - this.large = opts.large || false; - this.preventNodeOverlap = opts.preventNodeOverlap || false; - this.preventNodeEdgeOverlap = opts.preventNodeEdgeOverlap || false; - this.maxSpeedIncrease = opts.maxSpeedIncrease || 1; - this.onupdate = opts.onupdate || function () { - }; - this.temperature = opts.temperature || 1; - this.coolDown = opts.coolDown || 0.99; - this._layout = null; - this._layoutWorker = null; - var self = this; - var _$onupdate = this._$onupdate; - this._$onupdate = function (e) { - _$onupdate.call(self, e); - }; - }; - ForceLayout.prototype.updateConfig = function () { - var width = this.width; - var height = this.height; - var size = Math.min(width, height); - var config = { - center: this.center, - width: this.ratioScaling ? width : size, - height: this.ratioScaling ? height : size, - scaling: this.scaling || 1, - gravity: this.gravity || 1, - barnesHutOptimize: this.large, - preventNodeOverlap: this.preventNodeOverlap, - preventNodeEdgeOverlap: this.preventNodeEdgeOverlap, - maxSpeedIncrease: this.maxSpeedIncrease - }; - if (this._layoutWorker) { - this._layoutWorker.postMessage({ - cmd: 'updateConfig', - config: config - }); - } else { - for (var name in config) { - this._layout[name] = config[name]; - } - } - }; - ForceLayout.prototype.init = function (graph, useWorker) { - if (this._layoutWorker) { - this._layoutWorker.terminate(); - this._layoutWorker = null; - } - if (workerUrl && useWorker) { - try { - if (!this._layoutWorker) { - this._layoutWorker = new Worker(workerUrl); - this._layoutWorker.onmessage = this._$onupdate; - } - this._layout = null; - } catch (e) { - this._layoutWorker = null; - if (!this._layout) { - this._layout = new ForceLayoutWorker(); - } - } - } else { - if (!this._layout) { - this._layout = new ForceLayoutWorker(); - } - } - this.temperature = 1; - this.graph = graph; - var len = graph.nodes.length; - var positionArr = new ArrayCtor(len * 2); - var massArr = new ArrayCtor(len); - var sizeArr = new ArrayCtor(len); - for (var i = 0; i < len; i++) { - var n = graph.nodes[i]; - positionArr[i * 2] = n.layout.position[0]; - positionArr[i * 2 + 1] = n.layout.position[1]; - massArr[i] = typeof n.layout.mass === 'undefined' ? 1 : n.layout.mass; - sizeArr[i] = typeof n.layout.size === 'undefined' ? 1 : n.layout.size; - n.layout.__index = i; - } - len = graph.edges.length; - var edgeArr = new ArrayCtor(len * 2); - var edgeWeightArr = new ArrayCtor(len); - for (var i = 0; i < len; i++) { - var edge = graph.edges[i]; - edgeArr[i * 2] = edge.node1.layout.__index; - edgeArr[i * 2 + 1] = edge.node2.layout.__index; - edgeWeightArr[i] = edge.layout.weight || 1; - } - if (this._layoutWorker) { - this._layoutWorker.postMessage({ - cmd: 'init', - nodesPosition: positionArr, - nodesMass: massArr, - nodesSize: sizeArr, - edges: edgeArr, - edgesWeight: edgeWeightArr - }); - } else { - this._layout.initNodes(positionArr, massArr, sizeArr); - this._layout.initEdges(edgeArr, edgeWeightArr); - } - this.updateConfig(); - }; - ForceLayout.prototype.step = function (steps) { - var nodes = this.graph.nodes; - if (this._layoutWorker) { - var positionArr = new ArrayCtor(nodes.length * 2); - for (var i = 0; i < nodes.length; i++) { - var n = nodes[i]; - positionArr[i * 2] = n.layout.position[0]; - positionArr[i * 2 + 1] = n.layout.position[1]; - } - this._layoutWorker.postMessage(positionArr.buffer, [positionArr.buffer]); - this._layoutWorker.postMessage({ - cmd: 'update', - steps: steps, - temperature: this.temperature, - coolDown: this.coolDown - }); - for (var i = 0; i < steps; i++) { - this.temperature *= this.coolDown; - } - } else { - requestAnimationFrame(this._$onupdate); - for (var i = 0; i < nodes.length; i++) { - var n = nodes[i]; - vec2.copy(this._layout.nodes[i].position, n.layout.position); - } - for (var i = 0; i < steps; i++) { - this._layout.temperature = this.temperature; - this._layout.update(); - this.temperature *= this.coolDown; - } - } - }; - ForceLayout.prototype._$onupdate = function (e) { - if (this._layoutWorker) { - var positionArr = new Float32Array(e.data); - for (var i = 0; i < this.graph.nodes.length; i++) { - var n = this.graph.nodes[i]; - n.layout.position[0] = positionArr[i * 2]; - n.layout.position[1] = positionArr[i * 2 + 1]; - } - this.onupdate && this.onupdate(); - } else if (this._layout) { - for (var i = 0; i < this.graph.nodes.length; i++) { - var n = this.graph.nodes[i]; - vec2.copy(n.layout.position, this._layout.nodes[i].position); - } - this.onupdate && this.onupdate(); - } - }; - ForceLayout.prototype.dispose = function () { - if (this._layoutWorker) { - this._layoutWorker.terminate(); - } - this._layoutWorker = null; - this._layout = null; - }; - return ForceLayout; -});define('echarts/layout/forceLayoutWorker', [ - 'require', - 'zrender/tool/vector' -], function __echartsForceLayoutWorker(require) { - 'use strict'; - var vec2; - var inWorker = typeof window === 'undefined' && typeof require === 'undefined'; - if (inWorker) { - vec2 = { - create: function (x, y) { - var out = new Float32Array(2); - out[0] = x || 0; - out[1] = y || 0; - return out; - }, - dist: function (a, b) { - var x = b[0] - a[0]; - var y = b[1] - a[1]; - return Math.sqrt(x * x + y * y); - }, - len: function (a) { - var x = a[0]; - var y = a[1]; - return Math.sqrt(x * x + y * y); - }, - scaleAndAdd: function (out, a, b, scale) { - out[0] = a[0] + b[0] * scale; - out[1] = a[1] + b[1] * scale; - return out; - }, - scale: function (out, a, b) { - out[0] = a[0] * b; - out[1] = a[1] * b; - return out; - }, - add: function (out, a, b) { - out[0] = a[0] + b[0]; - out[1] = a[1] + b[1]; - return out; - }, - sub: function (out, a, b) { - out[0] = a[0] - b[0]; - out[1] = a[1] - b[1]; - return out; - }, - dot: function (v1, v2) { - return v1[0] * v2[0] + v1[1] * v2[1]; - }, - normalize: function (out, a) { - var x = a[0]; - var y = a[1]; - var len = x * x + y * y; - if (len > 0) { - len = 1 / Math.sqrt(len); - out[0] = a[0] * len; - out[1] = a[1] * len; - } - return out; - }, - negate: function (out, a) { - out[0] = -a[0]; - out[1] = -a[1]; - return out; - }, - copy: function (out, a) { - out[0] = a[0]; - out[1] = a[1]; - return out; - }, - set: function (out, x, y) { - out[0] = x; - out[1] = y; - return out; - } - }; - } else { - vec2 = require('zrender/tool/vector'); - } - var ArrayCtor = typeof Float32Array == 'undefined' ? Array : Float32Array; - function Region() { - this.subRegions = []; - this.nSubRegions = 0; - this.node = null; - this.mass = 0; - this.centerOfMass = null; - this.bbox = new ArrayCtor(4); - this.size = 0; - } - Region.prototype.beforeUpdate = function () { - for (var i = 0; i < this.nSubRegions; i++) { - this.subRegions[i].beforeUpdate(); - } - this.mass = 0; - if (this.centerOfMass) { - this.centerOfMass[0] = 0; - this.centerOfMass[1] = 0; - } - this.nSubRegions = 0; - this.node = null; - }; - Region.prototype.afterUpdate = function () { - this.subRegions.length = this.nSubRegions; - for (var i = 0; i < this.nSubRegions; i++) { - this.subRegions[i].afterUpdate(); - } - }; - Region.prototype.addNode = function (node) { - if (this.nSubRegions === 0) { - if (this.node == null) { - this.node = node; - return; - } else { - this._addNodeToSubRegion(this.node); - this.node = null; - } - } - this._addNodeToSubRegion(node); - this._updateCenterOfMass(node); - }; - Region.prototype.findSubRegion = function (x, y) { - for (var i = 0; i < this.nSubRegions; i++) { - var region = this.subRegions[i]; - if (region.contain(x, y)) { - return region; - } - } - }; - Region.prototype.contain = function (x, y) { - return this.bbox[0] <= x && this.bbox[2] >= x && this.bbox[1] <= y && this.bbox[3] >= y; - }; - Region.prototype.setBBox = function (minX, minY, maxX, maxY) { - this.bbox[0] = minX; - this.bbox[1] = minY; - this.bbox[2] = maxX; - this.bbox[3] = maxY; - this.size = (maxX - minX + maxY - minY) / 2; - }; - Region.prototype._newSubRegion = function () { - var subRegion = this.subRegions[this.nSubRegions]; - if (!subRegion) { - subRegion = new Region(); - this.subRegions[this.nSubRegions] = subRegion; - } - this.nSubRegions++; - return subRegion; - }; - Region.prototype._addNodeToSubRegion = function (node) { - var subRegion = this.findSubRegion(node.position[0], node.position[1]); - var bbox = this.bbox; - if (!subRegion) { - var cx = (bbox[0] + bbox[2]) / 2; - var cy = (bbox[1] + bbox[3]) / 2; - var w = (bbox[2] - bbox[0]) / 2; - var h = (bbox[3] - bbox[1]) / 2; - var xi = node.position[0] >= cx ? 1 : 0; - var yi = node.position[1] >= cy ? 1 : 0; - var subRegion = this._newSubRegion(); - subRegion.setBBox(xi * w + bbox[0], yi * h + bbox[1], (xi + 1) * w + bbox[0], (yi + 1) * h + bbox[1]); - } - subRegion.addNode(node); - }; - Region.prototype._updateCenterOfMass = function (node) { - if (this.centerOfMass == null) { - this.centerOfMass = vec2.create(); - } - var x = this.centerOfMass[0] * this.mass; - var y = this.centerOfMass[1] * this.mass; - x += node.position[0] * node.mass; - y += node.position[1] * node.mass; - this.mass += node.mass; - this.centerOfMass[0] = x / this.mass; - this.centerOfMass[1] = y / this.mass; - }; - function GraphNode() { - this.position = vec2.create(); - this.force = vec2.create(); - this.forcePrev = vec2.create(); - this.speed = vec2.create(); - this.speedPrev = vec2.create(); - this.mass = 1; - this.inDegree = 0; - this.outDegree = 0; - } - function GraphEdge(node1, node2) { - this.node1 = node1; - this.node2 = node2; - this.weight = 1; - } - function ForceLayout() { - this.barnesHutOptimize = false; - this.barnesHutTheta = 1.5; - this.repulsionByDegree = false; - this.preventNodeOverlap = false; - this.preventNodeEdgeOverlap = false; - this.strongGravity = true; - this.gravity = 1; - this.scaling = 1; - this.edgeWeightInfluence = 1; - this.center = [ - 0, - 0 - ]; - this.width = 500; - this.height = 500; - this.maxSpeedIncrease = 1; - this.nodes = []; - this.edges = []; - this.bbox = new ArrayCtor(4); - this._rootRegion = new Region(); - this._rootRegion.centerOfMass = vec2.create(); - this._massArr = null; - this._k = 0; - } - ForceLayout.prototype.nodeToNodeRepulsionFactor = function (mass, d, k) { - return k * k * mass / d; - }; - ForceLayout.prototype.edgeToNodeRepulsionFactor = function (mass, d, k) { - return k * mass / d; - }; - ForceLayout.prototype.attractionFactor = function (w, d, k) { - return w * d / k; - }; - ForceLayout.prototype.initNodes = function (positionArr, massArr, sizeArr) { - this.temperature = 1; - var nNodes = positionArr.length / 2; - this.nodes.length = 0; - var haveSize = typeof sizeArr !== 'undefined'; - for (var i = 0; i < nNodes; i++) { - var node = new GraphNode(); - node.position[0] = positionArr[i * 2]; - node.position[1] = positionArr[i * 2 + 1]; - node.mass = massArr[i]; - if (haveSize) { - node.size = sizeArr[i]; - } - this.nodes.push(node); - } - this._massArr = massArr; - if (haveSize) { - this._sizeArr = sizeArr; - } - }; - ForceLayout.prototype.initEdges = function (edgeArr, edgeWeightArr) { - var nEdges = edgeArr.length / 2; - this.edges.length = 0; - var edgeHaveWeight = typeof edgeWeightArr !== 'undefined'; - for (var i = 0; i < nEdges; i++) { - var sIdx = edgeArr[i * 2]; - var tIdx = edgeArr[i * 2 + 1]; - var sNode = this.nodes[sIdx]; - var tNode = this.nodes[tIdx]; - if (!sNode || !tNode) { - continue; - } - sNode.outDegree++; - tNode.inDegree++; - var edge = new GraphEdge(sNode, tNode); - if (edgeHaveWeight) { - edge.weight = edgeWeightArr[i]; - } - this.edges.push(edge); - } - }; - ForceLayout.prototype.update = function () { - var nNodes = this.nodes.length; - this.updateBBox(); - this._k = 0.4 * this.scaling * Math.sqrt(this.width * this.height / nNodes); - if (this.barnesHutOptimize) { - this._rootRegion.setBBox(this.bbox[0], this.bbox[1], this.bbox[2], this.bbox[3]); - this._rootRegion.beforeUpdate(); - for (var i = 0; i < nNodes; i++) { - this._rootRegion.addNode(this.nodes[i]); - } - this._rootRegion.afterUpdate(); - } else { - var mass = 0; - var centerOfMass = this._rootRegion.centerOfMass; - vec2.set(centerOfMass, 0, 0); - for (var i = 0; i < nNodes; i++) { - var node = this.nodes[i]; - mass += node.mass; - vec2.scaleAndAdd(centerOfMass, centerOfMass, node.position, node.mass); - } - if (mass > 0) { - vec2.scale(centerOfMass, centerOfMass, 1 / mass); - } - } - this.updateForce(); - this.updatePosition(); - }; - ForceLayout.prototype.updateForce = function () { - var nNodes = this.nodes.length; - for (var i = 0; i < nNodes; i++) { - var node = this.nodes[i]; - vec2.copy(node.forcePrev, node.force); - vec2.copy(node.speedPrev, node.speed); - vec2.set(node.force, 0, 0); - } - this.updateNodeNodeForce(); - if (this.gravity > 0) { - this.updateGravityForce(); - } - this.updateEdgeForce(); - if (this.preventNodeEdgeOverlap) { - this.updateNodeEdgeForce(); - } - }; - ForceLayout.prototype.updatePosition = function () { - var nNodes = this.nodes.length; - var v = vec2.create(); - for (var i = 0; i < nNodes; i++) { - var node = this.nodes[i]; - var speed = node.speed; - vec2.scale(node.force, node.force, 1 / 30); - var df = vec2.len(node.force) + 0.1; - var scale = Math.min(df, 500) / df; - vec2.scale(node.force, node.force, scale); - vec2.add(speed, speed, node.force); - vec2.scale(speed, speed, this.temperature); - vec2.sub(v, speed, node.speedPrev); - var swing = vec2.len(v); - if (swing > 0) { - vec2.scale(v, v, 1 / swing); - var base = vec2.len(node.speedPrev); - if (base > 0) { - swing = Math.min(swing / base, this.maxSpeedIncrease) * base; - vec2.scaleAndAdd(speed, node.speedPrev, v, swing); - } - } - var ds = vec2.len(speed); - var scale = Math.min(ds, 100) / (ds + 0.1); - vec2.scale(speed, speed, scale); - vec2.add(node.position, node.position, speed); - } - }; - ForceLayout.prototype.updateNodeNodeForce = function () { - var nNodes = this.nodes.length; - for (var i = 0; i < nNodes; i++) { - var na = this.nodes[i]; - if (this.barnesHutOptimize) { - this.applyRegionToNodeRepulsion(this._rootRegion, na); - } else { - for (var j = i + 1; j < nNodes; j++) { - var nb = this.nodes[j]; - this.applyNodeToNodeRepulsion(na, nb, false); - } - } - } - }; - ForceLayout.prototype.updateGravityForce = function () { - for (var i = 0; i < this.nodes.length; i++) { - this.applyNodeGravity(this.nodes[i]); - } - }; - ForceLayout.prototype.updateEdgeForce = function () { - for (var i = 0; i < this.edges.length; i++) { - this.applyEdgeAttraction(this.edges[i]); - } - }; - ForceLayout.prototype.updateNodeEdgeForce = function () { - for (var i = 0; i < this.nodes.length; i++) { - for (var j = 0; j < this.edges.length; j++) { - this.applyEdgeToNodeRepulsion(this.edges[j], this.nodes[i]); - } - } - }; - ForceLayout.prototype.applyRegionToNodeRepulsion = function () { - var v = vec2.create(); - return function applyRegionToNodeRepulsion(region, node) { - if (region.node) { - this.applyNodeToNodeRepulsion(region.node, node, true); - } else { - if (region.mass === 0 && node.mass === 0) { - return; - } - vec2.sub(v, node.position, region.centerOfMass); - var d2 = v[0] * v[0] + v[1] * v[1]; - if (d2 > this.barnesHutTheta * region.size * region.size) { - var factor = this._k * this._k * (node.mass + region.mass) / (d2 + 1); - vec2.scaleAndAdd(node.force, node.force, v, factor * 2); - } else { - for (var i = 0; i < region.nSubRegions; i++) { - this.applyRegionToNodeRepulsion(region.subRegions[i], node); - } - } - } - }; - }(); - ForceLayout.prototype.applyNodeToNodeRepulsion = function () { - var v = vec2.create(); - return function applyNodeToNodeRepulsion(na, nb, oneWay) { - if (na === nb) { - return; - } - if (na.mass === 0 && nb.mass === 0) { - return; - } - vec2.sub(v, na.position, nb.position); - var d2 = v[0] * v[0] + v[1] * v[1]; - if (d2 === 0) { - return; - } - var factor; - var mass = na.mass + nb.mass; - var d = Math.sqrt(d2); - vec2.scale(v, v, 1 / d); - if (this.preventNodeOverlap) { - d = d - na.size - nb.size; - if (d > 0) { - factor = this.nodeToNodeRepulsionFactor(mass, d, this._k); - } else if (d <= 0) { - factor = this._k * this._k * 10 * mass; - } - } else { - factor = this.nodeToNodeRepulsionFactor(mass, d, this._k); - } - if (!oneWay) { - vec2.scaleAndAdd(na.force, na.force, v, factor * 2); - } - vec2.scaleAndAdd(nb.force, nb.force, v, -factor * 2); - }; - }(); - ForceLayout.prototype.applyEdgeAttraction = function () { - var v = vec2.create(); - return function applyEdgeAttraction(edge) { - var na = edge.node1; - var nb = edge.node2; - vec2.sub(v, na.position, nb.position); - var d = vec2.len(v); - var w; - if (this.edgeWeightInfluence === 0) { - w = 1; - } else if (this.edgeWeightInfluence == 1) { - w = edge.weight; - } else { - w = Math.pow(edge.weight, this.edgeWeightInfluence); - } - var factor; - if (this.preventOverlap) { - d = d - na.size - nb.size; - if (d <= 0) { - return; - } - } - var factor = this.attractionFactor(w, d, this._k); - vec2.scaleAndAdd(na.force, na.force, v, -factor); - vec2.scaleAndAdd(nb.force, nb.force, v, factor); - }; - }(); - ForceLayout.prototype.applyNodeGravity = function () { - var v = vec2.create(); - return function (node) { - vec2.sub(v, this.center, node.position); - if (this.width > this.height) { - v[1] *= this.width / this.height; - } else { - v[0] *= this.height / this.width; - } - var d = vec2.len(v) / 100; - if (this.strongGravity) { - vec2.scaleAndAdd(node.force, node.force, v, d * this.gravity * node.mass); - } else { - vec2.scaleAndAdd(node.force, node.force, v, this.gravity * node.mass / (d + 1)); - } - }; - }(); - ForceLayout.prototype.applyEdgeToNodeRepulsion = function () { - var v12 = vec2.create(); - var v13 = vec2.create(); - var p = vec2.create(); - return function (e, n3) { - var n1 = e.node1; - var n2 = e.node2; - if (n1 === n3 || n2 === n3) { - return; - } - vec2.sub(v12, n2.position, n1.position); - vec2.sub(v13, n3.position, n1.position); - var len12 = vec2.len(v12); - vec2.scale(v12, v12, 1 / len12); - var len = vec2.dot(v12, v13); - if (len < 0 || len > len12) { - return; - } - vec2.scaleAndAdd(p, n1.position, v12, len); - var dist = vec2.dist(p, n3.position) - n3.size; - var factor = this.edgeToNodeRepulsionFactor(n3.mass, Math.max(dist, 0.1), 100); - vec2.sub(v12, n3.position, p); - vec2.normalize(v12, v12); - vec2.scaleAndAdd(n3.force, n3.force, v12, factor); - vec2.scaleAndAdd(n1.force, n1.force, v12, -factor); - vec2.scaleAndAdd(n2.force, n2.force, v12, -factor); - }; - }(); - ForceLayout.prototype.updateBBox = function () { - var minX = Infinity; - var minY = Infinity; - var maxX = -Infinity; - var maxY = -Infinity; - for (var i = 0; i < this.nodes.length; i++) { - var pos = this.nodes[i].position; - minX = Math.min(minX, pos[0]); - minY = Math.min(minY, pos[1]); - maxX = Math.max(maxX, pos[0]); - maxY = Math.max(maxY, pos[1]); - } - this.bbox[0] = minX; - this.bbox[1] = minY; - this.bbox[2] = maxX; - this.bbox[3] = maxY; - }; - ForceLayout.getWorkerCode = function () { - var str = __echartsForceLayoutWorker.toString(); - return str.slice(str.indexOf('{') + 1, str.lastIndexOf('return')); - }; - if (inWorker) { - var forceLayout = null; - self.onmessage = function (e) { - if (e.data instanceof ArrayBuffer) { - if (!forceLayout) - return; - var positionArr = new Float32Array(e.data); - var nNodes = positionArr.length / 2; - for (var i = 0; i < nNodes; i++) { - var node = forceLayout.nodes[i]; - node.position[0] = positionArr[i * 2]; - node.position[1] = positionArr[i * 2 + 1]; - } - return; - } - switch (e.data.cmd) { - case 'init': - if (!forceLayout) { - forceLayout = new ForceLayout(); - } - forceLayout.initNodes(e.data.nodesPosition, e.data.nodesMass, e.data.nodesSize); - forceLayout.initEdges(e.data.edges, e.data.edgesWeight); - break; - case 'updateConfig': - if (forceLayout) { - for (var name in e.data.config) { - forceLayout[name] = e.data.config[name]; - } - } - break; - case 'update': - var steps = e.data.steps; - if (forceLayout) { - var nNodes = forceLayout.nodes.length; - var positionArr = new Float32Array(nNodes * 2); - forceLayout.temperature = e.data.temperature; - for (var i = 0; i < steps; i++) { - forceLayout.update(); - forceLayout.temperature *= e.data.coolDown; - } - for (var i = 0; i < nNodes; i++) { - var node = forceLayout.nodes[i]; - positionArr[i * 2] = node.position[0]; - positionArr[i * 2 + 1] = node.position[1]; - } - self.postMessage(positionArr.buffer, [positionArr.buffer]); - } else { - var emptyArr = new Float32Array(); - self.postMessage(emptyArr.buffer, [emptyArr.buffer]); - } - break; - } - }; - } - return ForceLayout; -});define('echarts/chart/map', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Path', - 'zrender/shape/Circle', - 'zrender/shape/Rectangle', - 'zrender/shape/Line', - 'zrender/shape/Polygon', - 'zrender/shape/Ellipse', - 'zrender/shape/Image', - '../component/dataRange', - '../component/roamController', - '../layer/heatmap', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/config', - 'zrender/tool/event', - '../util/mapData/params', - '../util/mapData/textFixed', - '../util/mapData/geoCoord', - '../util/projection/svg', - '../util/projection/normal', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var TextShape = require('zrender/shape/Text'); - var PathShape = require('zrender/shape/Path'); - var CircleShape = require('zrender/shape/Circle'); - var RectangleShape = require('zrender/shape/Rectangle'); - var LineShape = require('zrender/shape/Line'); - var PolygonShape = require('zrender/shape/Polygon'); - var EllipseShape = require('zrender/shape/Ellipse'); - var ZrImage = require('zrender/shape/Image'); - require('../component/dataRange'); - require('../component/roamController'); - var HeatmapLayer = require('../layer/heatmap'); - var ecConfig = require('../config'); - ecConfig.map = { - zlevel: 0, - z: 2, - mapType: 'china', - showLegendSymbol: true, - dataRangeHoverLink: true, - hoverable: true, - clickable: true, - itemStyle: { - normal: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - areaStyle: { color: '#ccc' }, - label: { - show: false, - textStyle: { color: 'rgb(139,69,19)' } - } - }, - emphasis: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - areaStyle: { color: 'rgba(255,215,0,0.8)' }, - label: { - show: false, - textStyle: { color: 'rgb(100,0,0)' } - } - } - } - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrConfig = require('zrender/config'); - var zrEvent = require('zrender/tool/event'); - var _mapParams = require('../util/mapData/params').params; - var _textFixed = require('../util/mapData/textFixed'); - var _geoCoord = require('../util/mapData/geoCoord'); - function Map(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._onmousewheel = function (params) { - return self.__onmousewheel(params); - }; - self._onmousedown = function (params) { - return self.__onmousedown(params); - }; - self._onmousemove = function (params) { - return self.__onmousemove(params); - }; - self._onmouseup = function (params) { - return self.__onmouseup(params); - }; - self._onroamcontroller = function (params) { - return self.__onroamcontroller(params); - }; - self._ondrhoverlink = function (params) { - return self.__ondrhoverlink(params); - }; - this._isAlive = true; - this._selectedMode = {}; - this._activeMapType = {}; - this._clickable = {}; - this._hoverable = {}; - this._showLegendSymbol = {}; - this._selected = {}; - this._mapTypeMap = {}; - this._mapDataMap = {}; - this._nameMap = {}; - this._specialArea = {}; - this._refreshDelayTicket; - this._mapDataRequireCounter; - this._markAnimation = false; - this._hoverLinkMap = {}; - this._roamMap = {}; - this._scaleLimitMap = {}; - this._mx; - this._my; - this._mousedown; - this._justMove; - this._curMapType; - this.refresh(option); - this.zr.on(zrConfig.EVENT.MOUSEWHEEL, this._onmousewheel); - this.zr.on(zrConfig.EVENT.MOUSEDOWN, this._onmousedown); - messageCenter.bind(ecConfig.EVENT.ROAMCONTROLLER, this._onroamcontroller); - messageCenter.bind(ecConfig.EVENT.DATA_RANGE_HOVERLINK, this._ondrhoverlink); - } - Map.prototype = { - type: ecConfig.CHART_TYPE_MAP, - _buildShape: function () { - var series = this.series; - this.selectedMap = {}; - this._activeMapType = {}; - var legend = this.component.legend; - var seriesName; - var valueData = {}; - var mapType; - var data; - var name; - var mapSeries = {}; - var mapValuePrecision = {}; - var valueCalculation = {}; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type == ecConfig.CHART_TYPE_MAP) { - series[i] = this.reformOption(series[i]); - mapType = series[i].mapType; - mapSeries[mapType] = mapSeries[mapType] || {}; - mapSeries[mapType][i] = true; - mapValuePrecision[mapType] = mapValuePrecision[mapType] || series[i].mapValuePrecision; - this._scaleLimitMap[mapType] = this._scaleLimitMap[mapType] || {}; - series[i].scaleLimit && zrUtil.merge(this._scaleLimitMap[mapType], series[i].scaleLimit, true); - this._roamMap[mapType] = series[i].roam || this._roamMap[mapType]; - if (this._hoverLinkMap[mapType] == null || this._hoverLinkMap[mapType]) { - this._hoverLinkMap[mapType] = series[i].dataRangeHoverLink; - } - this._nameMap[mapType] = this._nameMap[mapType] || {}; - series[i].nameMap && zrUtil.merge(this._nameMap[mapType], series[i].nameMap, true); - this._activeMapType[mapType] = true; - if (series[i].textFixed) { - zrUtil.merge(_textFixed, series[i].textFixed, true); - } - if (series[i].geoCoord) { - zrUtil.merge(_geoCoord, series[i].geoCoord, true); - } - this._selectedMode[mapType] = this._selectedMode[mapType] || series[i].selectedMode; - if (this._hoverable[mapType] == null || this._hoverable[mapType]) { - this._hoverable[mapType] = series[i].hoverable; - } - if (this._clickable[mapType] == null || this._clickable[mapType]) { - this._clickable[mapType] = series[i].clickable; - } - if (this._showLegendSymbol[mapType] == null || this._showLegendSymbol[mapType]) { - this._showLegendSymbol[mapType] = series[i].showLegendSymbol; - } - valueCalculation[mapType] = valueCalculation[mapType] || series[i].mapValueCalculation; - seriesName = series[i].name; - this.selectedMap[seriesName] = legend ? legend.isSelected(seriesName) : true; - if (this.selectedMap[seriesName]) { - valueData[mapType] = valueData[mapType] || {}; - data = series[i].data; - for (var j = 0, k = data.length; j < k; j++) { - name = this._nameChange(mapType, data[j].name); - valueData[mapType][name] = valueData[mapType][name] || { - seriesIndex: [], - valueMap: {}, - precision: 0 - }; - for (var key in data[j]) { - if (key != 'value') { - valueData[mapType][name][key] = data[j][key]; - } else if (!isNaN(data[j].value)) { - valueData[mapType][name].value == null && (valueData[mapType][name].value = 0); - valueData[mapType][name].precision = Math.max(this.getPrecision(+data[j].value), valueData[mapType][name].precision); - valueData[mapType][name].value += +data[j].value; - valueData[mapType][name].valueMap[i] = +data[j].value; - } - } - valueData[mapType][name].seriesIndex.push(i); - } - } - } - } - this._mapDataRequireCounter = 0; - for (var mt in valueData) { - this._mapDataRequireCounter++; - } - this._clearSelected(); - if (this._mapDataRequireCounter === 0) { - this.clear(); - this.zr && this.zr.delShape(this.lastShapeList); - this.lastShapeList = []; - } - for (var mt in valueData) { - for (var k in valueData[mt]) { - if (valueCalculation[mt] == 'average') { - valueData[mt][k].value /= valueData[mt][k].seriesIndex.length; - } - var value = valueData[mt][k].value; - if (value != null) { - valueData[mt][k].value = value.toFixed(mapValuePrecision[mt] == null ? valueData[mt][k].precision : mapValuePrecision[mt]) - 0; - } - } - this._mapDataMap[mt] = this._mapDataMap[mt] || {}; - if (this._mapDataMap[mt].mapData) { - this._mapDataCallback(mt, valueData[mt], mapSeries[mt])(this._mapDataMap[mt].mapData); - } else if (_mapParams[mt.replace(/\|.*/, '')].getGeoJson) { - this._specialArea[mt] = _mapParams[mt.replace(/\|.*/, '')].specialArea || this._specialArea[mt]; - _mapParams[mt.replace(/\|.*/, '')].getGeoJson(this._mapDataCallback(mt, valueData[mt], mapSeries[mt])); - } - } - }, - _mapDataCallback: function (mt, vd, ms) { - var self = this; - return function (md) { - if (!self._isAlive || self._activeMapType[mt] == null) { - return; - } - if (mt.indexOf('|') != -1) { - md = self._getSubMapData(mt, md); - } - self._mapDataMap[mt].mapData = md; - if (md.firstChild) { - self._mapDataMap[mt].rate = 1; - self._mapDataMap[mt].projection = require('../util/projection/svg'); - } else { - self._mapDataMap[mt].rate = 0.75; - self._mapDataMap[mt].projection = require('../util/projection/normal'); - } - self._buildMap(mt, self._getProjectionData(mt, md, ms), vd, ms); - self._buildMark(mt, ms); - if (--self._mapDataRequireCounter <= 0) { - self.addShapeList(); - self.zr.refreshNextFrame(); - } - self._buildHeatmap(mt); - }; - }, - _clearSelected: function () { - for (var k in this._selected) { - if (!this._activeMapType[this._mapTypeMap[k]]) { - delete this._selected[k]; - delete this._mapTypeMap[k]; - } - } - }, - _getSubMapData: function (mapType, mapData) { - var subType = mapType.replace(/^.*\|/, ''); - var features = mapData.features; - for (var i = 0, l = features.length; i < l; i++) { - if (features[i].properties && features[i].properties.name == subType) { - features = features[i]; - if (subType == 'United States of America' && features.geometry.coordinates.length > 1) { - features = { - geometry: { - coordinates: features.geometry.coordinates.slice(5, 6), - type: features.geometry.type - }, - id: features.id, - properties: features.properties, - type: features.type - }; - } - break; - } - } - return { - 'type': 'FeatureCollection', - 'features': [features] - }; - }, - _getProjectionData: function (mapType, mapData, mapSeries) { - var normalProjection = this._mapDataMap[mapType].projection; - var province = []; - var bbox = this._mapDataMap[mapType].bbox || normalProjection.getBbox(mapData, this._specialArea[mapType]); - var transform; - if (!this._mapDataMap[mapType].hasRoam) { - transform = this._getTransform(bbox, mapSeries, this._mapDataMap[mapType].rate); - } else { - transform = this._mapDataMap[mapType].transform; - } - var lastTransform = this._mapDataMap[mapType].lastTransform || { scale: {} }; - var pathArray; - if (transform.left != lastTransform.left || transform.top != lastTransform.top || transform.scale.x != lastTransform.scale.x || transform.scale.y != lastTransform.scale.y) { - pathArray = normalProjection.geoJson2Path(mapData, transform, this._specialArea[mapType]); - lastTransform = zrUtil.clone(transform); - } else { - transform = this._mapDataMap[mapType].transform; - pathArray = this._mapDataMap[mapType].pathArray; - } - this._mapDataMap[mapType].bbox = bbox; - this._mapDataMap[mapType].transform = transform; - this._mapDataMap[mapType].lastTransform = lastTransform; - this._mapDataMap[mapType].pathArray = pathArray; - var position = [ - transform.left, - transform.top - ]; - for (var i = 0, l = pathArray.length; i < l; i++) { - province.push(this._getSingleProvince(mapType, pathArray[i], position)); - } - if (this._specialArea[mapType]) { - for (var area in this._specialArea[mapType]) { - province.push(this._getSpecialProjectionData(mapType, mapData, area, this._specialArea[mapType][area], position)); - } - } - if (mapType == 'china') { - var leftTop = this.geo2pos(mapType, _geoCoord['南海诸岛'] || _mapParams['南海诸岛'].textCoord); - var scale = transform.scale.x / 10.5; - var textPosition = [ - 32 * scale + leftTop[0], - 83 * scale + leftTop[1] - ]; - if (_textFixed['南海诸岛']) { - textPosition[0] += _textFixed['南海诸岛'][0]; - textPosition[1] += _textFixed['南海诸岛'][1]; - } - province.push({ - name: this._nameChange(mapType, '南海诸岛'), - path: _mapParams['南海诸岛'].getPath(leftTop, scale), - position: position, - textX: textPosition[0], - textY: textPosition[1] - }); - } - return province; - }, - _getSpecialProjectionData: function (mapType, mapData, areaName, mapSize, position) { - mapData = this._getSubMapData('x|' + areaName, mapData); - var normalProjection = require('../util/projection/normal'); - var bbox = normalProjection.getBbox(mapData); - var leftTop = this.geo2pos(mapType, [ - mapSize.left, - mapSize.top - ]); - var rightBottom = this.geo2pos(mapType, [ - mapSize.left + mapSize.width, - mapSize.top + mapSize.height - ]); - var width = Math.abs(rightBottom[0] - leftTop[0]); - var height = Math.abs(rightBottom[1] - leftTop[1]); - var mapWidth = bbox.width; - var mapHeight = bbox.height; - var xScale = width / 0.75 / mapWidth; - var yScale = height / mapHeight; - if (xScale > yScale) { - xScale = yScale * 0.75; - width = mapWidth * xScale; - } else { - yScale = xScale; - xScale = yScale * 0.75; - height = mapHeight * yScale; - } - var transform = { - OffsetLeft: leftTop[0], - OffsetTop: leftTop[1], - scale: { - x: xScale, - y: yScale - } - }; - var pathArray = normalProjection.geoJson2Path(mapData, transform); - return this._getSingleProvince(mapType, pathArray[0], position); - }, - _getSingleProvince: function (mapType, path, position) { - var textPosition; - var name = path.properties.name; - var textFixed = _textFixed[name] || [ - 0, - 0 - ]; - if (_geoCoord[name]) { - textPosition = this.geo2pos(mapType, _geoCoord[name]); - } else if (path.cp) { - textPosition = [ - path.cp[0] + textFixed[0], - path.cp[1] + textFixed[1] - ]; - } else { - var bbox = this._mapDataMap[mapType].bbox; - textPosition = this.geo2pos(mapType, [ - bbox.left + bbox.width / 2, - bbox.top + bbox.height / 2 - ]); - textPosition[0] += textFixed[0]; - textPosition[1] += textFixed[1]; - } - path.name = this._nameChange(mapType, name); - path.position = position; - path.textX = textPosition[0]; - path.textY = textPosition[1]; - return path; - }, - _getTransform: function (bbox, mapSeries, rate) { - var series = this.series; - var mapLocation; - var x; - var cusX; - var y; - var cusY; - var width; - var height; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - var padding = Math.round(Math.min(zrWidth, zrHeight) * 0.02); - for (var key in mapSeries) { - mapLocation = series[key].mapLocation || {}; - cusX = mapLocation.x || cusX; - cusY = mapLocation.y || cusY; - width = mapLocation.width || width; - height = mapLocation.height || height; - } - x = this.parsePercent(cusX, zrWidth); - x = isNaN(x) ? padding : x; - y = this.parsePercent(cusY, zrHeight); - y = isNaN(y) ? padding : y; - width = width == null ? zrWidth - x - 2 * padding : this.parsePercent(width, zrWidth); - height = height == null ? zrHeight - y - 2 * padding : this.parsePercent(height, zrHeight); - var mapWidth = bbox.width; - var mapHeight = bbox.height; - var xScale = width / rate / mapWidth; - var yScale = height / mapHeight; - if (xScale > yScale) { - xScale = yScale * rate; - width = mapWidth * xScale; - } else { - yScale = xScale; - xScale = yScale * rate; - height = mapHeight * yScale; - } - if (isNaN(cusX)) { - cusX = cusX || 'center'; - switch (cusX + '') { - case 'center': - x = Math.floor((zrWidth - width) / 2); - break; - case 'right': - x = zrWidth - width; - break; - } - } - if (isNaN(cusY)) { - cusY = cusY || 'center'; - switch (cusY + '') { - case 'center': - y = Math.floor((zrHeight - height) / 2); - break; - case 'bottom': - y = zrHeight - height; - break; - } - } - return { - left: x, - top: y, - width: width, - height: height, - baseScale: 1, - scale: { - x: xScale, - y: yScale - } - }; - }, - _buildMap: function (mapType, mapData, valueData, mapSeries) { - var series = this.series; - var legend = this.component.legend; - var dataRange = this.component.dataRange; - var seriesName; - var name; - var data; - var value; - var queryTarget; - var color; - var font; - var style; - var highlightStyle; - var shape; - var textShape; - for (var i = 0, l = mapData.length; i < l; i++) { - style = zrUtil.clone(mapData[i]); - highlightStyle = { - name: style.name, - path: style.path, - position: zrUtil.clone(style.position) - }; - name = style.name; - data = valueData[name]; - if (data) { - queryTarget = [data]; - seriesName = ''; - for (var j = 0, k = data.seriesIndex.length; j < k; j++) { - var serie = series[data.seriesIndex[j]]; - queryTarget.push(serie); - seriesName += serie.name + ' '; - if (legend && this._showLegendSymbol[mapType] && legend.hasColor(serie.name)) { - this.shapeList.push(new CircleShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - position: zrUtil.clone(style.position), - _mapType: mapType, - style: { - x: style.textX + 3 + j * 7, - y: style.textY - 10, - r: 3, - color: legend.getColor(serie.name) - }, - hoverable: false - })); - } - } - value = data.value; - } else { - data = { - name: name, - value: '-' - }; - seriesName = ''; - queryTarget = []; - for (var key in mapSeries) { - queryTarget.push(series[key]); - } - value = '-'; - } - this.ecTheme.map && queryTarget.push(this.ecTheme.map); - queryTarget.push(ecConfig.map); - color = dataRange && !isNaN(value) ? dataRange.getColor(value) : null; - style.color = style.color || color || this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color'), data.seriesIndex, -1, data) || this.deepQuery(queryTarget, 'itemStyle.normal.areaStyle.color'); - style.strokeColor = style.strokeColor || this.deepQuery(queryTarget, 'itemStyle.normal.borderColor'); - style.lineWidth = style.lineWidth || this.deepQuery(queryTarget, 'itemStyle.normal.borderWidth'); - highlightStyle.color = this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), data.seriesIndex, -1, data) || this.deepQuery(queryTarget, 'itemStyle.emphasis.areaStyle.color') || style.color; - highlightStyle.strokeColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.borderColor') || style.strokeColor; - highlightStyle.lineWidth = this.deepQuery(queryTarget, 'itemStyle.emphasis.borderWidth') || style.lineWidth; - style.brushType = highlightStyle.brushType = style.brushType || 'both'; - style.lineJoin = highlightStyle.lineJoin = 'round'; - style._name = highlightStyle._name = name; - font = this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle'); - textShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - position: zrUtil.clone(style.position), - _mapType: mapType, - _geo: this.pos2geo(mapType, [ - style.textX, - style.textY - ]), - style: { - brushType: 'fill', - x: style.textX, - y: style.textY, - text: this.getLabelText(name, value, queryTarget, 'normal'), - _name: name, - textAlign: 'center', - color: this.deepQuery(queryTarget, 'itemStyle.normal.label.show') ? this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle.color') : 'rgba(0,0,0,0)', - textFont: this.getFont(font) - } - }; - textShape._style = zrUtil.clone(textShape.style); - textShape.highlightStyle = zrUtil.clone(textShape.style); - if (this.deepQuery(queryTarget, 'itemStyle.emphasis.label.show')) { - textShape.highlightStyle.text = this.getLabelText(name, value, queryTarget, 'emphasis'); - textShape.highlightStyle.color = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle.color') || textShape.style.color; - font = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle') || font; - textShape.highlightStyle.textFont = this.getFont(font); - } else { - textShape.highlightStyle.color = 'rgba(0,0,0,0)'; - } - shape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - position: zrUtil.clone(style.position), - style: style, - highlightStyle: highlightStyle, - _style: zrUtil.clone(style), - _mapType: mapType - }; - if (style.scale != null) { - shape.scale = zrUtil.clone(style.scale); - } - textShape = new TextShape(textShape); - switch (shape.style.shapeType) { - case 'rectangle': - shape = new RectangleShape(shape); - break; - case 'line': - shape = new LineShape(shape); - break; - case 'circle': - shape = new CircleShape(shape); - break; - case 'polygon': - shape = new PolygonShape(shape); - break; - case 'ellipse': - shape = new EllipseShape(shape); - break; - default: - shape = new PathShape(shape); - if (shape.buildPathArray) { - shape.style.pathArray = shape.buildPathArray(shape.style.path); - } - break; - } - if (this._selectedMode[mapType] && (this._selected[name] && data.selected !== false) || data.selected === true) { - textShape.style = textShape.highlightStyle; - shape.style = shape.highlightStyle; - } - textShape.clickable = shape.clickable = this._clickable[mapType] && (data.clickable == null || data.clickable); - if (this._selectedMode[mapType]) { - this._selected[name] = this._selected[name] != null ? this._selected[name] : data.selected; - this._mapTypeMap[name] = mapType; - if (data.selectable == null || data.selectable) { - shape.clickable = textShape.clickable = true; - shape.onclick = textShape.onclick = this.shapeHandler.onclick; - } - } - if (this._hoverable[mapType] && (data.hoverable == null || data.hoverable)) { - textShape.hoverable = shape.hoverable = true; - shape.hoverConnect = textShape.id; - textShape.hoverConnect = shape.id; - } else { - textShape.hoverable = shape.hoverable = false; - } - ecData.pack(textShape, { - name: seriesName, - tooltip: this.deepQuery(queryTarget, 'tooltip') - }, 0, data, 0, name); - this.shapeList.push(textShape); - ecData.pack(shape, { - name: seriesName, - tooltip: this.deepQuery(queryTarget, 'tooltip') - }, 0, data, 0, name); - this.shapeList.push(shape); - } - }, - _buildMark: function (mapType, mapSeries) { - this._seriesIndexToMapType = this._seriesIndexToMapType || {}; - this.markAttachStyle = this.markAttachStyle || {}; - var position = [ - this._mapDataMap[mapType].transform.left, - this._mapDataMap[mapType].transform.top - ]; - if (mapType == 'none') { - position = [ - 0, - 0 - ]; - } - for (var sIdx in mapSeries) { - this._seriesIndexToMapType[sIdx] = mapType; - this.markAttachStyle[sIdx] = { - position: position, - _mapType: mapType - }; - this.buildMark(sIdx); - } - }, - _buildHeatmap: function (mapType) { - var series = this.series; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].heatmap) { - var data = series[i].heatmap.data; - if (series[i].heatmap.needsTransform === false) { - var geo = []; - for (var j = 0, len = data.length; j < len; ++j) { - geo.push([ - data[j][3], - data[j][4], - data[j][2] - ]); - } - var pos = [ - 0, - 0 - ]; - } else { - var geoData = series[i].heatmap._geoData; - if (geoData === undefined) { - series[i].heatmap._geoData = []; - for (var j = 0, len = data.length; j < len; ++j) { - series[i].heatmap._geoData[j] = data[j]; - } - geoData = series[i].heatmap._geoData; - } - var len = data.length; - for (var id = 0; id < len; ++id) { - data[id] = this.geo2pos(mapType, [ - geoData[id][0], - geoData[id][1] - ]); - } - var pos = [ - this._mapDataMap[mapType].transform.left, - this._mapDataMap[mapType].transform.top - ]; - } - var layer = new HeatmapLayer(series[i].heatmap); - var canvas = layer.getCanvas(data[0][3] ? geo : data, this.zr.getWidth(), this.zr.getHeight()); - var image = new ZrImage({ - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - position: pos, - scale: [ - 1, - 1 - ], - hoverable: false, - style: { - x: 0, - y: 0, - image: canvas, - width: canvas.width, - height: canvas.height - } - }); - image.type = 'heatmap'; - image._mapType = mapType; - this.shapeList.push(image); - this.zr.addShape(image); - } - } - }, - getMarkCoord: function (seriesIndex, mpData) { - return mpData.geoCoord || _geoCoord[mpData.name] ? this.geo2pos(this._seriesIndexToMapType[seriesIndex], mpData.geoCoord || _geoCoord[mpData.name]) : [ - 0, - 0 - ]; - }, - getMarkGeo: function (mpData) { - return mpData.geoCoord || _geoCoord[mpData.name]; - }, - _nameChange: function (mapType, name) { - return this._nameMap[mapType][name] || name; - }, - getLabelText: function (name, value, queryTarget, status) { - var formatter = this.deepQuery(queryTarget, 'itemStyle.' + status + '.label.formatter'); - if (formatter) { - if (typeof formatter == 'function') { - return formatter.call(this.myChart, name, value); - } else if (typeof formatter == 'string') { - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}'); - formatter = formatter.replace('{a0}', name).replace('{b0}', value); - return formatter; - } - } else { - return name; - } - }, - _findMapTypeByPos: function (mx, my) { - var transform; - var left; - var top; - var width; - var height; - for (var mapType in this._mapDataMap) { - transform = this._mapDataMap[mapType].transform; - if (!transform || !this._roamMap[mapType] || !this._activeMapType[mapType]) { - continue; - } - left = transform.left; - top = transform.top; - width = transform.width; - height = transform.height; - if (mx >= left && mx <= left + width && my >= top && my <= top + height) { - return mapType; - } - } - return; - }, - __onmousewheel: function (params) { - if (this.shapeList.length <= 0) { - return; - } - for (var i = 0, l = this.shapeList.length; i < l; i++) { - var shape = this.shapeList[i]; - if (shape.__animating) { - return; - } - } - var event = params.event; - var mx = zrEvent.getX(event); - var my = zrEvent.getY(event); - var delta; - var eventDelta = zrEvent.getDelta(event); - var mapType; - var mapTypeControl = params.mapTypeControl; - if (!mapTypeControl) { - mapTypeControl = {}; - mapType = this._findMapTypeByPos(mx, my); - if (mapType && this._roamMap[mapType] && this._roamMap[mapType] != 'move') { - mapTypeControl[mapType] = true; - } - } - function scalePolyline(shapeStyle, delta) { - for (var i = 0; i < shapeStyle.pointList.length; i++) { - var point = shapeStyle.pointList[i]; - point[0] *= delta; - point[1] *= delta; - } - var controlPointList = shapeStyle.controlPointList; - if (controlPointList) { - for (var i = 0; i < controlPointList.length; i++) { - var point = controlPointList[i]; - point[0] *= delta; - point[1] *= delta; - } - } - } - function scaleMarkline(shapeStyle, delta) { - shapeStyle.xStart *= delta; - shapeStyle.yStart *= delta; - shapeStyle.xEnd *= delta; - shapeStyle.yEnd *= delta; - if (shapeStyle.cpX1 != null) { - shapeStyle.cpX1 *= delta; - shapeStyle.cpY1 *= delta; - } - } - var haveScale = false; - for (mapType in mapTypeControl) { - if (mapTypeControl[mapType]) { - haveScale = true; - var transform = this._mapDataMap[mapType].transform; - var left = transform.left; - var top = transform.top; - var width = transform.width; - var height = transform.height; - var geoAndPos = this.pos2geo(mapType, [ - mx - left, - my - top - ]); - if (eventDelta > 0) { - delta = 1.2; - if (this._scaleLimitMap[mapType].max != null && transform.baseScale >= this._scaleLimitMap[mapType].max) { - continue; - } - } else { - delta = 1 / 1.2; - if (this._scaleLimitMap[mapType].min != null && transform.baseScale <= this._scaleLimitMap[mapType].min) { - continue; - } - } - transform.baseScale *= delta; - transform.scale.x *= delta; - transform.scale.y *= delta; - transform.width = width * delta; - transform.height = height * delta; - this._mapDataMap[mapType].hasRoam = true; - this._mapDataMap[mapType].transform = transform; - geoAndPos = this.geo2pos(mapType, geoAndPos); - transform.left -= geoAndPos[0] - (mx - left); - transform.top -= geoAndPos[1] - (my - top); - this._mapDataMap[mapType].transform = transform; - this.clearEffectShape(true); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - var shape = this.shapeList[i]; - if (shape._mapType == mapType) { - var shapeType = shape.type; - var shapeStyle = shape.style; - shape.position[0] = transform.left; - shape.position[1] = transform.top; - switch (shapeType) { - case 'path': - case 'symbol': - case 'circle': - case 'rectangle': - case 'polygon': - case 'line': - case 'ellipse': - case 'heatmap': - shape.scale[0] *= delta; - shape.scale[1] *= delta; - break; - case 'mark-line': - scaleMarkline(shapeStyle, delta); - break; - case 'polyline': - scalePolyline(shapeStyle, delta); - break; - case 'shape-bundle': - for (var j = 0; j < shapeStyle.shapeList.length; j++) { - var subShape = shapeStyle.shapeList[j]; - if (subShape.type == 'mark-line') { - scaleMarkline(subShape.style, delta); - } else if (subShape.type == 'polyline') { - scalePolyline(subShape.style, delta); - } - } - break; - case 'icon': - case 'image': - geoAndPos = this.geo2pos(mapType, shape._geo); - shapeStyle.x = shapeStyle._x = geoAndPos[0] - shapeStyle.width / 2; - shapeStyle.y = shapeStyle._y = geoAndPos[1] - shapeStyle.height / 2; - break; - default: - geoAndPos = this.geo2pos(mapType, shape._geo); - shapeStyle.x = geoAndPos[0]; - shapeStyle.y = geoAndPos[1]; - if (shapeType == 'text') { - shape._style.x = shape.highlightStyle.x = geoAndPos[0]; - shape._style.y = shape.highlightStyle.y = geoAndPos[1]; - } - } - this.zr.modShape(shape.id); - } - } - } - } - if (haveScale) { - zrEvent.stop(event); - this.zr.refreshNextFrame(); - var self = this; - clearTimeout(this._refreshDelayTicket); - this._refreshDelayTicket = setTimeout(function () { - self && self.shapeList && self.animationEffect(); - }, 100); - this.messageCenter.dispatch(ecConfig.EVENT.MAP_ROAM, params.event, { type: 'scale' }, this.myChart); - } - }, - __onmousedown: function (params) { - if (this.shapeList.length <= 0) { - return; - } - var target = params.target; - if (target && target.draggable) { - return; - } - var event = params.event; - var mx = zrEvent.getX(event); - var my = zrEvent.getY(event); - var mapType = this._findMapTypeByPos(mx, my); - if (mapType && this._roamMap[mapType] && this._roamMap[mapType] != 'scale') { - this._mousedown = true; - this._mx = mx; - this._my = my; - this._curMapType = mapType; - this.zr.on(zrConfig.EVENT.MOUSEUP, this._onmouseup); - var self = this; - setTimeout(function () { - self.zr.on(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); - }, 100); - } - }, - __onmousemove: function (params) { - if (!this._mousedown || !this._isAlive) { - return; - } - var event = params.event; - var mx = zrEvent.getX(event); - var my = zrEvent.getY(event); - var transform = this._mapDataMap[this._curMapType].transform; - transform.hasRoam = true; - transform.left -= this._mx - mx; - transform.top -= this._my - my; - this._mx = mx; - this._my = my; - this._mapDataMap[this._curMapType].transform = transform; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i]._mapType == this._curMapType) { - this.shapeList[i].position[0] = transform.left; - this.shapeList[i].position[1] = transform.top; - this.zr.modShape(this.shapeList[i].id); - } - } - this.messageCenter.dispatch(ecConfig.EVENT.MAP_ROAM, params.event, { type: 'move' }, this.myChart); - this.clearEffectShape(true); - this.zr.refreshNextFrame(); - this._justMove = true; - zrEvent.stop(event); - }, - __onmouseup: function (params) { - var event = params.event; - this._mx = zrEvent.getX(event); - this._my = zrEvent.getY(event); - this._mousedown = false; - var self = this; - setTimeout(function () { - self._justMove && self.animationEffect(); - self._justMove = false; - self.zr.un(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); - self.zr.un(zrConfig.EVENT.MOUSEUP, self._onmouseup); - }, 120); - }, - __onroamcontroller: function (params) { - var event = params.event; - event.zrenderX = this.zr.getWidth() / 2; - event.zrenderY = this.zr.getHeight() / 2; - var mapTypeControl = params.mapTypeControl; - var top = 0; - var left = 0; - var step = params.step; - switch (params.roamType) { - case 'scaleUp': - event.zrenderDelta = 1; - this.__onmousewheel({ - event: event, - mapTypeControl: mapTypeControl - }); - return; - case 'scaleDown': - event.zrenderDelta = -1; - this.__onmousewheel({ - event: event, - mapTypeControl: mapTypeControl - }); - return; - case 'up': - top = -step; - break; - case 'down': - top = step; - break; - case 'left': - left = -step; - break; - case 'right': - left = step; - break; - } - var transform; - var curMapType; - for (curMapType in mapTypeControl) { - if (!this._mapDataMap[curMapType] || !this._activeMapType[curMapType]) { - continue; - } - transform = this._mapDataMap[curMapType].transform; - transform.hasRoam = true; - transform.left -= left; - transform.top -= top; - this._mapDataMap[curMapType].transform = transform; - } - for (var i = 0, l = this.shapeList.length; i < l; i++) { - curMapType = this.shapeList[i]._mapType; - if (!mapTypeControl[curMapType] || !this._activeMapType[curMapType]) { - continue; - } - transform = this._mapDataMap[curMapType].transform; - this.shapeList[i].position[0] = transform.left; - this.shapeList[i].position[1] = transform.top; - this.zr.modShape(this.shapeList[i].id); - } - this.messageCenter.dispatch(ecConfig.EVENT.MAP_ROAM, params.event, { type: 'move' }, this.myChart); - this.clearEffectShape(true); - this.zr.refreshNextFrame(); - clearTimeout(this.dircetionTimer); - var self = this; - this.dircetionTimer = setTimeout(function () { - self.animationEffect(); - }, 150); - }, - __ondrhoverlink: function (param) { - var curMapType; - var value; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - curMapType = this.shapeList[i]._mapType; - if (!this._hoverLinkMap[curMapType] || !this._activeMapType[curMapType]) { - continue; - } - value = ecData.get(this.shapeList[i], 'value'); - if (value != null && value >= param.valueMin && value <= param.valueMax) { - this.zr.addHoverShape(this.shapeList[i]); - } - } - }, - onclick: function (params) { - if (!this.isClick || !params.target || this._justMove || params.target.type == 'icon') { - return; - } - this.isClick = false; - var target = params.target; - var name = target.style._name; - var len = this.shapeList.length; - var mapType = target._mapType || ''; - if (this._selectedMode[mapType] == 'single') { - for (var p in this._selected) { - if (this._selected[p] && this._mapTypeMap[p] == mapType) { - for (var i = 0; i < len; i++) { - if (this.shapeList[i].style._name == p && this.shapeList[i]._mapType == mapType) { - this.shapeList[i].style = this.shapeList[i]._style; - this.zr.modShape(this.shapeList[i].id); - } - } - p != name && (this._selected[p] = false); - } - } - } - this._selected[name] = !this._selected[name]; - for (var i = 0; i < len; i++) { - if (this.shapeList[i].style._name == name && this.shapeList[i]._mapType == mapType) { - if (this._selected[name]) { - this.shapeList[i].style = this.shapeList[i].highlightStyle; - } else { - this.shapeList[i].style = this.shapeList[i]._style; - } - this.zr.modShape(this.shapeList[i].id); - } - } - this.messageCenter.dispatch(ecConfig.EVENT.MAP_SELECTED, params.event, { - selected: this._selected, - target: name - }, this.myChart); - this.zr.refreshNextFrame(); - var self = this; - setTimeout(function () { - self.zr.trigger(zrConfig.EVENT.MOUSEMOVE, params.event); - }, 100); - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - if (this._mapDataRequireCounter > 0) { - this.clear(); - } else { - this.backupShapeList(); - } - this._buildShape(); - this.zr.refreshHover(); - }, - ondataRange: function (param, status) { - if (this.component.dataRange) { - this.refresh(); - status.needRefresh = true; - } - return; - }, - pos2geo: function (mapType, p) { - if (!this._mapDataMap[mapType].transform) { - return null; - } - return this._mapDataMap[mapType].projection.pos2geo(this._mapDataMap[mapType].transform, p); - }, - getGeoByPos: function (mapType, p) { - if (!this._mapDataMap[mapType].transform) { - return null; - } - var position = [ - this._mapDataMap[mapType].transform.left, - this._mapDataMap[mapType].transform.top - ]; - if (p instanceof Array) { - p[0] -= position[0]; - p[1] -= position[1]; - } else { - p.x -= position[0]; - p.y -= position[1]; - } - return this.pos2geo(mapType, p); - }, - geo2pos: function (mapType, p) { - if (!this._mapDataMap[mapType].transform) { - return null; - } - return this._mapDataMap[mapType].projection.geo2pos(this._mapDataMap[mapType].transform, p); - }, - getPosByGeo: function (mapType, p) { - if (!this._mapDataMap[mapType].transform) { - return null; - } - var pos = this.geo2pos(mapType, p); - pos[0] += this._mapDataMap[mapType].transform.left; - pos[1] += this._mapDataMap[mapType].transform.top; - return pos; - }, - getMapPosition: function (mapType) { - if (!this._mapDataMap[mapType].transform) { - return null; - } - return [ - this._mapDataMap[mapType].transform.left, - this._mapDataMap[mapType].transform.top - ]; - }, - onbeforDispose: function () { - this._isAlive = false; - this.zr.un(zrConfig.EVENT.MOUSEWHEEL, this._onmousewheel); - this.zr.un(zrConfig.EVENT.MOUSEDOWN, this._onmousedown); - this.messageCenter.unbind(ecConfig.EVENT.ROAMCONTROLLER, this._onroamcontroller); - this.messageCenter.unbind(ecConfig.EVENT.DATA_RANGE_HOVERLINK, this._ondrhoverlink); - } - }; - zrUtil.inherits(Map, ChartBase); - require('../chart').define('map', Map); - return Map; -});define('zrender/shape/Path', [ - 'require', - './Base', - './util/PathProxy', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var PathProxy = require('./util/PathProxy'); - var PathSegment = PathProxy.PathSegment; - var vMag = function (v) { - return Math.sqrt(v[0] * v[0] + v[1] * v[1]); - }; - var vRatio = function (u, v) { - return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v)); - }; - var vAngle = function (u, v) { - return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v)); - }; - var Path = function (options) { - Base.call(this, options); - }; - Path.prototype = { - type: 'path', - buildPathArray: function (data, x, y) { - if (!data) { - return []; - } - x = x || 0; - y = y || 0; - var cs = data; - var cc = [ - 'm', - 'M', - 'l', - 'L', - 'v', - 'V', - 'h', - 'H', - 'z', - 'Z', - 'c', - 'C', - 'q', - 'Q', - 't', - 'T', - 's', - 'S', - 'a', - 'A' - ]; - cs = cs.replace(/-/g, ' -'); - cs = cs.replace(/ /g, ' '); - cs = cs.replace(/ /g, ','); - cs = cs.replace(/,,/g, ','); - var n; - for (n = 0; n < cc.length; n++) { - cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]); - } - var arr = cs.split('|'); - var ca = []; - var cpx = 0; - var cpy = 0; - for (n = 1; n < arr.length; n++) { - var str = arr[n]; - var c = str.charAt(0); - str = str.slice(1); - str = str.replace(new RegExp('e,-', 'g'), 'e-'); - var p = str.split(','); - if (p.length > 0 && p[0] === '') { - p.shift(); - } - for (var i = 0; i < p.length; i++) { - p[i] = parseFloat(p[i]); - } - while (p.length > 0) { - if (isNaN(p[0])) { - break; - } - var cmd = null; - var points = []; - var ctlPtx; - var ctlPty; - var prevCmd; - var rx; - var ry; - var psi; - var fa; - var fs; - var x1 = cpx; - var y1 = cpy; - switch (c) { - case 'l': - cpx += p.shift(); - cpy += p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'L': - cpx = p.shift(); - cpy = p.shift(); - points.push(cpx, cpy); - break; - case 'm': - cpx += p.shift(); - cpy += p.shift(); - cmd = 'M'; - points.push(cpx, cpy); - c = 'l'; - break; - case 'M': - cpx = p.shift(); - cpy = p.shift(); - cmd = 'M'; - points.push(cpx, cpy); - c = 'L'; - break; - case 'h': - cpx += p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'H': - cpx = p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'v': - cpy += p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'V': - cpy = p.shift(); - cmd = 'L'; - points.push(cpx, cpy); - break; - case 'C': - points.push(p.shift(), p.shift(), p.shift(), p.shift()); - cpx = p.shift(); - cpy = p.shift(); - points.push(cpx, cpy); - break; - case 'c': - points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift()); - cpx += p.shift(); - cpy += p.shift(); - cmd = 'C'; - points.push(cpx, cpy); - break; - case 'S': - ctlPtx = cpx; - ctlPty = cpy; - prevCmd = ca[ca.length - 1]; - if (prevCmd.command === 'C') { - ctlPtx = cpx + (cpx - prevCmd.points[2]); - ctlPty = cpy + (cpy - prevCmd.points[3]); - } - points.push(ctlPtx, ctlPty, p.shift(), p.shift()); - cpx = p.shift(); - cpy = p.shift(); - cmd = 'C'; - points.push(cpx, cpy); - break; - case 's': - ctlPtx = cpx, ctlPty = cpy; - prevCmd = ca[ca.length - 1]; - if (prevCmd.command === 'C') { - ctlPtx = cpx + (cpx - prevCmd.points[2]); - ctlPty = cpy + (cpy - prevCmd.points[3]); - } - points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift()); - cpx += p.shift(); - cpy += p.shift(); - cmd = 'C'; - points.push(cpx, cpy); - break; - case 'Q': - points.push(p.shift(), p.shift()); - cpx = p.shift(); - cpy = p.shift(); - points.push(cpx, cpy); - break; - case 'q': - points.push(cpx + p.shift(), cpy + p.shift()); - cpx += p.shift(); - cpy += p.shift(); - cmd = 'Q'; - points.push(cpx, cpy); - break; - case 'T': - ctlPtx = cpx, ctlPty = cpy; - prevCmd = ca[ca.length - 1]; - if (prevCmd.command === 'Q') { - ctlPtx = cpx + (cpx - prevCmd.points[0]); - ctlPty = cpy + (cpy - prevCmd.points[1]); - } - cpx = p.shift(); - cpy = p.shift(); - cmd = 'Q'; - points.push(ctlPtx, ctlPty, cpx, cpy); - break; - case 't': - ctlPtx = cpx, ctlPty = cpy; - prevCmd = ca[ca.length - 1]; - if (prevCmd.command === 'Q') { - ctlPtx = cpx + (cpx - prevCmd.points[0]); - ctlPty = cpy + (cpy - prevCmd.points[1]); - } - cpx += p.shift(); - cpy += p.shift(); - cmd = 'Q'; - points.push(ctlPtx, ctlPty, cpx, cpy); - break; - case 'A': - rx = p.shift(); - ry = p.shift(); - psi = p.shift(); - fa = p.shift(); - fs = p.shift(); - x1 = cpx, y1 = cpy; - cpx = p.shift(), cpy = p.shift(); - cmd = 'A'; - points = this._convertPoint(x1, y1, cpx, cpy, fa, fs, rx, ry, psi); - break; - case 'a': - rx = p.shift(); - ry = p.shift(); - psi = p.shift(); - fa = p.shift(); - fs = p.shift(); - x1 = cpx, y1 = cpy; - cpx += p.shift(); - cpy += p.shift(); - cmd = 'A'; - points = this._convertPoint(x1, y1, cpx, cpy, fa, fs, rx, ry, psi); - break; - } - for (var j = 0, l = points.length; j < l; j += 2) { - points[j] += x; - points[j + 1] += y; - } - ca.push(new PathSegment(cmd || c, points)); - } - if (c === 'z' || c === 'Z') { - ca.push(new PathSegment('z', [])); - } - } - return ca; - }, - _convertPoint: function (x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) { - var psi = psiDeg * (Math.PI / 180); - var xp = Math.cos(psi) * (x1 - x2) / 2 + Math.sin(psi) * (y1 - y2) / 2; - var yp = -1 * Math.sin(psi) * (x1 - x2) / 2 + Math.cos(psi) * (y1 - y2) / 2; - var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry); - if (lambda > 1) { - rx *= Math.sqrt(lambda); - ry *= Math.sqrt(lambda); - } - var f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp))); - if (fa === fs) { - f *= -1; - } - if (isNaN(f)) { - f = 0; - } - var cxp = f * rx * yp / ry; - var cyp = f * -ry * xp / rx; - var cx = (x1 + x2) / 2 + Math.cos(psi) * cxp - Math.sin(psi) * cyp; - var cy = (y1 + y2) / 2 + Math.sin(psi) * cxp + Math.cos(psi) * cyp; - var theta = vAngle([ - 1, - 0 - ], [ - (xp - cxp) / rx, - (yp - cyp) / ry - ]); - var u = [ - (xp - cxp) / rx, - (yp - cyp) / ry - ]; - var v = [ - (-1 * xp - cxp) / rx, - (-1 * yp - cyp) / ry - ]; - var dTheta = vAngle(u, v); - if (vRatio(u, v) <= -1) { - dTheta = Math.PI; - } - if (vRatio(u, v) >= 1) { - dTheta = 0; - } - if (fs === 0 && dTheta > 0) { - dTheta = dTheta - 2 * Math.PI; - } - if (fs === 1 && dTheta < 0) { - dTheta = dTheta + 2 * Math.PI; - } - return [ - cx, - cy, - rx, - ry, - theta, - dTheta, - psi, - fs - ]; - }, - buildPath: function (ctx, style) { - var path = style.path; - var x = style.x || 0; - var y = style.y || 0; - style.pathArray = style.pathArray || this.buildPathArray(path, x, y); - var pathArray = style.pathArray; - var pointList = style.pointList = []; - var singlePointList = []; - for (var i = 0, l = pathArray.length; i < l; i++) { - if (pathArray[i].command.toUpperCase() == 'M') { - singlePointList.length > 0 && pointList.push(singlePointList); - singlePointList = []; - } - var p = pathArray[i].points; - for (var j = 0, k = p.length; j < k; j += 2) { - singlePointList.push([ - p[j], - p[j + 1] - ]); - } - } - singlePointList.length > 0 && pointList.push(singlePointList); - for (var i = 0, l = pathArray.length; i < l; i++) { - var c = pathArray[i].command; - var p = pathArray[i].points; - switch (c) { - case 'L': - ctx.lineTo(p[0], p[1]); - break; - case 'M': - ctx.moveTo(p[0], p[1]); - break; - case 'C': - ctx.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]); - break; - case 'Q': - ctx.quadraticCurveTo(p[0], p[1], p[2], p[3]); - break; - case 'A': - var cx = p[0]; - var cy = p[1]; - var rx = p[2]; - var ry = p[3]; - var theta = p[4]; - var dTheta = p[5]; - var psi = p[6]; - var fs = p[7]; - var r = rx > ry ? rx : ry; - var scaleX = rx > ry ? 1 : rx / ry; - var scaleY = rx > ry ? ry / rx : 1; - ctx.translate(cx, cy); - ctx.rotate(psi); - ctx.scale(scaleX, scaleY); - ctx.arc(0, 0, r, theta, theta + dTheta, 1 - fs); - ctx.scale(1 / scaleX, 1 / scaleY); - ctx.rotate(-psi); - ctx.translate(-cx, -cy); - break; - case 'z': - ctx.closePath(); - break; - } - } - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - var minX = Number.MAX_VALUE; - var maxX = Number.MIN_VALUE; - var minY = Number.MAX_VALUE; - var maxY = Number.MIN_VALUE; - var x = style.x || 0; - var y = style.y || 0; - var pathArray = style.pathArray || this.buildPathArray(style.path); - for (var i = 0; i < pathArray.length; i++) { - var p = pathArray[i].points; - for (var j = 0; j < p.length; j++) { - if (j % 2 === 0) { - if (p[j] + x < minX) { - minX = p[j]; - } - if (p[j] + x > maxX) { - maxX = p[j]; - } - } else { - if (p[j] + y < minY) { - minY = p[j]; - } - if (p[j] + y > maxY) { - maxY = p[j]; - } - } - } - } - var rect; - if (minX === Number.MAX_VALUE || maxX === Number.MIN_VALUE || minY === Number.MAX_VALUE || maxY === Number.MIN_VALUE) { - rect = { - x: 0, - y: 0, - width: 0, - height: 0 - }; - } else { - rect = { - x: Math.round(minX - lineWidth / 2), - y: Math.round(minY - lineWidth / 2), - width: maxX - minX + lineWidth, - height: maxY - minY + lineWidth - }; - } - style.__rect = rect; - return rect; - } - }; - require('../tool/util').inherits(Path, Base); - return Path; -});define('zrender/shape/Ellipse', [ - 'require', - './Base', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var Ellipse = function (options) { - Base.call(this, options); - }; - Ellipse.prototype = { - type: 'ellipse', - buildPath: function (ctx, style) { - var k = 0.5522848; - var x = style.x; - var y = style.y; - var a = style.a; - var b = style.b; - var ox = a * k; - var oy = b * k; - ctx.moveTo(x - a, y); - ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b); - ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y); - ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b); - ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y); - ctx.closePath(); - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - style.__rect = { - x: Math.round(style.x - style.a - lineWidth / 2), - y: Math.round(style.y - style.b - lineWidth / 2), - width: style.a * 2 + lineWidth, - height: style.b * 2 + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Ellipse, Base); - return Ellipse; -});define('echarts/component/roamController', [ - 'require', - './base', - 'zrender/shape/Rectangle', - 'zrender/shape/Sector', - 'zrender/shape/Circle', - '../config', - 'zrender/tool/util', - 'zrender/tool/color', - 'zrender/tool/event', - '../component' -], function (require) { - var Base = require('./base'); - var RectangleShape = require('zrender/shape/Rectangle'); - var SectorShape = require('zrender/shape/Sector'); - var CircleShape = require('zrender/shape/Circle'); - var ecConfig = require('../config'); - ecConfig.roamController = { - zlevel: 0, - z: 4, - show: true, - x: 'left', - y: 'top', - width: 80, - height: 120, - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - handleColor: '#6495ed', - fillerColor: '#fff', - step: 15, - mapTypeControl: null - }; - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - var zrEvent = require('zrender/tool/event'); - function RoamController(ecTheme, messageCenter, zr, option, myChart) { - this.rcOption = {}; - if (!option.roamController || !option.roamController.show) { - return; - } - if (!option.roamController.mapTypeControl) { - console.error('option.roamController.mapTypeControl has not been defined.'); - return; - } - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.rcOption = option.roamController; - var self = this; - this._drictionMouseDown = function (params) { - return self.__drictionMouseDown(params); - }; - this._drictionMouseUp = function (params) { - return self.__drictionMouseUp(params); - }; - this._drictionMouseMove = function (params) { - return self.__drictionMouseMove(params); - }; - this._drictionMouseOut = function (params) { - return self.__drictionMouseOut(params); - }; - this._scaleHandler = function (params) { - return self.__scaleHandler(params); - }; - this.refresh(option); - } - RoamController.prototype = { - type: ecConfig.COMPONENT_TYPE_ROAMCONTROLLER, - _buildShape: function () { - if (!this.rcOption.show) { - return; - } - this._itemGroupLocation = this._getItemGroupLocation(); - this._buildBackground(); - this._buildItem(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _buildItem: function () { - this.shapeList.push(this._getDirectionShape('up')); - this.shapeList.push(this._getDirectionShape('down')); - this.shapeList.push(this._getDirectionShape('left')); - this.shapeList.push(this._getDirectionShape('right')); - this.shapeList.push(this._getScaleShape('scaleUp')); - this.shapeList.push(this._getScaleShape('scaleDown')); - }, - _getDirectionShape: function (direction) { - var r = this._itemGroupLocation.r; - var x = this._itemGroupLocation.x + r; - var y = this._itemGroupLocation.y + r; - var sectorShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: x, - y: y, - r: r, - startAngle: -45, - endAngle: 45, - color: this.rcOption.handleColor, - text: '>', - textX: x + r / 2 + 4, - textY: y - 0.5, - textAlign: 'center', - textBaseline: 'middle', - textPosition: 'specific', - textColor: this.rcOption.fillerColor, - textFont: Math.floor(r / 2) + 'px arial' - }, - highlightStyle: { - color: zrColor.lift(this.rcOption.handleColor, -0.2), - brushType: 'fill' - }, - clickable: true - }; - switch (direction) { - case 'up': - sectorShape.rotation = [ - Math.PI / 2, - x, - y - ]; - break; - case 'left': - sectorShape.rotation = [ - Math.PI, - x, - y - ]; - break; - case 'down': - sectorShape.rotation = [ - -Math.PI / 2, - x, - y - ]; - break; - } - sectorShape = new SectorShape(sectorShape); - sectorShape._roamType = direction; - sectorShape.onmousedown = this._drictionMouseDown; - sectorShape.onmouseup = this._drictionMouseUp; - sectorShape.onmousemove = this._drictionMouseMove; - sectorShape.onmouseout = this._drictionMouseOut; - return sectorShape; - }, - _getScaleShape: function (text) { - var width = this._itemGroupLocation.width; - var height = this._itemGroupLocation.height - width; - height = height < 0 ? 20 : height; - var r = Math.min(width / 2 - 5, height) / 2; - var x = this._itemGroupLocation.x + (text === 'scaleDown' ? width - r : r); - var y = this._itemGroupLocation.y + this._itemGroupLocation.height - r; - var scaleShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: x, - y: y, - r: r, - color: this.rcOption.handleColor, - text: text === 'scaleDown' ? '-' : '+', - textX: x, - textY: y - 2, - textAlign: 'center', - textBaseline: 'middle', - textPosition: 'specific', - textColor: this.rcOption.fillerColor, - textFont: Math.floor(r) + 'px verdana' - }, - highlightStyle: { - color: zrColor.lift(this.rcOption.handleColor, -0.2), - brushType: 'fill' - }, - clickable: true - }; - scaleShape = new CircleShape(scaleShape); - scaleShape._roamType = text; - scaleShape.onmousedown = this._scaleHandler; - return scaleShape; - }, - _buildBackground: function () { - var padding = this.reformCssArray(this.rcOption.padding); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._itemGroupLocation.x - padding[3], - y: this._itemGroupLocation.y - padding[0], - width: this._itemGroupLocation.width + padding[3] + padding[1], - height: this._itemGroupLocation.height + padding[0] + padding[2], - brushType: this.rcOption.borderWidth === 0 ? 'fill' : 'both', - color: this.rcOption.backgroundColor, - strokeColor: this.rcOption.borderColor, - lineWidth: this.rcOption.borderWidth - } - })); - }, - _getItemGroupLocation: function () { - var padding = this.reformCssArray(this.rcOption.padding); - var width = this.rcOption.width; - var height = this.rcOption.height; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - var x; - switch (this.rcOption.x) { - case 'center': - x = Math.floor((zrWidth - width) / 2); - break; - case 'left': - x = padding[3] + this.rcOption.borderWidth; - break; - case 'right': - x = zrWidth - width - padding[1] - padding[3] - this.rcOption.borderWidth * 2; - break; - default: - x = this.parsePercent(this.rcOption.x, zrWidth); - break; - } - var y; - switch (this.rcOption.y) { - case 'top': - y = padding[0] + this.rcOption.borderWidth; - break; - case 'bottom': - y = zrHeight - height - padding[0] - padding[2] - this.rcOption.borderWidth * 2; - break; - case 'center': - y = Math.floor((zrHeight - height) / 2); - break; - default: - y = this.parsePercent(this.rcOption.y, zrHeight); - break; - } - return { - x: x, - y: y, - r: width / 2, - width: width, - height: height - }; - }, - __drictionMouseDown: function (params) { - this.mousedown = true; - this._drictionHandlerOn(params); - }, - __drictionMouseUp: function (params) { - this.mousedown = false; - this._drictionHandlerOff(params); - }, - __drictionMouseMove: function (params) { - if (this.mousedown) { - this._drictionHandlerOn(params); - } - }, - __drictionMouseOut: function (params) { - this._drictionHandlerOff(params); - }, - _drictionHandlerOn: function (params) { - this._dispatchEvent(params.event, params.target._roamType); - clearInterval(this.dircetionTimer); - var self = this; - this.dircetionTimer = setInterval(function () { - self._dispatchEvent(params.event, params.target._roamType); - }, 100); - zrEvent.stop(params.event); - }, - _drictionHandlerOff: function (params) { - clearInterval(this.dircetionTimer); - }, - __scaleHandler: function (params) { - this._dispatchEvent(params.event, params.target._roamType); - zrEvent.stop(params.event); - }, - _dispatchEvent: function (event, roamType) { - this.messageCenter.dispatch(ecConfig.EVENT.ROAMCONTROLLER, event, { - roamType: roamType, - mapTypeControl: this.rcOption.mapTypeControl, - step: this.rcOption.step - }, this.myChart); - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption || this.option; - this.option.roamController = this.reformOption(this.option.roamController); - this.rcOption = this.option.roamController; - } - this.clear(); - this._buildShape(); - } - }; - zrUtil.inherits(RoamController, Base); - require('../component').define('roamController', RoamController); - return RoamController; -});define('echarts/layer/heatmap', ['require'], function (require) { - var defaultOptions = { - blurSize: 30, - gradientColors: [ - 'blue', - 'cyan', - 'lime', - 'yellow', - 'red' - ], - minAlpha: 0.05, - valueScale: 1, - opacity: 1 - }; - var BRUSH_SIZE = 20; - var GRADIENT_LEVELS = 256; - function Heatmap(opt) { - this.option = opt; - if (opt) { - for (var i in defaultOptions) { - if (opt[i] !== undefined) { - this.option[i] = opt[i]; - } else { - this.option[i] = defaultOptions[i]; - } - } - } else { - this.option = defaultOptions; - } - } - Heatmap.prototype = { - getCanvas: function (data, width, height) { - var brush = this._getBrush(); - var gradient = this._getGradient(); - var r = BRUSH_SIZE + this.option.blurSize; - var canvas = document.createElement('canvas'); - canvas.width = width; - canvas.height = height; - var ctx = canvas.getContext('2d'); - var len = data.length; - for (var i = 0; i < len; ++i) { - var p = data[i]; - var x = p[0]; - var y = p[1]; - var value = p[2]; - var alpha = Math.min(1, Math.max(value * this.option.valueScale || this.option.minAlpha, this.option.minAlpha)); - ctx.globalAlpha = alpha; - ctx.drawImage(brush, x - r, y - r); - } - var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height); - var pixels = imageData.data; - var len = pixels.length / 4; - while (len--) { - var id = len * 4 + 3; - var alpha = pixels[id] / 256; - var colorOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)); - pixels[id - 3] = gradient[colorOffset * 4]; - pixels[id - 2] = gradient[colorOffset * 4 + 1]; - pixels[id - 1] = gradient[colorOffset * 4 + 2]; - pixels[id] *= this.option.opacity; - } - ctx.putImageData(imageData, 0, 0); - return canvas; - }, - _getBrush: function () { - if (!this._brushCanvas) { - this._brushCanvas = document.createElement('canvas'); - var r = BRUSH_SIZE + this.option.blurSize; - var d = r * 2; - this._brushCanvas.width = d; - this._brushCanvas.height = d; - var ctx = this._brushCanvas.getContext('2d'); - ctx.shadowOffsetX = d; - ctx.shadowBlur = this.option.blurSize; - ctx.shadowColor = 'black'; - ctx.beginPath(); - ctx.arc(-r, r, BRUSH_SIZE, 0, Math.PI * 2, true); - ctx.closePath(); - ctx.fill(); - } - return this._brushCanvas; - }, - _getGradient: function () { - if (!this._gradientPixels) { - var levels = GRADIENT_LEVELS; - var canvas = document.createElement('canvas'); - canvas.width = 1; - canvas.height = levels; - var ctx = canvas.getContext('2d'); - var gradient = ctx.createLinearGradient(0, 0, 0, levels); - var len = this.option.gradientColors.length; - for (var i = 0; i < len; ++i) { - if (typeof this.option.gradientColors[i] === 'string') { - gradient.addColorStop((i + 1) / len, this.option.gradientColors[i]); - } else { - gradient.addColorStop(this.option.gradientColors[i].offset, this.option.gradientColors[i].color); - } - } - ctx.fillStyle = gradient; - ctx.fillRect(0, 0, 1, levels); - this._gradientPixels = ctx.getImageData(0, 0, 1, levels).data; - } - return this._gradientPixels; - } - }; - return Heatmap; -});define('echarts/util/mapData/params', ['require'], function (require) { - function decode(json) { - if (!json.UTF8Encoding) { - return json; - } - var features = json.features; - for (var f = 0; f < features.length; f++) { - var feature = features[f]; - var coordinates = feature.geometry.coordinates; - var encodeOffsets = feature.geometry.encodeOffsets; - for (var c = 0; c < coordinates.length; c++) { - var coordinate = coordinates[c]; - if (feature.geometry.type === 'Polygon') { - coordinates[c] = decodePolygon(coordinate, encodeOffsets[c]); - } else if (feature.geometry.type === 'MultiPolygon') { - for (var c2 = 0; c2 < coordinate.length; c2++) { - var polygon = coordinate[c2]; - coordinate[c2] = decodePolygon(polygon, encodeOffsets[c][c2]); - } - } - } - } - json.UTF8Encoding = false; - return json; - } - function decodePolygon(coordinate, encodeOffsets) { - var result = []; - var prevX = encodeOffsets[0]; - var prevY = encodeOffsets[1]; - for (var i = 0; i < coordinate.length; i += 2) { - var x = coordinate.charCodeAt(i) - 64; - var y = coordinate.charCodeAt(i + 1) - 64; - x = x >> 1 ^ -(x & 1); - y = y >> 1 ^ -(y & 1); - x += prevX; - y += prevY; - prevX = x; - prevY = y; - result.push([ - x / 1024, - y / 1024 - ]); - } - return result; - } - var mapParams = { - 'none': { - getGeoJson: function (callback) { - callback({ - type: 'FeatureCollection', - features: [{ - type: 'Feature', - geometry: { - coordinates: [], - encodeOffsets: [], - type: 'Polygon' - }, - properties: {} - }] - }); - } - }, - 'world': { - getGeoJson: function (callback) { - require(['./geoJson/world_geo'], function (md) { - callback(decode(md)); - }); - } - }, - 'china': { - getGeoJson: function (callback) { - require(['./geoJson/china_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '南海诸岛': { - textCoord: [ - 126, - 25 - ], - getPath: function (leftTop, scale) { - var pList = [ - [ - [ - 0, - 3.5 - ], - [ - 7, - 11.2 - ], - [ - 15, - 11.9 - ], - [ - 30, - 7 - ], - [ - 42, - 0.7 - ], - [ - 52, - 0.7 - ], - [ - 56, - 7.7 - ], - [ - 59, - 0.7 - ], - [ - 64, - 0.7 - ], - [ - 64, - 0 - ], - [ - 5, - 0 - ], - [ - 0, - 3.5 - ] - ], - [ - [ - 13, - 16.1 - ], - [ - 19, - 14.7 - ], - [ - 16, - 21.7 - ], - [ - 11, - 23.1 - ], - [ - 13, - 16.1 - ] - ], - [ - [ - 12, - 32.2 - ], - [ - 14, - 38.5 - ], - [ - 15, - 38.5 - ], - [ - 13, - 32.2 - ], - [ - 12, - 32.2 - ] - ], - [ - [ - 16, - 47.6 - ], - [ - 12, - 53.2 - ], - [ - 13, - 53.2 - ], - [ - 18, - 47.6 - ], - [ - 16, - 47.6 - ] - ], - [ - [ - 6, - 64.4 - ], - [ - 8, - 70 - ], - [ - 9, - 70 - ], - [ - 8, - 64.4 - ], - [ - 6, - 64.4 - ] - ], - [ - [ - 23, - 82.6 - ], - [ - 29, - 79.8 - ], - [ - 30, - 79.8 - ], - [ - 25, - 82.6 - ], - [ - 23, - 82.6 - ] - ], - [ - [ - 37, - 70.7 - ], - [ - 43, - 62.3 - ], - [ - 44, - 62.3 - ], - [ - 39, - 70.7 - ], - [ - 37, - 70.7 - ] - ], - [ - [ - 48, - 51.1 - ], - [ - 51, - 45.5 - ], - [ - 53, - 45.5 - ], - [ - 50, - 51.1 - ], - [ - 48, - 51.1 - ] - ], - [ - [ - 51, - 35 - ], - [ - 51, - 28.7 - ], - [ - 53, - 28.7 - ], - [ - 53, - 35 - ], - [ - 51, - 35 - ] - ], - [ - [ - 52, - 22.4 - ], - [ - 55, - 17.5 - ], - [ - 56, - 17.5 - ], - [ - 53, - 22.4 - ], - [ - 52, - 22.4 - ] - ], - [ - [ - 58, - 12.6 - ], - [ - 62, - 7 - ], - [ - 63, - 7 - ], - [ - 60, - 12.6 - ], - [ - 58, - 12.6 - ] - ], - [ - [ - 0, - 3.5 - ], - [ - 0, - 93.1 - ], - [ - 64, - 93.1 - ], - [ - 64, - 0 - ], - [ - 63, - 0 - ], - [ - 63, - 92.4 - ], - [ - 1, - 92.4 - ], - [ - 1, - 3.5 - ], - [ - 0, - 3.5 - ] - ] - ]; - var str = ''; - var left = leftTop[0]; - var top = leftTop[1]; - for (var i = 0, l = pList.length; i < l; i++) { - str += 'M ' + ((pList[i][0][0] * scale + left).toFixed(2) - 0) + ' ' + ((pList[i][0][1] * scale + top).toFixed(2) - 0) + ' '; - for (var j = 1, k = pList[i].length; j < k; j++) { - str += 'L ' + ((pList[i][j][0] * scale + left).toFixed(2) - 0) + ' ' + ((pList[i][j][1] * scale + top).toFixed(2) - 0) + ' '; - } - } - return str + ' Z'; - } - }, - '新疆': { - getGeoJson: function (callback) { - require(['./geoJson/xin_jiang_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '西藏': { - getGeoJson: function (callback) { - require(['./geoJson/xi_zang_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '内蒙古': { - getGeoJson: function (callback) { - require(['./geoJson/nei_meng_gu_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '青海': { - getGeoJson: function (callback) { - require(['./geoJson/qing_hai_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '四川': { - getGeoJson: function (callback) { - require(['./geoJson/si_chuan_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '黑龙江': { - getGeoJson: function (callback) { - require(['./geoJson/hei_long_jiang_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '甘肃': { - getGeoJson: function (callback) { - require(['./geoJson/gan_su_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '云南': { - getGeoJson: function (callback) { - require(['./geoJson/yun_nan_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '广西': { - getGeoJson: function (callback) { - require(['./geoJson/guang_xi_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '湖南': { - getGeoJson: function (callback) { - require(['./geoJson/hu_nan_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '陕西': { - getGeoJson: function (callback) { - require(['./geoJson/shan_xi_1_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '广东': { - getGeoJson: function (callback) { - require(['./geoJson/guang_dong_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '吉林': { - getGeoJson: function (callback) { - require(['./geoJson/ji_lin_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '河北': { - getGeoJson: function (callback) { - require(['./geoJson/he_bei_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '湖北': { - getGeoJson: function (callback) { - require(['./geoJson/hu_bei_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '贵州': { - getGeoJson: function (callback) { - require(['./geoJson/gui_zhou_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '山东': { - getGeoJson: function (callback) { - require(['./geoJson/shan_dong_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '江西': { - getGeoJson: function (callback) { - require(['./geoJson/jiang_xi_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '河南': { - getGeoJson: function (callback) { - require(['./geoJson/he_nan_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '辽宁': { - getGeoJson: function (callback) { - require(['./geoJson/liao_ning_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '山西': { - getGeoJson: function (callback) { - require(['./geoJson/shan_xi_2_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '安徽': { - getGeoJson: function (callback) { - require(['./geoJson/an_hui_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '福建': { - getGeoJson: function (callback) { - require(['./geoJson/fu_jian_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '浙江': { - getGeoJson: function (callback) { - require(['./geoJson/zhe_jiang_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '江苏': { - getGeoJson: function (callback) { - require(['./geoJson/jiang_su_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '重庆': { - getGeoJson: function (callback) { - require(['./geoJson/chong_qing_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '宁夏': { - getGeoJson: function (callback) { - require(['./geoJson/ning_xia_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '海南': { - getGeoJson: function (callback) { - require(['./geoJson/hai_nan_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '台湾': { - getGeoJson: function (callback) { - require(['./geoJson/tai_wan_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '北京': { - getGeoJson: function (callback) { - require(['./geoJson/bei_jing_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '天津': { - getGeoJson: function (callback) { - require(['./geoJson/tian_jin_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '上海': { - getGeoJson: function (callback) { - require(['./geoJson/shang_hai_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '香港': { - getGeoJson: function (callback) { - require(['./geoJson/xiang_gang_geo'], function (md) { - callback(decode(md)); - }); - } - }, - '澳门': { - getGeoJson: function (callback) { - require(['./geoJson/ao_men_geo'], function (md) { - callback(decode(md)); - }); - } - } - }; - return { - decode: decode, - params: mapParams - }; -});define('echarts/util/mapData/textFixed', [], function () { - return { - '广东': [ - 0, - -10 - ], - '香港': [ - 10, - 10 - ], - '澳门': [ - -10, - 18 - ], - '黑龙江': [ - 0, - 20 - ], - '天津': [ - 5, - 5 - ], - '深圳市': [ - -35, - 0 - ], - '红河哈尼族彝族自治州': [ - 0, - 20 - ], - '楚雄彝族自治州': [ - -5, - 15 - ], - '石河子市': [ - -5, - 5 - ], - '五家渠市': [ - 0, - -10 - ], - '昌吉回族自治州': [ - 10, - 10 - ], - '昌江黎族自治县': [ - 0, - 20 - ], - '陵水黎族自治县': [ - 0, - 20 - ], - '东方市': [ - 0, - 20 - ], - '渭南市': [ - 0, - 20 - ] - }; -});define('echarts/util/mapData/geoCoord', [], function () { - return { - 'Russia': [ - 100, - 60 - ], - 'United States of America': [ - -99, - 38 - ] - }; -});define('echarts/util/projection/svg', [ - 'require', - 'zrender/shape/Path' -], function (require) { - var PathShape = require('zrender/shape/Path'); - function toFloat(str) { - return parseFloat(str || 0); - } - function getBbox(root) { - var svgNode = root.firstChild; - while (!(svgNode.nodeName.toLowerCase() == 'svg' && svgNode.nodeType == 1)) { - svgNode = svgNode.nextSibling; - } - var x = toFloat(svgNode.getAttribute('x')); - var y = toFloat(svgNode.getAttribute('y')); - var width = toFloat(svgNode.getAttribute('width')); - var height = toFloat(svgNode.getAttribute('height')); - return { - left: x, - top: y, - width: width, - height: height - }; - } - function geoJson2Path(root, transform) { - var scale = [ - transform.scale.x, - transform.scale.y - ]; - var elList = []; - function _getShape(root) { - var tagName = root.tagName; - if (shapeBuilders[tagName]) { - var obj = shapeBuilders[tagName](root, scale); - if (obj) { - obj.scale = scale; - obj.properties = { name: root.getAttribute('name') || '' }; - obj.id = root.id; - extendCommonAttributes(obj, root); - elList.push(obj); - } - } - var shapes = root.childNodes; - for (var i = 0, len = shapes.length; i < len; i++) { - _getShape(shapes[i]); - } - } - _getShape(root); - return elList; - } - function pos2geo(obj, p) { - var point = p instanceof Array ? [ - p[0] * 1, - p[1] * 1 - ] : [ - p.x * 1, - p.y * 1 - ]; - return [ - point[0] / obj.scale.x, - point[1] / obj.scale.y - ]; - } - function geo2pos(obj, p) { - var point = p instanceof Array ? [ - p[0] * 1, - p[1] * 1 - ] : [ - p.x * 1, - p.y * 1 - ]; - return [ - point[0] * obj.scale.x, - point[1] * obj.scale.y - ]; - } - function trim(str) { - return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); - } - function extendCommonAttributes(obj, xmlNode) { - var color = xmlNode.getAttribute('fill'); - var strokeColor = xmlNode.getAttribute('stroke'); - var lineWidth = xmlNode.getAttribute('stroke-width'); - var opacity = xmlNode.getAttribute('opacity'); - if (color && color != 'none') { - obj.color = color; - if (strokeColor) { - obj.brushType = 'both'; - obj.strokeColor = strokeColor; - } else { - obj.brushType = 'fill'; - } - } else if (strokeColor && strokeColor != 'none') { - obj.strokeColor = strokeColor; - obj.brushType = 'stroke'; - } - if (lineWidth && lineWidth != 'none') { - obj.lineWidth = parseFloat(lineWidth); - } - if (opacity && opacity != 'none') { - obj.opacity = parseFloat(opacity); - } - } - function parsePoints(str) { - var list = trim(str).replace(/,/g, ' ').split(/\s+/); - var points = []; - for (var i = 0; i < list.length;) { - var x = parseFloat(list[i++]); - var y = parseFloat(list[i++]); - points.push([ - x, - y - ]); - } - return points; - } - var shapeBuilders = { - path: function (xmlNode, scale) { - var path = xmlNode.getAttribute('d'); - var rect = PathShape.prototype.getRect({ path: path }); - return { - shapeType: 'path', - path: path, - cp: [ - (rect.x + rect.width / 2) * scale[0], - (rect.y + rect.height / 2) * scale[1] - ] - }; - }, - rect: function (xmlNode, scale) { - var x = toFloat(xmlNode.getAttribute('x')); - var y = toFloat(xmlNode.getAttribute('y')); - var width = toFloat(xmlNode.getAttribute('width')); - var height = toFloat(xmlNode.getAttribute('height')); - return { - shapeType: 'rectangle', - x: x, - y: y, - width: width, - height: height, - cp: [ - (x + width / 2) * scale[0], - (y + height / 2) * scale[1] - ] - }; - }, - line: function (xmlNode, scale) { - var x1 = toFloat(xmlNode.getAttribute('x1')); - var y1 = toFloat(xmlNode.getAttribute('y1')); - var x2 = toFloat(xmlNode.getAttribute('x2')); - var y2 = toFloat(xmlNode.getAttribute('y2')); - return { - shapeType: 'line', - xStart: x1, - yStart: y1, - xEnd: x2, - yEnd: y2, - cp: [ - (x1 + x2) * 0.5 * scale[0], - (y1 + y2) * 0.5 * scale[1] - ] - }; - }, - circle: function (xmlNode, scale) { - var cx = toFloat(xmlNode.getAttribute('cx')); - var cy = toFloat(xmlNode.getAttribute('cy')); - var r = toFloat(xmlNode.getAttribute('r')); - return { - shapeType: 'circle', - x: cx, - y: cy, - r: r, - cp: [ - cx * scale[0], - cy * scale[1] - ] - }; - }, - ellipse: function (xmlNode, scale) { - var cx = parseFloat(xmlNode.getAttribute('cx') || 0); - var cy = parseFloat(xmlNode.getAttribute('cy') || 0); - var rx = parseFloat(xmlNode.getAttribute('rx') || 0); - var ry = parseFloat(xmlNode.getAttribute('ry') || 0); - return { - shapeType: 'ellipse', - x: cx, - y: cy, - a: rx, - b: ry, - cp: [ - cx * scale[0], - cy * scale[1] - ] - }; - }, - polygon: function (xmlNode, scale) { - var points = xmlNode.getAttribute('points'); - var min = [ - Infinity, - Infinity - ]; - var max = [ - -Infinity, - -Infinity - ]; - if (points) { - points = parsePoints(points); - for (var i = 0; i < points.length; i++) { - var p = points[i]; - min[0] = Math.min(p[0], min[0]); - min[1] = Math.min(p[1], min[1]); - max[0] = Math.max(p[0], max[0]); - max[1] = Math.max(p[1], max[1]); - } - return { - shapeType: 'polygon', - pointList: points, - cp: [ - (min[0] + max[0]) / 2 * scale[0], - (min[1] + max[1]) / 2 * scale[0] - ] - }; - } - }, - polyline: function (xmlNode, scale) { - var obj = shapeBuilders.polygon(xmlNode, scale); - return obj; - } - }; - return { - getBbox: getBbox, - geoJson2Path: geoJson2Path, - pos2geo: pos2geo, - geo2pos: geo2pos - }; -});define('echarts/util/projection/normal', [], function () { - function getBbox(json, specialArea) { - specialArea = specialArea || {}; - if (!json.srcSize) { - parseSrcSize(json, specialArea); - } - return json.srcSize; - } - function parseSrcSize(json, specialArea) { - specialArea = specialArea || {}; - convertorParse.xmin = 360; - convertorParse.xmax = -360; - convertorParse.ymin = 180; - convertorParse.ymax = -180; - var shapes = json.features; - var geometries; - var shape; - for (var i = 0, len = shapes.length; i < len; i++) { - shape = shapes[i]; - if (shape.properties.name && specialArea[shape.properties.name]) { - continue; - } - switch (shape.type) { - case 'Feature': - convertorParse[shape.geometry.type](shape.geometry.coordinates); - break; - case 'GeometryCollection': - geometries = shape.geometries; - for (var j = 0, len2 = geometries.length; j < len2; j++) { - convertorParse[geometries[j].type](geometries[j].coordinates); - } - break; - } - } - json.srcSize = { - left: convertorParse.xmin.toFixed(4) * 1, - top: convertorParse.ymin.toFixed(4) * 1, - width: (convertorParse.xmax - convertorParse.xmin).toFixed(4) * 1, - height: (convertorParse.ymax - convertorParse.ymin).toFixed(4) * 1 - }; - return json; - } - var convertor = { - formatPoint: function (p) { - return [ - (p[0] < -168.5 && p[1] > 63.8 ? p[0] + 360 : p[0]) + 168.5, - 90 - p[1] - ]; - }, - makePoint: function (p) { - var self = this; - var point = self.formatPoint(p); - if (self._bbox.xmin > p[0]) { - self._bbox.xmin = p[0]; - } - if (self._bbox.xmax < p[0]) { - self._bbox.xmax = p[0]; - } - if (self._bbox.ymin > p[1]) { - self._bbox.ymin = p[1]; - } - if (self._bbox.ymax < p[1]) { - self._bbox.ymax = p[1]; - } - var x = (point[0] - convertor.offset.x) * convertor.scale.x + convertor.offset.left; - var y = (point[1] - convertor.offset.y) * convertor.scale.y + convertor.offset.top; - return [ - x, - y - ]; - }, - Point: function (coordinates) { - coordinates = this.makePoint(coordinates); - return coordinates.join(','); - }, - LineString: function (coordinates) { - var str = ''; - var point; - for (var i = 0, len = coordinates.length; i < len; i++) { - point = convertor.makePoint(coordinates[i]); - if (i === 0) { - str = 'M' + point.join(','); - } else { - str = str + 'L' + point.join(','); - } - } - return str; - }, - Polygon: function (coordinates) { - var str = ''; - for (var i = 0, len = coordinates.length; i < len; i++) { - str = str + convertor.LineString(coordinates[i]) + 'z'; - } - return str; - }, - MultiPoint: function (coordinates) { - var arr = []; - for (var i = 0, len = coordinates.length; i < len; i++) { - arr.push(convertor.Point(coordinates[i])); - } - return arr; - }, - MultiLineString: function (coordinates) { - var str = ''; - for (var i = 0, len = coordinates.length; i < len; i++) { - str += convertor.LineString(coordinates[i]); - } - return str; - }, - MultiPolygon: function (coordinates) { - var str = ''; - for (var i = 0, len = coordinates.length; i < len; i++) { - str += convertor.Polygon(coordinates[i]); - } - return str; - } - }; - var convertorParse = { - formatPoint: convertor.formatPoint, - makePoint: function (p) { - var self = this; - var point = self.formatPoint(p); - var x = point[0]; - var y = point[1]; - if (self.xmin > x) { - self.xmin = x; - } - if (self.xmax < x) { - self.xmax = x; - } - if (self.ymin > y) { - self.ymin = y; - } - if (self.ymax < y) { - self.ymax = y; - } - }, - Point: function (coordinates) { - this.makePoint(coordinates); - }, - LineString: function (coordinates) { - for (var i = 0, len = coordinates.length; i < len; i++) { - this.makePoint(coordinates[i]); - } - }, - Polygon: function (coordinates) { - for (var i = 0, len = coordinates.length; i < len; i++) { - this.LineString(coordinates[i]); - } - }, - MultiPoint: function (coordinates) { - for (var i = 0, len = coordinates.length; i < len; i++) { - this.Point(coordinates[i]); - } - }, - MultiLineString: function (coordinates) { - for (var i = 0, len = coordinates.length; i < len; i++) { - this.LineString(coordinates[i]); - } - }, - MultiPolygon: function (coordinates) { - for (var i = 0, len = coordinates.length; i < len; i++) { - this.Polygon(coordinates[i]); - } - } - }; - function geoJson2Path(json, transform, specialArea) { - specialArea = specialArea || {}; - convertor.scale = null; - convertor.offset = null; - if (!json.srcSize) { - parseSrcSize(json, specialArea); - } - transform.offset = { - x: json.srcSize.left, - y: json.srcSize.top, - left: transform.OffsetLeft || 0, - top: transform.OffsetTop || 0 - }; - convertor.scale = transform.scale; - convertor.offset = transform.offset; - var shapes = json.features; - var geometries; - var pathArray = []; - var val; - var shape; - for (var i = 0, len = shapes.length; i < len; i++) { - shape = shapes[i]; - if (shape.properties.name && specialArea[shape.properties.name]) { - continue; - } - if (shape.type == 'Feature') { - pushApath(shape.geometry, shape); - } else if (shape.type == 'GeometryCollection') { - geometries = shape.geometries; - for (var j = 0, len2 = geometries.length; j < len2; j++) { - val = geometries[j]; - pushApath(val, val); - } - } - } - var shapeType; - var shapeCoordinates; - var str; - function pushApath(gm, shape) { - shapeType = gm.type; - shapeCoordinates = gm.coordinates; - convertor._bbox = { - xmin: 360, - xmax: -360, - ymin: 180, - ymax: -180 - }; - str = convertor[shapeType](shapeCoordinates); - pathArray.push({ - path: str, - cp: shape.properties.cp ? convertor.makePoint(shape.properties.cp) : convertor.makePoint([ - (convertor._bbox.xmin + convertor._bbox.xmax) / 2, - (convertor._bbox.ymin + convertor._bbox.ymax) / 2 - ]), - properties: shape.properties, - id: shape.id - }); - } - return pathArray; - } - function pos2geo(obj, p) { - var x; - var y; - if (p instanceof Array) { - x = p[0] * 1; - y = p[1] * 1; - } else { - x = p.x * 1; - y = p.y * 1; - } - x = x / obj.scale.x + obj.offset.x - 168.5; - x = x > 180 ? x - 360 : x; - y = 90 - (y / obj.scale.y + obj.offset.y); - return [ - x, - y - ]; - } - function geo2pos(obj, p) { - convertor.offset = obj.offset; - convertor.scale = obj.scale; - return p instanceof Array ? convertor.makePoint([ - p[0] * 1, - p[1] * 1 - ]) : convertor.makePoint([ - p.x * 1, - p.y * 1 - ]); - } - return { - getBbox: getBbox, - geoJson2Path: geoJson2Path, - pos2geo: pos2geo, - geo2pos: geo2pos - }; -});define('echarts/util/mapData/geoJson/an_hui_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '3415', - 'properties': { - 'name': '六安市', - 'cp': [ - 116.3123, - 31.8329 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„„nJ‚UXUVƒ°U„ÑnU@mlLVaVln@@bn@VU@xlb@lšLnKlšƒVI„JšUVxnI@lVL@b„ްVX@˜b„x„nVVUnVVnU‚›@kX@VwV@„al¥UUnUWa@ƒ@wĸU„LU¥lKUa@aUI@alLVaUƒ¯anƒWkUKm@XV@VaXlW@aU_UWVUƒI¯@ma¯W¯™™I@UU@WWU@U@@UU@VkV@@WUUm@UaU@„lK@IUK„L@KWmXUWaXI@ƒ@a@a@U@U@KV¥lw„k°b²JVIVKlV@UX„la„Ul`œUVLVVVUšJ„U@Lnm@_VK@KUIW@™J@Xk@WW@U—ƒmm™XmWk@kK@aUUƒVmmkUwUmWL™@WmU@™UJmUULkKWakLWVkIƒlƒwULƒW@X°lUJ@°ULƒWV—wmJ@bmb¯Vkm@@WkWm¯wƒL@lkXƒWmXym¯UImJUbkV™@Vn¯„@V@lUbƒ@mk@maUxmlUbULWn@J—LmKUkWKkwUKƒbm„X„WxkVUKmLkVV@JUUWL@xkJUUƒV@X@VVlUbVX@xk¤šx‚¼œxWxn„‚nn@Þ¼„JVb°aVn„@šmlnXU„JlbVlkz@‚lUŽlXJmxVxXnWxXÈWlUŽ@šUxU@VX@xUL@šUÆmLnV@lWXk@@JlbXblnlJ'], - 'encodeOffsets': [[ - 118710, - 33351 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3408', - 'properties': { - 'name': '安庆市', - 'cp': [ - 116.7517, - 30.5255 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n°‚znW„XlW@k„K°xXn‚l@Xn@l‚°Una@anI˜xXU„ŽVK@¯VIkW¯X@‚„VK„x„klJXUlKXblLVKnVVIšŽV@Xn‚@šŽXKVnVxlŽnn„UlmV@²óUkV™lW„b„lƒšƒn@VVVIn@lw@WVIXblV„@Èx‚aUaVIVVnKVLšK„ƒln@b²K@»U£ƒÑķƒġÝÅb™K™a@Im@ۍ„@kWÓkkmKÅnóJƒUÅ£›W@w„ĕ@wĉţ¯¯ƒUkK±l¯Uƒ¥UÑkÝUķ»Ý¥¯™JƒIUŽVbUl¯ÈV¼VJU¼Vb@bkLUl@„VJ@bUXǚ@lkVmXmKkLVxš‚Ž„VƒL@VkVVVlzW˜kbmLUUUbVbUV™šlÒnJlUnLllUL@bU„Vx„l‚LXVƦÈVU¦WJ'], - 'encodeOffsets': [[ - 118834, - 31759 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3411', - 'properties': { - 'name': '滁州市', - 'cp': [ - 118.1909, - 32.536 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@š„@`nnl@„xšK@X°KXV˜IXVlbXVWnX‚lL@šÈ»‚LVan@VJ„êVVn@‚X@laÞbVaƒyn@„_‚xnWVXnWl@VnUVkI@l‚nXKVLVV@V@kW@LlVô„@J@bVnnKnkVa@»lç@ƒnwšKma™UUUVњ@n™mWXalI@alVn@VwUaVU„@„nlaôJnU„VVXlJšaXXVK@UšV@VWx@nXVWšXVšUlLUbV‚ULVVnUVbUbVbš@@a„KÆnnKVK@U@UU@@a„@Vƒ°¯ÈJVIlķ@aa˜UaVKU_@mkxUI@aƒUlyU@@™wkKWmUbUnUVWbkJW_J@bƒn@Vm@@KULk@V@@bVbÅm@LW@UVVbkK@UkKWL@VULUKWIUJUbkK@_WVXU›Jka@XƒVa@kšy@aVIUUW@@m„UlLœKWÑUKVan@UkVmmIXKƒaVaUwVU@UmykU¯@±UUL@WUIVUU@KkIWaƒaU@kUUaǃUó»mKƒk¯@y@kWK@bkI¯`mn™l¯XWlkVUzUJlbUbVJl@nnm„@VULV`XnWƗbmUUn™JmUknƒJ¯km@ƒyk@kU›xL@VUbmnn¤lX@`™z@JmaULUVl@Xn@xllkXWa—aW@UVmUbƒ@mVXšWxXbWbUŽƒÒnVVnVVUL'], - 'encodeOffsets': [[ - 120004, - 33520 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3418', - 'properties': { - 'name': '宣城市', - 'cp': [ - 118.8062, - 30.6244 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Vb@„XL˜JXxlIXxlVlV@I²¤šnlUnVšU@VULWVUJ@Lnb@lV@UnV@@VVVlLnbnJ‚UVkUUVWn@@anUVnVJVIV‚@@nUJVbUb‚„@VUbVK@bn@VbnIlxkllXVlXKWUXUlL°¤UVVb@bš„UlkXW‚ƒxXz@‚„Ila„UlƒnUlJVInVÆJ„U„LVUnV„K°@VnlVnxV@XLlK@wVL@KnUlJXU˜bnKVLX„lUw@VWlLXKm@@a„@VLnmlIVVnKn@škVašVlwk@@a@k@ƒVIUa™@maUa@wna@kmWƒ™UUmVUIVǗ@aƒKm™aƒ™kU™J@InmUUaVa„k‚lX@Vk@m@VU@wnK@alKVUkUkKƒbmUkmƒ@U£WVk@@UÝbbƒaÇx@b@WVUa¯ƒ@wVwUUV@VwnK@KWaŁ@KšIUyUI@WmXó™UbWaKm™@km@IUyƒIUaWKƒx@zUKUL@llVUnkLVVkJWX@VUKUVƒIkVWakb@VWb@n@JkXUlmL@xkL@`VxšLUÈUJ@Vm@@bmIUlUL@VUVVbknm@mKUw™KVÈ@J@LV±kkJUIƒl'], - 'encodeOffsets': [[ - 120803, - 31247 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3412', - 'properties': { - 'name': '阜阳市', - 'cp': [ - 115.7629, - 32.9919 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@V™nƒš@ša„k°aš±@‚¥@UUI@aUmlwUUx›b@¥XU@mmI@a@Kn@@_W@@W„I@mšUVVXUl@XaV@‚K@I@a„LX@aVI°K@KVL„UUw‚yXkšK@kšKÆbXnlK@k@a„JlU@w@U@»@aXKWƒn_‚JXkVKnƒ@°LlKXƒW@¯Uƒ@aUK@kmJUw™VƒIUJ™„kŽmL™K@kka@wUVm@@am@UkUbkK@nmVƒÒ¯VU„WVVmIƒƒULk@ƒƒma@kkKƒƒ@nUbUamU™`UUVUkKVkkƒW@@bkmƒnƒmUXVKXVƒL@VƒbU„m‚™bVXJ@nmKÅI@KWKUXVJUL@VUKUX@KUKWL@LUJmaXXm@kVVV@L@VUL@VlK@L@V@LUK@VUb@UUU@°@nVxU`‚Lkn@`@XVJ@X™Vm„k@UKmV¯LVVn±Wm@Ub@JlLUl„@VLk„@lmVVn@bnV@V°IV™šaVJXI°K°V@XXVlVVU„nšKVlUš„bWXnV@bV`U„„@@m@@‚ƒ@nxmn@bXVlL@¤nb„Ul¦šVVUnJVU„Vl@@bÞL'], - 'encodeOffsets': [[ - 118418, - 34392 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3413', - 'properties': { - 'name': '宿州市', - 'cp': [ - 117.5208, - 33.6841 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@UWU@bkW@aWU@aUIkWV™lLXb„lVIUVV@‚mn@V_n@VaUK@I‚@UašanJVU„@lV„UVnnKVVlaUa„I@wnK‚Lnll@nVlk@wVKXkl@@b„bUJ@V‚U@U„UUyVk@aVUXwlWXX‚WU¹@aU™@WUI@mlUšn„J@Il@šaXbV@VKl@XxVL@W„IšJlb„@„al@„IUUm@@aVK@¥¯—@mUķ¯bWƒk£Vm@akm@VaÅ@UVWaƒ@UJWkƒJ—UƒbWbU@UlƒXk@ƒamV@K¯nk@ƒlU@Uxmz@bU`ÇbUbÅVm£U@Ww™x@akLUK@UlakwUJWVkLmaUal@n_ƒmVUnKVUUmÅXWa™@kJmx@XUJ@bVLXxl@VVUVV„UbkLWbU@@lUVV„VVX„›K@XkJ@nU@@bV@VxUVlb„U@xXLWŽn@UxVbVĊ„V@b@XV`mnkJ@kUKmbƒaU@VbnbÆx@XU@@`k@@bl„™@@bkL@WƒakXWaU@Vmkx@XWW@@wUUUbƒJ™U¯V™@¯ÞU@WxXŽlL@bkb@ŽlVlnb™JW@kkU@mbkaWJ—IVlmz¯`UnU@mb™@@„ƒ`@bkVlœnV@b@šV@„aVxn@Vx‚KXnl@nbVK„bVK@a„_V@Vƒ„w@W„LlwnK@UmIU@VWš@šUÈ@lKnal„wš@@V°@šaUmlUUw@„ƒV@@UXK'], - 'encodeOffsets': [[ - 119836, - 35061 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3410', - 'properties': { - 'name': '黄山市', - 'cp': [ - 118.0481, - 29.9542 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lXnlWX@VUJVnUJVzXJVx„kVJlI²l‚U@K@IUǚLVxnLn@lmUaVU@UVKVknJ@an@@UVIVǙKUw@_lK@wnKVklW@I@mXa@UlaXblU„JVUVL@UXWlIUUlKVmkU@kVKVL@y„wXLVb„JVz@Jlnš@nŽ‚LXbVaôšnW@la@UVWUa@@a@mk@WIk@VwUa¯¥m@UUVK@ImK@aX£ƒkK›ÅV™a™™ƒ_@±ƒakXWW—LƒƒƒnU@@a@¯mK@L™JUWwUV™VmbXX@lWLn`mzUJUb™Lƒ„k@makVWmkX™ambkKknƒaƒ@ƒaƒb@‚U@Unm@—ƒWVƒ@VbUbUJWIk@@lmL@°UVUVm„nš™@@kmWkb@xƒ_m@@aU@b@JlŽUz™lWxXn„@‚b²@l`„IVl„UlL@VšK„nVbUl@VlIn@@b„bVWUk‚@@bX@Valb@bnb°Vn@„xVKlbVnV@V‚x„L@ln@UXVV‚L˜'], - 'encodeOffsets': [[ - 120747, - 31095 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3414', - 'properties': { - 'name': '巢湖市', - 'cp': [ - 117.7734, - 31.4978 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VV@blL@ŽXlWnnšnŽ˜„@VXXl@@WšIX@VJ@LšxŎxlnšŽ@bXJVblX@VVbUVn@VbUVlb@LnJVbVLV‚XLšÒVL„ÒšV„bVIVylUXk°Wšknm°_lJ@aXL@l‚z°@„lnLô¼V‚È„VUUaVKU@WW@@UUa@knmVLlaV@„a@kšak±@UmwkKmk™lj™ÝUUkL@mlIVmnÝWkkUÝ@KƑĉ™a@»ƒmma@mX™¤¯Uƒw@ƒ@UU@bU±±L@akmƒ„™LUKmLUUUJVbbÇwƒ@kUWaUJ@Xkxm@UJUUm@™„k„ƒ‚ƒakXUšVl±ôU@kn'], - 'encodeOffsets': [[ - 119847, - 32007 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3416', - 'properties': { - 'name': '亳州市', - 'cp': [ - 116.1914, - 33.4698 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lU@Un@@anUlw@KVmUwlaX_lKna@KU@@kWKUU@ankW™XK˜@@V²VVIÈU@al@VaÈamK@wU™@klaUƒV@XƒVUU»WUUbkmUkVmk@aÈw@mWU@VkIkVWKUÑķXȭºU¯lƒ@kkLWmÅa™L@l™LWlzVxƒVUK@L¯LUJ@bWƒK@b@JLU@Wbk@WVUU™V@nƒJ@XX@@`m@@L@bnJ@nWV@¦œa‚wVVkxVn@bVJ@V¦@Ž™²¯bƒl™b™@m„UšUŽƒŽ@¼ƒ¦Xb‚UV`@nnxUxWLkUkVWKkV@XV@@VVL@VX„@lVV@L@blL@`šL@xXKVL‚@„VnUš@lwnU@ml@XnV@@UVW°LnalƒUI@aUK@a‚a@U„kXW@I@mWL@UXK@UVW@U‚@@k„Wn‚@@V„@XblaVxšL@bVKXb„IlJ'], - 'encodeOffsets': [[ - 119183, - 34594 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3417', - 'properties': { - 'name': '池州市', - 'cp': [ - 117.3889, - 30.2014 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@„V°°ĊŤ@xƒĖ@xœXƤ„VôIÆmnLllXÔ@lƒÜŽn@@JšbšLÆaĢÞĸ„°VVUUKVanK@UV@VL„VVn„ln@‚xnklxXamk@WV@Xa˜@naVk„Klk™@mkUWwkJWw—IWK@ƒUaUwWIUyVIUmVI@UXWmkkW‚—KUUVWm@@kƒKw@U‚UUmkaULƒwm@¯Uma@akaUbW@@a@VlUXƒa@am@kJ@UVkUaƒm™L@UkKƒVUkƒJk_±@aƒ@WmXwÇkkaVaUa±ƒœwV@VkƒwnyUaW@UU¯amLk@m™@kmmU™™¯K@L@lUX¯ƒWlkXƒŽVb„bƒVUL@J@LVKnlJXnlb@`nXlalV@bnL@Vnb˜¼@lXbWlkL™K@zUJmIUxUVUVmX', - '@@llUL@VlxšL@a@UƒwXa¯@' - ], - 'encodeOffsets': [ - [ - 119543, - 30781 - ], - [ - 120061, - 31152 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '3401', - 'properties': { - 'name': '合肥市', - 'cp': [ - 117.29, - 32.0581 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„L„xV‚ĊLÞkšVlVVXaWaXwW™nU„@‚anVVUX@˜bXblWkk@wWmk@VUVKnb@Išy@_kWm£nmVa@U‚KœwlVl@„zn@°l„IlmnVšIVmnV˜aXÅWmU_VK@Unƒmmk@UIVakaƒa™UƒÑUK™ÑWKUUKUamI@KkaVUUam@VUUa@UkWUaWI@a™kmōw™wUL@`mn@KƒV™IUVUUUK›Vk_ƒVkbWƒ@VkUULUJ±I¯aƒlkxU¦@L@V@V@b@b@„WJXbWVXn@LƒKVL@JkLƒŽV@Vbn@VV@XU@UlV@@VV@V@XXV@@VšJ°š°Xnb°@„JUVVXV`@bkXWŽUbU@WŽn@VLXlm„°bV„UbkK@bVJ@bVbkLV¦ƒKķV@x@„XbmVVVk¦'], - 'encodeOffsets': [[ - 119678, - 33323 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3403', - 'properties': { - 'name': '蚌埠市', - 'cp': [ - 117.4109, - 33.1073 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VÒXLlUlJ@UXV@nÇx@bnlUVllnVaXVV¼UVW„U@V„²wVV@Vl@„VnwlIš@XbÆWVnUVmLUV„nm`k@VbnblKXUVIlxkb@VVLlK@bšwXxV@n¤ÆUVaÈaV_@anyVwV@„kl@°m@LnU„bl@„WVkV@Xa„a˜V„IXl‚IV‚„@XbVUÆ@XKWwUkmW@_UmnIlJXkWKXmV@‚w@_XV@Kl@kU@KlX@@UUUUKWLm@klJVUUmk@mXUWmXwƒ`m@„zUbÝakbW@m@UUƒéUIm@UbKǼ@™kKWXmWUkaWU—JWU¯L@W™Lƒwk@mm@_™ƒÅl™UVkmWUnV@VWLUb™bƑĬ¯l'], - 'encodeOffsets': [[ - 119543, - 33722 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3402', - 'properties': { - 'name': '芜湖市', - 'cp': [ - 118.3557, - 31.0858 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„bVaV@XllLXU°ŽlL@V@VUnVl¯Ikš›VUVU@@b@lUXUWmb„n@¼šbƒĊ‚LÞ@lVXlmÞUnkJ@nlKVVšÞXklWVaVI@aUKn»lL@Kn@‚XXwlm@mn°@„V@Wy„wXlWVk™ƒ@aUaVU¯£kKWVXVWLUkkWlkkwmJUam@@aULVa@UƒVaUaVI@m‚@UUJUIUmmV@bm@UXVVUlVmImakKUU@UU@VmU@@kma@KVIXUVK@U™VmUkV™m±£@JkU@nlšk‚ƒLUlmb—@WbU@@XnlWb'], - 'encodeOffsets': [[ - 120814, - 31585 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3406', - 'properties': { - 'name': '淮北市', - 'cp': [ - 116.6968, - 33.6896 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@lnnK@¦n@@V‚V„@@VV@nIV„V@VW²a@b@bVnUVVV@V™z@lš@°UšV„IVaVV@x@ŽXX@WlwUnV@XblW„b@XlK@aš@kƒ@al@@_V@@WÅwmaUaV@„bnaVL@llInmU_@W@aƒUUĉUaVwm@XWK@wƒVkaVUUwU@@aV@@mlI@WœLWƒUUUƒVU@kV@XalKVaUƒVUUUk@WwUK@aVI@WƒUk@@UUU±xkb@lVš@xnLÇbUbk@@bÇVUJ±U@U—@WLXšml@bVVXL@lV@@LmbkLW`kbVxUn@LkxmV@bm@@VkV'], - ['@@VVVkV@¥@UV@U@VUUJƒkWakKUšlXVJ@bXV@blX@aXV@V'] - ], - 'encodeOffsets': [ - [[ - 119183, - 34594 - ]], - [[ - 119836, - 35061 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '3404', - 'properties': { - 'name': '淮南市', - 'cp': [ - 116.7847, - 32.7722 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°kƒīšaVaXK@U‚UVmnXUlšVÆkVKUUUmmU„ÑkU™UÝlĉKUƒwƒKƒbU@UxW@@lœmVUUVmUUƒmƒw—aW„kL¯K@Žm„ULWlIm`X„WL@b@¼@V@xkVƒI@b@l@lk„V°Ȯ¹ĸW'], - 'encodeOffsets': [[ - 119543, - 33722 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3405', - 'properties': { - 'name': '马鞍山市', - 'cp': [ - 118.6304, - 31.5363 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šNJnllLnxV@laXLVKma„aXbVI„bVKVVVIVyn@n_ƒƒW@@ƒ„UnJlUVVXlLnaUWlV@VV„IXW@_W@XK@K@UVUUwVamÑXmmwƒw™KUnUK™çU@ƒJƒU¯@mŽ@nknWxWm@@LkKm¼VL@bUJUbkXWl'], - 'encodeOffsets': [[ - 121219, - 32288 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3407', - 'properties': { - 'name': '铜陵市', - 'cp': [ - 117.9382, - 30.9375 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@„ÒV¤@¼V²@aVV@Ž@„„x°Vš£nW‚@nbnaVXVW@k@aV@VUœUl™°JUkVm@U@UkK¯WVkKWkU@Ubƒakwmlwm@ƒkUmƒUUKU@@VmLUbVLUV¯U'], - ['@@LllUL@VlxšL@a@UƒwXamK'] - ], - 'encodeOffsets': [ - [[ - 120522, - 31529 - ]], - [[ - 120094, - 31146 - ]] - ] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/ao_men_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [{ - 'type': 'Feature', - 'id': '8200', - 'properties': { - 'name': '澳门', - 'cp': [ - 113.5715, - 22.1583 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@HQFMDIDGBI@E@EEKEGCEIGGEKEMGSEU@CBEDAJAP@F@LBT@JCHMPOdADCFADAB@LFLDFFP@DAB@@AF@D@B@@FBD@FADHBBHAD@FAJ@JEDCJI`gFIJW'], - 'encodeOffsets': [[ - 116325, - 22699 - ]] - } - }], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/bei_jing_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '110228', - 'properties': { - 'name': '密云县', - 'cp': [ - 117.0923, - 40.5121 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@vIHZDZQtDLNMXIbHRCXXITbJ@H`LGPRDDJNCLHTOCWFGvGBUJMKGFO^IHWXITQCI’Y^AXGfRˆDXF`DJOLB~G\\DZIHHpErUVMhHb]\\M†BVF@FTP`@zTbD\\@~M\\K`H^EVODWICAakAQXoIcCOCIgGYNWFWNGGKKGaJEGMEIKYJUT_J_Go@_SyQaSFMEGTcYOQLIIi@EKAUPCV[EEXQCW|aMUMAaYCYNIDGGACIMGGSKDQGaF_C[GaB@GOIiOKAYL“mI@CN]F[SWWAcKKI@HMUimEKbeYQYISNUOcBKPIFBNgvDPGZYFSf]CMSIWGEUFgDIQ[MeDMJS@RR@LphFPCHaBAJKF@J]IBJO@HlO@@RKAMPJHCNDJTHFP@ZGNANBRFH@J_fM^ONJNF\\VTDJHDON@XRND\\XRCPVETCLBVKDFJINHRGPRV@\\CLJN@VbXbLVT'], - 'encodeOffsets': [[ - 119561, - 41684 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110116', - 'properties': { - 'name': '怀柔区', - 'cp': [ - 116.6377, - 40.6219 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@JHTVHXCHPfnDJGHNDJSB[JSBGVSAOH@PMPuDEHHXZN@PHF@ZLJ@LHVYJA\\OFWP]BMtMBSRGV[JeVAPQVIFENMD¡–@^NV\\JH@NNL@NM\\kTQ\\I^FNIpBHGTBFFAZQfKDIXQTLXFXNNVMVHRGpCFLlRLEVBBH`IVO\\G`RDPAXLXBXORHZEHTDLLN@VGTMrQNFPeASKG@GMOAKBYMK@GTUHUXSHMVDNMOUEOZMJML@^KRACMZEZMRQLUHE@OFENPR@DI\\ChMHIDG\\GJMDWHCKGMDCIQCHO_K@GaIJSWWQDaGWJMNCKRsCYGYuJUSaKaW@UIMDK@[QUHOGQJMEILCAUDKFSOUQD[WMC‚Q@WPMGCCIUSE[IMPMN]`e@IEGAQBMHM@YEOSGCIDMIGNOLB@QP@GkP@AI^J@ILEBIbADGEOog@KQQWSekWQQUOFKZLF@PUNmIaHIUeBCTSHENcJa@_IWSaGu`GLSBKJQFOXGDXVQVOBIHcDSJWBEFGTMH[^mLaXcHiKElTRKtFXZ`MHMPCNRDxZˆB\\ICIHK@KŽHbIVFZ@BPnGTGbDXRDJaZKRiGEFSFEJhjFNZFjn'], - 'encodeOffsets': [[ - 119314, - 41552 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110111', - 'properties': { - 'name': '房山区', - 'cp': [ - 115.8453, - 39.7163 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@h@bl@HRJDZ``TA\\VVD^H`\\pF\\JŒ`JGv@ZO\\GPSTEjPTR`FnEbDTDHEhLFMTK@ETSPULKEI@OVISKSJACEQNQbV˜IXGDIN@dMB[IIBcN]ZHNLP@XOWCFWŠCNRHTpATD@^NVNLED@Rh@jCEF}E[OOHUEW]W@QGGDIQSH_MmFmCUT_K]i@MHCMW—FCF‹E{BMHMPOHKS]CFNGBELDH_@BcAKOACESAOBELaXAROB@FODMEDWJAG[aE@UM@DImEWJMC@OeCA{aE[@{L@MINUCQXKfUJORCHqJBF@TCXWNQX]M[EAJO@@KMBQJIC]EWMCCUBEBFHKDOTMBGNGF]MWDBRDdMDQVyE@LPVHDCP@JVVMTG~HNSH[CmRUvHPHBbA\\PTNRC\\YNJ€PRARPJDDR'], - 'encodeOffsets': [[ - 118343, - 40770 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110229', - 'properties': { - 'name': '延庆县', - 'cp': [ - 116.1543, - 40.5286 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@^AXOPEB[ZIGU@KKI@YGE@OYMGWFGvCNO@OPGTBHUTA\\ITACIGMIHmCOeDGGWSUIGimYEEMgiFITEFEjHLQbYCIWQaCSHmHAOY@UEaJG@LGLDJ[J‡AwYQCDMNONGY_EWLsSQFkMO[NWAIGaIYL@HMBOKiOQDWEUDMQSF_QIUBWdg@[NaAKQ@M]OQ@WhgLUMMFYQDIRCEUZOOCIOJ[KIUMKL@HIDKVEBM`HJAJSJUdBLGNEdMBMO[BYEWJSNKNaD]PE\\SjOT_RQVEZPpƒNQXfŠNA~lNG`@PNLp¼RFLfbdKbATUh@FSNWjGFZVLFHVA~X¨PPROfFJbNJPLFbENJPrEFNPFRHDDJdENJLVEPBJTVTHGHFRFH@PXP\\ORQHW\\BjWFDERLPPBbB\\E`B\\D\\L`@F]FCnJ^AZL'], - 'encodeOffsets': [[ - 119262, - 41751 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110109', - 'properties': { - 'name': '门头沟区', - 'cp': [ - 115.8, - 39.9957 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@V@XMnGPY²‰JQNEhH\\AZMPDVTTDZCPiJkHSHCjIdFtEHITCNITQEKUAMCEIKCECABYESKFWAKBEIIHABGDCKCAIHMHALKEI\\CFIBILIJQZS]BBEECS@E@@C]COKI@CABAAEEDMGƒCH]A[M@CJWH—JaUMRFRBDTITLUJ@PFJKLOVST@FSLENgKGFSCaCmF_ESQiOSFOT[HYPu@IH‹_[IoE_[]GUC[USB__CYQI@Gakg@qZeHQNMNV\\FVLPgJAFJPRLCH[XcPELUT[JiV_EELFTADBXRTRLJC@fHXHHbPd`fR@NfT`@TLplHMpCEJHJBVLFŽ@JT‚VnG^KXDXHNVGRLRXFJVdDHSNWLGfEzA'], - 'encodeOffsets': [[ - 118635, - 41113 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110114', - 'properties': { - 'name': '昌平区', - 'cp': [ - 116.1777, - 40.2134 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VNLJI\\JPPDYPFVQDCJZRNEVNhKXgR@^P@NLRbB\\Mh@XcVARJE`RTCNFV€XRCjPPLNA@GZKbJJHXB\\MNPjLdGbWnK\\]NGHSFEXATIdCJGPARUWUHCPWRELITAHKv_E@iYCaW_BQ\\Y@QIO@QDCIGZCEMWGFMFAFgHEDOCSqKCCFGAMKEAC@ODGCGs@WH@KQA@EE@CE@GEA@EH@GGUEEJEAYD@JM@@DAA@FHD@FTJEHUC@JUBKCKG@G[CIIQReAYhO@OXGDO@@FF@IHJFCPEBACBIAAKDOABXARHPNEHGbQAAKQFGIAM[C@WHKaGiCEGOA‹HUKCIokSCUSOCYN[BgGMFIR±ŠOZmHWNU@ShbbXDHVXXGJ^lZ@PZ\\Nb@\\FHJAD'], - 'encodeOffsets': [[ - 118750, - 41232 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110115', - 'properties': { - 'name': '大兴区', - 'cp': [ - 116.4716, - 39.6352 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@F\\E~DFN@BDFEpHFCHBBEGCDCJBHUDSBB@ELCPbF@B\\J@BJVAFJ\\ADKTCBGECFMT@BMN@@FH@DaNBEnvB@FPBATK@FHEFIAKFBFL@@PKBFJHC@FXBRAFCDMPDTOL@JIVFDHH@DDH@BGRFCDLD@N^@@CNA@KNOAEBCECFEGCFGMGFIPMOEJOLBADBBHGG@GCHIECY@INC@DMGS\\AIOZAAEYA@GT@KKMBEETCGMVINFxA@MJADB@FlA@HJA@NND@DFA@DVAZBBOFKH_JA@K^GBC@EFE„G@gAENMXKJigC@IbSJMqGOP£RGSMGE@kbQFDPEFiBSGGSBK]I{CDWCIDOic[C_G@SuSO@EWKCO@MNY@\\uZOPENQD[LKESSKGBKEG@EJGAGHoH¥CqhifeJkX_XFFGHFNEDFPENKHM^IFIVL^S`DVEnNnG`RTCJHH@R^XFXGVPP'], - 'encodeOffsets': [[ - 119042, - 40704 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110113', - 'properties': { - 'name': '顺义区', - 'cp': [ - 116.7242, - 40.1619 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@EhEBENXHFNYDJHCD@RJP@R[ZARX`DbjZF@bHXT`Jb@dIFMTGDSfAJVbGnJVM@OKELYPERVXRflXTT@NIfC\\NJRhCVEHFJXNT^DTeZEHYCOhuAMJELOdAVPTMOWBWNMNEJgl]@WGUFIC[T{EEDEHGCIGMI@SECUQI[D{A{GQESPUH]CsiMCmHUeoHENcAaDGCMDGMQCACCBaCGLMAHB@DIEQLOAAEEJ@CW@CDINGAAGKQOCgV@LG@BEGDKNeREFBNCFIDOPKD[@YRW@GFWDAFE@EHDDrLDTCPGF', - '@@KrJEH[\\B@FF@CHFBHUN‹AJKADGECBCMAG^E@EbI@BEGP' - ], - 'encodeOffsets': [ - [ - 119283, - 41084 - ], - [ - 119377, - 41046 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '110117', - 'properties': { - 'name': '平谷区', - 'cp': [ - 117.1706, - 40.2052 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ZJZRafFLjn€VGNJ@LLBdXX\\T^EDMJ@”nZKLBjPPJ@HbA\\H`DbERHLCFK^BZaFWXQLAGMHa\\OLO@SBIpBdCLƒVQfElO@GSAKEDQTC@GEBKG@ORIJBDAPDFA@CaOq@GGQAAEJK@KMUGAAGEAa@MGMBGCGSIIW@WSUCMDOJeWOM@IUF{WMWaDIMgIoRoCOKeEOEAG_I[cg@wLIFENQFDVTFJ@HNDJGHCFFFS|D\\EJHV@Xk^IhMFMNAXPX'], - 'encodeOffsets': [[ - 119748, - 41190 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110112', - 'properties': { - 'name': '通州区', - 'cp': [ - 116.7297, - 39.8131 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@FDAJTGDNDCTDDEDBBE@DT@@EHCDGJ@EIZ@@FDBR@ATFBBVFFE@@HNA\\VE@CLIFNJFNJBCP]A@LJFA@HJEDD\\C@DBCHLAEPF@@DH@APHAERDF\\GIxDTM@CFLBBFJ@CNUPMHECGDBF]BMFPDLRBHHBJMDCX@@DFIBFPBRKJF@CGANBHKbDDABDRDHNNCHDbCdBFMpGHiOYMefKJMC}HWAUNW\\NNBNA„kNU|]HMTMN@MZBLFFF@RIRUT‘BMFIEGaAGGAOIIUGTSFcYKS@MSLYPKRUBU]EWDOI]CKGASgW@MTWKIMCS@uMAKKADMECGAKVUTSDy@IjWLMNBF@hƒHEF@FAD]H@LIBG`ELAPYAUB@CEB@CMC@MIB@GkB@ECAIB@NwBMEUJHNSDFFNALLS@@HZBBFYBJP[BHTCND@JMZ@FDGJHDH@GHAABCKAIPPFONEJNHEHHDEFFDADBFMP@L'], - 'encodeOffsets': [[ - 119329, - 40782 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110105', - 'properties': { - 'name': '朝阳区', - 'cp': [ - 116.4977, - 39.949 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@bFGHBHFBFIVFHHG@@FFB@HDFF@@FRB@LXGt@DHCH@PBDLFBNF@BEXCHEX@ZQ\\@LCPOJCDEAMFEfQLMHCAFH@@KhUNE^AAEHCFDNGVODMI@AEKADEN@CSJw[HCEFQGBBOG@@CE@FOKBDGCAD@C[FCGIB@IE@K^BDOIAEMMIJEDKF@[UMB@GF@EEAUEABSQ@CA@EY@FJI@CHGD@FS@@CAFCACFSCCDCMSHBIECMB@D]@@MKCDCQEAHG@CCG@CGUEIJK@SPOCCNEDQBDNDB@DJCDLFCBBALJB@BVGPBKVO@KHCCCD@FE@BNA@FNCTDDJA@FGB@NBDW@CL@hT@@ZHHQDDDAFSAANBC@HG@EFS@@DE@@PCB@Ue@CADNJB@FCBWA@LI^ix@FIHrH'], - ['@@HUN‹AJKADGECBCMAG^E@EbI@BEGPKrJEH[\\B@FF@CHFB'] - ], - 'encodeOffsets': [ - [[ - 119169, - 40992 - ]], - [[ - 119398, - 41063 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '110108', - 'properties': { - 'name': '海淀区', - 'cp': [ - 116.2202, - 40.0239 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@plDJVLŒGPBFHjDbHGL@X\\DBNHJREBLRBHaFGŽMGOBQAWPBLCBBAJBDFADOIEJGE@@EP@HCPWP@ZgfBRQJJ\\D@HLHLDVA@IVDFGSI@EGC@EBB@CN@@IZCAGHGaEqGJG@EjwJ]@K@GSA@e_I@NE@CA@Kg@KC@ENCFƒAKQAW@WIMK@V‹@I@@F@^EDFB@HcIaDYCBRRDCHD@EFLN@FE@CJUPEJOJMTBPEDIFCMIAKNOGMRFJNDVBFLSRMJSDGJsFcEiJGDGTIlOjYD'], - 'encodeOffsets': [[ - 118834, - 41050 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110106', - 'properties': { - 'name': '丰台区', - 'cp': [ - 116.2683, - 39.8309 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@hMN@NFTQCFRCBJFA@HJ@@HJ@HJ\\FTACDŒ@@UNLXJX@@MA@@IECAQlDFEHBDI~D@GXCFMVDFCH@@NF@ANJC@FnAB@AMF@@EDCDDLGP@LUOAUH@AIABKAAEDCKID@CCACMWA@EGDEILA@OK@AELEJBFEEGL@BSOA@EuAFmMACbG@@EM@ANS@ENFDAHSDCL[BEIUBAII@A[E@OaKD@FAACTGVIACDHDAFGAEDoGEFACM@i€g@@QFCMKMU@]SCoBGSMQ‰DEXXDWPO@MKYGM^AdJJA\\cNB\\G^„DNHFCBFABDBJ@PL^D@DF@T@FDAF^A'], - 'encodeOffsets': [[ - 118958, - 40846 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110107', - 'properties': { - 'name': '石景山区', - 'cp': [ - 116.1887, - 39.9346 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@NQPHLMJBDNJEFCAONSPIFIVODIF@@EKMFEC@DGQCAQZDbCdJ@GEAFC@]@EJ@DCSB[EGII@@GI@@GEBAIQDDESRMEM@gNYTIRKJAJEJ[DFJKLGBGNBJLDCDAHGBJJAFBLEXTLZFBAFDLD'], - 'encodeOffsets': [[ - 118940, - 40953 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110102', - 'properties': { - 'name': '西城区', - 'cp': [ - 116.3631, - 39.9353 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XBDA@EIACM@IJAD]BC@SFABISAD]H@@OAEDQEW@BLE„MD@FLDh@@LDBF@@M`J@fTB@H'], - 'encodeOffsets': [[ - 119175, - 40932 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110101', - 'properties': { - 'name': '东城区', - 'cp': [ - 116.418, - 39.9367 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@DBf@@VDA@OF@@CT@FEH@@GADBMTBBECCRCGG@YS@@gDK@A‘C@PG@C^TBAJEB@TADC^IB@J'], - 'encodeOffsets': [[ - 119182, - 40921 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110104', - 'properties': { - 'name': '宣武区', - 'cp': [ - 116.3603, - 39.8852 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@RBX@RFFCŽBFU@aK@WA}CCJGAEFkCBRFD@JB@@N'], - 'encodeOffsets': [[ - 119118, - 40855 - ]] - } - }, - { - 'type': 'Feature', - 'id': '110103', - 'properties': { - 'name': '崇文区', - 'cp': [ - 116.4166, - 39.8811 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XBL@@bEV’D@BX@AC@MHA@EIBCCDSEMmB@EIDBME@@MG@EDUCENWD@H'], - 'encodeOffsets': [[ - 119175, - 40829 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/china_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': 'xin_jiang', - 'properties': { - 'name': '新疆', - 'cp': [ - 84.9023, - 41.748 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@›ρȁôƧƦóəʵסʵóƪԫʵѵͩƧͩړ›υࡓɛʵ@ȃ@óᇑѵƨɝɚôóНѺͩɜ̏ԭʵôƧɞñ@υƩ—݇ȂóƩƧ@ѵȂυœƥŌਗ—॥ɛóʵѵƧѹ˜݇̍ࢯ˜əɞυ˜ρͩ̏óਙƨƧŋôōóš̍ͩóʵן›óŋړͪƧѶ@ɜԭ—ԫƦɛȄ̍›ɝȄöςƩȂ̏œñȀ̏œƩóóŎə˜@Ő̎@ɞȀɝŎôƨóנѵȄƧ@óŏɝœóɜôŎ̍ͨςŎ@ƨóôƨɞ݈ʶóƨφó̎Ȁƨ̍ԮòѸԮמ@ѺȀ@ƪၬֆòȂñ̐òȂɜ˜óƨ̒Ŏ̑߼@φρȀ@Ő๐ς̎Ƨφ@ɝφڔ೦Ԯǿࢰ@ƦŏԮƨƨȄƧ۬ɜʶڔŐɚɚóŐôƨ߼˜ôƧƧó̐ƥóŏѺǿƦȁφƧς˜ƨƧ̒@ɜƥƦυ̐ɛƪͩƩəƪʷ̑ə@ȃƨʵנŋྸōਚԭԪ—@ɝƨŋ̒օςʵôƧ'], - 'encodeOffsets': [[ - 98730, - 43786 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'xi_zang', - 'properties': { - 'name': '西藏', - 'cp': [ - 88.7695, - 31.6846 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôŌנœôʶ̎ͪô™óŎƨŌਚƧ̐ôςͪφ—ɚɝࢰ—݈̎Ѻ—Ѷƨôʶ०ɜਘ˜Ʀŋφ›Ѷȁ̍—ôŏɚŋ@̑ə—@ŏò̍ɜ›óƥôʷƧ̍φѹԪ̍ע@Ѹʷɜ@ôñנ@Ѷɛɞô̐ŏѶƨѸƧƥōƦœôŏô—@ƧôƩ̒ŋƨŌƦǿô̎ɜȁ̒—óʶѶôôО̒›ςƥɜНφσɛȁ̎υƨఱƧŏ@ʵƥœ@ŌóóóͩƨƧóŋ̑õóɞóɝԩͪɝρôƧ̍ƧѹͨڑŎ̑ōóƧࢭͩ̏ѵɝóఱóóԪυô@̒ƥŌ̏Ƨ̑Ȅ݇ŎƧ›ѵӏ@ɛõŏɛȄôӒƧŌѵǿɝ˜Ƨŋԫ@̏ʴƥ@óǿ̑Ȁóǿ̍ςóóυô@ʶɛñρƦƩŐó̎óœѵó̑ͪࢯОóɜן˜Ƨ̏ƥȄ߻̎̏̐ןŎɝɜöɞƩȀôöɛȀóͪ̐ƨƪ̍̎ȂƥԪυО@φɞ˜ôƪ'], - 'encodeOffsets': [[ - 80911, - 35146 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'nei_meng_gu', - 'properties': { - 'name': '内蒙古', - 'cp': [ - 117.5977, - 44.3408 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ኊȁ૊ö߼ƩɜɛנñԮɛѶóԮô@ȁѸóמ̎ගѺၬ@߼ʶԮӒ߼̎@ŐѹӒ̒Ԫƨöග̑ѶȄ̒ς।œѶɚöɞɜʴڔôôȂ̎—ѺȀς—ƨ˜ƪóԪ—ɜôɛОਕڔԭ˜ѵ̍ѹȂԫ›ɛƥ̍Ȃóɜ̎ô@ʶ݊ੲࢮʵږͪנƨôȂƧ˜̐ͪ@ŐƦƨφԬѶɜôƦ@ŐƧôôƦəŐ̏›@ŐڒѶԬô̐ʳԩНςōôŏɞ@ƨȂѶəóƧ̒ػ̎ó̐Őנóƨô̒@ƨɚɚ@עԫɛɛ@ȁυͩƥʳòևρ—̑ࡗƧͪ༃ॣԮփ̎Ʀ@ôô@ôō@š@ȁѵóƨ̍υȃóʵɛƨƥóυȂóəƪ›̐ρƧͩɜԭڔȄ̎عƧȁ̐ŏó̍ɛ›ƥƧ̑óρŐ@Ƨ̏˜ɝəɛ˜߻ͩ̍ͩɝО̍ƪƧóóӓƨóƧʳ݇@ɝςƪœ@ʴƩ—ƧƦôƨɛȄə›Ƨŋυ›óͩѵ@ɝǿóŌן̍ɛ˜óО̍œ̑̏ôȁ̍ŏòȁñóƦͩ@ǿə@ɛƧ̑˜ρȁυô̍օѹœóȃə™@ȂσʵѷƪòƩ̍—ôó߻ۯôʳƧ™óšõʵѵóѹɜ̍ȂѹôɛŌφֈƩͨρóυӑóޟఱ̑݇ͪóƪƨŌóȄڔԬƩςםñ̑ȃѵŐԭŏƨȁɛǿρôõɚɛóƧОə@ѹ̐ѵöԪͨôͪɛ̒ןŏƧƥóôƥƧɛŌôóɝó@̒݇Ӓ̒Ō@Ŏԭࢰ'], - 'encodeOffsets': [[ - 99540, - 43830 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'qing_hai', - 'properties': { - 'name': '青海', - 'cp': [ - 96.2402, - 35.4199 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƨ@ôƪ݈ȁƪ˜@φɝòóƨԮʶɛ̐ѹͪôОəóƧɞᇒѶ@ôږô@ǿѶ›ƪȁςœɜͩφ˜ςŋɞôѶɛƨŌɞ—@ɚςŐñԪॢͩƨȂɞóƨŐ̎ŏעӏ̎óƧƦôœ̒ȁɜ›ςͩ̒œɚɛƨôƨɝφɛóȁƨŋóóɚͩƨóóƩ@ƧəŋƦƩ̍@ƧƧôǿυ̑@ȁɞǿõŏρƥסɚƧóτԫɞœôƧƦ@ñȃòñƥóυôôѹѵ—@ŏ̏Ȅɝó@ȂəŌóəѹƦ@Ő̍Ōυ݈ԩŐƧóôƧ̑›ôʵɞƧ̑ѵôƩɞƧ̑œóНѵóôʵ̑˜ɛȂó̍ƥȀƧŋ̑Ōóƪ@ƨó˜óŐƥ›ƦŎѷƨѵƧ̏Őɝóѵɜן@óòɛ@ѷʸס@ԩ̎υѺƨ̎óʸôƦɛœñ̎@Őɚ˜@̒əŌóŐ̎˜'], - 'encodeOffsets': [[ - 91890, - 36945 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'si_chuan', - 'properties': { - 'name': '四川', - 'cp': [ - 102.9199, - 30.1904 - ], - 'childNum': 21 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ô˜ôŋó̑Ԯ̒ɛОמͪƨōöͫ߼ƥôȃƨóóñôƧóƧôōڔŏƨŐ@Ŏô˜òƥѺŎ@ōɜóנ˜ôǿô›ƦôԮ̍ɜôɚ›Ƨ—ñɛɚȁ̍Ƨɛևυ@óóôŋρԭɝ@Ƨʸ̍ŏυɜƧƧóƧƨȁρ̍ƨȃɚ—ôʵφóô̑̏Ȃ̑ʵɜʵɞ@ƨʳסƩóŎə—óɜƧôƩƧρ˜óôôô@ŎƧƨƨƪѹ˜ó̍̍Ʃ@̏ѹНôޟ̍Ʃóƪυɝɛ—əƨôŎɛȀ@Ȃ@ñɝʶ@Ōρנ̏—õóɛͨƨȂѵОɛʵ@̏ƩŐó߼Ƨల̍φɜȂυτɛОρƦɝƨóƪ̒Ѷɝƨóʶ̒œóƨƨôԪŏφ݇̎ŋ@ŏѺƥôɚɚŋ@ȁɞô̐ȃ@ŐѶ˜óѺφóƦôñòòȄ'], - 'encodeOffsets': [[ - 104220, - 34336 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'hei_long_jiang', - 'properties': { - 'name': '黑龙江', - 'cp': [ - 128.1445, - 48.5156 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ᇔȂਚНƨŐѶŏöƥςŏñƧƦóƨȁ@óƨ—óȁφӑóóƨ˜óǿ̎̑ôНɞ—ó̑ɜə߼›̎ǿ̒ôڒӑφ@Ƨȁ̎̏ƥƩ̎ρశ˜ôȂςƨφ@נɞ݈˜̑ƥƧɛƨʵƧȃƥ@Ƨƥ@ŏ̑ԩôɝρρóɛƧ›ƩͩƧó߻ʸ̍ʷѹƥɞڕõ̍öɝυ—̍ȂƧ̐̑ŏóƨñŋѹóóȁ̍›̏Ԭõʸ̏ŏ@ǿ̍@ƧОυ@ñƨòȀƥŎ̑ŐѵóɛŌóȂԫōƧŎѹñ̍ʶóОן@Ƨ̎Ѷô@Ȃ@™óŎó@@ó̍ƥԭք༄।ƨͩ̒ࡘς˜ñֈƦʴφͪ@ȂɜɜסԬə@Ƨə̑@Ƨóןô̏ŏ̍ô̑ؼôƨѵɚƧȁɝ@óŐρŎԪО̏ʴ'], - 'encodeOffsets': [[ - 124380, - 54630 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'gan_su', - 'properties': { - 'name': '甘肃', - 'cp': [ - 95.7129, - 40.166 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ڔôԮࢯ@ō̑ŋ݈ӑ@̑ɞôóôɜŋƦƨôóƨƦנŐɜ̑óͩԩͧѶõѺ̏ɚ@ƨНɜôöəςóɜȀƧȂԮŐѶŏ̒ȄמòƪρړԫôȃƧŋôƩ݈ͩɚ@@ǿɜ@φͩóŏɜӑƧōôǿ̎›ôƥƪóõ›ö@ô—ƨ˜ôƧƦôó̒ɜ@ɞŌõʶ̏Ő@ȀóôƨȂ@ʶע@@ƥ୾ӑó̑óŋôʵóɛړ@@ƩöóƩóρ—ɛƨ̑@óʷƥƥ̎ɛƧ›ôōƧǿôͩѵôɝȃɞȁõƧρóó—@ōƧŏړŐóŎôƨóƨôòƧôóȄ߻ƦõͬƧŎםͩɜНԭ̑ô̒óŌó—ƥ@óƨɝ›σԬƨôעəςƦöŐɝȀ@Ȃφ̒óȀƨƨ̎@ƥƪɚŌ@ƨôƪƧôəͪôôƧŌôȂυɜƧɞƧóəɜ̑›ρͪɛœ̑Ȃó›ƨƥ̍ôסӐ̍ŐƧŏɝôƧȁॡͪòԩρŏ@əɝ˜ƧŋѵɜɝóρŌυ—ɛͪρ›ƩȂѵœ@Ȁڕó@ȄɜʶφࡔڔœƨͪѶͪԬʶôƩעʶɚʶƥôóƨςȂ'], - 'encodeOffsets': [[ - 98730, - 43740 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'yun_nan', - 'properties': { - 'name': '云南', - 'cp': [ - 101.8652, - 25.1807 - ], - 'childNum': 16 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôɞôɝ̒öôŌƧƨôͪôô@ŋƦ›@ʶƨŐô߻ƪŏ@̐ɜʶѶНƧȁɜͧöô̐˜ςן@ŋɞʵ@ò@ȁɜǿóōɚƧɜ˜φɞôƩ̎ƪóޠѺО@̐̎ƪô̎Ѻ—ƧƩƨƧ@ōóóôóς—ƪƨƨóôɛó̑ԭ—ƥŌɛǿɝƨɛͩô›@ǿƨȁѺŌɚɛ̍ןѶНɛƧôóƥȁƦͩôŎɞ—ƨ̑ɜ—òôφ@ƨʵ@ɛѹōóȃəƨυǿóʵρƧƧŌƩɛ̏ȄñƧƧȀɝ̍ԩʶƧ̑υ—óŌƥʳɚӑóНƥô̑›óӒѵʵѹœƧӐןôƪφõŌƪ̒ԫŌƧؼƨƨס›ρȁƧœƨȂóʶó@@ʴƨôôφ̎Ŏ@Ȁƨ—ƪɚƨœóƨôôôςóޤƧŌƩŋƧԪ'], - 'encodeOffsets': [[ - 100530, - 28800 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'guang_xi', - 'properties': { - 'name': '广西', - 'cp': [ - 108.2813, - 23.6426 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƦŋѺ̎ڔʵƨŐ@ƦמȄƪôóȂɜŌɚͩɜ@öóɜôôȂƦôɜȁ@ɞφ›óȄ̎›ƨʶɞŋƨʴɚǿ̐̎Ԭ@ôñ@̏ƨ›ρ۫ô›ɚƨƨНƪŐ̎›ƥóƦʵƥŋ@ȃóƥƧ@@ŏɝǿôυƧȁѵɛ@əóŏ̑@@ə̍›óƧó—@ȁƩ˜ρóòНƥô@Ӓ̑@óŎ̍ƥσŎυ@̍ƨ@Ō̑ôóͪƨ̒óŌړœ̏Ŏ@ŌôȄѺŎ@ɜƧʶυ@ñóɛ˜Ƨ̒ɝ˜óōƥͪ'], - 'encodeOffsets': [[ - 107011, - 25335 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'hu_nan', - 'properties': { - 'name': '湖南', - 'cp': [ - 111.5332, - 27.3779 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@քɜОƨ@öŐמóƪôƩɚ̒Ő߼ȁςͩɜòƪ—ɜȀò—ñɝò—Ѻͪ@ŏƨŋóɝôǿƨ™ɚȃóəƨȃѵͩó̍@ȃƨóóƥƨƧ@ʵƦ›óͩɜ—ɛóñԭɛōυȂ̍ƧƦō@ɛƥ—ɛȀ̑œóʷóō̍œƩŏƧОəƧóœς۬Ƨœ@̐óòԫ@̏̍əȀƧʳɝŌóɞƧ˜ƨɜóŐƨò@ȄƧŌρŋóôԪОóʶ@̎óȄ'], - 'encodeOffsets': [[ - 111870, - 29161 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'shan_xi_1', - 'properties': { - 'name': '陕西', - 'cp': [ - 109.5996, - 35.6396 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ςôöƨɝȂɞȄѶóóͪƨȀóŎƨœ̍ɜƦƦôʸ̒@ɜƧς˜ƪôõô@ƪڔ@ôɜóʶôŌô̒୽Ӓ@Ʀ@Ѻ̎ɜѺɛѶôöʶô™ƨšóʴ߼۰óô̎˜ñƪѸƩτʶ@ȁòŋəѹóǿ̑ʵ@ȁ̒ʷυփô݉ôН̏ط@ȁƨóô̏ƪõ@ʳ̐ʵ@ɝɛŋƩŌɛóןôƧŋ̒ó@ŏ̐ƥ@ŏυ@ƧƧôן̏@ƥȂѹɜəœɛóԭ̎ƥóóœóȀן—ɛô@ŎѹōñƦ'], - 'encodeOffsets': [[ - 108001, - 33705 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'guang_dong', - 'properties': { - 'name': '广东', - 'cp': [ - 113.4668, - 22.8076 - ], - 'childNum': 21 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@@Ȃô˜ôƨ̎œ@ɚ̒@ôŐ@ɚѶɜƨȂóφɞȀ@Őƨ@ôƦ@ȄƦŌƥʶƦôôŎôʸ̒›ɜǿƦ˜@ɜƥŎ̎ƨφȁɜŎòƥԮŎƨōóŏɛƧɝəɞƧ߼ɜςȃñȄƦŎ̒ōôòƨəƨ˜ɚН@əƨ̏ƪʵυŌəɛóəԭŏəœóŏѹœρʵɝƦ̏™ƥʳѶ›öō̑óóŋρȀυƧƥɛѹōƧôן—ɛŏѵ@óŋôʵɝ›ƪԩõ@Ƨō̍@Ƨ@@ƦɝԮƪО@@', - '@@X¯aWĀ„@l' - ], - 'encodeOffsets': [ - [ - 112411, - 21916 - ], - [ - 116325, - 22697 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': 'ji_lin', - 'properties': { - 'name': '吉林', - 'cp': [ - 126.4746, - 43.5938 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@נ@ôН̎ʵѺòƨōԬŎôȁɜŋѶô̒ŏƦōñǿòƧφ@ƨН̎@@Ȁ̐Őöʷ̐ԫ̎œôȂѺôòŌôƧ̒Őƨ̏̎ȁφ˜@ŋƩͩםȃƨ—@ȁ̑ʶ@Ōóôɛœƥѹ̑—συ݇@ɜρƧȃࢯƨôœəȂɛōƩɛ̏υρóõœƪʴυφ@ʶôŌóœρք@ɜƧ@ɝǿƧͪρȀƩó̏ŐƨȂ̍غړȃɛԮƨͪ̏ςƩœôɚφȁƦôɜƧôʶφȄ'], - 'encodeOffsets': [[ - 126181, - 47341 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'he_bei', - 'properties': { - 'name': '河北', - 'cp': [ - 115.4004, - 37.9688 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Ʃ̒̏ŌѺ̒Ʃ˜óȄƧŌƥͪòôñȂ̎ŐóȂ̒̐̎›ôНɜ—נ̎ôŋɞȀѶ@ôͪφœƨŌɚœɜȃóƧƨƥƪ˜@ʳƩ›ɞρ݈@υНφʵɜ˜ƦρƨƧ̍ɝóɛѹ̍ρŏ̑ôóƨ@œƧƦôƨɛ@ƥƨ@ȂƦ@@ôəŐƧʶƨŌυœ̍̎ɛŋôōɝ@óƧ̍›ƦʵѵʳôʵɜŏςôƪŋƨŌɚ@ôНƥƧ@ōѸɛ̐ô̎ʵѵНԭ@̍̍Ƨò@ȁɝ@əρυͩƪ̏ƩõƧŎƧōóšॡȄɛʶɜȀ@ɞςѶƧœƥςɛŐ@ɚɜɜ@Ŏôôςœƪς'], - ['@@õə@Ƨɛ˜@ŐóƦφô'] - ], - 'encodeOffsets': [ - [[ - 117271, - 40455 - ]], - [[ - 120061, - 41040 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'hu_bei', - 'properties': { - 'name': '湖北', - 'cp': [ - 112.2363, - 31.1572 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ñȄυƦöŐƩ˜óנƨƨφ@@Ő̏Ʀ@Ő̑ôƨŌנóɜôƪŋɜŌѶօڔə݈òɞōɜŎôӏƦóƨô̒óôȃƨó̎ŐôƧƪ@ƨȁςƧə̑̎Н@̍Ƨŏρôԭͩԫ—̍ʵƧšóȀôɞƧŌ@Őѹͩñ˜òɞñ˜ɛǿƩ˜ɛñρͪ߻Ȃ̑ŏƪəƩóםôõŏƧ@ɛНƥȄó›̑ѺƧ›ôφóƨƨƦƪóɜŐôóòôƨóφ̐ƨóƦ̎'], - 'encodeOffsets': [[ - 112860, - 31905 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'gui_zhou', - 'properties': { - 'name': '贵州', - 'cp': [ - 106.6113, - 26.9385 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɜȀƦŋԮ˜ô̒ɚ˜ôōעƪƧʴɝ@ɛʶ̒ʶ̐ȁƦœóȂô@ôŏ@ōô—ƨʶѸô@ʶƨ˜ɞó@ōτöòυƨ@@əƨô@ɛ̒@Ʀɜôȃ@̍ôʵԩНôóςŌƨŋ@ȃƧñôŏƧɛƨ—ôɝƧʵ̍œôȃυœ@ɝɛȂƥóóȁɛóõôɛ@əͪɛŋôȁƩóםȃ@ƥƧŏړʶѹ̍ƥŌƦȂóôɜƨѵО̎נəɜѹŋƧȂ@ȀóœɜͪɞƧ'], - 'encodeOffsets': [[ - 106651, - 27901 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'shan_dong', - 'properties': { - 'name': '山东', - 'cp': [ - 118.7402, - 36.4307 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ʃ̐φͪɚςɞ@@Ȃƨñ̎̎Ԯ@ѶОƨƧڔ@φН̑ŋ@Ʃ̒ǿ̎@ƨɜԬςôʶ̐ʶöԫƨƧנƥɜŎôō̎@ôŏóρƧŏԫôóƧԩó@ƥɜƧԭóƨʵɛƨ߻ӑɜНԩ˜óô̑óƧʳə™óɛƧ@õȀƧœ̍ȃɛŐóŏυО̍—óɝƩ—ԩ@ƧɚԫȄɚʶƨ˜ɞʶԪ̐ړɛƪ̒'], - 'encodeOffsets': [[ - 118261, - 37036 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'jiang_xi', - 'properties': { - 'name': '江西', - 'cp': [ - 116.0156, - 27.29 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƧȄôɚəȄ̎ʶԬ˜ԮͪςóƨŐƪ›τɞƦōƥƧ@ŏςôóŐôô̒ʷѶ—ƪƩƩǿ@ō̒ɛôυ@—Ƨȁѹɛəƨѹ̑ƨ̏óƥѵʷô̍ɛȁôŏɝǿƧԫƧ›ôʳƥōòȃρȄ߻ɛɝƨɞɚɜƨôŐƧŎԭōñƦòԮɜôɛ˜ôͪƥœ@ʶƧƨôƦƧô@Ȅô̎Ѷͪ'], - 'encodeOffsets': [[ - 117000, - 29025 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'he_nan', - 'properties': { - 'name': '河南', - 'cp': [ - 113.4668, - 33.8818 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@φ˜̎ƪ̐˜ɞȄɚ@@Ȃעó̎ŌѺ̒ôֆॢȃô™ƨŎƨōƪöƩ̑ڔɜԩ̏ɝʵƧ—əʵԬȃƨəԪ@@Ƨ̒ŏô̍υȁƧɚ̍ôóŋ@ɝƧŋõ̑σ—@ŏɜŋôɝ̒ƧɚôôطρóóɛƩ@óƨ̍ŏƧôóȄ̑ôƧóƥôóӐɛōɝŎ݇ñړɚѵֆ@ɞ̏ʶ@ʴƩöó̐'], - 'encodeOffsets': [[ - 113040, - 35416 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'liao_ning', - 'properties': { - 'name': '辽宁', - 'cp': [ - 122.3438, - 41.0889 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƨʴƧôôӔƨô̎ƩɞН̎ͪ߼ͪɜ—ɞɚ̐—@ƨςŏ̒ôƦƨɜœô̎ƪôςǿƨͩɞȀƨ@@ɛςփô›óŋ@ʵφυƩʳö›॥փρѹס@əɛ@ͩࢯ@ѹʵρ—ƩʶφȀƧ݈̒۬óʸɝŎѵ@ԭԫןɛƧƨƥςɛ—υʶφО'], - 'encodeOffsets': [[ - 122131, - 42301 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'shan_xi_2', - 'properties': { - 'name': '山西', - 'cp': [ - 112.4121, - 37.6611 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɚѺñŌɚšôȄѺ›̎ֆφóςȂ̒—ɜƨɚ@@Ȁƨŋôȃƪ—ѹ̑̐ŋƪ̑Ʃρρ›óó@ōɛɛ@əɜŏƦρƨ›ρѵ@ɝɛǿɜʵóօѹ̑̍ŋסô@ȁə@ɝȃ̏—̍Ʃυ—Ƨô@Ȃ̐ظóОó݊φք̑ʸ@Ȃ̒ʶôȀ'], - 'encodeOffsets': [[ - 113581, - 39645 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'an_hui', - 'properties': { - 'name': '安徽', - 'cp': [ - 117.2461, - 32.0361 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ó̎̑Ő@ƨƪ˜Ѷǿɜ̑φ—Ʀʵ̐˜Ƨѵôóƪôôυς—ƨȂɞŏ@̍ԫôò̑ƥ—óȃѶͩƧƥôŏѺœôŏƦ—@›ƥͩƧ—ôȁυó@̑ƧɛѵʵƩƪѵ˜̑ʸóóôŏρó@ŐƦƨƥŎσɝƩœ@̎̍Оɚ̒ρƨƧȂôɜςôóظəó̑ƨóɞɛŌ@Őτ˜ö̒ƨŌ@ɞôŌ̎óƨəφȂ'], - 'encodeOffsets': [[ - 119431, - 34741 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'fu_jian', - 'properties': { - 'name': '福建', - 'cp': [ - 118.3008, - 25.9277 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̎›óȁƨӑ̒—̎ɚƨͩφŐƨɝ̎ŋóŏρ—@ōƨ›òʳəóƨō̏˜õɛƧ@ƨѵƧōəŏóŋƧô̑ɝɛʳƥ@@óɛõ@Ƨ̑ƧóȁəƧ̑—Ƨ̐@ɚəОƧ—Ƨɚóñ̑ŎóʴƨœƨԬɞȀóŐɜȂó̎ѶʸôƦƧ̐Ѻ̒ɚƧѺɜƨȂ'], - 'encodeOffsets': [[ - 121321, - 28981 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'zhe_jiang', - 'properties': { - 'name': '浙江', - 'cp': [ - 120.498, - 29.0918 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ѷʶƨɜ@̒φôóȂƨ˜Ʀͪ@œ̐˜Ѹ̍τȂ̒̑נŐמôƪƧôӑ̑›@ƥρͩƨօ̏@@υɝó@ŋɛ@ôƩəóƧѵυó@ƩɜŋƧ@̍ŌƧɞυŏƧͪ̍ə̑˜ƧӒôȂ̍œ@˜óφ̑ɜ@ŎƪȀ'], - 'encodeOffsets': [[ - 121051, - 30105 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'jiang_su', - 'properties': { - 'name': '江苏', - 'cp': [ - 120.0586, - 32.915 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôɞ̎˜φНôŐɜŏ̎Ȅƨ›öǿƨ@ôɜɚšƨʴ̒ôôó@Ƨ̎əԮȃԪૉöͩ̐ƧòʵφƧôʵ@óړɜóŏɜǿƧ›ɝρσȁѷ̎̏—ƥ˜óŐѹ›óŐƨƦѵͪôȄƦ˜ñ̒Ԭó@̎ɝŐƧȁρ˜óφƩóóôƨѶ̏—ƥʶυ˜ɛ̒ѵȀ'], - 'encodeOffsets': [[ - 119161, - 35460 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'chong_qing', - 'properties': { - 'name': '重庆', - 'cp': [ - 107.7539, - 30.1904 - ], - 'childNum': 40 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@əȂòɜƨ˜ѺɛƦȁ̐@ƪ—õŏφƥòȃƥ̍Ƨôυ̏ƧôñóóôɛŏƩôƧƥôƧóυƨœ̒ѹôœƦȃ@փƥɛ̑@@ɜƧó@ɚƧ@ñφσõ@ŎɝôƧ—@ʵѷóƧʵó˜@ŎóŐó@ôȁƥ›ó̒υôóʶə˜ƧȄς̎ƧȂôƨƨƨφɛ̎Őƨʷɞ@ςԮóŌôôφ@ɜֈ̎ƨ'], - 'encodeOffsets': [[ - 111150, - 32446 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ning_xia', - 'properties': { - 'name': '宁夏', - 'cp': [ - 105.9961, - 37.3096 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ల̒ôޠφӒςôƪͧυևɜŋѺó̎ȁ̍ɛ@ѹס@@ʵƧȁôó@ǿ̐ŏöʵɝŋɛ@ô̑ƥóóƨƧ—ó˜ôœó@ƩôóƦ̍œóȀƨŎɛӒôŐυͪɛ@@Ȁə@'], - 'encodeOffsets': [[ - 106831, - 38340 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'hai_nan', - 'properties': { - 'name': '海南', - 'cp': [ - 109.9512, - 19.2041 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@φɜƦʶ̐ôφô̎@ƨŎö@τʵƦ˜ԩ۫õН̏óƥȃƧ@Ʃəםƨ̑Ʀ@ޤ'], - 'encodeOffsets': [[ - 111240, - 19846 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'tai_wan', - 'properties': { - 'name': '台湾', - 'cp': [ - 121.0254, - 23.5986 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ô—ƩɝöƧɝѵəޣ̏ρƩԭóōóͪρɞƧОôԪ݈ଦѶɜ̒ɛ'], - 'encodeOffsets': [[ - 124831, - 25650 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'bei_jing', - 'properties': { - 'name': '北京', - 'cp': [ - 116.4551, - 40.2539 - ], - 'childNum': 19 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@óóó›υóôƥ@ŏóóə@ƧŋƩŌρóɛŐóʶѶʴƥʶ̎œôƨɞ@óŎɜŌ̎̍φ›Ƨŋƨʵ'], - 'encodeOffsets': [[ - 120241, - 41176 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'tian_jin', - 'properties': { - 'name': '天津', - 'cp': [ - 117.4219, - 39.4189 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôôɜ—@ƨöɚôœôôɚŏ@óƥ@@ȁƦƧɜ@óƧƨƥ@›ƧóəН̏óѷɜ@ŎƦƨóО'], - 'encodeOffsets': [[ - 119610, - 40545 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'shang_hai', - 'properties': { - 'name': '上海', - 'cp': [ - 121.4648, - 31.2891 - ], - 'childNum': 19 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɞςƨœɛȀôŐڔɛóυô̍ןŏ̑̒'], - 'encodeOffsets': [[ - 123840, - 31771 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'xiang_gang', - 'properties': { - 'name': '香港', - 'cp': [ - 114.2578, - 22.3242 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@óɛƩ@ρ@óœôȀɚŎƨ@ö@@ōƨ@'], - 'encodeOffsets': [[ - 117361, - 22950 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ao_men', - 'properties': { - 'name': '澳门', - 'cp': [ - 113.5547, - 22.1484 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@X¯aWĀ„@l'], - 'encodeOffsets': [[ - 116325, - 22697 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/chong_qing_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '500242', - 'properties': { - 'name': '酉阳土家族苗族自治县', - 'cp': [ - 108.8196, - 28.8666 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XJ°œlJX@lbl@XbV@VLnJlxnbšƒUU@IVK@lVIVwnJlU@n@J@L@Jn@l_nWVLVln@@blLšmV@@xœÔ‚`nœ™xV‚ÈLlx„LVxVVšƒV_U»VWn_m¥XwVmnX°ƒlmUUVwÞaVƒk@a@mmIUa@™mwk@™ƒm@@U¯a@UV@@K™@ykkmwkV@kU@ƒÑƒVkKWLÅamaUm@kyU@WkU@Ua™IUašVaUUmUUa@aVLXKWa¯UUbmJXnWnX`l@@xkzWÆ@V„LU¦‚x@b@JkIkJ@LmbUamJwm@óxƒnk@V„@x„ŽVnUVmVUVŽUbVlUbkXWŽ'], - 'encodeOffsets': [[ - 110914, - 29695 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500236', - 'properties': { - 'name': '奉节县', - 'cp': [ - 109.3909, - 30.9265 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@WVXb‚UnK@x@b‚²kxmKkl¯_ƒVV°™VU@bnKVVV@@nkŽ@n›bn‚@š°@VLČUš@°WV@V™nU@InKVl@nU„b˜KnX„WlknLlKUwnalLša„VlUXmWk@UU@UWWIUyķ¹XaWW@X™ƒKUIVm„U@W@UVU@KV@n»VkUkÇmUmVIUmULUbm@ƒwUaƒKkkm¯ÑUL@bWVnx@VmxUI@„klmkkK@aƒK@IlJ@I¯ƒk@mak@mnkJVL@bV@Ub„„W`UUUV™I@VƒU@VVbUJVLUVVbUX„VVxk¦VJUnVxnVVUšJV@Ubl@@bXV@L'], - 'encodeOffsets': [[ - 111781, - 31658 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500238', - 'properties': { - 'name': '巫溪县', - 'cp': [ - 109.3359, - 31.4813 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nLWbX‚VLVU„V@KšIVl@b„@lbšU„VnU@JÆU@V@n°KĢUl@VbÞKšVš@„_„V‚KXU‚U@KXƒ@wlkkU@mWKUU@UôJ@XV@œaVmÞIVaVLƒƒ@»kmƒ@ƒUkL™U@aU@WWƒLUUU™™KkbƒwWa@KU@kaƒXmW—LƒamVk@UmL@JmVUšU@¯X™@ċVUK¯@ÅnWK™LkKULWK@UXK@wW@™LkV@bVLƒlXn›`¯xU„°LnŽlV@n°Lnl'], - 'encodeOffsets': [[ - 111488, - 32361 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500234', - 'properties': { - 'name': '开县', - 'cp': [ - 108.4131, - 31.2561 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n@na‚I„wš@@VVK„LVbVxnVÆUnanKWXamKmk¯K@mkUm¯KVƒ°w@Wm@UIUUlKUU@a¯KWanwmUXamKkUWUnU@KƒkUwWKXaWLUWkImaUUUƒƒKka±k@lƒ¯w™wmbUƒ™ƒkXm@UJkIW‚XXƒbƒmƒ„UJ™XUV@°šKlšlVXV@xmbnV@blV@VšœU`UL@V™a@bULlb°VXbܚ@V@bƒL@J„xnLVb@lVb@V@@z˜bXWšX„KVLV‚š@@bUVVL@b„„lVna@ll@„zl@@J'], - 'encodeOffsets': [[ - 111150, - 32434 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500243', - 'properties': { - 'name': '彭水苗族土家族自治县', - 'cp': [ - 108.2043, - 29.3994 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„Jlb@nVV@bXb@ÆlL„Ul`nVKU¼VxkbW„nlUxlXX‚@°°WnnJ@VUn@J„k°L@VlV@nUJ„x@bVVVz@VnLla„KnalVlIUŽ„¼@nV@@anKUwVal@UlJœƒlI@akU@UWXKVI‚¯Uak@@KmkXWÜkXWykIWwXw@laXamkVUUym_XmlkkmmakwmIUKU@Wak@kaW@kI¯›WIk¦VŽƒUUƒmaUV@XkVUV±aUb¯b¯¥m@@ImJ—@mƒmL@kUKUkkJƒbV¦'], - 'encodeOffsets': [[ - 110408, - 29729 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500235', - 'properties': { - 'name': '云阳县', - 'cp': [ - 108.8306, - 31.0089 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lb„LV„VVnblJVXXKWbXLVx„l@LmVXVVl‚nLWbnVmxXb°L@bVVkLVVVJn@@X‚‚œ_Wm„kUK@alUšKX@@xWL@VXLVKlLšKXLÆm@™mœa@ml@mU@UUmL@aVšUU¯„U°`lknLlw±@a@wmLVWaXU@KWU@ak@VaU@™IUVmUUwVmUIl¥UwƒUVWUaVUUKVIUa@UUUUJƒUUm™kƒ„nl@„@VWV@L¯aUb™Ulxƒ@@b@VULUx@VUxVV™U@bU@mxU„U@mUVŽklkkƒ@WxknlxK@amLƒKU„K'], - 'encodeOffsets': [[ - 111016, - 31742 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500101', - 'properties': { - 'name': '万州区', - 'cp': [ - 108.3911, - 30.6958 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĸĊVI„ƒ„n„aWWXlJVIn@lWš„V„našx°xk„l@²Ž‚LVƒ„LnK@b‚LkwlmXw„@lllkUnVV@VƒnwV@@ašVUUVw@UVwVK@U@a„@kwšVVa°b@KXU@U@ƒmk„ƒÇсaml™kUVmn@VULU˜m@kUVkUaƒwUWm@Uw¯„mKUUmVUUULUKU„W@XbWVkaWwkUU™ƒ™k@maUbmbVlk¦ƒxUVUIWVU„kJVVkL@UmJ™UUVU@lLUVU„lx„@@VbƒJ™U™L¯¤@Vƒ„'], - 'encodeOffsets': [[ - 110464, - 31551 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500229', - 'properties': { - 'name': '城口县', - 'cp': [ - 108.7756, - 31.9098 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VK@w¯L@m@UÅV@ImVƒU™Vkaƒ@@aUk™J@LƒUUVUKmLmbÅVmUUwUaƒKUL@U™@ƒxJmbm@nVJ@X@VkV‚n™lƒLXx™@ƒb@bUVƒLU`UnƒbU@@ŽmVVX@JX@VLVVšklV—„‚`@bUL@V„LVKn@‚U@„UJkn@lmLmK@X@Jn@mb„nÞWVXnJ‚k„KČÑÆ@VK@knaÜmXlUČW°kôÇÆ@a@yÞ_VmƒUnU@K'], - 'encodeOffsets': [[ - 111893, - 32513 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500116', - 'properties': { - 'name': '江津区', - 'cp': [ - 106.2158, - 28.9874 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„InWUUlU@LVašlX@°²lÒXxlK@Ul@@Un@UaVJ@I@W@UƒUUVUwVIUKUa‚UUVwn@Üx@XUlnn‚bœJ@¥VklKUUlk@ynU@kVƒUUVWnI@¥V£VWVIUKU@UVƒa@n@Vm@@nlUaVkUwƒJ@blLkLW@XWmXkmmLn™@m@U@UVm@™„UVUUlakUVa„ƒVkV@@wnaWUk@VwkƒlmVIkUUxmJ@U„™@KƒIkx±V@IUm@K@IUKkbWKUbn„m„@bmVnbmb@xkxUJ@ULW`@bX@WVXL@Vƒš¯„mk¯@UJ@VmLUaWnX@WJ@nkKkxW@UIV@@KkImmkK@UW@XaWIU@U‚ƒIkbWb„xXŽlLVbnV@bWlX@VxVLnl@nÆÞVÜ'], - 'encodeOffsets': [[ - 108585, - 30032 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500240', - 'properties': { - 'name': '石柱土家族自治县', - 'cp': [ - 108.2813, - 30.1025 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„š@kl@š¼UbmVXJ@bV@nxVIVJULVVk@@LWbnJVU@bVbUJ@blLXnWV—@mbnV‚@V„„bn@VJVLnaVanbl@„šVšlVXxlbXUWaX@VƒUUVwUUVm@I@WmI@a„mlLœ™lK@alwnUV@kóVaƒÝk@UlbVK@™VU»VUUVWUƒ@U`ULkwm@@KmU@knKƒ»VkJkUmbƒLkbmK@UUyUU@aƒwm@@XXJ@VVLVVUbVnUJVX@K„„k`WXXJWXUbmW@bkL™Um`Xnƒb@JVL@LU@™°VVXKVnUxVLUbmJ'], - 'encodeOffsets': [[ - 110588, - 30769 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500237', - 'properties': { - 'name': '巫山县', - 'cp': [ - 109.8853, - 31.1188 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@kVƒU™bkKmbVxkLmKkllbV@@LXb„xlašLVšVV„KXXV@@bšVlK„V„@ln@¼°KXa„U@Ulw°JXalIUa„ÝWXW@kVU@ƒVUVWUUUamUw@aVamwn@VUUƒlLXWm£@wÇĉkKklmLUÒ¯ƒWn™@ğ±kwmaWm¼U@@LUV@V@XƒVUnVJ„LWš@‚XXWbĸºVzXJVXV@@VXlWn'], - 'encodeOffsets': [[ - 112399, - 31917 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500102', - 'properties': { - 'name': '涪陵区', - 'cp': [ - 107.3364, - 29.6796 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nèVblĖVVnLšŽ„@šx‚V„n@nšJ@L„UVVX@lbUJV@@nn@VVVK@z„˜V@nzVJVUlmX@@_VVVbnaVal@@knW@wnaƒVK@aVI„J@£kUVW@‚wXUVJ„amƒ@Ikƒƒƒƒ_X¥ƒ@WwkKkwmŽ™šƒkUxƒnÅmm¥™WV@Um@UlVL@JU@@Xƒ@UVkKVk™KVk™Kkb@bmJVXU„VVUbU@@`W_UV¯b'], - 'encodeOffsets': [[ - 109508, - 30207 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500230', - 'properties': { - 'name': '丰都县', - 'cp': [ - 107.8418, - 29.9048 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Þè@XUK@LlV@blbUJ@„„V@bnV‚@VVVXU@ƒlbXal@VXnKV@maXUރ@amk@aVKXV‚anbš£°mnIVaUKVwUmWLUUš¯V@@KUK@I„aWmn_šVlK@anXVaXWWIXWl_ƒƒ@LUWVIUmVaUUUK@UWI@Wn@VI@mkU@U¯Kƒl@ImVÅLƒwU¤óbUU@wWXkmm@LU@@VUIWVUL@JUnƒaƒx@Jn„ƒbUIWVx@ŽUXlV@¤ƒIUJ@bUL„Žmb@xmX@lk@UbmbUaUU@`W@kn'], - 'encodeOffsets': [[ - 110048, - 30713 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500232', - 'properties': { - 'name': '武隆县', - 'cp': [ - 107.655, - 29.35 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l„„w„bVm@IVKXUVJ@UV@@KnnWlX@xVVôaV£„xÆKnUVm@UmIXm¯¯@WkWVwmkXƒlaUwV»ULmk_ƒVkK@ÅWa@aUU@mkaƒIƒb@‚n¼ƒnm‚_@mmK@UƒLUVVmI@aUJ@XWJ@U`UIkm±kk@@lULmUmKUnVšnlUVmI@VkVlx™bkIƒVmLUxkKUŽ‚Xš‚n¦Æn„mVw„lš™nlxlLXx„@W¦„`„„'], - 'encodeOffsets': [[ - 110262, - 30291 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500119', - 'properties': { - 'name': '南川区', - 'cp': [ - 107.1716, - 29.1302 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VšUbVJVUn@VLX@WVXVVI@VUVWxU@mš@ĊX@@¼V°aVUX`@_V@VaUUVƒUWnI@alašLUlšLUllLVU„@@WV@@IUKVkn@@VlLVwnK„UlJšakwlU@UnJVUmkU™VmXa@wVK@UUw™@VƒVI@akƒ@alInwlKXUmaUW@wWLk™™KVak_ÇaUƒƒV@šXbƒLVxUlWIk@UK@V™@ƒkU@VbUVUlVnƒLUV@lVXmxkV@L@V@Vk@WbUwmL@JUI@xVxkx'], - 'encodeOffsets': [[ - 109463, - 29830 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500241', - 'properties': { - 'name': '秀山土家族苗族自治县', - 'cp': [ - 109.0173, - 28.5205 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XlV@lzn@VŽnbÆbXKlL„U„ÒV@@llUnxll@zšŽ@LU@@V°b@Vn@š„l@VÑUƒnK@UšU@aUaƒkVm@K¯wƒklmnn„Ul`nI@almkIUwmWVkUaƒkkJmUUa@K@aU@@_m@@wUyVUUa@Umƒ@awl@Wka±„UkUykIWV™b@bUVk@›aU@UXU‚UIWakUWmUxUV@nUVWbšŽ@XXVVŽmXXŽ@VƒbVLkVWx'], - 'encodeOffsets': [[ - 111330, - 29183 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500114', - 'properties': { - 'name': '黔江区', - 'cp': [ - 108.7207, - 29.4708 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VX@V@LV@VJUL@lVnnxlb@VXV‚XV@@W„@UIVK@kUKna@£VWUaVUUalIVJVIUW„_lm@bXKV@mn@J„UUw@KnIVll@VanLVmUkVKXLVKUIVamw@UaU_lw„KlwUWV_Ua@aUa@KUšwm›_›Ó@wU@™nkK@am@UkUKmXk`m@@I@K@I@mkVmIUxUJ@kUL@JVV™„lnklWnn`VzUVnlWbkb@WxXxlJXzWŽÛlWXnl@Ll@Vb°UJWLX@VlV@bkJ'], - 'encodeOffsets': [[ - 111106, - 30420 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500117', - 'properties': { - 'name': '合川区', - 'cp': [ - 106.3257, - 30.108 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XKVXlK„ƒVL@UnV@aValXXK„U@WVwUaVU@IV@@aVW„L@U@anVV@@bVK@UVL@bnJWL@VnUnb˜@@JnIlVl‚@@bXIWbn@UKVLVKXLlaV@VVnK@bVL„m„IVƒ@KmknUUWVI@aVJ@_„WU_VmUwƒU@K™ƒVak@am¯mJU_UJUkU@WkIV`UI@JV@LmmU@@mƒbUzś™@„VK@nUKƒ„ƒb™akb@UWK@bkVVbV„Û@@`ƒXk@WŽ@n@lXL@bmb@VVJUn@JnUlnUlmX@`XLlbkJW@kzlb@`@b@b'], - 'encodeOffsets': [[ - 108529, - 31101 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500222', - 'properties': { - 'name': '綦江县', - 'cp': [ - 106.6553, - 28.8171 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@¦‚@X„lVX@@UVKl„VUX@lanVlUVbXWVXVƒ„VVUnKVUlwUwU@UJ@nmVkUV™lwXam@VaUUUw@W@kk»mV@UmKkwVKVUU@@LUKVI@mV@XVWxnXVKUUUK@wWU@UUWnUlLXa‚mUI„am@wI@K@amIm‚UUkI@m‚akUkKWUUanƒ@wƒamLVxk@UVmUUL@Vm@kV@I@ak@@bWVXJlLVbVL@š@bn@@`Un„@WbUKULWVXbƒ@UVmbX„WVƒb@bVmxUKUƒV@šUn@V@V@nmšnKlnnWWXX@lKkK@a„IVxUlVb‚k@mn@@U@m„bVUV@VLUJUXU¤'], - 'encodeOffsets': [[ - 109137, - 29779 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500233', - 'properties': { - 'name': '忠县', - 'cp': [ - 107.8967, - 30.3223 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VLÞĊ„U@Wš@¼V‚„@lk@w²mlšVUœ„llšVnI@VlKUUlIVƒXUVJVU„wl¥UkUKUIm@ƒaUƒ@mUna˜@XUWmkK@aVIUa@aUVmIXa@Kl@UUVKUIUJmwU@@aWInUVa™»k@@lƒ™¯n™¤mabWUUL@bnl@b݄WVnbU@mLUWk@Wbka@„WVUU@UmUmVkUULV„lVUx„l@L@VƒbÈÒlb'], - 'encodeOffsets': [[ - 110239, - 31146 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500228', - 'properties': { - 'name': '梁平县', - 'cp': [ - 107.7429, - 30.6519 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XLV@VV@b°°nšƒnkb@bƒšnJWVXblIUVšxWnUJnVVLVU„JlUnLVK@UnUVJš²nKVbVKla@aXlJ„k„Klb„ƒ@U°£šKšV„IUa@ƒ@kwVƒVUkKV@VUkk›ƒUVk™±n@xklƒ@U@»™‚@XƒVÝĉUJnxWb@UX›KkVUbUKWUkVmkkLU`›b'], - 'encodeOffsets': [[ - 109980, - 31247 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500113', - 'properties': { - 'name': '巴南区', - 'cp': [ - 106.7322, - 29.4214 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nxnVlJlUXLƒ¦@x@Vl@nKVVX@V_V@@KlVXU„@lKlxXIl@ÈĊ@Vl@n_VJlŽnVlnb„²VVVJVVmUUkĕUamçU@»W@@ĉn™V@XwVU@UUJWUXUW@UKm@UVUIVaU™UVmLUVƒUU„UWWXUakVmUkbW@UVkƒUL@VW@kUWƒ@mJUXVVU„@lmV@zklVVkLUl@¦›I'], - 'encodeOffsets': [[ - 108990, - 30061 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500223', - 'properties': { - 'name': '潼南县', - 'cp': [ - 105.7764, - 30.1135 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@a@a@_kalyX@lIkaWK@_nWVkkmmV@IVmUI@Una@aWK@k@mkbWaknmJUk@mk@@kUal@Uaš@Wa@aXLlwUKlkkƒ@KmI@VUJ@Lk@@VUUmL@amJU£kKUaWakLmU@bVVUbnbWV@xkL@bUb‚xUxVbXJVbUVWIUVU@kLWxkKWV@n¯VUbU@@VVX@VmaUL@VUK@VVbn@lVnI‚@@lnLULm@Ub@Žl@na„@lK@XVVkJ@b@zl@@VnV@bVb@J@bnXV`lXXmVI@W@InbV@@aVKUblKVLUanLlmnLlK'], - 'encodeOffsets': [[ - 108529, - 31101 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500118', - 'properties': { - 'name': '永川区', - 'cp': [ - 105.8643, - 29.2566 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@b܄nWVLX„lxV„VxXxlVn@@bVblK@a@UnLVJV@@UnLVU@VXaVKVXš@n`WUÿ@IUKlaUUUkWyUÛÅÝ@mmkUKUwW@Xk@amUUakKWƒwXaƒK@VVLklƒXVlkxV„UL@bm@Vxn`ƒIVxUVkLVšUšl@@lkXmmƒVUn@VV@Xb'], - 'encodeOffsets': [[ - 108192, - 30038 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500231', - 'properties': { - 'name': '垫江县', - 'cp': [ - 107.4573, - 30.2454 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šĊ°¤nҘ¼œaV_lKnllUXVVLValUœLVW‚@XamwVIUKkaÇфa@U@KƒkVwkUUƒVKlVnU@aƒU@ƒVIka@akU@KVL@WÝçUV@Vmbů@L™KƒnnJW„ƒVkxlL@VX@VxmnXVWxUb@bkn'], - 'encodeOffsets': [[ - 109812, - 30961 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500112', - 'properties': { - 'name': '渝北区', - 'cp': [ - 106.7212, - 29.8499 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@bVVXL‚a@lnbWn@L„@XVlK@VVLUVlbkLUKVVVL@VšnX‚VL@VV@UbVb@x@¦UxVb@bUJƒL@L„VVxlK@™nk@U@W„UVLlKXV„@VblU@UUKVU@wn@VJVanLlkX@VaVK™¯@a@U@U@ƒVaUK„kUUƒ±maUkm@UUkbm@@Vk@@JƒwU@Ub@I@JmwUL@aƒ@@KkVÇLkƒWkƒ@kUU@@xUVmKUnllUb'], - 'encodeOffsets': [[ - 109013, - 30381 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500115', - 'properties': { - 'name': '长寿区', - 'cp': [ - 107.1606, - 29.9762 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VVšU„bX‚lX„¥l@XnVmlxUx„@@blVnnôĀlm@aVaXwWUnmUwW@@UkKlw„UXƒmI„mšL@Kưna@UUImyU@ƒ—@yULUUm@@mU@VIkaW@UUƒV@K™I@mƒmU™wƒ@™mKUnU‚UIƒlVLUb@„@V@V@bš°ULUbW@klmKUbUIm@@xUVVL'], - 'encodeOffsets': [[ - 109429, - 30747 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500225', - 'properties': { - 'name': '大足县', - 'cp': [ - 105.7544, - 29.6136 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XUmaVaUU@anVlKXbValU@aV@@IXKš@@bV@VxVK@UXLlUšJXa@_‚@@aVK—ÅWVkwWaƒƒwUa@am@kUWLU@kWmX@ykI@W@UV@na@LlLV@UƒkwWƒUKmXX`mIVl@bXLWVkbkkƒx@`VXm@@J@U@UUKUxk@WbUIVl@VXLW„ƒJUkUlUImxXlmb@X@VUJUnVbšW@UV@@VVX@bnW@LVxUnlJUV@n„@VxVIn@l`„UVVVL'], - 'encodeOffsets': [[ - 108270, - 30578 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500224', - 'properties': { - 'name': '铜梁县', - 'cp': [ - 106.0291, - 29.8059 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VblLV¤nI@bnKVV@Ul@@KVI@UnJ@Ll„klVLkxWK@bXb™@Vbk@Vb@ll@@nVlnIlmXblaXl@„W@_Ü@UƒUalU@aXL@Vlašb„a„ƒVL@mUL@ƒUUƒƒÇXUW›X_WaƒƒUƒ»m_™@UWULWb@UUVmK@VU@UImK@V@bkL„x‚„XblxXU˜ÆUL@b@@`Wb™IkVWK@VULUwU@@a™@WL@JU@@bkVUb'], - 'encodeOffsets': [[ - 108316, - 30527 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500226', - 'properties': { - 'name': '荣昌县', - 'cp': [ - 105.5127, - 29.4708 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VI@U@WnaWknwVJVkVl„IXƒWK@UUkVJXal@VwVL@V@V@In@UW@_„wlllaXUWK@aUknJW_ۃ@aWaU@@UVm„UUaUImJVnÅUmVUm`kUUVWLnVU@VVmXƒK@„nxmŽULkx™ImJ@nU`@X@Vkn@`@nlV@nVJVaX„VLnK@bVV@nV@lbXWš@'], - 'encodeOffsets': [[ - 108012, - 30392 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500227', - 'properties': { - 'name': '璧山县', - 'cp': [ - 106.2048, - 29.5807 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XzVlVVkbVL@JVĀXŽ‚¼V„„„XbW`XœWVȎ„„VVšŽVkV@@UXa@alK@IƒƒU@UKWUyUI@wVUUWVak@VUkƒW¹@WXI@yVIUK@kWwkѯ±W@™kUb@KkVVVmXƒJ'], - 'encodeOffsets': [[ - 108585, - 30032 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500109', - 'properties': { - 'name': '北碚区', - 'cp': [ - 106.5674, - 29.8883 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@X‚VLV@„„@JkL@bWb@VU@UlƜVy„a@nV@nn@KU@IVJU_lJXV@VlVIV`nIn°@b‚lUbš„„KVI@aUaVw@¥@wUaVaU@@UUKW™m@UUKUUVLlKkaVUUK@UkLWUƒ@@KXmma@kbWKUU@aUamLnÞ@VWLk@@Wm@ULU@@U™KUVWI'], - 'encodeOffsets': [[ - 108855, - 30449 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500110', - 'properties': { - 'name': '万盛区', - 'cp': [ - 106.908, - 28.9325 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VIV@@wVJ@InKVxXal@@U@U@KlUnwUW@kVU„KUmVkUa@I@KW@@bk@@mƒU@m@k@a@aƒIUxmJk@ƒwULƒwkKmVVX@VXV@xVLVVULmWXwWUU@@nUJVL@KV@UVULlxnL@VnUl¼@l@XVxVVUbn@WbkxUšlVnU@m'], - 'encodeOffsets': [[ - 109452, - 29779 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500107', - 'properties': { - 'name': '九龙坡区', - 'cp': [ - 106.3586, - 29.4049 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XK‚L@Vš@XbV@lW@UV@@VXIV@U™VKlL@KnnJ@VV@VU@I„@@mVUVWUUmL@V¯LUK@UV@UU@a@U@yU@WLUK@X@KUVmL@ƒ@aXI@w@ammVk@WÛwm@UxVVVbVLUJVxVU„V@V@X@JUIVbm@@Vk@@VkL@lVLUJ@zWJ@X'], - 'encodeOffsets': [[ - 108799, - 30241 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500106', - 'properties': { - 'name': '沙坪坝区', - 'cp': [ - 106.3696, - 29.6191 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Xºl„UVl@UbVXUV@xVJVzXJVUšL@VV@VKn@@Xl@XK@UmÝnKVbVakkVm@k„ƒUK@UmIm@LkKULVšU@WJ@UU@@VkXU@Wa™@@UKWL'], - 'encodeOffsets': [[ - 108799, - 30241 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500108', - 'properties': { - 'name': '南岸区', - 'cp': [ - 106.6663, - 29.5367 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VV„JVL@bUVVnl`XIlwXJlw°nnl‚IXW@UÇĉk@WJkwkLƒ@WVkU@LU@U`W@UXUV@n'], - 'encodeOffsets': [[ - 109092, - 30241 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500105', - 'properties': { - 'name': '江北区', - 'cp': [ - 106.8311, - 29.6191 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nLVU@wV@lV„@Xll„ÈKlU@L„@@bVKnx@I@JVaV@„x@Il@@Un@laVVn@mkUIm`k@WXJmk¯mkxWIkxWJk_UmVUUKƒ@UU™@ƒ„@l'], - 'encodeOffsets': [[ - 109013, - 30319 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500104', - 'properties': { - 'name': '大渡口区', - 'cp': [ - 106.4905, - 29.4214 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@k@@U@w„¥WKkVkImUmwa@b@xWJ@b@„nKVU@L@WVLXKV@@z@V@bVVU@@VVL°K@U'], - 'encodeOffsets': [[ - 109080, - 30190 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500111', - 'properties': { - 'name': '双桥区', - 'cp': [ - 105.7874, - 29.4928 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@WwUwU@kK@KmbU@@V@XlJ@znWlXV@XK'], - 'encodeOffsets': [[ - 108372, - 30235 - ]] - } - }, - { - 'type': 'Feature', - 'id': '500103', - 'properties': { - 'name': '渝中区', - 'cp': [ - 106.5344, - 29.5477 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VLš@VV„@VL@aUKƒIUUƒ@@JUVU@'], - 'encodeOffsets': [[ - 109036, - 30257 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/fu_jian_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '3507', - 'properties': { - 'name': '南平市', - 'cp': [ - 118.136, - 27.2845 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@knyƒk@ƒKU¥šwV@nkƒWƒzUmk@@lKUa@aVI@UƒKUamKUUVaUI‚@Xƒ@UV@K±IUVVlUbUbUL@KWUXmWk@KkXmmkŃKUƒ™a@amUƒbkUkKWUnwUƒÇwV™UUƒÝUKV£U™@ƒnKWwXLVKm¥@wUXkmWk@ƒ@wX@lU„@šyVImaXwVƒƒ@kŽƒnU@mbk@mlUXƒmU@mV@n@bnW@bUIWJ—ImVUKWbUK@nkKƒaU@W_VUUmWmL@UU@™bUWUL@V@bmVUz@`mUUVVbXL@V™L@lmLUxmVamXkW@xWbU„VbUxkU±@ÅUmmkLUbW@@`kLknVlV@lbXxlVUXVV™ŽU„U@UbWŽkIWVUUUJkI@llbUxVL@V™VƒUU°ULUmWXUV@VULWb@™xm@UaVLVKUa@ƒw@V›bkmVambUUm@@VkK@„@b„xlxX@‚„n¤@Xƒ@@lkLWV@Žn„V„kb@bWJXLWx@nkxmm™bXn@VWVUn@VnJ@bVXl@„™VJXnWbX`lL„UlJVI@Žœ@VXV@Vl@bn@@Æmn@VšxXU@mVIlxšVššnI„l@nVJ‚aXI@mlU@aXkVm°klmnVV_naš°@V@xܦXK„V‚nnUlVXbVK‚LXKV@naV@@VVl@@lXblXšWnLlbVK²nš@@‚VLUnlV@lƒXxô°‚V@UnaUUlKXLVUVVUbVVlUnJVX„@VW@an@lb„@nl@VU@anƒšUVW@kƒaUm@InVVKVU@kUW@Uam@km@kVa@a@™nwšU@WlI@mVI@WXaW_nƒ@™nƒlkkW@U‚¥@kV@Uw@wUƒ@@IXK‚¥VIn@nU@`@Xl@VV„LnašW‚bVaUwnU„@VIšKlV'], - 'encodeOffsets': [[ - 122119, - 28086 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3504', - 'properties': { - 'name': '三明市', - 'cp': [ - 117.5317, - 26.3013 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lL@Un@VVna‚bnUlœa@U‚x@„VbULUKVbn@šw‚@XaVK@UVUXWVnVKV¯„VšU@UUKVwka@klJVIVVXUlJXVaV@VƒšUUVWkUWwkaU@UklmlK@_X@ValKnnÆV²@lVVwUaVƒXa@wlXnW‚bnUVwnK@kšK@UWKUaVUnV@_VynU@a@UVKVXšaV@@VnKnXVV‚UX`V@„blL@mVLXaVLnU˜JXIVJ@amX@a@mnUV@„nVWnkl@naV@„ml„@@KmKUam@UU@ƒ@UlKU™Vk™U™K@aVaUwV™U¥UIkJ@wmI@‚mbkwkVW@UXƒKULU`™IVKUa@LƒkkVmUU@WlULUWÅU@I@ƒWW™nU@@w@a@ƒUam_XyVIVWkkƒ@mwVKXUV@nw˜VXkWƒÅ™U@ƒaƒU¯KUnƒK@ƒ¯šmUƒLXŽVLnWVbVbUVm@Ub¯¼W@amƒ`kb™amLUUUƒ™aUXV`@x@XmJ@n@L@xkJUU@kU@mWm@kUUwUUVWl@VUkIƒy@kkaVUUm™IWVXbWxU@k„mVkK@nWVX¦WxU@@bkx@VU@WŽk@™kUbmJUUmkUW@_kKWKƒ@knV¤kIUKWLUbV‚@Wbk@@VWL@VkI@lUXVxUVU@@mWIƒV@a¯nUaƒaUV@„ƒJ™b@bÞ°VbUš@X™aUVmL@‚VXblŽnV„°˜n@Vnx„@VUUUlK@InJVb@„Vlnn@V™L@VWJU„x@XlJUVVVl@LUUUJ@Lƒ„@lUL°¦k˜V„VnV@„xV„„l@blLnlšLVaXll@šnVUn@‚xn@nml°‚X@lb'], - 'encodeOffsets': [[ - 119858, - 27754 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3508', - 'properties': { - 'name': '龙岩市', - 'cp': [ - 116.8066, - 25.2026 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ša„I@ƒVU„bVb°m@b„UXJ@nV@VUUwVW@klJ@UXK@Ul@Xa‚@UVaXKVLlJU£lm„@XLlL@`VXnlVVnIVašll@XV@@Ulw@aV@XwW¥XU@mlLnUlƒV@XwWaXUšJVnUVlb@l„zlJUVk@UXVVVxlVn@nXV@@lVVlI@w@K@mnI@W@wU_VWšbV„VVnKšbla„_n‚bX@°»Van@VUUaUamXUKW„K@a@Ukƒ@wWkXƒWW@wUU™Kw@_lyƒwUkU@@Uƒ@kamVmƒXašUVUka@Wk@»UUUVƒKkbWU™VUbk@mkƒxkƒƒKnIVUmW@kUKmXUmVaU@kU@m@KUWVkIWJ@ŽU@UI@wUUUa@KW»nU@mVkUmm@XwWU@ƒUUmL@ƒw@mnƒVUU@aWak@@amxU@UxULWVXbVLU`mbUImVU„ƒbn‚V@@bVn@bnVWxLmyUbƒIUKƒ@aƒVm™akbV‚UXW„UlKWbkV@„WLUlk@@nšbƒb@lkKmU@ƒUIWJkw¯UUVVxm@@XkbWx—›XKƒlUzWJkUUL@bmKkVƒ@@VUIUlWV@X„K@VkbWx°xUb@LUbk@@VWb@LXJ@VWXU@@bUVV„VVn@VVlLn„@l„@‚xk¦Vx@bVJXbƒn@JlnXxV@@„nJ@X@V@lmx„bUn@xVL@VVKlL@l„„nLVaVL@xkl@LƒxVl°š„X„WVX„Vl„œJWnxlJ'], - 'encodeOffsets': [[ - 119194, - 26657 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3509', - 'properties': { - 'name': '宁德市', - 'cp': [ - 119.6521, - 26.9824 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@LVKVaVaUkVU²J@LVU„@@W‚VJUbVVnLVb„L@VUJ@bVbkL@Žl@Vn„y„XmlU@™xV¦„L@Ž„lmz@lnL@bVVšbVb@l„nšKVk„Vl¤@zXV@šl@XJVLVKnXVK‚VnU@wUm@šKUƒ@UlVlw@U@U@ƒUaUKlU@kXKlmXIWKXaVIVUVK@KU@@k„JVUnLVJUL@V‚IVa@VnLšKUnl`Vb„V„V@š‚Vbn@Vzn@lKnVlI„VVKUalkXJl@XXVWVLVUUmVU@Unm„£lK@Uk@WUXK@U@WVwVkšƒĠkĢǰaUÅUwmaţƒɱUÇa™w„±V¹XalKôx„@„UVaÜʓͿVóbÅLƒJm„¯Vk¦ƒŽk@mamXkKUƒUL›akbk@mV@LkJWb@Vk„mXk@UVmaUV@amLUKUamI@KUaU@WbU@UUUƒUIWJUkm@šƒw™Kk„VJm@kxǁVƒUK@mUVUkmlkkVm@amwƒLVWU@UbVLkšUbƒ@VƒmK@XaVWU_VJnwV@@kUmWakxƒ@kwWakIWxnbUJ™zƒ@kVW@@x@„XllnVW@xn¦ULWKXxmL@„VšU¤VL„ÞVVUšÈxV„mxXVlLlV„anV@bšbV„„LlÆnnlW@LXlWnXV'], - 'encodeOffsets': [[ - 121816, - 27816 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3501', - 'properties': { - 'name': '福州市', - 'cp': [ - 119.4543, - 25.9222 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lxna@nJ@xlIVJV¦UšVxUb@bšLšVUlVškL@V@„VVn@Vb‚Ln‚@LU„lJXblx„@lwXbVn@lU@mxUIV`UXWb@‚nLU„„@Val™UKVaV@UX„Knx‚bn@lUkllnUVnV‚@VLU„È‚lwn@UIlƒšL„x‚™n@VlXIVJV„VVV@XaV@Vb@LnJVbVLnK@bVUnbVUl@nWlƒ@UXalI@KnUl@laœbVKV„lLnWnbl@„l¥°Unƒ„IÆKôa΀U„a@UUwÇWǓIUWUÅVkƨm@ƒ@£@KmLU¤ULˣJ™kUƒVǟUUķ@ĉVƒKUk@Ѱwôǚç@īšé@Åţ¥mīÛkm¼Å@ƒVķVó°ō¦U°ƒn@bVJXVVL@bUŽƒakLmx@xmxXzW`XbWnXV@bWLÛ@™aƒ@ƒaXbWVkaÝwU@mlWKkLWWkLUKULW@kVmVUU݁UamV—¤›n@xUVUzkJV¦lJU„'], - 'encodeOffsets': [[ - 121253, - 26511 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3506', - 'properties': { - 'name': '漳州市', - 'cp': [ - 117.5757, - 24.3732 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@bl@Xb@bVVUŽm„@n„x‚@nKVV@„XVWxn@VnUl@nmVX¼@LVbVV@xVJV@@XIlJXU‚V@Ln‚@lVV@UbVnnWVL@lnXUVmJ„Ll„„wnll@VašUXVla„LVUVV@¼Xl@lbUV™VWbn„nUlb„@@VV@„aVUšmlUašUny@kU@Wkk@WaUVk@@ammk@@U@UlU@aUa@wl@šmXLllnL‚U@anVnU@L@VVV@KlXnWVnVanUšw@w@wm›nÅ@wƒaUam@Uk„mUl@@a„a@U@¥škôK‚wȯ°w@ŻkwǕaK›ÑÛk@ĕōřċ£ĵƒUKW»kÅŻLU@Ulġw@¤Vz™VUbkKUbmLmlULU¼UxmbXl@bWVƒb@bUnV‚UšVbULU@@VkbVL@`U@WX@ŽXV@b°„@b¯š@¤@Xm@@b@`U„VVUL'], - 'encodeOffsets': [[ - 119712, - 24953 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3505', - 'properties': { - 'name': '泉州市', - 'cp': [ - 118.3228, - 25.1147 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Vl„xkz@`‚xšLVV@xXXW„Xl@xl„@V@bnV°™@„„LVm°L„V„bV@ƚX„Wl—UmxU@WVULnx„@llUXUJWzn`Vb@„@b@xV@šmXX@„@JÆVVXVKXkV@nVlU„l@KVbULšJV_VK„LVWX@lUVƒkIU¥lIVyVU@wœm˜£nUVWU@aƒm@UmWw@UX@@am™VUn@@aUUlUVanaWUXWmUnkšK@VšUlVVUUwš@XLWWX™ma@knm‚bVb„VXbVL‚@XJlInlšL„w˜mXóšw@çV»ÇçŋaķƧóƅóKġ°nÅUķƑUÇW@—¯xǰöÆlV„n@llšaš@„Lšbƒ`™@™„VšXVƒVx@V@bULVJUk‚Ç@ƒ¼ƒXUKk@mmULkaWbk@ƒx@UkL@a@K@U@UmKmbU@kV@UmVUbUmmXkW@LUU@U@KmVmU@bVmKkkWK™nk@@xVb@bkV@V@Vl@nn@bl@VUXbl@XlV@@lmz™VVbkŽ™nUVƒb'], - 'encodeOffsets': [[ - 120398, - 25797 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3503', - 'properties': { - 'name': '莆田市', - 'cp': [ - 119.0918, - 25.3455 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VbނVVnUlUX@VKVLlKXXlKXL‚‚nkV@ÞxlbXUWa„b„@šbÜ@XK@aWUXmWaX_Wynw@wnwlK„bV@aUKWUUI@a„mV¯Ŏ¥ô¯ĸU„UÆ@n»¯aƿé@ţ¯nĉĬÝK™óó@™ÑU¼@è™xWô—nƒx™KmkkJWI@UKWaƒUUaamn@lnbWšXXWK™@VxUVkU™V@U™LmlnVWXXVmbUbkVVV@bm@UVnš@bW@@VXx‚n@V„n@bV‚UX'], - 'encodeOffsets': [[ - 121388, - 26264 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3502', - 'properties': { - 'name': '厦门市', - 'cp': [ - 118.1689, - 24.6478 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@VlUV@nanL@V@V@L@blK@V„wl@XalbVKnnl@VL„W„»È@lVUIVK@a@UUw„WUU™šƒš@„_™aƒK™@™bkkm@UƒkõŁxóL™l@¦@Vƒb@bk@VŽƒnVln@Vb„b@xmÆnœ@x@x™x'], - 'encodeOffsets': [[ - 120747, - 25465 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/gan_su_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '6209', - 'properties': { - 'name': '酒泉市', - 'cp': [ - 96.2622, - 40.4517 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÇnÅaĉ@ƒU¯¥›UŹ‚ƒ£™WUýUU±JkkUw‚yÞIČxĊĕĊ¯š¥ÆUkţ™UÅÓ±¼™IUx¯UƒÒƑ‚ݐŰƒKÝnğ°ÅU@Žƒ@Vn@þš¼¯šWnŎ°XLWlnVnbWnƒVXxmbƒa—bóUƒlǕUUa™IUmlU™ƒš¥™kƒ¥ĉwkkƒÝɛa@¯™™U¯°mVƒkVnKlƒōÑÇÑU@kl™UġŽkUŻnUW™@š¯ƒk»šmWV£UKnUƒmUw‚w@ƒUIVaX™šwm»Èmmwn¯ċ™¯LĉŽUƒJUalka±Va@U‚k@ƒÛф¯WmnUaɝ¤Ûmƒn¯m±x@wóxÛLġÒUx¯VƒÈ™JUbóz݃ÇKĉ¯ōlÝUŎWl¯nťbÝ@¯ǩLġmV@ƯĢkÆm™ĊkVťLɃmÝXó°@„ĢbVŽóVݦɱ@Ƨaġ„UV„ĠÇÈV¼UVţwmbJÇwˋa™XmǯKkkmŽƒbXšm¼V¼Ǭڲ¤ôŰÆƴô̐ŤǪnɆӨ¼ɆLÆłUĊšxŎƞȘǔˎǬǪnƨŮǬö°»šġ„„ÞÜÆĸÒĊ„ǀbƾèôÈ@¼¯þŤĸƧ°Vb@lÈĊ‚šʠń̐„ȘKǀŽֲॗţÿǕý@ʊǓƨóÆÑǖŃôw@΋ʈƆÅÈVVĊV„óĊÅ@ÞƒĬV@Þīš@°Ž„V@ĸ̃°XτƜĠ@ÈaÜ¥Őƅ‚™nğóĕVġUůƿŋ—ĕƒa±V—UťÇğÑ'], - 'encodeOffsets': [[ - 101892, - 40821 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6207', - 'properties': { - 'name': '张掖市', - 'cp': [ - 99.7998, - 38.7433 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÈÒŎÒk„mLUŽlŽU„¯nV°šš@°ɜb„ÞĠaÈ»ĸl‚š„LVUÈ@Ċ@ýUm„@@ÆVĠ¯Þm„LƯޏƒ„ѰVVwšJ²»ÆÔšVlŤÅV™¦ĉ°ĉĖċwÝJzVxll²IVVVþšX„¤źœV°¦„VĊ@ÆbÈmǔLĸĠ¯Ģaô¯ĸmÆÛUƒlÇĸk°XyĊUǔV„ǩnmV»ƒa@ýnK°n@l¥@»ż„Ċ¤m皃@£ČU@mƒmVkÞUƐ±²¹°‚ĠwÅƑŃU¯™›V¯aÈŁšƒÇ»™ġn_°xŎKlxœklx„@Þw‚„„@Æm²b‚DzLlkšWXať¯ĊaœÑšK±w@wƒUÅçV±Uk™@@„¯š¯xƒU™±±UU°ōxVxÅÔō°ó¯UÝ¦óbÝþƒ@ĉÈóUV‚Ux„„@VŽUVÝwÅÈǎóVkk¯JǐkmmL@„™KÇx@bkš™@U°ķ²ó`ƒš™šmn¯°ƒUwlÅkUƒ`™¦ɛô™Žķz@ŽÅnǰU¼¯KmVk²ƒJƒ¼ƏÞķôš¤ULƒ@mnğ`™šÇnUxÇ@Ûÿ™U@ƒƒkŻŽ@x@móJkŃ¥VŹĉóÒĉlċ°ķ„Uƽ܃@›x'], - 'encodeOffsets': [[ - 99720, - 40090 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6230', - 'properties': { - 'name': '甘南藏族自治州', - 'cp': [ - 102.9199, - 34.6893 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ލš™nKlnšwX¥WÝXk˜xÞUnƒ°aĊVnUUKlÞĶWXnĠ¥ô»„™@nmVL@¤°™Vz„JšanU@aÆwna@k›ƒU¯šyX_›aĉb™ƒ„wƒéXkWwÅaš¯V¥mƒ¯UƒƒI@ƒš@„mšb°aÈçšUš¥@»‚knwɜƇ°I°ÑÈmVU™¯Xa@w‚W@wšV¯Č¥l¯Uwnm@k˜aUaóKkk@™Ça™b@ށÒWa¯IÇxÛam¼™VUƒxÒl‚@zÝÒ¯bÝaĉVĉwDށW›zJ™mJn²mܯUƒ¯ĉ@ġ¤Åb@²nšmlƒ@@Ž„„U„ƒLVxšV™„U¼Ålma™b@ƒ°™l@WIUƒ¯@mƒ™@™™ó„™„@U›zţyƒXÇU™ÇVUUVLkbWakVWmUbkkƒKUÆ»nƒ°Knk@aƒUVmšnk»l¯Ģ›lw@_kKVU@ƒnaƒ@lUk@¯¥mV@kmbW™b¯Åõa@mkU@kƒÇŽkU@›`@™óó—bl¼Uxƒn„¼šlVȄx@blVkVVnƒ`XÈġÈ@ǃK£ÝJmUUnUĖmlU„mKUn™VÅaUw›Uĉ`¯n¯wW¼nxVŽ™š@bĉnƒ‚kIċŘkXUŽ±Ò™xšÈ@ŽX°`l„œV˜IȯĊV„ƒšVVan@VašUVażVmšblkÈW„ƒWIXa„alL@wVb„„V„¦lL@lĠ™n҄U‚nk‚šL@ÆÞkšÞšK‚bñþW¦Û„ċVƒ„ULUºkÈlŎUxÆxÞUUxšÒ‚x„@XbšL@lÆ@„ÒlXVln@„bm¼ƒJ@„Ån„šƒx@bnšĠm„xVXmbÈè@ŽĊ£ČW˜w'], - 'encodeOffsets': [[ - 105210, - 36349 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6206', - 'properties': { - 'name': '武威市', - 'cp': [ - 103.0188, - 38.1061 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@±¯¥@klwU»ƒƒÞÝmwKm¯™™ç@™kVÇUL¯lVUKġ„ġm@a@U„@X£°l°LŎÇ@aōVÝw™ÔƒKUŽÅš„WJ¯lm@ÛVWa™@klĉUmaƒLUanaƒ™ƒk¯J„™™±KkXóÜÅxƒ²Ç‚@„„nUÒĊb°@™ÆkL™Ž™XÇÆ@xÝn—xWxţ„¯¤ƒI@Æn„ƒVV„VlU²Æè„V@x²x™L›ÒĉbŦ°Wb™Xklބš@l¤šXĊ`„wl@ĢÈŎm@bšnV‚Ubƒ„@șÆÛLƒèǚUÒŦlĸ™`°ĮʟÆǓbĉôϚĊƚĢnŤé΀ÑĸĀĊ¦„@@l°lœ¦Ȯ¦ɆÞĊKŤ™ĵĸů„»mفyġ™ķŭ@Çɱȭ¯mƧUĊķnŁŻ»UaU™˜ƛɞÝƨů'], - 'encodeOffsets': [[ - 106336, - 38543 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6212', - 'properties': { - 'name': '陇南市', - 'cp': [ - 105.304, - 33.5632 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šÈÞ@l`UmVƒ¼œŽ‚@nnÆwVlnVVa„LVƒÈ_‚ÿރ@n„a„xÆ@„lš_š@VxnK@llLnxmÈŎJnbUxšI°Žl@n¦‚lÈIlmX¥„k°@šk‚J„k²é˜@klaUaVaU@@ÝnIWnmnx‚k„ºÞ„„aV™°„V@nw‚KšxôbÞ£šVšU„bšþšLn»mƒVw„IšJ°Ž@„nb@°°I„ġUkÇKVƒ™™@ů»lƒ„Lnmƒ£@anK@Ñ܍n@»mL@£™yk„UUmbUÞÝ@kyÇbó»™XUxƒWVzb±mÝbXaƒwUamL¯»@wUKVwm¯ĵJ°ÅUWVk„KVk°wÈVšVуlUšƒ¥škmVamknƒUw¯¯ƒbċ¥ÅKƒk™Kk„™VċVk£kKVw‚Ñ„a@kóyÛ¯ÇVk™ów›š—Xō¥Ç¼ów™Ž¯U±‚k„ƒ@x›IĉÒÅVmÈnšÜ@n°„bUbÝV‚ŽUnnJ¯Į@‚m¦nV܃@„„L°JXb‚Ñ@šaÈb@šllôLVb—b@lmnVxk°ċ¦U°™Ž@xX@xWbš°UVÇn¯Ò¯Jɛƈmxl@¼'], - 'encodeOffsets': [[ - 106527, - 34943 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6210', - 'properties': { - 'name': '庆阳市', - 'cp': [ - 107.5342, - 36.2 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@kw‚ĉ—»VamƒƒV¯wƒIóVkl¯™Km™Vō¯ÝWkL@bÝKō¦@Ž™„@š™Lx›@b@l™a@km@@l¯nm@UaÅ@ƒ„óWUXm¥™nƒw`@UUxķôǰğ¦@„VJš_n‚‚IVŽnalxkX„JWn¯šnVƒLšxl¤nnVbklVX@xnxmV@bUK@nm@@xƒV—°±aÅnƒŽkUWnUaƒx@m™n@ƒ¯LƒššmUĀlU@lV@blLUblxklkIÇx¯°‚UXbšaVŽUnšV@°‚LUlnbšX@`°nVmbnÆmV‚kLmK™¦UŽ@X„y@kl@U„°K@¼XbW„ƒš@b„WnLVa„VšƒVz@xlVČ¥lbUxލlV„U@nÆWôn²™VJlU„Ƨ„LnmÜLXa˜n@mœw@wlUlV²mšblwšVȃlLލ„±@lVnUlxnkma@mškšJ@kXV‚U@mn@š¼VXUƒVƒlLnmVbôaVnWV»ÈUl°È¯ÆIn›ÆU@kk»mKkÆġk¯@»mƒk—¯@óÇlÇ@—Vykkl™Uml¯Þ™@w'], - 'encodeOffsets': [[ - 111229, - 36383 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6204', - 'properties': { - 'name': '白银市', - 'cp': [ - 104.8645, - 36.5076 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VKUȚl@šè°šnŽ‚LnxÝބ„V¼kx@l‚¦²°ĊóĠ„™Ċ»š@ÈxšaĊxlwÈVŤa@¯²aÇ£ƒJk£lƒnUÞ@°šô™@y„wl»lIX¥Ǫnw@ÑÞWla„ÅlL@ƒUwĉakƒl@ƒš¯mwna°J„V¯nUVÓÞÑm£²óWaUƒÇ@óÝUçV»ÈkkW@¯‚xV@XlK@wX@Vmm_@wÈݙKU¯ÇwVwÅK¯VƒkƒJ™™™XkWVaƒImޝUk„ÇlVšœĀV°mxóšk„@¼ó„WxĉÜU@Ub‚zÛJÇk@‚ÆnVlԙ@kŽ„x™ô@ĬWL¯ƒƒK@aÛImm™@ƒIUaƒ@™™UŽÇêU¤VÒÇx¯ÒV„šš™lk@Wbĉ¦UbkWV_‚y¯Lƒaó„kŽ@b@nmbkx„°'], - 'encodeOffsets': [[ - 106077, - 37885 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6211', - 'properties': { - 'name': '定西市', - 'cp': [ - 104.5569, - 35.0848 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„a‚V²wVJV_@„LlanÅllŦçÜӚ_šlnƒWaôk„xUš„bmV@È°lèšnk°l¦„`@nnL‚@ÈlÜIyVaV@ĊÛXwôƒ@»lƒô™nwU¯›ÿU™Èklƒ°Vn„JUblXšWšš„I„l°U„ƒVƒš—@aVVVmnL@„lƒ„UUw‚mkƒš£„bV¥VUVwۂƒlaÇÝރmk£ƒLUy¯L@WlkKW_XaWƒ—mƒ„ġU@a™k™‚ƒakXkmVwmŹVƒU™b™WƒónmwnWW£„KÈnV¥ƒ¥„ƒÆ_k™lW„bU¯„V°aôbnaVwmaōInÇmwkK@kmLUw™@™`ƒkÅ@ƒwƒb@m݄ĀÇ`U„ƒKUbmUUkÅxmm@›„»nUVk_Ý@™Ç™¦™VÇè¯b™aƒn™@@„„JV„°Žn„U¦™°ÆbXxWl„êƒxš„ĊaœbW`™zV°œ„@lmbÅx@bmV™bƒI™`™¦@ÒUVUI@ƃL@bš¼@ššŽ@„šlmxnL„°ULƒŽƒÞğޛ°kLUŽƒL™°™xVŽ„n„KVƒl@šzX@'], - 'encodeOffsets': [[ - 106122, - 36794 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6205', - 'properties': { - 'name': '天水市', - 'cp': [ - 105.6445, - 34.6289 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@UyȍVƒVUnn@ƒVU„`UblzšJnk‚@Vb„KU„°l„wš„„W°„nkVŽ‚UÈlš£°V@n¥šV„kl™kU˜±U„ƒn™ƒlw¯UkwmKUlmkUmnkym@ō@U„mWÈU°l°anlJškUKlU„¯Èm@kmWV»kkÝLUWUx±b™@¯ma@ƒ¯™IƒJUxn„m¼™K™ýƒa™V™Uݤóa™wLmxU@¯ƒUšƒb݃ƒ¹lmwmnXŽmJ@ÞV@UbVbkblŽ—@±êƒlI™l¯@ƒlW¦knÇJkm¥k@¯™Jmbóa¯bƒUV°ƒakXlšÅ`ƒ„„¦U¦ÇmƒLX¤mXnxm‚„ôšXša„VźUnŽUxlnlW„bššl@bĢV„ƒ˜nX„WbX`lLXk@ްKVz„Kl¤„nÞ݂Èkb„‚܁'], - 'encodeOffsets': [[ - 108180, - 35984 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6201', - 'properties': { - 'name': '兰州市', - 'cp': [ - 103.5901, - 36.3043 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@lW²LššƒŽ°I„l„šmbVb„KnbĊVlkš@XbÜU@Žkn°‚XIƒÆ™V„LšÓÞxŎUlôƒ„b°KzU`lXVaĊ¥Xal@šk™™Uƒ°ÑÈwUтV£ÈéVšš„@Vb„Jš@nnÜJ@b„L°„XK@īšóƒwlš@kÓmUÅmK@mƒ_k¥l¯™mkçǯ@nUƒaV™ƒwólXbm„™k™`ÛÔťèkkmÆkbƒK@U`UI±xUƒbWlX„mbVbÅÒólkƒƒIWJkšƒ@ƒz—Kݼ™@™xUx󎃄¯LWb@ŽÅ҄„±¦U`nbťĀUšVb„LšŽ„U'], - ['@@ƒ¯lwna@mōȯK¯kW¤ƒ@@V@bĢñVLU‚°k'] - ], - 'encodeOffsets': [ - [[ - 105188, - 37649 - ]], - [[ - 106077, - 37885 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '6208', - 'properties': { - 'name': '平凉市', - 'cp': [ - 107.0728, - 35.321 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@ÆLUxÈxV°šLÇÞ@xn`Ü@X@nĊŽÆwnJmwUx‚aUkšw@V@w„aVmlLXÝl@X‚VĢmV°@nl@UUUWK@w„ÿVI²Òlmš@nÝĊýVV@nšJ°„„šUłm@kV¼nK›ĢȤôK„blnKllVk²aĠ¥È¯ĸóVw@V‚_„xšmn¦VWôX„ƒÆ@Vbn@°m@kn@@lšb@k‚aœ@‚wšK@™šƒ@UlKVaƒWX™W²¹lӄw@_°›n@@_lKōķW™@ŽmLUWƒn™»Û@›l_Ç`ƒÛmm°ÅbWb@š—VWbƒUUKDŽÅaġlmkUġlƒ»—Lƒl™Um¦@ޝU™¤ÇkVUml¯ƒƒX™ƒƒx¯kVƒƒLUa@ml™IkyVaƒ_UV@„mmUVU„ÇŽVzUxUVU¦ƒa™¤l„nVxƒVk„@ƒmKUnUU@b™˜U„ƒ„', - '@@@Žż@™mlkƒġk' - ], - 'encodeOffsets': [ - [ - 107877, - 36338 - ], - [ - 108439, - 36265 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '6229', - 'properties': { - 'name': '临夏回族自治州', - 'cp': [ - 103.2715, - 35.5737 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@š@ż»˜L„y„@l™XI„Jl„ôkÆÑUanaWƒXkW@™yk@U„ƒLƒmUšwš¯„KVlKœ¯Ġ݄݄VKƒ¯mKnw™k@ƒ™@™™»@a„K@ÅVJVU@њ¥š_Uy¯š@£UKmn@‚ƒšó¼ğ¦WmĵXݎkŽVLmVĉU¯bm„ÝV—wWlXÞW¦™xkmmL™šÝŽœ„±U@Vގ™š@„ÅÈW°X„ܼƨyUĮnŽWŽnXÝxUx°lVXJlôV'], - 'encodeOffsets': [[ - 105548, - 37075 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6203', - 'properties': { - 'name': '金昌市', - 'cp': [ - 102.074, - 38.5126 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šĢȼ™„Çł°bœU°šV‚ƒń‚ÆǖŰnšÆ„ōĬǔaʠůĭš_kķÆ¥VÑș„çÜKšÅ@DŽƒVaU™m@aōnġÇk@ƒxĉ_™Wk£™@݃±KÈ±aÅnƒ@ƒÝxƒ@kw›lkwōL¯wm`'], - 'encodeOffsets': [[ - 103849, - 38970 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6202', - 'properties': { - 'name': '嘉峪关市', - 'cp': [ - 98.1738, - 39.8035 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@llĊx„¦šl™¦š„kVVnšJVbǖV„kôV˜a„bnaWw„UXmmamUXkWKō¯Xm°™™»ĉÇ@UVƒK™ķkǼğb'], - 'encodeOffsets': [[ - 100182, - 40664 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/guang_dong_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '4418', - 'properties': { - 'name': '清远市', - 'cp': [ - 112.9175, - 24.3292 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lǯkÿƒaV¯™VaÈU„¥ÆÇ„Ilxšmnb‚Uœxl™„Uôl°kš„„Wl„š@ô™VwUanUl@„xVkšaX¥‚kU»„aš¯±@kka@ƒUwmUkwƒJk™˜„±k@ƒ™™L@ÝWUwV݃—xÇU¯ŽÇX@m™Åƒ@@yĉ£VmUwȗ»ÇšUn„lUnWU¯`Ukƒ@@„™x„Ž@bÇxX¼ƒVVš¯LšĀk‚ÝLƒ„¯@VŽƒĀ¯lnĊW¦kVÇôkUDŽUK@ţ™U@a™™ó܃UU»ƒ@™¦k@Vx„KVb„n‚š@„Æ™„l„@xšƒbWšnlU„lxÈlV„ȰƄ@¼™„@x„šWxœŎ‚V„šK°„š¥ššnƒÆkŎ@ÈÑm™„K@¥šk@™ô@„nôV'], - 'encodeOffsets': [[ - 115707, - 25527 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4402', - 'properties': { - 'name': '韶关市', - 'cp': [ - 113.7964, - 24.7028 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@W™Xk±Ñ@ƒUw™mUwĉwlmn@Æwn£mkIš¥ÇÅ@¥šaƒón£nWWwš£V`Þ@šnVml@xô¼„IV¥ƒkUmkamUkVWwÛ»móƒ£UVÅKmn@x™@kbmm¯a™Xka›VĉaUb݃ƒ²—‚lš„IlxnVVx@„lb@l²™°ƒbV¼lW¦™bUlƒwk@mVVbUxóš™@kƒƒX™ƒ¯lókƒVkš›wVma™nkwƒJÅȃ¦ÇVUbšŽU°„bl°ŽkÈ@x™¦ÆÜ™°@„°„¦óa™VUôlUlbXl@nÜV„„nKlŽnIVÞ°Wš„°U@bnm@¥šIVƒ²Ulƒ°VnalzXyl_Vyƒ¦lƒœLlxš„@ŽÞbšKm„knVWanwƒÑVwČº˜@n_ÞV„aVŽÜIœl@„˜KȚ„VJ@aš£È@˜™@km™„aV¯W@_ƒa¯KmbkÇkLmwƒ@Å¥'], - 'encodeOffsets': [[ - 117147, - 25549 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4408', - 'properties': { - 'name': '湛江市', - 'cp': [ - 110.3577, - 20.9894 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@ƒkXƒ™@a„UUċlk„Jƒk„™@wVJXUWk°W@nKnwlUlš²ƒ„blU@‚lI„l@„XbW„šxnm@lW@w„wU‚JX¯VU°`ŎóˋkÝÝkÅ@ÇmğÈřmw™aĵV›xUہ»°™ĠǷnýmóX¥ɅĵҏÇ@°²ĊU˱ĮU¤Ç°™Ā¯ɐnżUĊĊĬV@脎@ԃÒU¼l¤nƒĠb„êVĠ°Èy„zVaV‚nUÆL„ašbVl„wÆ@'], - 'encodeOffsets': [[ - 113040, - 22416 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4414', - 'properties': { - 'name': '梅州市', - 'cp': [ - 116.1255, - 24.1534 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„‚nԚlW¼x‚¦@lœVl™lLkè„a@zš¤ƒĖ„¼UxlnUKUbÝlU¼lb@„Vx„V„klJÈwV¯š@ĠlÛ˚nƒbkšÆźÞƒUÈôklmšL„¥‚LœW˜„„™nKUkVa°V„x@IVV@x°bUk„a™a@mV@„@y„w‚L„ÑUwVUšV„‚„U‚bÞVVann‚@XwÇÿš¯²aVamkXaÆ»@»nw@¥›UXaƒkbWa¯KUw@¥m@kwmLU»UU™J@kmU@UUWUƒ@ƒyƒanwmçÛl¯ƒŽ¯UƒmKUmƒwVkmÝXbW@XWÝbƒk¯@±‚w@»U@W¯Å@ƒÇ¥UƒU@ƒƒ™IU™ƒakJƒĀ„ꃰšþƒXkamŽ@Žƒ_J°m‚@X'], - 'encodeOffsets': [[ - 118125, - 24419 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4416', - 'properties': { - 'name': '河源市', - 'cp': [ - 114.917, - 23.9722 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°VlmX¹laĢÒlm„@„„šV𣂂@¦Ģklynn¼lW°z„W„„°VbÈV@lÆbnn‚JškX„šVÆašÅ„W@™ƒUUw@ƒkaV»ÞkVaVLkmVwƒ»„ĕ™£@yƒblçkKkš›U@k¥‚wX»™kmӃ@Wn¯‚I„`@nlb„W™ý„¯ƒé„ÿlI@™XUmWUwƒ@@UJU„Ç„mKUV@x™„ţk¯¯LWƒƒnUxK@ű»Vwa¯š@¤WX@ŽÛ¦@¤ÇIȼWxXŽƒ@Wx—w›ŽUnVbÅèmVa±²UWl@Žk„lȄ¤nôܼXxlUnVlbVn„lU¦ƒJó»@wnkmU™‚Ý@U_™¤XxmXm¤„ô™b@¦Èƙ¦lJn'], - 'encodeOffsets': [[ - 117057, - 25167 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4412', - 'properties': { - 'name': '肇庆市', - 'cp': [ - 112.1265, - 23.5822 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l@š¥„@V¼„Vôۚš@bšV@ŤVLȃlVÈólUX¥mĉ°k„ÿU°@„ƒÞKl™ÿ°KU™„UW»Èw@aƒšw@ƒ„@nm@w›£kÓVUVn„Kš™k¥™£Vamƒ@nkKkbÆǫma—kmLU¥™UmƒÛwmVU™mUƒJ—ÇaUxÇIn`mb@Þ¯b@„nJ@nl„U‚V„lVU„L›W¯—Û`Ç_¯`mš¯I™bĉWċzx±J™x𐝯Uƒƒ_k@™šƒJ@Umb„šXôlLš˜n¦@¼ĊxlUXŽ˜xUbL‚Ġ„UnVĊwlšUš„b@lW„X„‚m²˜@ÞWxXš‚Unb'], - 'encodeOffsets': [[ - 114627, - 24818 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4413', - 'properties': { - 'name': '惠州市', - 'cp': [ - 114.6204, - 23.1647 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lbšW°bnnlaš@@wnmÆLVUkÇlƒ@Xk‚V²±‚bnUÆçUaVmœ˜xXw„@WXwÇ»ÈJ@£Ü¥@XW@£°™‚bUx²¼@ƂLVw„mX„°K°Ťlšƒ@wVUnLȃVƒVIky±wkƒKU¯ƒÅkƒ™XġÑۃlwUwlm@m„nKWašÅm›¯óÇmğb¯alĉUwķbmb@lÞÒVn—šmĀŹ@VŽƒbVŽUnmakLm`@xĉkklVÔVJVn—lV„UnmJmaLUbl‚™zmŽkL™a™‚ō@@zš‚V¦UŽV²kJ„nÜU@˜VXUށL@„lJƒL@bݤUnVŽ—b@xVnlK²„Vx°V„xlI„lkVl²k¤@n'], - 'encodeOffsets': [[ - 116776, - 24492 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4409', - 'properties': { - 'name': '茂名市', - 'cp': [ - 111.0059, - 22.0221 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚LnÇlk„KnkÆL„ƒUm™ÈxlUœJló°n@ššanŽš„„a@ƒ˜@X_@mÝóóU@a™aU¯mL¯ƒƒkV¯™ÇVwkw@V±Ŏ£@™™@šalw±Vk@m„Åm¯™ÿŃƧIÇ`ōô¯_UVW°IV‚ƒx@xkX@Žmn™wXƒWa@ƒƒkkJ@kVƒa±„k™kVmxmL@‚¯XXlWVUI@xƒš„lƒIklVȃV@b„šlW@„@nUxVblVxkôlx™n„‚y„šnIƻư„aXwlK„bVnƒŽXb‚L„¤„k‚L—èƒVV¼ƒŽ²IlĠVX„ynz°KVx°@VlœLlblKœš'], - 'encodeOffsets': [[ - 113761, - 23237 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4407', - 'properties': { - 'name': '江门市', - 'cp': [ - 112.6318, - 22.1484 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lUXx°JWnnƚXVš„W„X@„šºVLV¯nU‚Vnb™ô„x‚aXmW™XIšŽUb°xlK„l¯œK˜xXÞ°ŽšXÈ¥Ü@„ĉޏU™‚çš»nóƒVma—x‚¯UÅU¥Ý¯@ƒƒç@ș@çĉÅUmU籃ĉKÝxÝ_ÅJƒk¯»ó¯nmèkǀšŽWxœ¼mnUÜġ°@¦@ƒxƒLkŽÇaVnUxV„™šVlnIlbnÆÆKX¦'], - 'encodeOffsets': [[ - 114852, - 22928 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4417', - 'properties': { - 'name': '阳江市', - 'cp': [ - 111.8298, - 22.0715 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°„nKV°šb@bôVÞô@n„VlÒôÆUnlnn@lmkmVkƒaÈkÆÆ„™k¥‚ÅÞ»ÆKXkW¥ÅLmÅkamJUkš™UƒVwUmÈbl„K„w‚@@¥Ģ¯VÛnm›»Xw™lƿ™@kbW™—aʵ@óL›l¯ƽ@™ƒƒLn°ƒÆ@nUl‚²kx™b@‚š@šō¤U²@ŽlxUxšÈU°lŽ„'], - 'encodeOffsets': [[ - 114053, - 22782 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4453', - 'properties': { - 'name': '云浮市', - 'cp': [ - 111.7859, - 22.8516 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@V„Iš™l@„`V„°Å™šw²I‚wČyĊXša°Jn™°_È`Ü_°˜œX‚KVƒkUUƒVkƒ@mmI@ƒ°a@Ýnam_ÈJVwlĉX@„šlUšómaUmVU°UK™¹@ƒƒWƒXU™™WmÅXm¯IWwkVWlÅLݼÆl¦ƒšÅÅÇl„bUllnknm@kmVmóÅkуUW`—@@„ƒb™ƒm™b@™¯mkô›IkVÇwnš„VƒÅKmlƒLklmȁKƒšVĊK°²„`n˜¤n„U„bWl„xVx™LUx@°nXm`VklVxmnnx'], - 'encodeOffsets': [[ - 114053, - 23873 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4401', - 'properties': { - 'name': '广州市', - 'cp': [ - 113.5107, - 23.2196 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ș¼VxUnĊ¤@z„@šÆ@nÈW°ÈV˜w„ŽUÞVxÞX@ŽšK„šl@ބVaĊbœU@ml£k±lUƒkkJƒw¯UUw±ƒkLUm@w˜aUVmÞ£@a„KkI@ƒ‚KVUW@—ÛVƒmlIU±VU¥™@yğzƧǃƒšƽĠřšÅnī±m@ƒ²¯lƒ°@nÝÆóUll@XnÝVU¦mVV°—„V¼™Jƒn„b@°mbn„ƒ‚@²¯‚¯wVwƒ@@nmxX¤¯L@ŽVLU„m@@l'], - 'encodeOffsets': [[ - 115673, - 24019 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4415', - 'properties': { - 'name': '汕尾市', - 'cp': [ - 115.5762, - 23.0438 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@‚„@VxnXWV@š„bVššJ„„V@ÞÅU¥Ċxš£UWU‚wÅUU¥WVUkĊÇnkV`°LV™„wƒƒnU@™„ƒlbĊ¯„Vnalšš@@çkUÝ¥ġaó¯ÅaÅLŻÆUýmy¯ó@ĉÆó„ȯw™ÆXbmLƒ‚@nknVxkx܄ĢҚW„Æl„V°„Ll‚²xlz'], - 'encodeOffsets': [[ - 118193, - 23806 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4452', - 'properties': { - 'name': '揭阳市', - 'cp': [ - 116.1255, - 23.313 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@V„Ȧ„Æ@X°V@@¼‚x²°@„lÞaWXX@‚aÞWlnUŽ„xVnnL„‚°V„@k‚mĢl@„ak™@mlk°aXƒ±„nwm±™²¯JV²@ƒwW˜—_mƒa„V»ƒU@m¯ĉUф™šJl™„ašbVn„lĸLlƅÛDZwÝ@ĉxó@è™@k™mbƒUĉ°kaƒ„@šmV„„ƒxUš¯KU_mlĉÈVlXUV¦ÆVxVŽVX™¤ĉwV¦ÝÆ'], - 'encodeOffsets': [[ - 118384, - 24036 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4404', - 'properties': { - 'name': '珠海市', - 'cp': [ - 113.7305, - 22.1155 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@„è@„Þ°V¦VƁ°˜wnb„UÆ»nçÆ@nxܤ²llU°VnÈJސ°UôéšķUklƒô£VVˌKÞV°£n¥ƒ£ȗ™Ýy¯¯mÅkw¯bÇĔğ@Ýn¯ĊƒVğōŁŻƒķJ@Ț', - '@@X¯kmèVbnJ‚™' - ], - 'encodeOffsets': [ - [ - 115774, - 22602 - ], - [ - 116325, - 22697 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '4406', - 'properties': { - 'name': '佛山市', - 'cp': [ - 112.8955, - 23.1097 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Èb˜Ž„InVVšnUÜxn„šVV¦nK˜lnbÅǬlalL@mn„Ubš¤l¦™šƒLUmUVlԜ¤@xmnVl°_XVVmƒkVmș@kn@VƒUK@°KW£nw@m„@Ux°x°@±„mƒna@¯ƒa„mšIU»˜ƒU¯nUV¥ÞUWmk@Vk¯™Ukn›ÑWݐƒĊÛ@Ǧ™W¯Wݗw›Lk°ƒkL¯wVa™WJXšWnbƒwkVƒ™W@kĊ'], - 'encodeOffsets': [[ - 115088, - 23316 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4451', - 'properties': { - 'name': '潮州市', - 'cp': [ - 116.7847, - 23.8293 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°ŽÜknèmx„b„z„@V‚VX@VnV@lšIVVV¼nKlxn@@¦Vx°LXbla„ŽWbœV°£¯™W@nW@™‚aUñVœwWš»@¥ŤÅUÝǓÝóV@ńǎkUVmƒIUwÅVWÇX¹›—@W„¯bkl@nlšƒb@‚kġށn@l'], - 'encodeOffsets': [[ - 119161, - 24306 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4405', - 'properties': { - 'name': '汕头市', - 'cp': [ - 117.1692, - 23.3405 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚@U±°Iš±n²mx²ƒ˜@œWºXÈÆUVx„JUnlVȍ@ŃôUǔÞVçn»VyĢÛVm@»kaÝUǼóšÛÈķKċ¥X„¥Wwğk™ƒ¯@ƒwķKƒkUm™aƒbkš™IƒšVÒ°Ċ@n„VU¼ƒ‚„bn˜`X—„x'], - 'encodeOffsets': [[ - 119251, - 24059 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4403', - 'properties': { - 'name': '深圳市', - 'cp': [ - 114.5435, - 22.5439 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÞLš„@xšbV„šVšK°™X°Kô¥Vw@anU„胐š‚lkĊl@wn_lKnbVmU„aUź@nÿ˜™UmÝѯUƒbk„@ÆkxŻ@™aÇX—wƒJƒƒ¯LķÝUĕ™ó™ĸóêWº@b²nmĬ™Æ'], - 'encodeOffsets': [[ - 116404, - 23265 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4419', - 'properties': { - 'name': '东莞市', - 'cp': [ - 113.8953, - 22.901 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ŏ@ššblKnšykVa‚KnbnIVmUƒ˜kUmUIUә„ƒçmV@bUxó¦¯LW‚¯š™L™UUƒ™a@w™ƒÝKğŚ™ƾ„„ƨÈĠy'], - 'encodeOffsets': [[ - 116573, - 23670 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4420', - 'properties': { - 'name': '中山市', - 'cp': [ - 113.4229, - 22.478 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚XœÒlmšV°ôÞÅ@m„¯°k„±‚@@aX¹¯VݏÇIUmV¯kk‚±Û£mw@‚Őmèżmô™¼èVš'], - 'encodeOffsets': [[ - 115887, - 23209 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/guang_xi_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '4510', - 'properties': { - 'name': '百色市', - 'cp': [ - 106.6003, - 23.9227 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lklWXL@VšI‚l@XnJn@VUUalk@mK@kny@UlU@a°™„ƒUU@VmaU@Ua@UWw@ƒn@KmLm@alkšmnI‚m@an@VIUamWÅImwU@@a@K„X@JVL„UVmUaVkUa@m„@@Ulmkk°ƒUaVUlKXbVwVIkaVmUk@KVk@a„aW¯m@w„¥laœX@KmaškVmnUl@nxVKšInU@yVaVIV@na°KlxX@@_lmXšUV`VIV™V@„n@lšbn@@WUkValK@²yl@„„VUV@@K°L@KU@@UVaXIVVV@naVkVa@K@UUK@UUa™LWa—w@m@K@UVVƒ@mVUUVKnL„mVL„K‚bVK@UUIk›mI@mUIVK@IUK@VkLƒ@WU@mU@WmUk@ƒI@VƒJk@WwX_@amK@UUWkIƒ„ƒK@LVb@mVmakL@J@bU@Ux@xƒbmI@`ƒIwm@UbmKUaUWa¯UkJWV@XƒJUU¯LUmV@ma@kkamKwƒLUUmWVkkm@aVUUkVKnVVUmXK@UW@km@Ukkm@@W@U™kUy@I@aUUmbƒ¤U@kUmL@bmJU@Ua@wkLWWkL@Uƒ@VaU@ƒLUakKWbkUWVkKkLVLUV@JVbƒz@Vƒ„@ƒVmUU@kVmK¯@VƒU_™VWakVmIUKUaU@@bml@XU@@V@LmKUV„mVUKƒƒKƒbkaUXƒKUL@x@V@l@„mxU¦„V@ŽlL@V@Ln@@VV@„nlKUaV@nLUbmJnL@VWLkbmV„@@L„W‚„XLlx„VVIVV@x@V²blUVm„LVUœK@kWWXUlV@Xl`„LX„l@@VšŽƒn@VnbVš@lVUVUÈVbš@@`UXU`l@@XUVm@kš@xmVknUJVXUbmKULmbx@VlJ@LVbkKUbVLÇUUVƒUVmU@VaUkUKƒVUwmLkUUVVlƒbka™XmwƒKUšVVU@@V±Uk@VWUUm»XamU™bƒKk™`ƒ„™U@UnWW_kKmbUVUVmnUV@„nJVUlšUbU@UV@n@JmI@VmbnVUXlx¯ŽkKmnVV@L@V™bkV™Umm™@Ub¯LmlUƒL@VWLkmkLmmn£WmnKU_mW™š™bnbmxƒ@U¦UJU„@Xmlk¦@‚mnUUm@@Jn@lV„ÔVJnIVW„I@a„ƒÆK@I@aVK„IlŽÞnnl@nl`nbÆX²l@xV„@llbVn²ŽVVl@nn„V@IlW@Un@@kVa°KšnÈmVaVXUlaVƒÈU„VlwôUlynIVašan@lVXb‚Iš@n¥la@Kš_n‚@bÆx@XnJV„nKVz@`VXVšU`@bƒ¦UV@VšIlx„UnV‚K„XÈbšVllšbVbnVn@'], - 'encodeOffsets': [[ - 109126, - 25684 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4512', - 'properties': { - 'name': '河池市', - 'cp': [ - 107.8638, - 24.5819 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lLVl„bVV@nXVlI@JVX„mšn„W°b„IVV@‚ln„@nalVUb„nW‚@kVkÒlbVKn²°bUŽlV²@˜X@`nb„aUI@ƒ°wlU@aXJVI@aVK@wUamIXm‚@XUV@@bV@Vm„ImnUUwVaVKXU‚nVK@akƒVwV@nL@UV`n@@X‚lnIUJl@X¦˜V@aUIVm@anƒV@UwnL@VlbVL@KVVXUWƒ„wUUVUka@UVJnUlbnalbVVn@°„„LV`Þ@šXVxV@@bVlUVVbXnWlXnmlš@XXWVXJmbUI@V„llUVkn@@VWV@Vnb„@VXUJVnn`lLVk„a„»lVšLnw@WV@lInw@WnU@U@m‚knUVó„K‚wUmUXUƒU@@wVJVIl@XKVVVbVI„J@Un@lŽVLnm„b@U@Ul@nUš°VUVJnnVJV@„@mVU@ƒ@wkUVwkKWk™yUUkU@alkÈ@lJ@x„Ilƒ@UUWVkUw@Kn@@kmaƒVUl™UUL™ÇƒUUKl@UUmL@aXU@mlUUwmKkUUVKVUƒaƒKUnK@U@Vl@XUWU„KlwX@šb@K‚@XkV@UwWJka@aUwmV@U™@@U@wUm@»kLWVkIWŽXnmV@VkbmKƒLUbk™Va@aƒa@@aVU@aVak£@ƒ±UkVU¯V™UUƒJVƒUIƒ@kxmUmWUbL›w@K@aU@@aVU@Kma@aka@_VWkk@UWVUKULWKULUš@KUnƒwVaUKƒxU@UmaƒL—m@kVmVa@UkƒmI@ƒ@KmIkxU@@K™U@mmakI@VƒLkmWkkJ™_U‚@V@L@n˜xXbšKVb@VVL@V@LUbUlmbU@UUWJUb@VV@@L¯K@LU@UVƒƒk@±z@‚kLUbVl@Xm@™akm@ƒU@UšUJU_™VWŽkn@`W@kw¯LmbU@UJUb@zmV™JULmwk@mVUn™lnb@L›Wkbƒ¦@x°nXŽƒb@bUl@LVlUnlbUJUxWakLUVVb¯„llkn@Vƒ@@nVbUlVbUnƒVUK@IƒW@L@bV@nxÆJnXVbUJm@@bnmJ™nkl@b‚nnK@L„m‚@Xx@VVbV@nb@UVVƒ„¯š@bkV@Vmz@lnLl@kŽVbUVm@mI@Wk™J@UWKkXkl'], - 'encodeOffsets': [[ - 109126, - 25684 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4503', - 'properties': { - 'name': '桂林市', - 'cp': [ - 110.5554, - 25.318 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nU@J‚X@`XLm¦Vb`lšVXXWš@VblČnVšŽlanLnmVLšK@_Vaƒ¥@kUa„@VmVb„aV@XVVzlVVK@knKVmX£VKšLlbnš@b@llL@xĊôXaV@°È@¤„bn„V@@Wl_„V„U@W„nVamw„wVbn@„K‚VšLX@VmVUxlV@šnVV_nK@m‚I@Wn@@IšUĊ@@wVWX@@I°VVm@wmU@m@IUƒV™kƒlkUmmkÅV@@aV@@Wn_UKla@kšaV„šlVanb@k„@@KlVn@@aV@nIWW™UUaVU@™kKmwU@UImKk@UU@w@W@‚™k@™UkWƒ@mk_W@Ua@a™ƒƒ@—¯ƒmV£@mƒUUam@—kWakƒVama@UUm@nw@alaUmnUlVlIœV‚™šLVyk£Vm@k@UUJkƒK@kmKUw™KkWK@UXImyVwnI@m‚ƒkUlkUKkUVmƒw@kkJWUÈm@_k@@aƒaW@U„UJUwU@@IWKkƒmUUV@nVl@bVb@bU‚UXƒakw@ƒWUkbkKƒbm@™xUlkLm@@wmKUX@‚™UaVW™XVmU@@UUUƒxkmWXkKkUWaUaUb™L@`UL@LV`UXmK@VmakLVbkL‚xUJUIVbUVVb¯KƒV@Xnl@lVXbmÒnV@L@VWKkVUIWJkIƒŽUamUUbm@U„kU@JUbW@X„WxUam@kbVVUnUJmUUV@bƒU@UUV™@ƒVk@ƒbƒmULV¦U@V„U`VLUL@xVbn@UJ@nWJXXVŽVV@bkxVbUx‚Lšš@x„¦@šU‚lXUVVlULV@@šnŽU„ƒb@xl„nJVnlVknUlVUbmŽU@ƒbVš„x'], - 'encodeOffsets': [[ - 112399, - 26500 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4501', - 'properties': { - 'name': '南宁市', - 'cp': [ - 108.479, - 23.1152 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lKnbnU‚@Ua@K„L„ƒlJVX@VnL@bW`Xxl@„I@U„Jl@nV@X‚V@nXV„@lK@UVL@JULVJ@nnJlœVJ@VULaƒLUKƒnmKULVVUŽ@nU„š`lIXlln„K@UlJnb@nšV@LV@lwnJ@L@„nJl„@VUbUn@l˜n„KnbVŽV@„wVLUb„xVm@LV™VKXLVKVLXU@VllUX@`lb@bnb‚L@ŽUV@bV@@b@Lœx‚KVanXVƒUUmVUUUaVUky‚UUa„ImK@mUUVUkKU_@W@UVVVIUW„UVaVU@UUKnƒ@k@al@ll@bnL@b„VUV˜X@Vœ@@b‚Knblmn@V_@aUalL@a@akK@kVKUKlwUUnV¥VmU_VWVIVaX@Va„alńK@LVJnalL@LnK„wlVUw‚mX@VXšƒlLUVnblaUmVUVwXU@Wm¯Va@ÞKnw@w™mšk„»‚UVW²a@_mW@U@I„y„LVUUKW@@™„LX@VUV@@yVU@UV@nwUUmJka@IU@ƒmƒVkaW@UwUX@`ƒ@kLWUk@mƒkUUm@k‚UUWkUƒkWxk@@VƒK@nV@UVaƒUUJmIkVƒ@UamLUbkVmamLka™@ƒ‚kmL¯WI@wJmwƒx@akU@aUKmbkaW_nW@_U@Wm@a@wkwUKmƒk@ƒbkb›w@mKUkkU@J@bW@kVWz@bVUa›VUx@„ULkJWbXVVXƒ`@œmJUVU@@Lk@WbU@UJlnXlm„Vx@Ln@‚b@K„LX„WJUUW@kƒaUVUbmV@nnV@n@lVLƒVmLX‚mXkV±@kxÅL›šUbJWIÅJ@I‚mXalkUamKkškL±aVwKƒUU@mÞnbWJX„m„@lbmKULWUUVkaƒbnn@Vl@VVV@VƒbVbnLWLXJWxXLV@@VV'], - 'encodeOffsets': [[ - 109958, - 23806 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4502', - 'properties': { - 'name': '柳州市', - 'cp': [ - 109.3799, - 24.9774 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƒwU™„aV@nVaUVklmkUUmmIkƒ@w„aVƒm@™U@VKUkVUkWV@™ƒ¥@w™™KVwUalw@aUUUWWXI@mVIm@Ua@wVKUKV_UƒV@U¥VK„n„al@„Uš@VU@V„V@aVUnVVIVmUUlan@VbXwWƒX@Va@IlVVƒn@VanVVb„lJXIVJlUXL@U@KmUnÑWakU@mkƒJUI@mk™@wUmmUV@JXaWIXWmaUIƒJƒkk@W„nJ@„ƒaUak@›kkJ@kUKU_ƒ@myUóWUkm¥kUmL@KUKm@k_UmVa@ƒk@@UmU@mm_—JWIUVUŽWLUlbVUJÇVUIVwƒKUVk@mU@n@lUL@Km@@l@L™VƒzJmUU¤m@UbV²U`U@@¼Vn@x@Vš@@VnUVx@blbXIVxU@Wl@@L™aW@kxƒLXVWVk@@U@VmLVŽ„L„bUVULVV‚lnLVxkV@nWV@bnKVVk@VL„VšÈVKšVVk„Unb@lm@@LVxUlVX@Vk„ƒJ@wkIÇ@kl@blVVVšzXllLUxlV@x@„UV@nƒ‚U@UImmUIUV™¯mVk@@V@VƒamnUKkm@@VƒIUJUaUUWLk@UJUI@xV@V„VWVnxƒLUômVV„@VkVVVUnV@UVkL@VVV@bVxla@bkXVJVn„`nU@bƒb@bVL@VnJ@„l@šV„aU@@_lW@UUU@Unƒlll@XLl@@UX@°bVWVanLlknVV@VVX@VVƒnUŽVLmbXJ@nllXX@`VXƒlmaXVWk@Wkƒw—J@„VL@J‚bnU@bn@@bVKUnVJVIVVVL²a@bV@@Vl@nUVakalmš„UL@VUL@V‚a@mXl@nK@UlK„L@Vl@@nkllb@š„Vnn@‚šnV„™V°l„šVInwlKXxlU°Žn@@ƒ‚I@UnVlakUJWkUK@anUWK@_ÞJ@U'], - 'encodeOffsets': [[ - 112399, - 26500 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4514', - 'properties': { - 'name': '崇左市', - 'cp': [ - 107.3364, - 22.4725 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@JVzšl@V@Xn@ll@VlnX@@VWLnŽUVmUULVlUV@blnUlnXVV„K‚xnLlb@lnbU@Vn°KVV„I@WXUlI°VXb‚VVbnLVan@‚x„J@_nJ„a@wVwV@@a@IU@UU@WKXwWIXKmKUa„a@U‚UUUk@@Umm„albVUXVVKnL‚a@knƒWƒXImanÝV@„V‚LUx²blKl™nLVbklWbn@JÆIXJ‚IVaœ™ÆKlw²@lUnWWnK„UUK@k@mmU@mnUVaVU„b@lVXVXIWƒƒK@Lam@@KUwnƒWkkmVIV@Xal@@KV@VUnI@›„_UWWUkam@kkm@ka@mƒk@wkJWIUU@WXkW™XkWWLUUƒ@UakLƒW™XV±VIVWUU@anUWaUK@IU@Vak@@UUKWaƒ@m@ak@@wUkla@mUaUklakwVƒ¯¯@WWUkLkKmaƒ™kLUnV`UxWX@Jkn@bmlƒakkk@ƒb@l¯bm„ƒbJ›b@VXn„bVV@„ƒbƒJUkkKWVU@mœÛVUUW@UVUJWXkVkKmUL@WW@U„Vl@XXKW„XJ@XVlmbUxnnm@UlVnV@XVm¦VJb@šmLkKÇbXblVkn@l@bWnX`V@@IVV@ŽV„V°n@@_naÆVVbUVVbUJnzlVUl‚XkV@Vlx@X„VnxƒbƒKUK@b¯VVUV™L'], - 'encodeOffsets': [[ - 109227, - 23440 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4513', - 'properties': { - 'name': '来宾市', - 'cp': [ - 109.7095, - 23.8403 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nVlw„@VJU„„IVVUšV°lU²V@„l¤Ub@bUV@b‚@„b@bUblšVa„KnLla@UnUWmXlJXUlKV@V_U±Van@V£nV‚I„yšU@K@kn@@LVK@k@mnVl@VU„LUxVJÈUVIU‚aVkXKVVUXJ˜In`@nnV@Vl@@„UbVnl`n@VL@LnKlVn¦VlôXV‚nz„@V`VL@llIœll@Vb„b@ƒmIXƒl@„l„IVJnbWXXJWb@IU‚nVVn@xlš@nVJ„I@W„U°LUaVUUaVJVIwlKUalKnb@UnLVWU_@KVK@_šKVa„@VKU¯VLVKn@la„aUkU@maVU„J@k™@Um@XmbkyVaUIUU@KV@laVn@KXKWUkUk@ƒaW™UUVw@aXKmƒVaUUkšmIƒlUU@wUa™xUmmU™¯™U@WƒLUmVIUym@UVmUa@wmw@çm@aWLU„™JUIUamKmL@™aƒx¯¥ƒkU¥U@±„k„UVmKU_mJUbkKm„ƒLÅǙ_@WWUXUmaVUkK™„UWW@nVxkUƒxmL@KkKmbUI@KƒLkƃbUbW@UbUJUXV`UnU¦mŽVVkxVLUL@llL@b@bkKVb@bU`m@knmaL@a›@@U—WVUƒU@amK@akkk@@b@lm„VL@VUVUbƒVVXUJUU@V@XV`lLUVVV@nnLƒJVbVlzUVVbVVnUVVU„'], - 'encodeOffsets': [[ - 111083, - 24599 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4509', - 'properties': { - 'name': '玉林市', - 'cp': [ - 110.2148, - 22.3792 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VJUXVVXlWX@V™xVnX@@`ššULWŽUXÅbWK@mULUUmJ@n¯b@l@VULVx„x‚XU`VXXJVI„V@nm`@nUŽVXn@lWVn@b@Jn@nU@Lm`@Xn@WJƒ¦U@@VnL„lV@@Xl`nIlJnkVL„w@KVK@UšaVL@bVKX™lUUKVK@I„VšL„a@U@WšLUlVL@bU@@blb@VlbUxVbXUVJ@xVL„U„lV@VU„bVLnKl„XJ@L‚b@an@VanL@`VLšKV_UWl@U_„a@WVInlVUUUVm@I@W@wVakIWm@U@ƒXwlaVbnI@ƒm»Va@aXaVLšU„»@aVa@k™KkL@KmU@WƒzUK@wU@VWUUVUUKUa@mKmbUK@_nWVaUkVaUaVUVLXKVƒVUVmVI@UkKkLm`UkW@UwWW_„UaU@WakXmK@xUXƒJkƒUUWUk@Wl—mJ@km@@aUKzmyVk„a@kkWVUU¯lmU@@w‚kkmV@Vk@mÅIƒ‚Ukƒaƒ@Ub@m@UUU`mUbWaWmb™X™XKWIXUWm@љ@y@UkIUJUUWLUWƒL@UkVUxW@kaWbKWnXxW¦n„m`XLVlUbVbUx™I@JmLUKUb@VW@@bkL@b@VlU@xkš@L@lƒxXxWXX°V@VVVbUVV@UVVbULVnVJUb²b‚aUb@VVVVInlV@VnXaVUšlI„VUb'], - 'encodeOffsets': [[ - 112478, - 22872 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4504', - 'properties': { - 'name': '梧州市', - 'cp': [ - 110.9949, - 23.5052 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VbXblVlLXWln„wVV@VV@UnšWUXVbš‚@VWXa@kVK„UaVaVkšUlyX@Vaƒ—VmUwUaVU@UÈymI@aU°@š™nWV@VaVaw@IV@VmnLVK@kmmna@™„™VbVI@aV@XbW`U„„LUVVx„@VbUV@bl@VLXblJn¦lL„°°@n™@K@UlLnK„a°LWbnJ„¦UÒV„UllLlVnKnbWnn„V`„w‚@@Xa±™n™l@XKV_„WVkVa@kVyUa@wU£UW@UIVW‚@@a—wWaX_WKkVmUULmak@UJUI@±m»™—k@m»VyUIm™nmmwnkUmVaVIUn_mW@»Vk„@VwkmmUXa@IƒaVm—mƒ@Wm_U@mIUWóLmUk@laXmmkUK@UmKULUUmWULƒ@VakU™@Ub@bƒ¼™VUKWb@bUbn¼@„mJUakbWx@„@VXnlJUb@x@X@JUnVVUVmkUJ@XƒbV`k@VXU`™LUK@_mKUbm@@b@„U`@nlV@b„UnbVbn@@`VbUbVV¯bm@@mJXb@bVnUllVXUlbUl@LU¦VVmŽkLVb@b™l@V@XlK@V@nUJUz„°mށwmLmlXbWVU@UUUlƒIU@VVmV@@¦‚bXbWxX„WlXVWL@LUmkbU@@LVVVJUblzna@WVnš@@lƒIUVnbV@Vlƒbkbm@ULUKV°ULƒ@'], - 'encodeOffsets': [[ - 112973, - 24863 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4511', - 'properties': { - 'name': '贺州市', - 'cp': [ - 111.3135, - 24.4006 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nL@xn@lKVkšwn@„alLlaXV@„lx„bVWV@aUa@aUk@mVUnVl„XL@JV@VxVIVƒX@„b@bl@@`ÇnXVlI@l„xUnlVVLkllV„@nmJUxnzWJ@VXLlŽšLVxnL@l„LlŽVI@V@lUnl¤Uz™Kš@„Vl@š„L‚l„Lnš‚b@VnVVU@k„a‚Knxn@VkVJ@ńUlakmWIUaVanm@_UK@UVWUa@klXam™U@Vmƒ™VIXW„@lUVknVlKVLXŽVXšW@b@VlšnnVL@KXL‚Kn@lb@UnW°@Va„X„WVb°aVa@I¯aUkUaVKVwƒaXk@a„a‚™@wkm@alanUVw@alK@Umkw@UƒaUmU@WXUaUK@UW@UaVWI@¥Xa@w@WWšVƒXwƒU@mKUXUWVU@a¯kl@akU@UULmK¯VUVW@U_m`U@@xVbUz@lUbUlƒXU`WLk@mš²šWb@ށ@ƒxU_mƒXmmamLkUkKVkUƒVу¥mIXa¯KƒbmLkK@V@Lmš¯@ƒ¯kKm¥kIWaUKk@@aVUUaƒ@UwVUƒKVƒX_WaU@@bUJUaƒš@šmbnn@lULmKUnU@@J‚xUbUbU@mX™š¯@VŽ@bnJÇz@VUVVbVxUn„˜UbW@kz™VUlUbVbƒŽUL@lWb'], - 'encodeOffsets': [[ - 113220, - 24947 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4507', - 'properties': { - 'name': '钦州市', - 'cp': [ - 109.0283, - 22.0935 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@IlVVlnL‚@œxla„al@n„VLlx@x@bXnV@@`mXX`lbnaVL@blV@b„wnx‚I@xXJ°nK‚l„š@lbnKnblUVanKVb„@lUnJVI„VUb@V‚U@m„L@Ul@Xw„llVVXV@lVnlVn„l@XVlK„@@_VWVxX@lb„U„nV@@JlbnIlmnVV@UwVK@U@k°a@mnIVVVK@nXLÆaVWXVK™™@_W@Umšw@UXWWkUUVWUIVaƒUkJ™UVWbUmU@mkUJUU@UVab±aVaUIUmVKUaVUU@VUUaUUU@W¯XWWw„w@k@Kl™@wkV@U@alK@aX@@UmIUWUIƒ@mmkXU`U_WJUnUJmUk@@amLU@UVW@UkU@@VƒbUWVUk@@wmKkUWLUWX@JmIƒlUkkKWKkLWU@UKWa@bU@@a@_UKWƒUUUmJmw@nV_@ġğKóLmbU¼VÆ@xUXƒ@Um@wklVnUn›lkaUV@„lV²WVklWXXbWlkVkIm`UUƒLƒUU@UWƒx@XU@@lWLU@kbUbV`UXllUV@bmb@LnKVbULm‚šnVVIV`X@'], - 'encodeOffsets': [[ - 110881, - 22742 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4508', - 'properties': { - 'name': '贵港市', - 'cp': [ - 109.9402, - 23.3459 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n@VzUJ‚nVŽ„K@XšVš°nVVnšwVb@xVV„knJl™VVUbn„WL@bUxVVXš„bl@lVXkWƒXwWaa@¥‚@nUUUV@„JVkVVV@XUWanknK‚xnƒ¯VyVI@m@UkL@W@Ušk@aUalKnUUV¥@KVkkaWVkUVkUm@aWanI@n@°aUUVaUa@_m@UamaƒV@akU@mV_@ƒa@KWIkƒmLUKƒaUVU@ƒkƒVUK@wUIWVUaVwka@Uka@aV@@aUKVk™K@X@Vƒb™KƒU@JULVLkVWšUL@aUK™b@VUL@LƒxUKmlkImJk_@WU@ƒkmK@UV@„¥XIm@@Wn_@KmVm@@I@aUmkXm@UWV@mn_@mƒUUJWIUWV_WƒwU@mUknVVmxU@@VUV@zU@UVW@ƒK@šX@VLUVƒKƒz@J@VnX@`±bUXVƒ¼™lšn@xmxÝL@‚Ubn°@XWVUxUVVnkbWVXV@Xš`ÆÈ„KnƒlLVanIV`nLVUlƒ²ƒV@V¦„l°¦„w‚b@šnKnLVbVJšIVƒXK@b‚n@ènx@xVbUnV‚'], - 'encodeOffsets': [[ - 112568, - 24255 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4506', - 'properties': { - 'name': '防城港市', - 'cp': [ - 108.0505, - 21.9287 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XV@X°°U„lxkbVlVb@nkbVl@xl@@b@n„‚XbVL@Vl@UbV@@JVLXbmV@bVVUXUJU²šW„XlKVb„@VVXKlXšWlXXWV@VXJlI@x„l@nlbn@lln@lbXalIVK@ƒVwœUVb‚U@aXylUX@@aW@U_UJmU™nVKUamL@Kna@aVUkkVWU_ValaV@XK@kV@@W„wVXV@„V„KVVn_lJlUXkWaXWlkXU‚±kU@ƒVUlbœkVmUmlk™¯Ý™™W@mb@¦VxULm™kJUU@ma¯wƒmkX@VóJ±bUVUXÝWk™lWXXlƒxUaƒbƒIğ™Ç@U@mVUKkkm@UJm@XnWV@x'], - 'encodeOffsets': [[ - 110070, - 22174 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4505', - 'properties': { - 'name': '北海市', - 'cp': [ - 109.314, - 21.6211 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VaVLnK@IšJVwUaVaUkWKn_mƒX¥WwXm‚LXalbU£UyV„Å@ݙwm@™°l›LÅUƒmk™mwÛaƑLÝUUm@ȣƃV_„Ó@£UƒƒUVƒ„™¼U°W̄™ÞVbXbôx@b@bmV@ǃ™UÝ@@ĢU`m@ŽnxnIVV‚VX„VL@`@bV@@aXbVL‚@XVlKXLlLVl„knJ@I‚WVXXKlVnL@xl@UVVX„a@UV@VlX@VUV@nK@bl@nVVIVmXIV`V_lWnn„@VJVXnJ'], - 'encodeOffsets': [[ - 112242, - 22444 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/gui_zhou_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '5203', - 'properties': { - 'name': '遵义市', - 'cp': [ - 106.908, - 28.1744 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@@UnUlJn„w‚JU°VL@bnVšU„wlJ@XƒŽXVlU@klVUJknl„UllL@bUJ@xULUlƒ„UblVkblbnw‚UXmla@„wV@VK@L@UXaVKVLXWƒUVa@U@Im@@W@£UKUakKWIXU@al@@llUnL@W@Un@@VlUV@VIUanKl@Xb@lmxVb@b°bb@nlJVVnnJ@b@L‚V@ln„@LmV@Vx@blnVK„nlJXIlw„J@҄b@nlK@Un@UL@VVVVUUUVK„l„@VUVL„J@UVUUw„@Wm@™„UV„ÈVlbUb@JšLlŽX@@x„„ƒLmŽk@@nlx@bUJUzVJ„@@LVxUV@bWxnLnVVK@_‚K²xVbV@n¥@aVI@b„@l@Va„Knb@n‚`n„mmý„W@ƒU_šwV@VlVV@Vn@n„˜@nI@Jn@°¦VaUU@™„mVVWVaUńU@aVKnƒVbVUmmU@a@kUw™m@aUUmUUJ¯lakU‚aXaWUUaVƒkk„amkmUnVlULƒVlJ@XU@UJWUUw„k@aU@WbkWƒL@U@WU@@XUKmV@aUVwUĕUJUamUUVUÑm™nIVJ@kl@XalJVn@KVLœ¥@UWIXWmU@mVUKnUWLUKUaWUUKVU@U@anUny@UlUkK@w@a@aVUƒ»UkVw@Wmk—JƒÅmUUVmwXalLXWWUnam@XkƒJ@UVU@U@W„@@U@I@Wl@Ènlw@KXLWb„lVUkalKUU„VVaV@@wnIlaUmkUƒKWU@KkUkLWaƒKUUWUn@VƒK@LnnWJUIƒVkUWVnV@V™@@XƒK@VUIUJ@IWJkX@VVJ™IƒVkK@I@UVaUWk@m„@wnUWKk@mxk@@„lV@b„xmb@x@VUmLkUƒJ@nVV@b@VkLVbU`¯I›l@™U_UW@UU@™™ƒK¯wm@™xƒL¯¥kIƒ™ƒ‚@bkbƒ@Ua@ƒm@kkW@XVbmV@ŽkV@bWbUbV@„¦ƒxXlmVk@ƒ¦™bkaWL@KUImK@wUK@VUI™b@bmK@LÅy@akXW@kbWlXblL@ŽULUbƒ`@U™kUymX¯@mšUJUUJƒL@Lm@@WX@lU„VlšXll„@l@Èk°V°Ž„X@VU@UVll@XUJVXUVm@@VXLWlnV@Xƒšk@mVULnxV@@bm‚kL@VWLUbU@UVm@ƒb@ķ¥UnmJ@UUVƒkkJUšlÔU`UIW@ƒ°kLUlUI@WVI™U@mWKkXk@ƒ‚WU@bXšW„@J@xX@l@LVl@xšLVxXX@x‚KnxVknb‚KVV@U„L„WlXU`@nUlšX@llVXšVU„KlkUKlI@anKVLXKVaUIVWV_VK@VnLlU„»VKVL„m'], - ['@@@KlKkUUVVX'] - ], - 'encodeOffsets': [ - [[ - 108799, - 29239 - ]], - [[ - 110532, - 27822 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '5226', - 'properties': { - 'name': '黔东南苗族侗族自治州', - 'cp': [ - 108.4241, - 26.4166 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - [ - '@@VV@XkV@bUbWJU¼Vb@Vnb@bš„@J@bƒL@LV@UVƒlUI@a™KULVb@bkJmx„šlLVxknVJk„‚xnKmnnL@bn`WIXlWLU@UxVbUVmKV„XI@JVIVJ@U„L@Wš@@UmUXUlV„UVJXImm@K„L@UVmVXV‚„LXblKlV@LXV„LlVVnkbmJ@xnXl@šbXa‚@Vana„ÒšL„m‚VnIl‚Þ¦°k@b„@@lV„nJlUnš‚VX_„@lVlK„šV„UUxVLVWVIXJšUlnnWlI@KUaUUVKn@VaVXV@na@ƒmw¯@mUkJUamI@lk@@am@@I„ƒUmVImUUw˜™@anUVaUU@LU@WaWUXWW„wV@VwnU@L@ynbl@@X@a„J@nW@@Vn@„lVLlxnI„lš@@UWKUƒnIlJXIVllIVVš¼XK@aVI„V‚@@bn@VKXLVKVVVInw„J@UWI@mX@WKnI@KmU„UVJUL@V„KW@@k„@aU@@W@InJWUXwWI@Wƒ@¯wkaVaUIl@nŽValIXWWI@UUm@anwWkXWWIUbk@UJmIUamKVUUUVVama¯VkIVVUlKnXVwX@@WVaUUVa@IlƒaVmƒkna›wk™UU@ƒU@mUVƒšUVwœl°LVbnJVU™¯la@mX@@UWKXU@aV_V@@JlkUƒ¯@V™nK@km¯k„U@ƒWUW@mmƒU@™kmlU@wkL@WƒUkL@VmLƒJ@b@V@bknUUVK@UVKUK@Uk@Wa@LUVVnUbmVk@@UU@@aƒV¯K@U@UU@WmUL@aU@WV—w@ƒ˜I„xXll@UX‚K@KXXVJna@wWaƒ£naUKV„m@UU@mUmalm@@XkVm@U@VƒLmWU@kkWxU@@bVV@VkXVlƒVƒ@UUk@@ƒmI@KUw„m@UmVƒUUwU@lwkV@IUa@mUaVIVKVa@w@U@™UJkb@n@bmJ@XmlVUxWXkJmUkUUVW™xUlU@ƒaULUšmbU@@‚WXkmƒL@xUV@nUxÇm@„XLWbnlƒnV‚nnUV˜U‚nVVz„@lbUVVlULVb@V@nUJkwm@Ux@bWbUK@UULka›JbƒU™U@U@lUK@XUJmn™J@bU@UwWa™x@zkJWnUJUUVšVV@bXn@xVb@J™L™m@X™w@`@bkb@VmXUV¯L@mW@@n@V@‚ƒL@K—IW@@aƒaUx¯@U„m@XbW@@L„V@bnVWVkKUzlV@bÆa@lnI@VV@@LnVVKUaV_VJVbnU@bn@‚‚nX@yVIVxXKVLlUVaXU°J', - '@@@KlKkUUVVX' - ], - ['@@UUVUkUmV@ln@VXVK@K'] - ], - 'encodeOffsets': [ - [ - [ - 110318, - 27214 - ], - [ - 110532, - 27822 - ] - ], - [[ - 112219, - 27394 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '5224', - 'properties': { - 'name': '毕节地区', - 'cp': [ - 105.1611, - 27.0648 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@UkVƒ@k‚W@Xn@@K„KVIVVIn™°@nWVzšl@V„_VaVK@kKWaXklaX@lW@bÆz@KnL@ašaVJ@UVL@xnLVJ@LXKlbša„¥l@nUWk„wƒ¥U@VaXa@amLkUƒKmƒ¯kƒmkIUaƒKUIWƒkKm@anw@mlwXIƒmƒUk¯@a@amUƒ`kkKWVkxmUUak_mJmw@w„mXUW¯X›_@WnI@aVwkWWýŃU@WLkU™aUbVV@lUVVnm@kUmV¯™kK™LƒwmVUUaWV™aaWw¯wƒÈ@VULUVUUƒK@nWJkI™l@Umxnbm@kbUJƒa¯bUbVxmLUV™aU@VUUWxkVVV@bUV@XWbnlUbƒbUJlbUV¯b@z„`WbXnmbƒaƒwUwVWUƒbUxmbU@Uam™@Vƒk™VaƒwVaUƒWI@mUKóz@lUlÅ@WIƒb@xXxml@XklULWKUmwUa¯KUXWJkaULmKkLWbkKUVƒImƒƒWa@kUaULƒW¯LƒK¯@kbƒL@b™x@J@bmnnlUšlzU`U@@Uƒb@„m‚n¦°bU„Vx@bkVm¼mx@mk™mVV@bkxVn„aVV@bU@mL@b²`lIVV@lXLlš„bVxn@@bl@XllIVšnbVšn°°wlbXw@mVa°lVnU@mš™VLVbn@@b„@@WVnUV@Xlxn`VznJVb@L@bV`V@šUnwšU„@WUXKV@UUlmUUlaXalLšm„bšIVbnJVIlVVaUUnWVXn‚VL‚k@ƒnWnblnlb²x„xVKVXlVXLVW„LlUVJna@wVL„¼@JVX@`@nnx@nWJU@Vx@XXKšŽUblxUš°„LVKVVlL@KnbVUnJ„IlUšƒnKl£VW„x„IlJ@nšVÞUVVnb‚VX@V_°lnK', - '@@@UmWUwkU@Um@@VkL@V@„„‚V„VkV@nbVa@ƒ' - ], - 'encodeOffsets': [ - [ - 108552, - 28412 - ], - [ - 107213, - 27445 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '5227', - 'properties': { - 'name': '黔南布依族苗族自治州', - 'cp': [ - 107.2485, - 25.8398 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚V@IöalK@UV@@KUaVIVVœLlaVbVWnX@‚@LnUlxl@naVLXVVaVU„J@lUUanWWI„@VlV@Xbƒb@V„n@VmVVbk@kU@V›V@X„J@zn`ULW@kK@_WVUK@LUb@Jlxn@nnWlU@@b„x@XVVU@UbVb‚@n`VI@VVLUlUIUV@KmL@VV@XIV@@lVLVmXV„@WLXLW@U`šnkb@Vl@UL@VVV„L„llX@`lIXb„J˜IXW„L‚aVL@ŽXXW‚Ģ™b@bmK@L@°@Vnxmxšn„K@xVn@VkL@V™Lƒakbl`VnnxVnUlššV@@VVXV`@šœk°JV_UalK@U@aUU@m„IlVnK‚V@U@wnaƒw@akU@ƒl@nwl@XLmV@xnƒl@VXUb@V@JlL„UšJUI@UlWUƒnLVUUaVwV@XKWkXJm_@amKnmmLwlƒUIlmUwkKƒ™nwlI@aUaVKšL@bVJ„kVUU@@K„K@a@I™ƒ@ama@UUaV»XIVa@alU@WUU¯IWVUbkVUKWLUwUJ@zmWm@@amVUaUIU`VbULmU@KU@@UmJ@kÅb@akUVylLXUmU@aƒU@KX@Wan@Vƒ°@Vw„b@bX@˜J@L„K@@U@mX@@n°KVUnW@Ula@a@_šx@WšnšK@IUa@wWm@aUUU™VVVIXmlI@yšwXbVxV@@ašInmVI@WVL@k@VšV„V‚aœIlbVK@VVLXa@aVwn@lxVI@m@UUaVKUkVUkaƒ@UymUV—VUmmU„mmkXaWK@ƒÈnVw@mVU@w„KlnXW@V@naV™VKUk@KVIUWƒ@mk@KXU@Um@@lVƒk@UVJna@UWaƒL@a@ƒXa@kmmVUUk@mkkƒamJ—ImJUUmIm±aUUkambkamVUU@VlbUbVVƒxX„WVUU@VUakU@UmUV‚U@mnUVVnUbVJ@b—UW¥kLVamVkUaWJU_UVWKk@@nl„UVVJUXm@Vm@UnVlmbnmJUbULU@@UUKWVIWxnJVb@xUL@bUJWIkxƒbkb@xVJƒbmU@kW±LkKUkVa@a¯am¥ULkalÑlKXUWƒXƒaVakImVƒ@ka@UUƒJ¯aƒX™mmb—KWU@wUUƒaUa™KmU@UXlWb—¼WLUKUb°„UlVbkbVL@VƒšƒJ@nVlUbUXmJ@VX@lbUbU@@bWb@VnLVJ@bVVUz„ŽVL@lnL@b™VVVULmKUk™Jkbm@ƒxVb@V—kƒKVnnV@b@ŽWXU‚„nV„l‚VVXVJUXlVXbWV@VU@Ubk@@KWbUUmL@JnXV°XJ@_‚`UbkXVVlÆkbƒ@VLXVV@‚V@k„KXX@`V@@n'], - 'encodeOffsets': [[ - 108912, - 26905 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5222', - 'properties': { - 'name': '铜仁地区', - 'cp': [ - 108.6218, - 28.0096 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°a@aÈbVUlU@aVKnVV„VUlyX¹lWVa@U™VƒnUVU@m™@mUl@„mÞw„@‚xnIVbna@KVI‚J@kwV¥ƒUXÇVkVW@kkKWU@aXUWmnIVa°VXbmL@VVbnVVVUb™VbšJVbVKXkVKVanU@aWnWUWa@U™nk@mVIVK@wXxlLXbVJVlKœbl@VI@mšaXalVV„VbX@@ašalnkx@b@V‚b@Vnx@bVVUXn¤WXn@Vl@Vlzn@š`@I@KUU@ƒV£namVkXa@aVK‚nnU@anVlKƒa@UUU@amk@»kƒU¯@aš„VWnkWmkImU@akaVm@»VUV@UKnkW¯XWlkUKnIWaš@nmlIXmWUnwUwWm@wULmaUJkIUaƒaWa—klwkwmJmU@bkJ@XUJ¯W@XbWbUKUkWJUUVKnn@UmmXUWa@mU@@UI@WmXVykwm@kaULWwU@¯ƒlKUUVU@mU@UkmaUbmV@b—š‚xVnVUJVnƒ„@Jn@@bl@@knJVblInV°@nx@„mbU@UWUbm@ULVVVb@LkJmXkm™VWIUJUXUKVwƒV™UƒŽkLkUƒ@W`Um™kVmIUƒ@kƒ@@a¯lÝ¥kmJUƒn™KƒÑmbUb@Wb™ak@mWU@UbƒUVVkLlbUVƒkXaWK@LkxÇmk@@X@J@Vƒ@@X@VUV@V„IWln@mbXVWXkKWbnxVUnV„ƘInl@XUxVl„¼UV@b@b@xlLkV@VmzmV@b@VUVVLXVVbVLXKmVVLU‚@nnVWXXJ@V›¦UK@LUmkIWbk@@lUImJnšVÒVUnVVbVIVĖUxV‚@bnUVL@WV@@X@V„KlXXaV@@bƒlVxXVVIV@@WkI„UVKUkVmlnnŽƒbllU„VbXVWbblVkb°ŽVInVVV@bšnVx@l@bnVVnUŽUam„UL@bƒVVÆUbUXU‚ƒn@šVVUb'], - 'encodeOffsets': [[ - 110667, - 29785 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5223', - 'properties': { - 'name': '黔西南布依族苗族自治州', - 'cp': [ - 105.5347, - 25.3949 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VL@Vl@@IXW@kVUVbnW@XlKVVnU„VlL@b„aVbƒb@xX‚°ÔUxV@kbm@VxkxWJœ„V¦ƒŽ@ÈnšVKšxWXJmV@n„Ò@xVbn@@blLk`VX@bššla²JVUlnn@U±lw@wnw@mlwVIX@@m@klKnk‚a„KnwmmXkƍVm„Uš¥l@nb°n@„aVwVmVIVnI@a„¯@mšU°ƒl@@VnI@JV@UV@b@IUbVJmXöºƒzllUbVa@aXUl@„U@llLnKVaUa@UmK@UšwV„bnKV@VwVK@UXƒV@Vbn@‚w@U„WnX‚@„a@m„I„™@UUKlaUaVk¯ƒVaVLXK˜»XaWk¯mƒkğwmW@mIƒVkwƒJUIšÇVwU™UkVKkƒm@UkmU@WÅwm£Vƒ„m¤¯IkJWa™_™lUbmJzÝJk„ƒUÇVU„ƒ‚@bU„Ýn™m¯LUb@`mL@VkL@VƒUmmk@UU±Umka@kUƒ@ķymUkk@mmkÝmUaUakImV@V@VÅLƒ¦ƒJUXmJXšWb@n°Æœx‚¼nV@LlbUŽUbmL¯@ÞbV¤nbVx@bUVlblIœ™@KVVUnVJUn@VlLUlmLUUUxmK@I@@VW@@bU@UJmUkLVVUl@b@V'], - 'encodeOffsets': [[ - 107157, - 25965 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5202', - 'properties': { - 'name': '六盘水市', - 'cp': [ - 104.7546, - 26.0925 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ôyVL@nXJV„Ub„x‚bUŽlšU„@ŽšnŽVbV@naVw„a‚VUXVx„x„bnaWmXaƒ_@y°aVUkaVI„aVamkXa@WVU@aUUlUXwVV@UVšbVUnKUwVa°a„bVIlan@manw@VšklJXI@m„LVVVUVK@U„ǃk@KUa@UkaVU@UVWV_XWVXVWlLXKlLXaÆKšwVL@akKm@Uwƒ@@XUVk@VUI@wWK@aUV™I@UkK@ƒmL™Wƒ@kImJƒUÅVmkXUW@UJkx@nmx@xkxV²m@kmUV±Ikb™™@aUWl_kK@am@Ua@wƒÑ@mnUWIX™wULm™@DŽU¥›ƒXIlwUwn@laU@Vw¯ÓW@w„aUaƒb@akKƒUmVUUkL@WmXUaUV@lWX@Jk@@UUKULmLUJmzkKmVX°VšUnWKUL™ƒƒL@mU@UnVJ@b@„UV@Xƒ`m_@l@@bmbXJmnnš@°˜wnn@ŽVLX@V‚@nVl@nk@@b‚l@nn°WlXzW`XXVKnUlxVbUb@‚V„Xb@Ž‚VxÈbVlnbmn@ŽkVUL@„ƒŽmLUVVL'], - ['@@@ƒ@UmWUwkU@Um@@VkL@V@„„‚@„V@VkV@nbVa'] - ], - 'encodeOffsets': [ - [[ - 107089, - 27181 - ]], - [[ - 107213, - 27479 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '5204', - 'properties': { - 'name': '安顺市', - 'cp': [ - 105.9082, - 25.9882 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lL@bUK™xÅLWbkKWLkKUXUWWXU`UX@VUVlb@VVb@L„l°xXx‚bšbXUVb‚VnU„xšKlL°šnUlVn@UmVU@kUUVašblVXKV@ƄXþlXUxnU@mVK@_@ml@UU„@šblU@KnLVyUw„@@UmkšWVw@UVK@VXzVK@n„VVUUW@kVJnlaš@nKW™kaWL@U—™õb@JU@mU@@_WWƒL@lUU@WUUK„@lakÅUUlWVa_@`WIU¯mW@InKVVXa@Ll@VaV@@UXUWakUVWUIUW‚UkUƒƒmVXW@@amUUm„L˜l@UUa„wn@lašIVlnLVKUUšU@amK@kUKƒVyUU@aUImK@UXa@aV@VakaW@@UnIVWVaUkƒb@mWƒX@Vxm@UaU@W„@VULUxU@mLƒaUŽ™x@VnL@VVbUbmLkK@kƒVk@WV@bUbVakk„yõ¹nWUIVa@J@aVUU@@ImJ@Uk@¯„™V@nƒ°@bmJUUJUnUxƒbm@¯Žmak@™¦ƒVUnŎWlnnmxƒLbmlkL@l@nWVnlÆU„VnIlJ„@šXnK@„lL@VšJVU@bXL@xVJUl@VU@W„@Vxn@'], - 'encodeOffsets': [[ - 108237, - 26792 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5201', - 'properties': { - 'name': '贵阳市', - 'cp': [ - 106.6992, - 26.7682 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nŽlLX„VJ„LVblJ„n°ln„„LlVnKlU@nUUa@WlX@l„n@‚Vb„@la@a„„šlJ°¦„Kšwn@°x„LVkUmmwUmk_la„bšK@UlK@UUm@wƒL™mnwmw@U@¯@KnL@aša‚ġXWW@UKbƒKWX—JƒIWakJ@_kWƒkƒKUU@UVKk@@Ula™mV_X@WKXKƒ@WUUnUK@kU@WJU@@UnK@LVUVJVkUK@UUJm_@UaVaV@UU@Wƒw@aV@Xkmmm@kw@IVa@KVLXU@`lLX@VKm_@yƒI@WœU@UlVl@UanU@Uƒm@U„aWaU@Ukƒ@XJmXVbkV@ŽƒIUVUbWUUKmbk@kwmV@K@mWUXUakb›KUUUJVb@LU@@VkL˜š@VXKlbXšmL™@kbm‚UI@lVXUVƒU@mULWy@UUL@VUx™Xnl@Vƒ@VxUzmK@LkV™aƒ@VVk@@n@`UL@nmV@bmJ@Xœ`WX°WVƒn@xnxnIl`VbnVlwXUlLl‚„_nV@b@bl°„V„nWJkx@nmx@b'], - 'encodeOffsets': [[ - 108945, - 27760 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/hai_nan_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '469003', - 'properties': { - 'name': '儋州市', - 'cp': [ - 109.3291, - 19.5653 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@஼jpnr’``ŽpRVHʘ̤žZt^JÖA˜[†CâlTébQhRPOhMBcRSQiROE[FYdGNOEIH]MgEAMLLIAG_WMCSL@ED]PCLYC[ZIHgjSxJTMbHNEFCMEE_HSDFHSLECRNSFDRICHNADGPI\\RZGIJTIAHLDQOHG`GTNCOIC@eIGDWHIS[kiE[FMbECZS@KKS[FDWsCeRuU_DUQNOE[LKGUBM¨EDQP@HWHGDImXƒCog_~‹I_fGDG|QDUWKBC\\ore|}[KLsISBHVXHCN`lNdQLOnFJSXcUEJMCKSHOUMDIm_‹DI`kNDIGEYFM\\YPEEIPMSGLIKOVAU_EBGQ@CIk`WGGDUM_XcIOLCJphHT_NCISG_R@V]\\OjSGAQSAKF]@q^mGFKSW^cQUC[]T}SGD@^_ˆaRUTO@OHATŸ”'], - 'encodeOffsets': [[ - 111506, - 20018 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469005', - 'properties': { - 'name': '文昌市', - 'cp': [ - 110.8905, - 19.7823 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@€hIJ¤Ī¯LQDaFßL[VQìw€G‚F~Z^Ab[€¹ZYöpFº lN®D´INQQk]U‘[GSU©S_­c‹}aoSiA£cŁ¡©EiQeU­qWoESKSSOmwŸćõWkàmJMAAMMCWHGoM]gA[FGZLZCTURFNBncVOXCdGB@TSbk\\gDOKMNKWQHIvXDJ\\VDTXPERHJMFNj@OwX@LOTGzL^GHN^@RPHPE^KTDhhtBjZL[Pg@MNGLEdHV[HbRb@JHEV_NKLBRTPZhERHJcH^HDRlZJOPGdDJPOpXTETaV[GOZXTARQTRLBLWDa^QAF`ENUPBP…\\Eji`yºEvåà'], - 'encodeOffsets': [[ - 113115, - 20665 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469033', - 'properties': { - 'name': '乐东黎族自治县', - 'cp': [ - 109.0283, - 18.6301 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ªVLP`@PEdNRAHOPEAKHEVL`GZBJfvdTAXNNTZJFPrHHNpKTD\\ILHbEVd^J‚OHLh@NNBnHP`\\xH@NBRLJTlŽNv_^CTLd@bNDVFbxdFV€UPBTKOGEOUO@OEBXQP[H_EI\\EbeYa@UO_J‹MEJ_IEDKJUGMDcNUd_FMTEJSGoZ]EIYGO[YW‘gEQ]a@WHEDQKUSDUGAbYBUpSCYNiWqOSQEoF[UcQISWWNMSDe_cLQ_UBiKQOOASQAWgS­ā]ZaŽSPÝZ]XMXSŒ[^oVËNgNKlE RôEø'], - 'encodeOffsets': [[ - 111263, - 19164 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4602', - 'properties': { - 'name': '三亚市', - 'cp': [ - 109.3716, - 18.3698 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@®ĂhTBXTRPBRPjLVAR`dKf`TC‚NXMTXRJVdE\\FpTRrPjXZMTDVoZABaVHTCLVCRGF@X^bFR’hZXP\\ZHHMA[^wBWXJlW¤EJ[bCTOF‹WWMm@ILMGWQ@DQ^QNWFSHEbF`OXNbO„VNKTEPDTLTCCVTREfvfEHNbRAENH^RJXCFHNFRpVGHWISDOTMVCZeGamaLoLÛD¹¹ėgsia{OųE—Tt‰lɂwr}jŸR±E{L}j]HąKÃT[P'], - 'encodeOffsets': [[ - 111547, - 18737 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469036', - 'properties': { - 'name': '琼中黎族苗族自治县', - 'cp': [ - 109.8413, - 19.0736 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@bRFnHNbHŒgN@NPEnbXP@bND`NT\\@\\QZb@`@J]V@XhžDpW„nCJGHGXO@CR§FANHVKLF\\MPVR`CvVfQtDPKpGHG@S`WJP~^dSTHWX\\RHTFACQTIAUPOU@MG__IaYSFQK‘NSbORHXCZeTFJg„B`YBMNMFi~IVDV[tGJWXGDQRGF]ˆJrALgESLSAYDGIaFeXQLS\\MKSLSQYJY}eKO[EHiGSaK[Yw[bmdURgEK^_kcSGEOHKIAS]aFSU@Y]IWFUTYlkP_CUOUEkmYbSQK@EMWUuAU\\M@EpK^_ZMDQ^OXwC_ZODBrERURGVVZ\\DTXcFWNIAWJWAYUUFYEWLQQaCIZeDM`cLKRGpanJZQd'], - 'encodeOffsets': [[ - 112153, - 19488 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469007', - 'properties': { - 'name': '东方市', - 'cp': [ - 108.8498, - 19.0414 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ºŸx‹JYZQ”IŠYXLl@dR\\WZEn]bA\\S~F`KXaDeTiNO^EEKWEDQXITBXaWaDQMUJOIaTWf@NJV@dSxGZ‰Fu_@WMKAUˆ}AQ@MwG_[GOAmMMg@GKP]IUcaFKG[JSCoLGMqGEOYIMSWMSBucIeYA_HUKGFBLOFGPQBcMOF_@KO©UAtERadwZQ\\@ÊJÒgòUĪRlR°KĮVŽLJ'], - 'encodeOffsets': [[ - 111208, - 19833 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4601', - 'properties': { - 'name': '海口市', - 'cp': [ - 110.3893, - 19.8516 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ńZƂt̬æßFuz¹j_Fi†[AOVOFME_RBb]XCAKQKRSBQWSPY\\HbUFSWSPoIOcCOHIPkYCQ]GdGGIFQYgSOAQLK`MFUIGa@aQ\\GGUFcHKNMh@\\OYKAigsCgLSF]GOQO]@GM]HyKSHKPW@Pxi@EMINYREXWRQ@MQcFGWIAwXGRH\\yDI`KJIdOCGRNPNtd\\UTMbQYi@]JeYOWaL[EcICMUJqWGDNZEXGJWFEXNbZRELFV]XQbAZFrYVUBCLNFCHmJaMIDDHXHEhQNXZ_TARFHVB@DTQIRR@YHAJVnAbKFUEMLd\\c^ÍÞ'], - 'encodeOffsets': [[ - 112711, - 20572 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469006', - 'properties': { - 'name': '万宁市', - 'cp': [ - 110.3137, - 18.8388 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@^J@ZTVbET^JBGLFPTHld]`FLQhcVanx\\\\ZbLHTGj\\FLP~fIZRZPVTQFSVAFJE^NDLEE[~LjsxVTG\\NZZNGlLRRGLJTV@hPZANN^@T\\NEPPbDZXO`d^HSvcJDIV\\XZAJUFCLNP@PQ¤@[ïKLÑIÏ]ÇE±I{uƒ­YśUćFcYUmsVeBSVgB[RO@aYYPO^]@UVaNeDShMLG\\EfFVE\\F`'], - 'encodeOffsets': [[ - 112657, - 19182 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469027', - 'properties': { - 'name': '澄迈县', - 'cp': [ - 109.9937, - 19.7314 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@T\\GJCXJH@fJDDPNCNJENN^NLHBNSx@DDYbBLLDRbjZTj@`XXTlG^Xr@PJLW\\WLTlWR@HDJTD@X_PO@STMDNTMVV@NLDM`M\\XM\\JNBH[PYZ‡úYzŸ`Ċ\\ÎÝd]c[NKVFLEBaUmBIZGQ@JQSR@CUAEGBQ`SWYRMFgWGCGJCbNnIDGMEDKVAZUEqBYRa^WEUFKYQMaFWXEHIFWMYHCrXVIIiaK@aMCUYNSIISTwXALKH@XWXIEIJQCG[IEQDE_XSBaa[AIPW@]RS[FWS[CD]PEBYNGFSaSyJG]@ugEUDQlGHiBKHUIoNSKqHFaPMICK]UUHIPDJMuCA[SCPIDIOILGAEmU[POPBVSJDREBGS[QXWSGcT}]IO_X@TGHoHOLCX\\ELT@LYTD‚aFENF\\lj'], - 'encodeOffsets': [[ - 112385, - 19987 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469030', - 'properties': { - 'name': '白沙黎族自治县', - 'cp': [ - 109.3703, - 19.211 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@D\\RV]dTXELnHr]^@LETBBRTHPi^[@U`QTHDJ`MGSogDIPKdJ`WVNHCXHl_DJR@AH`FBVPUJLHKNTJOFFZON[ZEHFCJlMJ_ŒCn`CJVNGPLTNDFIdVTWEIPmRKMc_kDMWGGUTAtJLK~\\f{pqD[LAVXRCH{HC`eŒJ`}@W^U@I@_Ya[R[@MSC_aMO@aWFmMOM@‹haGGMEmaQ[@MESHaIQJQ……MckBIw[AOSKKAMPSDSLOAV_@@`KJRbKRDfMdHZERgAWVsDMTUHqOUr@VQXTT@Tƒfg‚L^NH\\@heTCZaESNObHPƒHeZF\\X^ElM^F^'], - 'encodeOffsets': [[ - 111665, - 19890 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469002', - 'properties': { - 'name': '琼海市', - 'cp': [ - 110.4208, - 19.224 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@TP\\pATHTGlZDJGAQjE\\Rb@jVBDCN`JZ[NCNHNXbULPrP\\KNbMTLjJJRFP`“pNLZz^FLRHjVPZ@hxVKbHBHMNNJFRlLzGPnNHhIrHHADcPWdUAmEMVQDSKYHY\\EhBN^HpXGNDBNNBnIß‹Å_g{³So]ã@ORO@KMEDIVYB[WJUICudGTc]P_YWaCOOMFS[]@MMYBgOU@ISHKQQkKMHYY[MSHwUit}KF\\KFMCF]EIUBETSROUKTLT[NKTWREfJbCHBZKTFTKh'], - 'encodeOffsets': [[ - 112763, - 19595 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469031', - 'properties': { - 'name': '昌江黎族自治县', - 'cp': [ - 109.0407, - 19.2137 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@`ZĤd–`òüˆ˜ “BSPGP@VSbQ`‡@]HC~T^SE]N]FkW]E[fY„GGOPaTMbFDYfS@g[MGK]h„e@SSSRW@UVqrPVGNStCXUhBFQGYNcCeLQQaLI@_`@EUwcEaCUaMc@SK]Du`MSkKI‡~BVNL@X`‚EvYŠwHcTU@MIe@SXJbIPNVCRXbWbSAWJCRXFFL]FMPSjCfWb_L}E[TaBm^YF[XcQk@WK‰Z“JYRIZwŒ¹ '], - 'encodeOffsets': [[ - 111208, - 19833 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469028', - 'properties': { - 'name': '临高县', - 'cp': [ - 109.6957, - 19.8063 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@jD`hNd\\^dZädĒH´Op@ˆùZY\\OAGIMN[[W_NCNMKU@NUMSNCTSP@`O@WSCCI@GXQSkXKX[IK@OWqH]SkWW@_SiiYQaKCAKZaCCw@MTGAMKM]FMMIMDSM_HGHRPKCBGSJJIYH[QOJCHMBDGQJECMTDQKFGTCEGTF`NFEDMFaGSNwIiTGhYJD\\KZODC^@FTKND`XBHKJNKFBNhG^FJMPcHEZF\\QPRjQTAdgNOPgQaRSê'], - 'encodeOffsets': [[ - 112122, - 20431 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469034', - 'properties': { - 'name': '陵水黎族自治县', - 'cp': [ - 109.9924, - 18.5415 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@R]NC`YL]FoN@V[vBXVFNL@TRZalnVFVP`DlOZkVSXEE_F[EUFeH[NKTgfCbMVU^@P]ZObZP@\\QhATUfAtUasñiāEoI]eYǯ@aKmaeƒWuCºKÜKpnbHbYfUDSNCPJTRAHJTDJSfDNLHXC``VBNGTYCQDIXMDSP@xLNEFRNXBIpVNLXah@RgF@`qOML@LJNSPLbaHAh@Jdj'], - 'encodeOffsets': [[ - 112409, - 19261 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469026', - 'properties': { - 'name': '屯昌县', - 'cp': [ - 110.0377, - 19.362 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@\\OnVBFKHPJCJOJTDB\\vDINOCGJVVL^JDONEbrGTLpMVJLGjAHGRkVChF@vH^zIbTETMHAZOFC^\\DXT\\EffAP\\PdAV@UIYfS|S@YPICMeM@sC[_A]VQEwyHSMuNcAUlQJMVGMS@mVBZPFO\\CSFQK[LqDMACiUa@[QiFBRIHYCHkGSBS[oSOqB‡IE^QHCRWHIXsHU\\UC}JEjMNAN_ZƒAIhSEYfWDQGaPMTL’ERZTJb``NHV@'], - 'encodeOffsets': [[ - 112513, - 19852 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469025', - 'properties': { - 'name': '定安县', - 'cp': [ - 110.3384, - 19.4698 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@JjDNdJ\\FbKPXfZ^Ij@RZNaVSc[MsMOHQPDJcLIJ_zCG[HQxWJBHXdENRR@XQFWZQQGOFSWUCI[WCJuRGLXNMPLhCl[Ta@SqGgJMGOmyHkKEQMINMAGaGULgwY@UOGiKQ]EYyMK”oO_QEIIKiNSMa[LqOKOaVMWMGMDY\\_IKrL\\ERT[DEPYOUA@nNTUHINkRBVMdNvGTxzRF^U`BD\\@tfNDNOJ@Z{TeTJZ@VU€cB[OBOeeQT@^OXBJb\\AbWTF`RCJFH\\RDJIJFXW@WLGBKxWTSJJMTVZND@bbL'], - 'encodeOffsets': [[ - 112903, - 20139 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469035', - 'properties': { - 'name': '保亭黎族苗族自治县', - 'cp': [ - 109.6284, - 18.6108 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@FJp@fxpQ\\ApN\\GNPNBM`HLMrXLXj\\PEHnI@WUCEM\\GTc\\GZYHTPBHRCPTd€H\\K\\@HXi–BJILJJAVNTOZJNtFPC`YxDPWci@IBgbGKaTOIM@KNKrP@_hE@QbgKWUMJoWAQMFEKM@wTONCJWRCZDHSAM_UD_GWMKeCITSCGIQBGXUHQoMEEGWDQIG]FMQBMaFGueFeSQDUSDSKOCSFMLƒUaPWM_PaEGFETMX]RCRR@HXKN@JNnXXEŒSPaDI\\£FkXWIAX]xB\\GN'], - 'encodeOffsets': [[ - 112031, - 19071 - ]] - } - }, - { - 'type': 'Feature', - 'id': '469001', - 'properties': { - 'name': '五指山市', - 'cp': [ - 109.5282, - 18.8299 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@TCNOLBTLBPx\\AJdl†NR†RIbJTGNF\\@RcIYbmHoLQdKN_fCJYbDRRXKZFVEZVXBXIJBXMdESW[CUYHUVQFQAqsEIMPYMSBUIIJKAIj•GW[@[LGScDOGQOAGSYZ[HSd[HFNVD@XmJFG[OWiWKNqGKN_MAMO[HoM[BoRewo@Y^HpITSFENc`MVCdHNIVCLJFI`NFIŒP`@VZbaf[FFJG`O\\WRFA@PVPFPPH'], - 'encodeOffsets': [[ - 111973, - 19401 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/hei_long_jiang_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '2311', - 'properties': { - 'name': '黑河市', - 'cp': [ - 127.1448, - 49.2957 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VÈÞ@Žkx˜nXްVÈa°V@kôw„b‚š„JVškXlVUx„„@ŽlL@xkVV°ƒ„VbxlVUnVxk@ƒ„ƒKkŽVb„Il„@°kVl„@„™lÆnkll@@V„VXƒŽš@V„²bUlƒVlV„U„VÇn@nkJšŽlkVbœ@›x²V@n°VUnlKU„n`@n°bWLnVUblVUVVbknV`°kkŽl@@V°@nz„J@XšxlWXb°n@bƒĠlbXb™bVbƒJ@Všb„a@„„@lbUbšVmnœ@lšVmnIW‚œ@WbÞ@„n@x°@š„ĢaƐéϚnœ„‚lȝĠŻÈwm@ôçU™mm£Xy°UV™›@wÈ£Ǫ¯kõÝçUњ™Uķ‚ƒĢkVфÆšÞU°nŎ¥ČUĊx°m°¦żVƐœx°ƒÇ£@y„UônރÆ@Èĉ°Kô¦šW„kWU—bÇ»@™ÈĕWÇÈ£ŤU@›n£ÆUUKVamanwŃmÝJ¯k@JƒIkaVaUUÇbkaÆÑkWmÝUۙ™Ý@™ƒwnU±ƒ@kkV¯KUkƒJƒ¼U¦ƒšÅ@ówķaķůV¥Uaó@Åwmƒƒ_kVƒwĉ‚ĉmmn_V»™a@U™ƒVwķóƒ‚U¦LǫéóXÇmōLǓÇķxÝkƒƒĉ™kmakbUͰ@W¼„@bƒšÈÆ@Ė™L„l@„°J¯„mkl¯L݃±L—amJ@¼ƒ„™VƧUó„™UX˜ċb¯ńVbkÆÝI@llx„k°V²šV@Uxގ˜L@b„@b™`ƒšÇzkókݤ@ğ¯Wƒ™LĉǙLmmnċVkbUaƒL@ޝ„‚bU°ğL݂Ý@'], - 'encodeOffsets': [[ - 127744, - 50102 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2327', - 'properties': { - 'name': '大兴安岭地区', - 'cp': [ - 124.1016, - 52.2345 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@k›ƒϙmƏêġb™ƒ¯@@wƒmÝ@XV@IlŽl@bUxl¯VlV™bV@ULVlUV™_kx™VVV™ÈÝJ@„¯šU„™lm¯x@xóÒĉ¼m„¯Wƒxţ@Uz¯ƒWwnUwťƒ@knƒWƒ£óVƒUUwğyó¦WI—Vmm™I@±kwÇ@@bƒ@ĉ¼ó@¯wó@¯aó¼›KՃaUwmWUwÅI@aƒKó@Ua™LƒaƒVÅwō¼UUÝl±I—¤VxÇx@zkJmnn‚mbnz™xlŽƒl¯ČkJl™°@„kb„Žmx@x™@kêmVnŽWxôXšxU°„bWLóJnÇWĵ„V¦™ŽƒUUb™b™ÆġK™šk¯™VU±aXmċÑUwĉKġ„k„™ŽVxk„ÇKkbƒIƒ‚ÛXWl¯bƒŽ™X¯K™bĊš„„ÞVƚnŽĸ²lxUްn°òÈb‚¦—xVbƒŽƒ@¯„Vx@¯VķÞČlĊ°KĸŽȘI°¤ČIôŽò»ƨnȰKǬ¦ôWŎÈƨwlƒnKVXmbX`lbšwkVW‚XXŽ„L°a„ƾaĊ£nƒ°@°¥ŎzÞ¥‚»œalwôkƒJ„a@ĶK„£„bU°ĊxźVÈUĠ¥ƨ™VI@XU°x°Ln¥šw°UmwXm݁V¥Ģް@nU@mÆ£š¯lKœšÜw@aÅU‚¥UaÝIkmV²‚nn@Ķ»@Uk¥VKÞ@ÞÛ@ƒkVmĢa@_ƒJómƒǖ¯Æw—óÇa@alƒUwšwĢřšk@wÆWXUWXƒWa™m@_ƒ»ÇéXaĸwVa@ÝKkUWkX‚kšKXxƒn@lĊV@¯m¯nřÆwš¥'], - 'encodeOffsets': [[ - 130084, - 52206 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2301', - 'properties': { - 'name': '哈尔滨市', - 'cp': [ - 127.9688, - 45.368 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°`„_šJlUšŽ@„„@V¦°JUšŽnLôlnŤ@@šÈaUÒVbkbl¤ƒzk°ÇVÛô°IlVUVôU„xÆU„Ž@bźĀ„º@¦šb@l²‚UVlœ@°ÒĠxšnXxÆVô¼Þ@Üx²KލlƒVѰUȰôlwô@²ƒĸ°„lanV@„šVŎUll@bÈnÜm„wĢ@la@ÝÞb°UXb˜lŎ²ÆškšV‚I@ŽnJnĠްknƒÜbĢwna@a˜kÞKƒĀ„a‚™œ‚‚IVbU¥wĠwkô˜xnLƒċVçkaUƒ±IUmnġW„°WôĉšalƒÞÅĵ¯@W¹XÝaƒb¯a±X¯ºLƒaVƒmkLóƒƒbkaƒVUKVkkKV_@aÝykk±L@ƒÅU@yV_™aU¥ówÇx™@UkVƒn@lƒkÅlwšWVwUkĉmkklW@šašbVwnWWƒ—wWL™™@Ušƒ™UƒÇLšÇmƒ„@wƒJĉƒL¥@ƒÝ_@a¯y„UWw¯ƒ¯Uġx¯aÝXVmaU£ó±›¯nwƒa¯óÅVƒXman™„Uƒ›lUXkWa@mkI„›ğaƒm™IklÇU™„kĊƒƒzkKƒš„lU„ōĬlš™„@ŽnX°@llUxʲmKĉVWwk@UbUK@bmVmI—ƒVmwaWxXlWȁšmºšÞÆbUxV@ĵńWÆĉLkWUbƒaWzkbĉ`U„±LklōwUVÝ£™UW`Uwk@mk¯VkaõVX@WbL™K@XƧºWzxƒK@lmX@bkVVÆk¼Vbk@Vn'], - 'encodeOffsets': [[ - 128712, - 46604 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2302', - 'properties': { - 'name': '齐齐哈尔市', - 'cp': [ - 124.541, - 47.5818 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Þ@ށĠKV¯a°ƒ@„KVblaČU‚mnnšKĊȚKX„°ŽĠ@Þ£ôllÈy„™š_@a‚ƒ@a—KݍVwU@±™¯Uƒlkw@kÞJlÅUa°ŃČaW—šVôƒƨVšU„ƒ@»nI˜b²Kބ°Klkn°ƒ¯I@ƒƒkšK@ĕÇń™@aƒX»¯@VĵlaÿVamI@aÅÝउýƒĊȗJƒôȁÅkmƑۃ@kxġ@@l™aVk¯»ƒīŹaƒkƒ¥Å¯™JUaWU@@w™aƒ»„KUkÆkUm„UmwÛ±±UUbUŽUXƒwWwÆÝk™lkUanaWwnKl™kal¯ka™ƽa›kÅx™a¯@™amb¯V™lÇwÛĀ™V@x™šmêVƜVV‚aôV„wÈx@šˌx„¦VÞ¯VšlmX@‚ƒL@¯Ua¯LmV@„„°X„ċK™V™ƒ@UƒÈ@‚¥@w—ƒġIU™km¥Źwƒ¦¯lmn@°kxVV@¦óam„n¦l@nx™lĉVóšmx™n™ÒĉĀĊ¼„þ„šǔêÞ°ˌĠÞÒ°ĀɲĀƨźˤȤƨĊ°w@£nymwnkUUV¥ôÑVmkÆmUUVa™mVIkmô„lxkXÞþƒbl„ƒl@kV„ƆƒV„xV@š¼VÒ@šŽUŽšnnނJ'], - 'encodeOffsets': [[ - 127744, - 50102 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2310', - 'properties': { - 'name': '牡丹江市', - 'cp': [ - 129.7815, - 44.7089 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@U`lLUlVL„Ulb„aô„lKnŽU„„b‚K°¹²W°b„aÞb˜knyUlUkamř²L@m°@lšmš²n`ôÅlK„x„ÜKnxV@„l@œƒ›ÅXyW_k@™wm™ŹĕmƒX™»‚ƒÛ™l°ƒôšÈ„»š—ô˜ô_WW@Uœal»šwU@@wšUVƒš@VƒXI@w‚Ģ͑ÞȻ›aU_@mUkly@¯óV»XmWUXUWmnm¥nUUaWLk»Æ²IÇa™wÅaݰ¯nUa±a™ƒ™@¦õÆğ„@„™@Åb›xU܁nÇłlb¯¦„ôó»mƒ—@±ƒUk@Wwƒa¯xU„V°ƒxXbǎŁUV™™ƒK@¹ƒKUaȯ@ōݙXƒal™ƒlÛkalÇUǫÇńÇakbÝƆ¯nlš¯Ž@¼™VUx@x¯W¼™Æ¯šmĖ„Ĭ¯ČƒVk‚ķÅmxœ°ô²V¤‚bUnÞW°bĢw°V°„XxƒV°z@bÞ`@„‚¦„KĊŽ„I@xƒŽn„™ÈÈK‚„šV™„@VššXK˜xX„mXUx™a™b@‚kXllĊnVlUx™XkxlÆk„m@U„Vlš@ÈwôxV¦šbU`@zÆV@„²KllÞz@b'], - 'encodeOffsets': [[ - 132672, - 46936 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2312', - 'properties': { - 'name': '绥化市', - 'cp': [ - 126.7163, - 46.8018 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ऊþÆÞ@bnJUb‚ĀnblŽĊš„„ÞlĸwǔÈŎKÈnôWǬê‚KV¥„ĸôUxš„@VšbU¼m`nnĊŽĊ„xlUšmkaVÿšLšwš@°»UmbKmݙUšwUmVknKUUl¯ƒKU™ƒUȃ‚™nK@ĠkX±lX„°„L@¯¥@wV_m›ĵ¯Ww™L¯ƒUkōƒÇVU™l›w—V󁱃¯aƒVka°wVk°mÞ¯Ŧřƙl™²™Ŏk™U@ƒmUkb¯ƒķޱ„ó@kxȯó¯VUÒk„ÝŽ±LÛwÝ@ó»ÅUWw™mğw¯Ñ›@UkV±@k™a@¥ƒ¹Źÿ@aƒÅVƒwóVVUkU¯JÜóÈUl¯„yk£laUaVÑÇb@™ţ@kmómK™V¯IU¥ƒ@@ƒ™kV™Iƒ`@ô™¼„blU„lƒ™bÈb@xÇKkĢɳaÅɆō@ƒŽVƒK@z™@@¥ÆKnÜ@@aۏUw›wnU‚ķ@ƒ_ƒV°Ž@„klVššnULVVÞbVl@°™@nx™n°LŚÆlV„ȃmU²@VmĠLƒx„n¯xkWƒzšJ‚wnLmbXbW°šÆ‚™²™@™Žšx@JVx„L‚Ā²Æ°I¯º‚È@ÒnÈ'], - 'encodeOffsets': [[ - 128352, - 48421 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2307', - 'properties': { - 'name': '伊春市', - 'cp': [ - 129.1992, - 47.9608 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƒKƒ¯kWW²ğl@ŽmLšÇ„„VVš„Lk°VVmLUlVn™xšVnނLnaVޝ¼™@™x™KUĀlb™n„`n„Æxô@VbU¦ĸŰĸbôxÆ@„™V¥„»„IVl°LUŽll@²„mV„x@ššÞܚÞVnŽlXÅÒlbÈaVVUblb„J@I°lÞIn‚Æ„mxnbUbVLÅVm¤@œţVǤXÈÇĖ@šÈ¼˜aXVÜaXbWŽnzŎašř„KôbšUlw@¯naÆKnUU¯Üa@mkkVUĊm„™żÝ‚ǖŽ‚K„™°L²lÆI@ƒ¯¥ĉƛVaÞk@ÝVaĠlnUVwƒœómaƒ@™wĉ@™a™VƒxamX@aƒ@UaÅLƒaVWƒ_nWm£nWm_ÅV¯ƒm@m„󤁚ݦƒ¯ÅalmX£ƒ™VWUŚw™mÇ@@IV™„WUw@ašI@„k@wŎ»Wƒ„ƒ™ÅVaœK›Ika@¥lUkUlwÅwVyÈwWU@a¯U°m—Ç@UçƒaVa¯mV»ÅwÝUlƒUk™V@k„mUk‚X£šw°@@ǃaÝIƒƒam™Ûam„¯lğmmI@J™U™l±ÅōŽ—kWa¯VÝa@Þkbġ@ƒxÛnÇm@akkōVōl±škšÅšťŚÝ°¯nUl¯xlb„U°b²„ô‚˜Uœxšk‚VÈUŎ„Vl°„šKXxͰnœU`@x°¦@'], - 'encodeOffsets': [[ - 131637, - 48556 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2308', - 'properties': { - 'name': '佳木斯市', - 'cp': [ - 133.0005, - 47.5763 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nš„b‚„ÞJ„b@ȯ@™xW¤Vlƒn@lšUVlk„ÞVÆxU¼°nUb„bVèÈ@˜ŽnIn‚@šĢmlUw°™żƒ‚VUn@lnL@VôbšwĊ‚lœ„JķĸĢl„wôwƨxVVUƒŦšxšLź™Èš°`nnĠwŎJސĶwôJ„@¤Xn܄ĸlšn°¼È°lŽ„„Uš‚b„xš@„l@ÞÞÈm°„lôwšL°¼ĸ‚°Þ²nĠ@ôwÞ`ŤI„V„ÒĠU„„@„VJĸbƄ²@°ŽĊKšœ„JĶa̐Ȱ@ô¥°nš¤‚bČUš@Vx„mUw@a݁ţƒÇ™ķƒ@ĕķīU¯²@ÆmVÑô¯X¥ċç@™ĉ»U¥ÝţKWVÅkUVÝŎUmǍÝx¯aķxÛUóL¯a±óōb¯™ƒÑŃVÿƒ_Åķ„a@UƒK@wm@Van@UmmLVa—@VImmXUWƒÝUřƒKUwÝUUƒkVƒk@l¯X›‚Å_ƒJ¯k™Jm„ÅLƒa@¥U@¯Vƒz¯@ƒ`@¼šmxƥšŏKÛk@±laÛ@@Xm@™ƒ@xƽ@WŎnšˣĕÅ@@aÅ@@nÝbǏ¯@ƒ_U›kUWƒkb™wÝU@ç„Wlw@anIƒ¯lyœX°m°VšašÛšm@„mVwÞK°ƒšXlaXmm_ƒ@UƒkwÝK@ƒVI™ƒXmV»ƒI@aƒ¯ğW™bġaU_¯JU¯ġŽƒ„ĉ„k„ō`±nÝÆk„™bóĊ¯Xƒ‚ĢX‚mVn²JV„lbUè„ČmK—wlóğx‚xV¦UaJ›šƒbƑÿÝL—l@bmbġx'], - 'encodeOffsets': [[ - 132615, - 47740 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2303', - 'properties': { - 'name': '鸡西市', - 'cp': [ - 132.7917, - 45.7361 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚LšKVVnkšbVšÈb‚²U°VnklVlaÈL@anU°ÜmXV`œnôLƒèšxlŽšLX„˜L²ašVVmÈX@ķ˜lnU„Èl`ȹš@ŤŽ°U@x„KnnV„mlnnUl‚lVnnaŎwlVÞ҄@n¦šLVްlšwVk„Lšaގl„n҄š@xmLÞ¤Wnœ¼‚WÈLVVUxlÈô„„WVaU_VKšKXUÆbn™‚nôK„bÞw°bÆWXamVwœK˜™Uw¯WUk„UlJUwVUa™@@kmyzm›ĉw@kVwškƒW¯ÅKU_Vmƒƒ™xU@aW@@kK@w„a@Kƒ@@kVUƒaky°_Vm™kna¯K@™ƒL™wġk@@IÇóX™ƒwVakmV@mwXUWanƒlĉ@ǙUw™KƒƒóšܛNJۄm°@›w—Å@ƒ±b¯Wƒ¹„WVwŹĕ¯kVmōb¯w@aƒwmV™UUb™V™IkaVwķ™xk¼›b@VXXó`󗙘ƒ¼Çó™¯„kŽÜš„š¼WŽn„źĖnššxl@X`WzœÆ'], - 'encodeOffsets': [[ - 133921, - 46716 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2305', - 'properties': { - 'name': '双鸭山市', - 'cp': [ - 133.5938, - 46.7523 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@™UƒƒUwó™mÑÞÑUÝÝUkmmŃyV¯ī„¥ƒUÿĉ¯mÇkaWbÅX¯aÝxƒaóLmmšÅaWV™LULV`UbƒXóƒkÇVwUUÇKX›»XmÝ£nK@wƒ™mÑkƒÝ™bƒKUl™x¯kU™Km¥ƒ@ÝÑkUōxmbUmkVkmmnkUƒmmƒL@w¯Vţ™@Ǻk_ƒÇmV—k@ĸVx‚VȰlLkllšUbōwƒnVW¼nlUx¯XmWUnÝ@™xÝUó¼¯J@LVbkJWnkb™W¯„ÝLUxƒn@‚™n™Ü™b¯U¯n›Wkz„°mJ@bkxƒX@èÞVšxlaX„lVVœ„`°@ȐÞa@mÆ@@bÆ@ˤĖm™Xōƾ@@wš„n@@WÜ@kb@²ÜlŐLƦ™nw™@»„_°@„y°UV@@¦„bÆKnƒšI°l„IÆ`œ°W@k„llUV„ÞVVx„LƚÞVX„WVnnUJ˜@UbnKVnm@Ubn@@x„L@VƒbÆĸ„`UĀÆ„„Ò°šŎa²ô°bôKÜVĸw°bÞwȎVnÞōVUÆlXU'], - 'encodeOffsets': [[ - 137577, - 48578 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2306', - 'properties': { - 'name': '大庆市', - 'cp': [ - 124.7717, - 46.4282 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@mÇ@сǰ¹¯J±ÅÿƒKUw‚I@™wšš@š±Å‚™X¯WanamKx™I„ylX°wƒm„wğKUn±@nVDŽUƒÅkƙ¯Kšmmwš@@¯UkÝaUUVK™mU™lk@ƒ¯„U„`ĸ@V‚mœxVxܐ@bÛ@m‚ÅL@¦š@@y„L‚U„Ŏ@ÆɅɴblġÈL@wÇaša„ƒkkVƒaš»@ó¯_ÝJ™wÇaÅXny›U¯¥Å„@w™bÝa™Lmm@@ƒVUŽlbğVmš™¯Xƒm_ƒ`¯_Ux™m™L™a¯b@mƒaó¦Çk™¤V„@bóJknVx™VXx±aƒLUbVxkLVlLWlƒ@nX@VÅbWlÈnƒx„bWšÅbmŽ@xœbml°b™„XbW„XVmnn`ƒLmšnbmb@šk@mwU@@š¯Jlbk°lbkšmLXxmbVbkllšÅނxX„xVWVVa²VܲnxƒVVnÅlVlƒL„¼šb@xV@XŽVbšIư„¦„lźb„Ĭ°¼Ulšb@kĢ@lw„@ƒÜlnȂƄóȘI„ĉ'], - 'encodeOffsets': [[ - 128352, - 48421 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2304', - 'properties': { - 'name': '鹤岗市', - 'cp': [ - 130.4407, - 47.7081 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Þ¥‚™ô£nƒn@°„ÆUn`mXn¤mX„`UX„bÆKVb„@@bnW‚b„wšUšbĊ@šx„@nbšWVmƒ_mm@ó»Um„ŘWXkĠ»²¯‚¯nķšwŎ@ĊšŎK°bĸUnјKȦĠÈbÆknJššÆUĢV°IšŽšVƾƒwaV™ƒƒkÇ¯¯»™mķkۃWm@£ƒóIĵxݏōIğxmm¯_Ç™Źš™K™wťŽ„UVUŽƧwóxƒxġkĸķƒIk›ĉ™xóa@UmK@kVmUŻ„¯šVxkŽġn™‚@mmJ¯n°V@bXVÇxUzÆxkxlVkV@¦lbœJ›LUbšÆƒ„X„ō¼@xƒl@™J@bVxƒXUš@JÈ@šn™xVÆUXš‚„W¤knÆb„°'], - 'encodeOffsets': [[ - 132998, - 49478 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2309', - 'properties': { - 'name': '七台河市', - 'cp': [ - 131.2756, - 45.9558 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²mŎ_lƒĊƒ„ƒĢV°°IV`ĢbšaĠX„°@b„JU¼Wnš„UJ@„ÞLlxV„„@n`lIUa@K°Iô»ÞVšwÞ@VmnX°WVwmkX»‚U„mŎxVak™lkkKǯUUwÇWUn™U±b—KWƒ™Kk™w„çóK›mU_nW¯ÛmV@bÇKkbkUml¯U±VÇaU™™amlUU™LK›„k@ƒU@mwÛLƒŽƒwkLóÆm_™±™nkޝ@@n±KnŚlbkVV‚mz—lWXº@Ķ°'], - 'encodeOffsets': [[ - 133369, - 47228 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/he_bei_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '1308', - 'properties': { - 'name': '承德市', - 'cp': [ - 117.5757, - 41.4075 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lLnlmxn„„IVVlUnb@VVxXJWL@LގVnnV„J˜_@wkmšK„b‚x„wXk˜WXXšKlb²K@nVVVb„L@WlU²„lKVnUJVz@VVb@lżmVUVnbôaVX@°Ub@lWbXš@b@bVb°x„@VxÈLVlšaÆ@Þb²k°@lVUŽ@Xn@VW‚LXb@¤VXšKVVVLnm°_ƨ¤@aUIVa„alkX›°k„™V@„alwUVy„U@k󙰃na°UVUUmUÆw@mkLVUƒWVI„WšLnn@xlVnK„myU@ƒU°UXaV@U¥ƒU@Uƙ@aVUkWU¯ƒaU@WLUV@bkbmKULmKkUVUkmVIUwlWV²™Uml°U@W„LUwVm@UUK@_ƒKUUÜaXw@ƒVKUU@mVIUUlmnIVVVbÈVlKnbVKš@nI˜@nVnwVLVK„K„„˜Vnb@aUIVW@In™°@lVnIš@lWĢ@°UVL@b„@VyUUƒa@w@WUnU@Wǯ™K@UkkJWaÛbmk@mVaÞU@amkWƒ@mXUKkÿƒ£@a„kl@Um°UXwla„al@nmlXnW°znW@aƒwV™@ƒakbĉ¥VmU@ƒIƒVƒUƒJkUmWU™KbmkUaƒKkUVU@KV@@klw—™WaU@kmƒXVènbmlUUƒKƒX¯JkbƒI@JmIUWU@ƒLml@XkJ@U™kƒK@aVKwWa—IWwƒmUƒ@mU@J@UaċU™aUUƒVkI±ƒk@UUƒ@UbVVm@UVKƒLƒlkIWaULUWƒXUJU„ƒ@WbUb@lkXUxm@@JVn@J@b„nƒb@Vkx@bšLU‚Æn„JšaVXnKVVmzX‚°V@_lJXxWXƒK¯bÅamUƒ@lUI›bñJ@LÇKkIÇ`kxWL@„ƒ@@bUVUb¯xWKk„Å„VlULW@ƒŽn¦Ul@I™lmUUUVm@kWƒnkKma¯XUKWmnwVwÝL„mŽ™VUbUVWb@Lnxm„xVŽmbXx›¦@„nb@`™„ƒVƒ@kbƒLU„mVUlkbVXkºmnm@@xk¦šbĢÜlš'], - 'encodeOffsets': [[ - 118868, - 42784 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1307', - 'properties': { - 'name': '张家口市', - 'cp': [ - 115.1477, - 40.8527 - ], - 'childNum': 15 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@k™ġۙal¥@wn@nml¹UWlaVknUVƒ„Kla„@„Ušƒ@_ma@ƒœ¥WwnaU‚wnƒmw@KXaVUVašUnmWUk°™lƒnUVUXWVw™IWVóKUI@WXƒxUU@mma@kUKWLkw@yk@ƒaVkUUċaUU@Wk@Unm@UVmLm±IUƒkJ™kWƒ@a„I@m@U„ƒVƒ„Ula„@VXVƒXmVwnkWKƒKU_k@m¥ƒmX_™JmnU@km@U@KmU™VƒU@U™@Umk@@LƒmW@Û£Wƒka@wk™@aƒI@mmk@mUa@UmUƒIƒwW@aWUƒbU@kbÇ@kwƒ@makVUk™U@aƒm@aU@mxkUƒbƒKUXUƒ±KXVWLUK@wkU@V™@WXUa@WbUxƒJIƒŽ@¦VèVVX@±ê¯KUIƒ`¯UULVx@Vƒ@UKƒIƒVkLmVkKmš@nUJÝbkIUJVXšVVxVbU„VJ„Un™°bV„mlU°„XnK@Ul@lVÈVUXšx@W„@VXšV‚KÞb„n@VnbV„m`ƒUx™kW@UVkL™Km¼@lUnUJVnV„XV@Vm@@LV„klƒIkl@VƒWlŽULWKUL@mJ„@blbUVUlmzUJUxm@UUbċÜk@Ub@VšLVV„¦ôbVŽmšUKUkU@m„„@VlVn¼WbUJ¯@@„°šnIllÈl˜@nXšWlLœk‚J@bkxlxkxlXUlklJƒšXL@bW„n`@nƎXxlL@xl@Xb‚LœKlVlIXblVUbUJW@lX@VL@VVŽšXšJšw„n@WnL°K„bVbl@VI@K„@U@nmVmV@XUWI@aXm@™VUUkWmn@lmUUk@mUmK@UnwVĉ@ƒƒmU_V@XJôVVUšLVUn@šllUnJl_n@šml@XŽlLlw²LVJUL@VmbVblVXmVnlš@Ť¦„nn@܎@bšl„@@XV`„Unb@VlLVb²J‚Xn¥ÆÑ@¥Þ@'], - 'encodeOffsets': [[ - 118868, - 42784 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1306', - 'properties': { - 'name': '保定市', - 'cp': [ - 115.0488, - 39.0948 - ], - 'childNum': 23 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VbXWš@@UlV@xVLXKWU²LV„VW„L„alVnwV@@b„n@bšVVllUnb„@lxÈ@laV@„aXV@b‚X„x„J‚nV@VVb@nnl@n„J@blšl@„ašƒU_VWUwVUškUm™Ukb±mVwœU@VIUW@UWk„@VU@ynL„m@IV@‚bnK„LVaVmnIlaXwV@@WVL°@@xnX„@V`V@VbUVVLVKnwnL@ll@@_V@VVnaÆ@œKVXÆ@nƒ@wƒKmU—™Wm@km@kÜKXU@ÑW±nIUwVƒ„Kla@I°wU±kškmm¯mƒ_ƒJnƒaƒwW@IVaUama@wƒUƒmU@mVw@aXk@mWa@£km@aƒ_kVmUnWW@¯bƒkUmk@ƒVÇm@@kUU™KUU™@UVUamVUaWIkb@xU@@amUkKƒVkam@@kVUkUWmKmUkLUb@xmJƒ™U@UImVÛVmnUwƒJƒU@VƒX@UWm@Ub°¦UšmxklmX@`ULU@@UW@@xkn¯@makV™UmxUb™°ƒlUšƒbUbƒnUJƒUUVƒa™LkbUU›JUU@mUUUƒJkaƒ@™xUIWJƒUnƒJ@V™zƒ@kb@`@bln@l™bƒŽ@X@š@š„@Xl‚bnbVb„@„„VJlInlšbVw@U„K„l@lbnan@Vb‚JôLn‚UzlV@lÈLVbVK@LVx—VWXX`WxXz‚bV`UXV¤nx@„bVlVnVlUL'], - 'encodeOffsets': [[ - 117304, - 40512 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1302', - 'properties': { - 'name': '唐山市', - 'cp': [ - 118.4766, - 39.6826 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„@VVl@²„lJ„UVVšbČVVb‚@@InV„@‚V„nXx˜JXb‚xUL@b„Lšl@VlI@Wnk„KV@VXnJ@I„Jla°I„W„LVVnkmaUç„WVkôaܯ„@nV°wnJlaV@VUnUUaW¯wXWWwna@£UaWKU¯ƒ¯@aVUkKUamUUƒn»‚an™„IVwUWlkš@„LlWVakU@K„_lƒšbÞU°@šy°n„@„KÈkWW™ţ¥ĉōƒkġWUw¯£¯ƒÇwţwƒ@kK@kƒ¥ÝwÅbǤېťV™lW°@ĸ™x@VVVULVLkl@V@Xƒ`Ub@Xm@UWbƒk@ÆVbnLWV@lnXUbl‚@X¯lmU™VkKWLkK@_UK@U@UmmUxmVXLWVULkU@`W@ULUK@XlJXzV@@xml@VU@UX@Kk@WbUK@Xn`ƒXmJnšmškxUVbUVlVVxUbV@nKlL„kVKÞbVKXI°KVšmVUIUKULVxVJVLkV@Vƒ@UbU@WUU@UbUK@b@nƒV@VkLmb@b'], - 'encodeOffsets': [[ - 120398, - 41159 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1309', - 'properties': { - 'name': '沧州市', - 'cp': [ - 116.8286, - 38.2104 - ], - 'childNum': 15 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@ln@UȄŽl@Vn„l°aX@mXnVlU„`@bln@¤Xb@nWl@bUx@nnV‚„„V@xnbVbUb@J‚X„x„b‚mXa@k„UVwlW„k„KôVm@w™kkK@kl»Èƒm™VKXkla°@XVV@VI@ml@@Vn@VX@V@J„@VxUzVVšš²blVk¦@šĠ@@»š@VK@VÈLlK@XnJ@alIUl„a„VVbš@„n@a„U@WUIV@mUn@mKXml@lL@LnWšb@XV@@a„VVb„V„@VV„IVWÈb˜IÈ»ƒǟlWšaVUÅUƒƒ™Um@kVU™WVkaUwmaóUƒJUU¯ÑU¥mk™¯UaƒKÅnÇyóXmWÛX¯aċbÛa›J—W™ÝU¯»ƒaóóUm@IƒšVVl@bƒLUJWLX@@xšXUxl¤V@V„nVUV„XVbVš@Ž„@@VVn„°VŽ@ţU¯VƒUmƒUWV@mUXƒaƒbUKUwUaÇKn„ƒVk¦Wb@VnLmV@bkV@n„xW`Å_UVƒV@bƒUklVX@VmlUƒx@VVL@x—VWVL@VW@UUm@'], - 'encodeOffsets': [[ - 118485, - 39280 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1301', - 'properties': { - 'name': '石家庄市', - 'cp': [ - 114.4995, - 38.1006 - ], - 'childNum': 19 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@la„@šy@U„I‚m„VXIVJšw„@lb„IVVnV‚@VVœIVVlašK„bVU„VVI„mVa„aV™„kš¯VanwšVlUnb°@lm@wX@@VV@VK@_nWlknwV™¯¥Van@VX‚@„W@U„V„IVxnmÜUnUVJV@„šnI@wValKnV@k‚mU£na@mVk°K„LVa@UU@UƒmknWWkXU@aWW@@km@UaU@@klK@UkaWaUnamm@U„a¯wWU@UkƒL@ŽUn@x™V™lUXVJUb™LmU@aUWUkmKkLUUm@mW—XƒaƒmmkkWUm@@U¯JUUm™kU¯@mKĉxÝwÝ¥LƒUóŽmwkUUUWVkKm™kKmLX„lxVLVxXJ@nVJnz@VWL@`nX@šƒxƒ@kVUUmJmIXx„JV„ƒnUVƒ@UVV„@LUšƒ`UXVVƒ„ƒlXL@l@b@VmX@b™xn°™UƒbkKWLXlW@@bƒK„mKULmakLUlmb@šXb@xmXU`V„b@`lLx@nWVXL@‚°WlXnlb„KVK„XVb@˜X@l_lJ@V@XnŽ„I'], - 'encodeOffsets': [[ - 116562, - 39691 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1305', - 'properties': { - 'name': '邢台市', - 'cp': [ - 114.8071, - 37.2821 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nKlLnšlLXUVVlVnxô„V‚KÞ¦ÞxĊwnL°@lVnšVV°I@Vn@V‚lXnl„n„b˜WnXn@VVlKnLVlVX@bnVšKVaUIVWškšU@wVm@¯@U¥VmU_°lšK„k‚w@LX‚Va„U@wšUƒUUKlUóW@UVUœUlƒ°K„wlKU_na„KVnlKkkšWWa@IœJVa@IlJnU@„KVUUmVlaXUl@lm@kXWÝÑnkƒ™±™k@wğ›@@U@mKĉLmVJ@zmlnŽWLUÝJU_ƒ@@šmJkXUVlbklÝ@Ýa™b¯@¯±JÅwġaUU@ƒkU™@mVI±bUKƒL™WUXƒJkaƒLóKULWbUVkKmnk@@bmLUŽƒl@b@mnmJkUULƒaƒbnŽmn@lVV@¦n@„l@b‚znx@`Vz@b„xnV@xl„lbnKVx'], - 'encodeOffsets': [[ - 116764, - 38346 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1304', - 'properties': { - 'name': '邯郸市', - 'cp': [ - 114.4775, - 36.535 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„bVKlVnInm‚@@a„kVnK@al@nmlLVUXaVKôL„Klb„IVWšX„KVL²a‚JnUš@lV@„VVĢbÆx²I°Ž°@šaÞbÞ@lkkaVUlWnI@™„@V`ÞI‚VXKmnk@y‚InUĊKƒÇkUUamUUkƒƒ@aU@U™ƒk@WUwVkVJVkkw°a@„mK@UX@VV„LVW@wšwVa@¯Xm@@lUIWaU@UWkXWmU@UwmUkKmn@lkVƒ²™VƒaULUVmJUUUwƒLma@™UmkIUm›L—mVšmx@b™LUamKÅL@VmbkU¯KÝamzkJUb±Vkb™L@lU@WIkJƒzkKmKƒnUalWkkKW@@nkbk@WW¯XUVUJ@XlJ@Xƒ@XlWLkUƒ`VUnaWa„UV@UVIƒaUxUUmVƒK@I@W@DŽU@@U@bƒ‚@nmKXmx™@UxkVWUX„@`VLlL@`™zX‚Ýb@b‚„@VUVkIUJVz°KVlnLlKnL„xlLVVUVlXUJ@nn‚„I@mVUlbn@@Žm„@bV„nV'], - 'encodeOffsets': [[ - 116528, - 37885 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1303', - 'properties': { - 'name': '秦皇岛市', - 'cp': [ - 119.2126, - 40.0232 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lnV@Xb˜škx@lU@@LUVlV„LVbnl‚ašLXVVn‚l„I„V„U„JV@UnĊ¦la„bš@nJ°UmƒV@„wn@VU„JVI°bnWlXnWVLVK²b‚akk„lI@aUaVƒUwVUUalaVwnUVak¥šX@W‚kœLVÓm„mUK@_lWš@n_UK@alÅ@ğÅƑŃݍmƒ@їţÇlƒLƒ@¯m™z¯@ÝV™ak„ƒ`@LlVUbkXƒK™@klVXUxƒJmšbm¼V„nVVblLUV@b„°V°XLVb@¤mbXxWX°xXŽVbmVUVU@kbmI¯xmUƒ@Û°óbUl'], - 'encodeOffsets': [[ - 121411, - 41254 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1311', - 'properties': { - 'name': '衡水市', - 'cp': [ - 115.8838, - 37.7161 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„KVlV@X°xƒb@VnnmbVŽXblb@VkL@lV@Vbn@@l‚@XX@bWVXlmXnlV„V@@VUbƒK¯LUl@nmbV¤n@l‚LXnlVUV@ln@lb„UlLnV@bV@@wlaXJVbnUVbVUš@VVšLVVn@VVX@@U‚KXU˜U@wUK@U„wVnk@UUWlk„V@a„UVUÆ`X_ƒw@mlU@anUmK@UXal¥„UmƒÈLVbVxVL„a„bVW@nXU‚Vn„„V°UŤV@Uƒ¯Um@Uƒ@@U™UaƒWVUmUUƒU@k£Vw™W@wW@XKƒIUa@wU@@al@UK@_mKXKƒbUU@aVKmš@Xmƒƒ±@kbÇakLğVaUw@a@ƒmkUJƒk@ykw@£ƒWX@lknk@WVkbUŽVnUVƒL@‚mVkI@JUb›I@JXb™XllkLUmƒLmbV`kLƒx¯Lk„›VUV@VôXkVVL„V™V@xƒVUbW@Kxƒl™L¯kV`UnV¦°@'], - 'encodeOffsets': [[ - 118024, - 38549 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1310', - 'properties': { - 'name': '廊坊市', - 'cp': [ - 116.521, - 39.0509 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@la„Ušš@šUnL@VWbklWxnIVV„V@X„JlbUlšXVbn@@K„mV@@X°WVInJmn²@lmVbnL@amKV_kwlmX@@LVamaXaƒaVU@UnJVanLlUkaW@UaVakK@IlKUU@an@ln@alKUƒkIVa@a@klaUKUV@UkUV¯šKVƒV@kUmƒU@@a¯ImJUU@VV@UL@Uƒ@@WXUWa@Ukwm™@ƒX@@w@al@@aVIUmVUUUVWUknK@I@™l¥kU±a™™UUVyUwƒ@@I@UUWm@@Uk@@nUJU@WU¯@kbWlULnšÇ„k¼@llLšl@xUnóŽƒLƒlkXUxƒV@lWb„I„`°nnn™llŽV²¯x@JkbƒLU„VxmJX²@ÒWVÛL@lln@‚Xn˜šnV„L'], - ['@@@kX@Valaa@KWI@UXW@WanaUIW@UaUKķŽk_W@UVUKUš@bƒ@UamxVXnJUbWVXLVbn@W°kb@U@Wó¼mIU¼k`V„@bVbl@„lX@lUôVlUœIV`lX„Vn@lUlVn@„l@UVaƒIUWl£Um™VWU@@UUKlUUUnƒVL@KšUnLVWUa›@™U'] - ], - 'encodeOffsets': [ - [[ - 119037, - 40467 - ]], - [[ - 119970, - 40776 - ]] - ] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/he_nan_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '4113', - 'properties': { - 'name': '南阳市', - 'cp': [ - 112.4011, - 33.0359 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lKl@nVV@„bn„@VVnm‚nL‚LXx@š„‚VLlKVU„IXWÜ@șlbl@XUĊUlwnW„LÞw‚m@ÞUVmnVl@nX‚JXLm@VnnJla„I@VkxVb„@VŽln„J@knKVn„@°aVanal@XK°b„‚@š¯VJXIš„VK@al@nV„k‚@nK„a‚b„@XL@blVVKVLXK„@VaVI°mVaX@V_@a@yUkVw„VšIVašJ°™@anIlaV@nKnXÆm@wUUV±UUWUKnaWwXUWmٝVƒam@kakImƒUKƒ»lan@VXXa˜W@@UlUUa@a@UlwUƒV@Xal@@anIVaUK@V™XmwVmUmV„LXl‚@nalLnal@„šnKlkV@@UnJ‚UXnl@nVl¦V@@VnJ@nUVVVVIn@Va„JƗn@@K@m„kƒa@kmWVaUI@a@™k@@aUL@mmaVIUKUVƒ@@IU@mƒUmmL@K@UUUU@mW@@nU@ğ»mVmbk@klW@UXnV@LƒJm„™lUnUJ™UUUWƒƒ@UnkKƒxmLa@ƒ@@lUU™bmUVWk@@nkUmam@UakJU_ƒVm@ÅlÇLUVmVUwULƒKU@ƒk@UƒVUlU@@Uƒ@UaUUWaŎƒzJƒaWLkl™b@bmL@„kKƒabWŽUVƒ_@mV@b¯JmXUbUK™¤ÇLUU@b@JkLWmkUWIkJ@VmX@JUbVXU`¯VV¯blK@LXKl„UV@Um@@Uk@kxWŽkbƒL@KkbmL@‚UXmaU@@l@x@blX@xUJ@bULUlULÇ@@VšnU`W@@nÛ¼U@@VmKUkm@VVX@@xǚ@bUbVb@VX@@x‚LUb@lƒ¼XLlbUlVVU„Ub@n'], - 'encodeOffsets': [[ - 113671, - 34364 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4115', - 'properties': { - 'name': '信阳市', - 'cp': [ - 114.8291, - 32.0197 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VllInJlknJVkVU@mXlUÞ`VnV™VU@U@y„@nXlKV„nJVkXKWaXI‚b@yVk„VUkVwn@‚K@nW@k„KlUXVVUlbnUV`n@V_V@llX@@V„b@bV@@nlVUb¯‚WLnbmb@ŽnLnK˜b„U„bVWnLlaX@VVUX@Vln@`kL@ll@VXVJÈIVl@XÞJ°Una„LlylU@UXKlnn@lanLWWnbVI@KXKVL@LVWVL@UVKUIVWX@@XÆJ@In`@lJVI@a„WšÛnK@UlK@UU@VK„nlm„nXal„UllLUbVVšknJ@nV@Vm@a„l@@xnV„„lJVUU@™w@aƒk„@XW@_mWnUlŁUmVKV@VXwW»XƒWaUwnkWUkVUƒU@@@WlaUkkaƒIWVkm¯xmIUmƒLUVƒaUIó»m@mmwXk@a›mk¯¯l™@wƒmkLmmU@UbkUWJ@XUbƒJ@b@l@znÆmK@Xk@Ub@lm@ƒI@akmVKUUVUkU@U±JUbkƒ@IWmkxƒa@UUV™UWVkIUaW@UlLWn@VkJƒI@VkK@L@bmKƒkJmUUaUKWXk¼VxnJ@„V@@VULV¼ƒ@@UkaUlWL@U@W@IkKmL@KULUWULWKUXUJmIƒb—KƒŽƒ²UW™nWKUUkLUƒmUUam@UU™@ƒmUL@xkV@„VV@bmV@Vk@mwkUƒVUx@mbX‚ÇnVb„‚UL¯šWŽnUVLVb@xnlWnU@UVUVVUbVVlVkn@llVUXUWUXVbUJ@bmLUJnb@nVK@bl@@š@bVJUbnX@l„b'], - 'encodeOffsets': [[ - 116551, - 33385 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4103', - 'properties': { - 'name': '洛阳市', - 'cp': [ - 112.0605, - 34.3158 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VVUllLXl@LWn@J„@bƒKUVmnL@`VblLnbV@„b@JmL@LnV@VV@¯„VJVnXL˜@nm@aÞ@‚a„k@m„IšmVbXL‚ynLšk°@°aVJnUV@UVVXk@WJ@VXLlUnJVnnƒ°U@»°U„wl@šb„WmUXƒÆ@VLXU@m@U„a@I›mkb™a@naWW@_@WXUV@@U‚ƒ²@„K@I±U@¥kKWLóLlƒa@£Um@kWKXU@mlLXUVKUU±J¯_@`UL¯Wmk@Wa„kkƒlUnƒVUVaU@KUU@mmK@_ƒa@KX@VaUIm±™k„aVKVUkw™@kaƒƒW@kbkL±UUaƒK@UUKVak£ƒ@UmmL@lƒIkmUƒ@Ualw@UƒJkbmIUmn@WKImWk@mUUnÝV@ށnÝxƒKmXkxĉVWVk@kaċšÛ@WXƒJUV@zŽm„VWnbUbVbšLlUnŽ‚lUÒnWV—VWnk@@Vm@kxm@Un™l@Ll@@V@šXnƒškJV„šV@nlVXx˜U@l„n@aš@VLnWĊ¦nxš@lbVKXLl@ރVLƒ„XJl@XXl`lIXVl@Xl‚XUVšK„wV@lanx„zUbVJ@VVX@b'], - 'encodeOffsets': [[ - 114683, - 35551 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4117', - 'properties': { - 'name': '驻马店市', - 'cp': [ - 114.1589, - 32.9041 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n@„b°UƂXnVlnLÜ@VLœm@n˜@na@J„„m@k„@lVšVxXX@„V`lLV„XVV@VVÞLVV°„²@lašbnxV@@b„Lšmlm„_VWnIWUna@lšLšbnV°ƒVL@KšV„LVUVaVLXK@mÆXna@wVm„a‚@Xw@KlL@a„@Va@wUkaWnIVƒla@Kn@Vn@VUl@nKVn„J@LnK@aVkVUUWƒ@VakUVanI‚²X‚W@UUU°KnUVLl@XaVK@ašU@KUI@W@_lm@KkLUKV_Uƒ@»@UVJ@XV@@mVL@K@U@Kk@VwUUm@kmWL@VkVkzƒKmb¯VÝI@WUkÇJUIUWk@@klK@_km@UVWUUW@kbmKUXƒaƒV—amLmK@namaXK°VakU@mU@@aƒa@UW@kkU@U`m@U_mVkaUVWUkVƒL@lmX@ށLm@UxVlƒUUl@zaWJXbWLUlmIUƒkLmWƒ@@z@VUVUšUmÝ_kVWŽ@nUVUlmIklmIkJUkƒl@n@Lm@؃IUbm@UJUUVU@mmI@UU@k¥mUk@WmVmI@VU@klmLƒ™k@mbkKmb@WkƒKUŽVnUnnxšW@UVLUbmJ@bk@WbU@V„kx@V@bVbkV@V‚@‚—XWbUWm@kb„¼VLn„lJlb'], - 'encodeOffsets': [[ - 115920, - 33863 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4116', - 'properties': { - 'name': '周口市', - 'cp': [ - 114.873, - 33.6951 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lšnb@xlJ@UnLlKXUlJl_„KnV@xVL@bkbVVUè@šWb@„Ubmš„ŽkšVšmbX„VJnUl@„a°@@b„LVbƒlXx˜InmnLVw‚anJÆw²IlmnXVl°VVbÈaVb„@lkn@VWnLlUVmÞUUklƒkƒVkUaVaVaUw™K@kkaVWmw„_„‚l@nU„VVb@b„aV@VV@zXJl@@kl@šlœk°WVnÆbnbUšVJ„Iš@VKVm@k™K@_kK@a@aU@@wW@@k@aUW@IUWVUnLlUlVXKVwmk@W@—VWa„¥@k@lnƒUIÇKUaU@ƒUUVmIUV™Uk¥ƒVma@¯k@Wanwmƒ„@@n@@m@UIVƒkUVamUXWƒaV™U_™@ƒmUVUImW@aUIĉK@VmI™b@lU@@n™JƒkU™@KƒIUmmLk@UVm@UŽm@@LkbU„mJXlbV‚@xUbƒ@@bkK@LWx@ƒbUn@xmbÅW@nWLUKUbUVƒK™U@LUK¯„mU@šVV@xULUŽVL@bU`WšUz¯aUamKUaƒ@@xkX@x'], - 'encodeOffsets': [[ - 116832, - 34527 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4114', - 'properties': { - 'name': '商丘市', - 'cp': [ - 115.741, - 34.2828 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XVl@lLȃ„@VkV@V»UanƒWX@VaÆÇô@ÈaVX@xVJXUÞU‚aVLĸbXKl„V@šm°Vn_ny˜XX»mUk¥lK@a„_@yšInaVKVa°_@WXI@ƒ@K‚VnIlbnaV@„l„@‚a@_w@ƒlwUKm™Xa@UV@š»Vƒšw@kUKVUUm@w±VUXUKUwmJUUƒ@km@@±mXkmUI™@mm™KUwkbWakLWaUIkJmŽƒX@l@@VUX@JWbX@VbULWbƒlUVULknlV@bVJk„mb¯KknWmk@@nmVkx™@ƒVmU¯KUnUL™@ƒJUIV™maÅaUm¯X›l™kk@@lk@WI@yUUU@ƒb@aUaƒUmVk@ƒƒ`nxUXlb@lšLVxUbUbVbUll„k„VlÝVUnkVmKUXm@klƒ@ƒnUx@xnxƒn@`VX@V²x@V@b@„Wl@zU`VUVVb„L@Vƒb™W@bkXllkLWV@V„@VVÈwlVœ@@X˜K²Llb„WnnÆL@VnJWn'], - 'encodeOffsets': [[ - 118024, - 35680 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4112', - 'properties': { - 'name': '三门峡市', - 'cp': [ - 110.8301, - 34.3158 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@WKUmUI°ƒU@@UmU@KnK@IƒaU@makKUa@_‚KnmVU„L@a‚ƒ@IXm@KWkkKVkUU@aUW@UUIVaƒymwkbU@ƒx™LVUWWkk@WUkJk_WWk@WI„ƒUK݄k@WKULka™@mwĉ¥mXUK™@@bƒm@k—VWwkU@m™UUƒlI„™Wm@™@Uk@@KškVmn@lwn@@Ul@Xm˜UXUmVсkmkV™KUaVamaUXnƒ‚@ykLUKƒ@™WwKmKnUm@UmƒƒaU@mUk@kL@lƒxċxUnkVmnXxWb@`kzWJ@V—LmVUn™lmUL@lW@Ub@VšXUbš`VLUbUJ@nmnUlUUm@@bUJlnU„š‚U@lxkbƒ@@XƒJUnƒ@kb¯VVVmlXXlJlzn@VlkVW@bkK™bmškŽUbVb„lƒXVxšKÈnšwÞlĊKlšVnKlwX@lL@xlUnVn„@šl@lmX@ƄÈb°¼ÈwVJlx„_°xšašlšUÈxlUnbVxnL@lllšbm„n@nb‚@@V„L@V„@@„VLšJnIVVlKnV„_'], - 'encodeOffsets': [[ - 114661, - 35911 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4107', - 'properties': { - 'name': '新乡市', - 'cp': [ - 114.2029, - 35.3595 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XVlL„K°bUblbUbšl@nX@W„XVVKVkš@@Žmb@„Ubn„W`kL„LƒV@VVLnKlVXIlVš@@a„@l£nWlƒkVa„@°bnUlLVlna‚bnUVUXKlU@ƒ@lk@a„I°y„@ôkUU@wšmôšnkWakml™UkVmkUlmUUm@nkUKWanamU„LXW@U‚VnUln„`l„œblL°KXV@ĠJ@L°„šJšUVw„anK@UUImmƒkK@¯±Um@IVmUmmÅnWaUK¯aUk„w@W±kVƒx™U™VƒwƒnÅJUIWaÝJóI—bm`ÝbÅImJUI¯¥¯@mU¯UƒJmnUVóUkl±V@zXl„bWVXL@bm„mº@@XmJUXU°llk„@nWJk@U„@¦U`m¯ŽWx'], - 'encodeOffsets': [[ - 116100, - 36349 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4104', - 'properties': { - 'name': '平顶山市', - 'cp': [ - 112.9724, - 33.739 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l¤UbVL@V„LVb²VlKlaX@„„lbš@lxUVULƒbšln²VJUbW@@L„b@`nL@nVV@LVŽUbUVm„kVl„ƒlXbl@Xn°ŽVK@_°`²IVVV@VUVJnInaWK@Uš@„K„LÆ@nmlXXWVUUw@klKVa@knyVkVanI‚JXUl@XbVUl@@aša@mXk‚bnK@UlK@UUUVaXaWmkUm¥n—WmXaWaœkl@VmÞb„KVL@aVI@mUwVm„@KōméUL™KVaUk@kUK@U˜WXI@VlKXU‚@VVnInVV@VLlK@UUƒkKU_@ƒWWUwU™@klƒn@ƒƒ@Imb—@@m›nUKÛ@mKUkWVXxmbVLXŽVVU²VV@xÅnmWmLU@kbmJ@b¯š™IUb™JƒUUxVl@z@bU`W@Ub¯nUJUbƒ@WLUKULkU@aWKƒ@aƒbmL@ƒlmUk@@bUL™ƒWJUI™°@ƒŽ¯aWLk@mbUb¯b'], - 'encodeOffsets': [[ - 114942, - 34527 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4101', - 'properties': { - 'name': '郑州市', - 'cp': [ - 113.4668, - 34.6234 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@nWVUKÅ@W„nVnI‚ŽV@œkƂšwV@šnn@lxÞlnôJ˜zXJl@nalUČVlƒl@²UlkôVVUnm„I°VnV°@°¦VJnIÆJÞan_VmU@ama™@kU˜¥kaUklw@UIV¥kVUI@ƒmmUÅmUlƒwVU@amU—JWbUakVƒ—Vé¯Im`ƒk—@ƒwVWmLkU¯ŽƒXkWmLmx@UUƒbm@@x™J@LbW@UUVWUkVKƒ@ka™IUamKUkkmmLƒUkJUVWXkWmnÅ@ƒKƒL™@@VXLmbmJUIUVU@ULWVkK@nWVXL@lVn@¤„b‚kôKXKlL@¦²V@JƒL±@„@VU@WV@X@`XXmb@Žšblaœn@Jƒb@V'], - 'encodeOffsets': [[ - 115617, - 35584 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4105', - 'properties': { - 'name': '安阳市', - 'cp': [ - 114.5325, - 36.0022 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°kVaV¥kVmUkWkWVkVKUwkkmKUU@a„wWWXWakKWkXmlašIVmX¥ƒU@a„@WnK@kƒƒ™V™I¯ƒ@KğI@WU¯LkK›akƒƒ_kmmVU@VWXƒKnVmbXbVLmln@VVknlVUnVlkšlnXbmlmlXblnÈlWbn@@nšK@V„L„bVV°VVzšlnš@V™xƒI™b™ŽU@WLUa¯V™UkWõ@¯kkmxk¼l‚„XUlVbVLnlULmU@lƒLkVUlƒX@xW@¯mUƒ@UmIUW™L@aXa˜kU™¯anƒWk°@k™kKmmUIWaambUkkKmV¯aƒ@UblŽk„mXk¤ƒ@@b™@UbULWVnb@lUVVnmšnVVU„J@bWXX@WJkL@blVU°UV@XlWnXUbW@UVkVšVWbnLUJWLUK@Lnn@blVU‚„nUblxVUVJXU„a˜@Ub„LnUVV@mVIVVn@UbV@‚XbmbUV„_lVXUWanJVI@WkI@WVIVU°WXXl@la@mX@lLXl‚kVbœm‚X„ylIXJV@@kšKla²UVa„IVyÞb°LlVna@UÆKnLVbšK@anwU™'], - 'encodeOffsets': [[ - 117676, - 36917 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4102', - 'properties': { - 'name': '开封市', - 'cp': [ - 114.5764, - 34.6124 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lUVbXa˜InV@bUV„x‚knVVÆnn@„VJlUU¦VJ@kxVllb—¦lVš@nb@bVŽUn˜aôJÞIXbVJÆI„m„xšUšV„w‚U²l@XƒxVl°bVLXb‚`XklUnmVblLœ@lmšx°LVK@UXIVašWlL@Ukƒ°KkVaVUXmmI@UÅKmmƒXka±K—L@W›@kUÇxUUƒ@@UXUlKkklW@ašX„a@UƒKUaVUUV_@yXk@ƒ@a@U±w@UUW@_„mmw@wVw„mUaÇbUa¯UUkmWkn±JÅxmIbUxmKmn—JWw„kUaƒK@a¯@ƒbk@mVUIWƒ—Lmwm@Ua@WJUb@LUl™@UUmLUbWJ@VL@VmXWWzUJUꄘ'], - 'encodeOffsets': [[ - 116641, - 35280 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4108', - 'properties': { - 'name': '焦作市', - 'cp': [ - 112.8406, - 35.1508 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@V@VL@x@bXŽWV@XkššlUŽWX@J„@nI@KlL„KšUVaV@œJlL@KUk@KÞL‚l²_‚@nWlL„UVVš@nLWVUJVn@anV@a„wÞUVLVx„b„@lW„@lbXn‚Vn@@¼šL°mšKVn@bnl@nVK@blb„L„W„U@VWLXV@nlKn@lVVbXw°nV_@¥Vƒl@XI@mlƒkkV¯VWnI@W‚@n¹nƒ@aWKXUƒaWk@yk@k„ċUkVmbk@WI—yóImÝkkwm@™mU@™xŁ›lU@mJƒX™ak@ƒx¯V@¼¯Vm„UmmIkVWK@UXIl@UWVUU@mVUI¯b¯@™lmKzWKUa™nƒJ@nƒlbÝ@@b'], - 'encodeOffsets': [[ - 114728, - 35888 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4110', - 'properties': { - 'name': '许昌市', - 'cp': [ - 113.6975, - 34.0466 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lI„VnKlnVlnLVbšJlb„@ULVlUXVVX@‚a@KšI@wn@„aVV‚@nwnKlX„W°lVnKUX„x˜@„ln_°JVIXy‚XnW@U‚K@UXIVanKVVš@Vk@KVaXI‚@Vbn@nx˜KnaU™l™ƒn™Va@ƒXa@™VçUUla@aUK@wmUƒLk`kIWVkLmK@V@XUlƒn@JXV@nm„™bU‚óIƒmUa±@@ÑóVUUk@UlKVU@akWVUUlUUaUK@UUKWbUkÅJ@XWaƒ@XbmJ@nUJ@bUKƒLÝaUnk@›lXbWbXnm˜n¦lVXnWbUbVV@VkL@VmLaWl@n™b@bk@UVWak@WVImJUbUlmz@lUbkL@lVx'], - 'encodeOffsets': [[ - 115797, - 35089 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4109', - 'properties': { - 'name': '濮阳市', - 'cp': [ - 115.1917, - 35.799 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lLXbW‚XXƒx@bVVnLllVxULUl‚XXlVlUnlŽU¦Ub¯l˜nœK@V‚bVb@šXbVL„KVxVVnIlašb„a„¥lU@wnalLnVVlVLXnlWVXn@@lVI@WnU@mƒÅW¥—aW_k@WwXy@kmƒ@wU„mš„š¦šlUxVLV@UwšJ°xš@VX„@Vb„@š`VX@VX@llšIVbnJlI„bšV„l„˜J@ƒmѯLóa@ƒƒKUa„k™ƒ™Xƒ@UK@wU@ƒlWUUݯImW¯aƒLUKU@ƒkƒ»k@mƒwƒa@UnKWI@ƒUU@akVWK—k@a±ƒbóUWKXUmk™KUmLƒbUx„„@lmLXŽƒ@@b„VW¦Un™JkbWnXl'], - 'encodeOffsets': [[ - 117642, - 36501 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4111', - 'properties': { - 'name': '漯河市', - 'cp': [ - 113.8733, - 33.6951 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@Lƒ‚UnVxnIWa„@Xb@WÆIVlXaVL@VVLVbkVVŽUVlX@bUVkLV‚l@VVôU@Ò²@Vb„nôJVšanƒ@mWU@I„mVk@WkI@wmak™@wlW@w„@VbnLVb°bVyX™V_@aUKVVK@wUU@™™a™K@kmbXVmJUXƒ`kn™nƒK@aU@mw™akb±@¯ƒUUÝKUUU@WU@VkLUKU@mUmJUU@WVkL@UWJ—X@VVL@lVlUbšLVKnêÆŽ'], - 'encodeOffsets': [[ - 116348, - 34431 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4106', - 'properties': { - 'name': '鹤壁市', - 'cp': [ - 114.3787, - 35.744 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ó™™n@xVVólƒ@¯zƒJ@bkl@@„kVWLUVmVXbVJnnlLlš¯@Xlm„°bVš—lWb@bšKVXnJ@VV„°nX@@w„WVklU„K@knVVKmkUKUaVkƒWkl»nwlްlö@lXšV°UVbXKV@šša„Jšw@Um™™kUy¯UUUƒaƒK@U™L@mm@XaÇkkmWank'], - 'encodeOffsets': [[ - 117158, - 36338 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/hu_bei_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '4228', - 'properties': { - 'name': '恩施土家族苗族自治州', - 'cp': [ - 109.5007, - 30.2563 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VK‚bX@lbUVnL°„@VlVnUl@VUX@„aVƒmaXƒlašUUU@wmaVUn@Vƒnmmk@m™U@kna™aU¥Vam™X_@WƒU™mW@_kƒVaVKnL‚lœ@VVal@k¥@kUW@kUKVUlUVсW@kÇaU»ValmkUVUVak™@aƒV¯_@W‚UkmVUlU@aœƒƒalI@akkVWUaWXUWwœWVbÆ@„„l„alIVK@U™m@UU„W@al²a‚¯UağÇm@ƒbkk@wƒ@@W™aULmxƒIU‚™ƒb¯@U`UX™JmL¯aƒKX›WUL@aknmK™@aWUXaWm@I@UÅmVU@™™aUV@b™VƒI@WkU›bXkm@VakwUKULWKXmJ@XUK@ƒmL@KUwVaUI@KU@mmn™mXka@»V@@UUaƒw¯yVk@ƒUUVmmkÛÈU@mWUnmx„šmlUbV¦UlbWVUL@UUƒ™IUmÇKV„VbUVVxkn™LUxV`VX@š„„kJVVUXWaUVVlUnmKUbkI@WULmK@L@LVlƒLnmUIWV@aknƒ`VXUJIVlUVVbUX@¤mbnLm‚m@UXk@mm@Ukaƒ¥@kV@@KkU@aUKWbkLWVkIVŽk@UbVlmX@bU@@mmL@bn`@Ln@llVLVk„@XVVU@`VXUš‚¼k`VULka@VllVIn¤VU@@bl܃bkx@bkL›škKƒn@bn@@b@JUnV`UnVbVKlVXUlbn@°ƒVx„@@b„nVbUllVn@V—VK@UnW@UVUšlnk‚VÈޚxVb„VVI„xVaÆ@@aka@UVaU@@a„k@Wl@nbVIƎ@Jk@„L@VlXnlla@VJnw@UmwXU@aVK°ÒnllnLlb„xnKVaV@l¦²nVl@llL„x@XVVœ‚͐š@našx@U@al™XUVa‚LÈþV°XxWXkK@šmLnlUb@b‚xnLVlVVkb@UJ@xWXXš'], - 'encodeOffsets': [[ - 112816, - 32052 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4203', - 'properties': { - 'name': '十堰市', - 'cp': [ - 110.5115, - 32.3877 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@@a@w@kV@nbVK@ƒnUla„@la„Ål@nlVakwWX@WkLšaVmšwV@anK@UlIXmWkk@@mmLkWlwk@U_mKXwWK@U¯K@UU@ƒVUa™kmƒkI™yUUVUmanU@mlwkƒ@_mWXaƒUWU@ǃ@U@aUaVwUKUIƒVkK@UWIXƒmaV@k@Vm@UnwlƒUamk@V@„ULUamxUJkU@Iƒ`WkkK¯XWak@@W@IUV™LWJkXkaÇVUKƒ@kUmbmUUƒUKƒbkKWUkI@ƒkKÝ@@aƒUm»nI@mƒU@UnWV_@aUmWbkLUl¯b@a›kkk@WkkJm_k@UV±@J@b›nU@@WÝIUJVbXL@nlJkx@„Wn@VkJmb—LmUƒ`VbUL@xVn„@XVƒŽ@„mVVnnJVbU„ƒx@„V„nVUbVVƒx@šn„™bUK@bƒ„@bƒJ„šm²„VU‚lbXzVJV„„JVbn@@Xmb@V@bVJÈ@‚Vnkn@°aVVV@šX„KnalLVmšUnnVKVlnLWlXX„Klk°š™šXŽWškLUVVV@nU@ml¯nmbk@W`Å@mb—LWm¯UƒxnêVèk@mbƒVƒnUK™@kKmXk@@JUI›lÛLllnbVnlJ@LULnlÆaVLnŽV@nkVJ„@lkô@²bÆm°w„L„WV@VXšKšVXI@W°ÆVšK„b°U„JVIVV„¦XKVL@l‚InaVÝnUl@@bX@‚™nmVL@lVL„lVLVUnbVW@xXn˜bœU°¤V@š™„a@kWKUUn@VlnL@UV@Ü»@mX@V_ƒakaÞ@VK‚¯@kkW'], - ['@@mUkUUm@nllVKXXVK'] - ], - 'encodeOffsets': [ - [[ - 113918, - 33739 - ]], - [[ - 113817, - 32811 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '4205', - 'properties': { - 'name': '宜昌市', - 'cp': [ - 111.1707, - 30.7617 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°`„U@blšUbUVlVkn‚ŽUbV¼Èb@l‚XUÒkVUVVL@lVX@ll¦k@UbU‚›@kmKULUbl„@`nXšŽ„V@XW`nšUbV¦šbmb@lšV@nnlmnU„m@UVnb@xVV™VkbW„nb‚VnVa@an@UaVU‚JXnWlXX@l„¦@ŽlKÆX„bX‚V@VV„@°¯°xXx‚XV@nV°UVWU_VWXkmaVnWVkn@lln@lb@UVLXWlnX@˜aXUmaVK@UXU„U@WVI‚W„XXV‚U@¥VKœ@‚Uގ„„‚a²LlV@kV@UanKma@UVUnK@UVLXyVL‚knJ@UV@@UXKWUXaV@Vb@mVLnKW„m@aUUm@@UkK@Ula„LXKWaXI@alKlmUk@wVKXL@m@WWn@UVa@K@wna@aW_XWWkXbVW@k@U¯WWwka@UUaVIVƒkU@m±@U@@wVKkaš_@VV@XUVwU¥‚šyUkm@V±ÈUKk»ÇL„m˜mLk@ó£kmWwƒm@U„IkWKXwWU@ƒkLƒwkbmaƒbkK@VƒLkmWIUKkUUƒÇIǫJ™XÅJULVŽÇLUVƒ@UK™@kI@WVI@UaƒWmXVVUL`±kÅLmKkƒƒkƒÅ@Ua›XXxWVXŽVbUXll@bkJ„b›„@bkVUVlnV@X'], - 'encodeOffsets': [[ - 112906, - 30961 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4206', - 'properties': { - 'name': '襄樊市', - 'cp': [ - 111.9397, - 31.9263 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@@Xl@Xb°WlLXl„_@JlVVInwVbVK@ƒ@UnlVbk„mx@VUnl@U@nbW„XJ@VlL„UVJVLUxVb@b@VȄ‚@XV„VWbnX@`l„kx@nmVnbUVVVšzlJn„šlVb„UV@@V°L@VXLWxnLV`l@kxlXnK@nl@XlWn„`Xnl@@UVa@VÈKš£VLVanW°U@UVU„@„`VIn‚mV@„nV@Xa@aVW@UšalkXKšblI„yƍXnlJXbl@@VV@nklU@`„nVK„LVKVb@V„U@UÈK„UVKšIlUX@V`lIVbn@nblVVmV@@XXJšUVV@knKVn@`@X‚VnK„wlLVmUUU@ƒU@aXL@WlU@UUW@UmU@KkLWaXkWmXUWm@U@ƒnk@UmK@U@UaUVUUKV_@al@namWUI@KUƒK@aV@WUIƒbƒ¥ULUJkIm™ƒK@U@K™V@U@a@UkU@K@wVaUwlU@mUƒULmKUkV@@anIWmUK@I¯„mKkl@LUb±lUakLmk@WwUKÝVUIm`¯n@Uk@makJU_@ƒƒJma¯ImwUVkKƒb™aUÅ@wWaU@VU@mXIVmmUkJkwm@mIlUKWzUK@VmLUV@VnbmLVbU@@lkU±KbƒƒÝV›@UL@¦VWUƒWXUJ@XƒVWV@VULnbWV—bW@kmWXUK@Vkam@kkm@UlmXUŽnbWlUXV`UX¯VmUU@Ul@Lll@nnJ@LƒnWmbmš@b™`ƒš', - '@@kUUm@nllVKXXVKmU' - ], - 'encodeOffsets': [ - [ - 113423, - 32597 - ], - [ - 113794, - 32800 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '4211', - 'properties': { - 'name': '黄冈市', - 'cp': [ - 115.2686, - 30.6628 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VVUnWVXnVJ@„‚U@V@VXŽV@@IVJUnŽ@V@L@KlIVlVanLVbnVlI„ƒn@@a@Kl@@I„JlI@aXU@KlK„kVblJXU„VlU@V„bVkVKXn@VlxVa²I@VlVUxln@bšJXklaVWnLmÅ@y@k@ašI@W@aXIlVVaV@nnlKnLVW@IUa@a@K„UVVlI@wXKVV@IUƒla„@lUXwWƒnƒnalLlxXLll°@XwVKVaXIl™nb˜@nln@Va@U@k°ƒUmÆUVaXI„JV¯ÇUmmkU@WaKmakVm@U@aVKkkmKkVmIkǰ£@aUUVaVVnKlkX‚mkƒ@ƒlUVaX@@Um@‚™UmlUXV„UVU@w‚K²¥Ua@I@UV™l@U™V±UIUǰ»VkUmVI@a@U™m™ĉ™¯V±bŹĖğaÇL¯lmŽkX@‚óĀ@ŽmšÝêb±WkLƒn@xXx@Ž@b@V@LW@UbƒlţXƒ`kxWnXô¯¦ÆV@L@JVLƒxkK@V@bkz°l‚lXz@J„UlVla@XUV„bVKXnW`XXV@laVV@V„X@V¯xƒx@xULVbUJ@n@LU@VmmakbUK@b™IWWUUVkUmkLm@VJkb@nUJƒ@`V@kX™aUaVmmLkUmJ@Uk@U„±lkzmJUb@b„VUxVXU¤ƒL@JƒX@VlL@JkLUVU@mnUl„¦@V'], - 'encodeOffsets': [[ - 117181, - 32063 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4210', - 'properties': { - 'name': '荆州市', - 'cp': [ - 113.291, - 30.0092 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÈJV„lVVLXJln„K@UlL„anbla„xlK@„XVWxXLlƒJ@V„nXxlnô¤l@nKn—‚ƒÈKl¼VL²Ç‚Un@Vl™zŽV¦UxWVU@@U™`lbUL@xV@²@@nlVU„UJVb@VlbXx°XVWX_VKUwVKVa@UVKUUVk@KnblaUU@wnWl@UX@lÆ@@a„IVmUk„™šxVJ„U„bܙ@Uk@WWnk@Vƒ„™Vm@I@m@Un@m™XUlVlUnJ@knJVU°@@aÆLX@ƒllL@¦nJV@XblLVa²U@UlWš@VX@`@LV@@bXJlIXml_lJœU°b„KÆLnVVl‚@ö—Vƒ‚mXaVIĢllUlVnLVlX@@b‚ašnnxšV„L‚bn@°ÆXmmkĉƒ¯w±™™™Uċ@KÝÅƧŃÝ癙Uw¯ƒm™¯k@W‚kV@¯UIUJW¼kb™Uƒwk@W`@¦Uônb@VƚlÈ@VU@ƒƒ£UWWnUÆUnmJkUÇ£VWUI@aUU@WkI@Uƒa@JW@k£kaWVUKmnkKƒb™kkVWb—VmUUmwU@kk›@UakUUa@V@nlx@lUb±lUbnnWLUyk@UamœUK™@mlk@Wb@VXL@x@xWI@a¯Ž¯V@bVn@LkKmL@`XmKmVU@@bkL@V±bk@Uaƒa™L™KUVƒIƒ„™W™XamVVbUK@b@Lm@UWkxULWVUnm@UlUX'], - 'encodeOffsets': [[ - 113918, - 30764 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4208', - 'properties': { - 'name': '荆门市', - 'cp': [ - 112.6758, - 30.9979 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n@lxlInVUnWJ@nUVV@Xb@xVƚb„alLVUnx°Jnb„I@„V`lInbl@@V°mn_VJÞUVLXx‚@nllKVb²kVa@KlknL°ƒ@JVLXnmJ@bU@VlnLVKV„@nX@lUšKVaXal@VKn@¥°L@Unw˜bnašV@KV@VUX@lVXI@KW@@IXWV@laVL„„KlaXUVVnkVWV@lwXblIXWVkVmšaU£VaUmVIkU@y@WakKUamU@UUK@kmK@w@@mK@LƒV¯™U@WwkmULƒamVVUU@ƒƒIƒbUKUa™kmƒm@UakLmxU@UÒWlULţÿmwkIUm@a‚kÈblW@UVƒUUk@JW@XkWWUkUKUIlw@aUWknWUUmnIWƒ™aUwVaۚƒaƒVUI™wƒšVlUnƒJ@bÅ@@kVWk@mX@xVVkbma@LUlVVUL@VUbULVxULW`UX@V@lUXWaXlWXX`@bmb@x@LUb@VmŽXX@‚@nWKUL@xVlknkL@bWJXbWLƒKkb@VlL@Vn@VV@bƒnX‚mLUK@nUaU@WbXVWL@VU@@V'], - 'encodeOffsets': [[ - 114548, - 31984 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4212', - 'properties': { - 'name': '咸宁市', - 'cp': [ - 114.2578, - 29.6631 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÞÆ‚LČ@šV‚š²š°xĊ„nlWnŎ¯m@aƒK@„„°‚n„Jšwn™VIUaÆJšÅ@wšwV™XW@aV_l@²V°lĊwlaXLšwlUkalVVaX@lVXI@a˜UXJ@U°UU¥VIVKVklanLVa@VÈIVV@nk@aVa@mV_@a„K@klKUa@UnKWk@@lU@@UW@@nUWUwmaVIXƒ„lV@mLXblJ@kV@kk@KU@WƒkUWVÅwkLmW@UmL@lUL™KULƒak@maUUÝwUJƒIb›KUUƒ@š™aWK@kUWVkUwVw@™mÝ@™I@wkW@a›ww@LU¥™kƒJ@nVJƒIkVVnkV›UkyUIUl@xWUkaW@@°kz„ŽWxkLUWmzk@@bVVVš„b@‚@XlVœ@Vl@bVbUn™`Wn—@Wb„VVI@`„LVbXLV`mnU@@lƒL@LUŽƒak@ƒLk@WbUJn¦@lVb@xVb@n'], - 'encodeOffsets': [[ - 116303, - 30567 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4213', - 'properties': { - 'name': '随州市', - 'cp': [ - 113.4338, - 31.8768 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„@nš`lw„k„ƒ„UmUVWX@lk„@VanUĠ¼V@@mX@@nVV‚VXLmJVLnK@b„V@@J„@VUn@VaVUUUVWVLV@@Kk_@almaVkUU@WVƒVUVLXmmk@wUaUKUV@°™@kmaUaÈmW„mUƒVklaX@lVnxl@@UnaUk@ƒVUVwVK„nš@VVn@VbVJUknUmmVmk_Vw„KUUm™Vak¥@UVKVIkW@UmIVWkIVƒkmmLkwmVUƒ@LƒUU@VVXL@JmLUbmK@UUKmkKUUmVUaUnÇlk¯™mJUnmLUaUJUaWL@UkJ™ƒUƒ@ƒaklkU@¯@KWLUmUUWVkbƒLƒŽUKkbU@WX@JX@@LWJkUW@UVU@@L™Umb—amx@V¯K@¦mŽULk@WbUb™LkVW@kVVxUb@x@LlV@V@b@VšU@L@V„LnšlJVIVK„¦„aVJ@XUŽ@b„LV‚@LVJnXmbk@@bU`VLUVV‚b@V@VnL@Vml@„@VXnWVXnWlXblK@LnV@VVX@VkV@XWK@b„VV@VV'], - 'encodeOffsets': [[ - 115830, - 33154 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4209', - 'properties': { - 'name': '孝感市', - 'cp': [ - 113.9502, - 31.1188 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VnXK@L@°lVlk„b„@„VšlI@VXKVbVIVbnKVmnI°šlŽÈkVmVbnUVVlLnVL@VnLVanK@IWKUUV@„V@KV„nUlxnKlnU„lJUXnJ@VlXUJUL@Vl¦UbnšVVƒLUxl`UnnnmVVlnVK„bšmVX@a°Ý°LšaXJV@VUnKVXVK@LnKlLUbVVX@VwVJVn„@@UU¥V@@UUK@ƒmaUVUkkJ@L@K@UmVUI@JU@W@U@UV@ƒUIWmXUVmUUÇ@UVmIlmnmakK@akaW@UwVUkKVnUlKVwk™ƒVU_WKUkVW@UXaWkUa@w@VU@XaW±@IkbƒKƒb¯L@WƒXkWƒ@UakL@UV@UmVUmL@UXWVL@ašUƒVUUUVU@yUUƒIUa@wUKWVU@kƒ™™Wk¯UkwVKƒLUx™K@nVxUlUUWVUmw@wƒUUyXWlX¦WbUV@„U‚@blbUVVbXXƒl@lVL@bk@lxkVVnVx™¦ƒ`UnkL@V@L@Ž‚@@xnL@lVL@VnVVblLXb@‚@zlVUJVnUbV¤™bUnUlWXkJWakxU@UXml'], - 'encodeOffsets': [[ - 116033, - 32091 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4201', - 'properties': { - 'name': '武汉市', - 'cp': [ - 114.3896, - 30.6628 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nbnm‚knJVUÈ@@Uƒ¥VknmV@VUlK@IkK@U„W@I„KV£UWVwƒU@aVanIly²kVƒl@@VnIlVnKUnVbšblWU@@_„‚VI@mlaUIn@lKVnUlVVXXšJ@aVLlanbUnV@@K@mVIUaVK@w„w°w@UƒW@UUUkbU@WWX_WmULƒaVU@WkbkUƒV@IWyk¯kly@a@UlL„wUK@I@KÅUW@ѱUm@wl¥kaƒ@@_Vw@ķƒa@akw@ƒkKW£XVUVwVwUaU@VUU™™xWKkbĉx¯k±Uk@U`@bWXUš™x@x™ÆÅIVbUJmš™xƒImƒ¯@ƒ™Umx™nUVVbnJV„@Lƒ@@ŽkV@bVnƒ@UVULlx°VXlššl„V@XUVL@xVb„JVV@zUVVVUV„™V@bUKWX@VnKUVVnU@@VlKVb„@lX„W@X°K„a„Lla@JX²Wb@ŽUV@@xVbXlWb@VUXVlXLV`Uš„lŽUxkLmVUŽlLUVVxX@lb@blL'], - 'encodeOffsets': [[ - 117000, - 32097 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4202', - 'properties': { - 'name': '黄石市', - 'cp': [ - 115.0159, - 29.9213 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VšUVV@VbUx„aWUœblUVmnKlX@bXJVIlVUxVVVIU‚zlx¯š@‚VbnL@x‚x@UVaXK„b˜@Xk‚WU_Vm²klW„XVK„Žl@nXV@@w„mlK²X‚aÞén™@ôÿ@lWn°kUKmmUљUmm@ƒwkImWU@UakL@bVLUVċ@™bUK@alIXKWK@™nXnKmkUVwƒ@¯b@L„lUL±W™n@KULUaW@kL@lƒL@bU`@nUb@bmlU@UÇJ@UUbmKkblŽUULUJV¦¯V@VWI—V@bWJkUW@UbkUlbkV'], - 'encodeOffsets': [[ - 117282, - 30685 - ]] - } - }, - { - 'type': 'Feature', - 'id': '429021', - 'properties': { - 'name': '神农架林区', - 'cp': [ - 110.4565, - 31.5802 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n`lIXll@lœl@b°aVklKXaVn@bU`mX@V„V@nmJn¼„V@bÞ@lL@„lJXVlL„aVLV„nVnalV„@VLÈUlblWXIšKVU@J„™š_‚@an™na‚X„m@KmI@mkk@KVkWWw¯w¯°ƒ@UUU@WƒaÅWkL@ƒ¥@kWWXkWmIUVVbm@@bUbmUU„ƒbW@UVk@mVkU@U¯ƒmKVUkaW@aULƒÆVbƒb@VÅ@Un@VƒLWl¯Lš„'], - 'encodeOffsets': [[ - 112624, - 32266 - ]] - } - }, - { - 'type': 'Feature', - 'id': '429006', - 'properties': { - 'name': '天门市', - 'cp': [ - 113.0273, - 30.6409 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@K@UlKVm„_š¥UwUmlUkwl@@aUK@k„kWWUaVUka@aV@ƒVUXaW¥Xk@WWIklm@ÅxmI™VÝUkxkaƒ„@bWJaUL@„W@™l¯UULU‚ƒbƒkV™Ua¯bm¤UnÇUkmUšUx˜b@VkXÇal@bVnlJnxŤĀVKXkVÑV@nwlKVbn@n„šlVbVL„a„J@„VV‚UnU„bVKlnXxV@°š„U@KnL'], - 'encodeOffsets': [[ - 116056, - 31636 - ]] - } - }, - { - 'type': 'Feature', - 'id': '429004', - 'properties': { - 'name': '仙桃市', - 'cp': [ - 113.3789, - 30.3003 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VK°VškX@@ƒVK‚bXI@a„ƒlblwÞVšUnJÆwn@lkXJ@X‚WVz„V@xnx‚VXUVVVkUw@mšLVw„KVU„@Um@alU@„@@KUƒmIUaVUšmnwmw™mb@aW@UkmKkUkVġkUJWbnU„õ˜@UkmUÅKƒL¯a›VkIk`WnkJƒ@xVLUVVbUbk@WlXbm„VxnxUblbUV™@@VUV@nVL'], - 'encodeOffsets': [[ - 115662, - 31259 - ]] - } - }, - { - 'type': 'Feature', - 'id': '429005', - 'properties': { - 'name': '潜江市', - 'cp': [ - 112.7637, - 30.3607 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@UbVxšbX„mJVnXVlmVX@bkxVJVLVlXXWlX@@IVl„V‚U—aVwV™lnÈVVmn£°aVbUš„l„aVUK@mVU@Uš@VUkaVamwUwnƒWaXkl@VaUaVUUK@w„WI@aU@@K@_UW™@kX@V±VUbkKWaU@mI@¥kK„kW@ÅK@b¯@UVmI@lmIkVkUWVnšm@@V@n@JUnƒšU„@ŽmlXXl@@V'], - 'encodeOffsets': [[ - 115234, - 31118 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4207', - 'properties': { - 'name': '鄂州市', - 'cp': [ - 114.7302, - 30.4102 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°¥WóXmlw„_ŤW„kVaX@@K@U@a@WwU@mWk@ƒULƒWkX±lUnV`XWl—@ƒaWLUb@Vw@wmKUa@°™kw‚yVUJUUVwkUUJWI@akWmLUnkV›aXVƒbUxUVWX¤lL@„lx@b„b@ĸUx@`„@lbk¦@x‚n²VƄX@'], - 'encodeOffsets': [[ - 117541, - 31349 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/hu_nan_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '4312', - 'properties': { - 'name': '怀化市', - 'cp': [ - 109.9512, - 27.4438 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@@n„‚@b@XnJ@k°x@aVUnl‚UXnV@@VnJWUJV„nIVV°ŽUbVVVL@޲LUVa°V@aV@nm‚UXblLXWVXVmVLVK@an_„`@X@l°„VlXXW`nX@Jmn@b„@nV@Lm`„bUb‚n@VUVl@nIVbUlƒV@LkJUnVV@xVblVUbU@ƒzUKU@mx@xUnn@@WV@lbUb@šnVWXX‚V@VIV@VUnJ@VUz@JWbXllI@VXVVL@ŽVn@„„Wlb@„Žl„XVlL„aV@VJ@XX`„kVwVl@bk„‚bUŽlVXIlƒnLVa„mVwV@@nV@XaVJVbX@lwV@n„@nV@VWnIVVUŽÆ@Xx‚a@I„UUKmk@mVƒ„IXmWUš™VJnUVU@anaVwk™›U@UXa@W™@m_@a¯@@K@UVƒ„bnK@blIlbXa@WW_n@VƒU@¯bmyƒUkUJÇÅ@WU@kWKÅwƒnm°KVkmankVWnXVWV@UƒƒwXkV@mƒ„UlLnaƒVaX@VUn@VnVK@xlnXWšU@a™@@klak™Vw™mUaV@™wmIÛ`m—@mVUXmlIXƒV‚I@K@aU@UaV_UK@wkUmmUKWXŽmVkUƒL@mƒƒU_nK‚™@aVU@Ukak»@U™™@ymUƒ„¯™ƒUUƒVKkam@™nka@ƒmwkLWb¯mkaƒ_VaVKUƒ™IUw@kKmU@WK@UnƒmaULkU@wUalWV¹U@@WUI@WU@‚_@W@U@mƒU@WbbUK@Um@@UmbUwWWkk@WU„a@anUUwlWUwUU@wlJVUnnV@@mnI@m‚K@U@w„a@wUm@_mƒVUUaVUkƒƒƒ_kċUk™VWLƒ@mlU@kn¥W@UwUWV@VÝU@lXLWVUbVLXlVIl‚knmU@VUJk@@„ƒ@™kVmwmVkxU@@XmVUb@xnKVLl@VxUxkIU`@bWVXX@JWL@bkb„¤@bmUUU¯Kƒkmb@V™VU„VVn@@„Vb@`lnœxmb„lUn‚bk„@xU„mV@bmWbUV@VJ„Il@nVUb‚K@nn@VbnJVIlJVkXJ@X@lmx@bnnWVXJWXU@UlU@mk@@llb°x„IUbnJ@VWbXVmI@JVX@bk‚@bWL@JUXUK@U@Uƒ`n@@Xm@XVW@@nX@@`ƒImxU@@JUI@KƒLmK@UÅUUV@VW@™¯kUU@UamVUUmJ@n„xmLKƒkmJkwkKm_mKXU@aƒU@b@Wk@ma@zUJVUmbUlU@™xnXlWlXXblK„¤V@@nUVVLkVš„l@Xb@VVK‚nXKVx@znW@X‚@@lVK@X@JXbWbnn@JUamLVVXIVxnK@aWUX@˜x@VnI@WlI@anV„IVxk‚l@lbXXšxVVVJVInbV@@ln¦ml@XXVWbkJWb', - '@@XLVKVXVKUa@UUUmV@l' - ], - 'encodeOffsets': [ - [ - 112050, - 28384 - ], - [ - 112174, - 27394 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '4311', - 'properties': { - 'name': '永州市', - 'cp': [ - 111.709, - 25.752 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lxUXV‚lXUVnlVĢ„JVbUXVJV@XUW¯„VIUK@klW@Un@„nl@V`XUVL@l@šVx@„XXW`UnUbšxUlVnUšV„lb@VnJšUVVVInJlUšVnwVklKnw„LVJVšV@nIV@nbVa@KVVVUUa„KV_nVVJ@_VW„nV@n¥lI@anƒl¥X_VKlwVlULUVVVš@šU@VXL˜ƒ@IUmn@VU@wmKXUWU@m²šl@VIXWWkWUkWlkIVamUXamUnmWUU@@Un™lK@XJl@kVUk@mWKXkl@@aVU@UVWUUVa„In`VUVLnw@U@K@Uƒƒ@w@UVmUUƒ™°K@UnV@bV@Xk@KVm@amk„aU£VWUUmUUwm`UbULka›KXU@kVmU™@aV_UWVIn@˜y„XXK@klmV„V_kWVUn@WUU@UƒmaU@™wnwWanUmmXkƒam@UakLmK@b™xUUUU@Km¥Vaƒ¯@ƒkUaVUlm„UU@mUUÇmUk™Uyƒb™bUa™XUWWbÅLmL@V™aL@WWXUKmmk@a@UUK™XW¥kU@VƒUkxmVkUWbUJnVJ@nVJXzWxkŽ@lVbUX@VVL@`mbUnšŽUn™VV¼k@Ulm@mwLƒb@lmLUK@UamƒWkƒK@£Ua@ƒ›UkJkUmbVlkX@bWbUŽVŽnnUVl„@bšbVK@VX@lb„V@nU¤šx‚²„Knblb@x„V„ô@šlŽ@b@l@XWxnVl@„VV@XLVl‚LUŽUXV`šbXXmJU@@bm@UUkLW@UlUKWUUb™wUm™L@nklVVmVXXm@@bUKlÆn„‚XkllVUVVL@nUbV‚@V@nnV@xUn¯U@JW@UX@xĉ@™`m@@LV@b'], - 'encodeOffsets': [[ - 113671, - 26989 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4305', - 'properties': { - 'name': '邵阳市', - 'cp': [ - 110.9619, - 26.8121 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XIlJšI„VVK@n@VVVKnLVwVmnLVK@U„@šw„J@wVIƚ°X@ÜȄUÈxll@kn@VwVaXJWXn@@WVL@UUKVKV_U@@aVK„x@U„aV@lk„@XylbUaV_šVnal@W„U@a„I@aV@@aVUl@Xm‚UXWaXml@@kk@ma@V_UnUV™UUWJUa@kkaWLUmk@@LUVWUkJWkK@¼UnWJƒIkV@b@JUIm@Ul™V™m@Uw@a@kWƒXWKUknW@ƒWUU@k™mx™UkVmIUJUU™VmI@UkaUƒV™UmVk™wVaVmX_WW@ƒUw@™@kUKWVU_k@ƒmm@@VkX@lVLUJƒX°WVU@UIVWUaƒIUġmkVUkWUVWkwWXk`mI@¥kUVƒUƒUn±@m›XkWknV„UVmmU@@XƒVƒUk`@Xƒƒƒk@¥¯»mbĉó@mkU@kU™ƒƒ™KmX@˜UnmL@lULkKUƒWUU@ƒbUaUnƒ@Vb@l„¦Ub@l™@UKmnƒKUnl„UVVbUVn„@`Vn@xƒb@x@VL@nmJ@nU@mmUVkI@xVVVxkXVxmV@bƒbXVl@Xl‚XVxna@Vn@@VVL‚aXaV@n„‚@@V@X`V@@XVJ@XV@UºkXVb@xlVVKnbm„@VXLV@n‚lL@VxšJV„ULUb„`lb°nXalKnx@„lbšmn@lbULV„„V°š„ƒnV@zšš@Vl¼lb@VUV@bšmLV`„„@n„KlVnU‚XWVLnnlV@xVLU`VbV@'], - 'encodeOffsets': [[ - 113535, - 28322 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4310', - 'properties': { - 'name': '郴州市', - 'cp': [ - 113.2361, - 25.8673 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²zVaVlnVl@nšVk„Jl_XJlIVmnL@mV@VXn@lV@‚XzV@lyV¯²U@UlJ@XVKnVVIXl@UVLV`@n@J„I@mlI„KVLnUlVUVVLXašKVLl@nb@ŽW„XV°KUnVV„L@xVJ„L@b@LUVVVU„˜VXbmbVbn@@lUbm@x@XVVVŽ@@˜@bkImx@Vm@Xbƒb@l°XU¤„a‚L„mnL@bl@@™VUX@VxnV˜anLnƒWƒ¥XKVwnUWXmVIUWÆLVx„L„w@wVmlU@¥XƒWUkwlÇn_Uw„WV@VU°wnU—ƒy@aVškVlnL@lVn„w@VlJ@b„X„x@bVKnb@U@WVUl@@Vnbl@XLlK@aVLVKnxÞn@a„LlmUaVU™ƒm@ÅknUmaUKmVk@m™kk@UlWUkVm@w@kUU@W™U¯™¥@w„Ç@aVIlUV@kUWU@UUm»@k@mKVkUKUwƒaUaUa›@k„kUWJkImaU@UK™@maUzk`@zƒy@XmJkL@UUJmUkV@z›@kŽkVmK@¦UbWL@a@UbmKmwUK™Xk›VUUkmVkw@UUKmL@WUIWa—JW_k@@WmI@mk@WkWULUUVKUUVm@šU„bš@‚nUǃ@U@w„™V@Ua@aƒL@ak„›l@k™UƒJƒwó@@L@V@„™`@œƒJ@xnn™šmV@bkJmUó@ƒn—JW„UUmƒU@UV@Lk„WlnnmVXbmxšxV@nbV„V@XVm@UVlXU`ƒUŽkn@lWLƒW—zm@UJVXU`@bVšUn@lWVœLlbVKVan_VxnVVVUXV¤ƒbnl@bUn@LWlU@@amU@V¯L„šVVUn@V@x„„@V@L@VmxUKUVm_ƒJUbVV'], - 'encodeOffsets': [[ - 114930, - 26747 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4307', - 'properties': { - 'name': '常德市', - 'cp': [ - 111.4014, - 29.2676 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l™U™mkUwUyV™@VW@¯Va—VmUU@KVUVUVLnaWƒnkUÓV_@mVU@݄w@ƒka@kVmƒUmK@IkaUamKkXWaUW@WUk„™@@KVU@aU@™L@J@XÇVUKVak_mWkLWakVUbmLUUmlUVKUU@kUWW@UImJ@xkLkKm@@Xƒ@ó݃@UUk@UKƒV™ƒULƒKƒXkWWbkaƒIUƒWU@mUk@WLaUJġ™ƒ@@XÈÆVIl‚„Vnz°aV@U„m@X`@XWbkakJ@amLƒaU„@V@L°@@bn`š@@XWb@VœVlšUxmb@bUVmVUI™šXVWnƒJU„@nnlVLƒV@JbWzk`m@UVK²V‚x„k„LVl„@Vn@V„„°xVKVkœVVlUblx@bU„‚Æœ@@nVnUll„kx@VW@@VkLWxUL@bÝ@kKkVõV@bkXVVUVƒ@ƒVkUkV›LkV™a™@@™ƒ¯xUxmX@JVb°WXkK@Vm@k„Vb™bn¤‚xUXkJƒblxnXÆK²l‚_@Wnašn@ŽUL@b‚JnIlV„@lUœ@@¯ô@lWȂIVKVm„U@aXaV@lwVXn@@K@UVKUUnU‚bn@lWšX„ƒlJnUšLšKV@„„l@²a@UlK@aV@naVX„WV_nKlL@KUm@a°U°@VXL@a@wWmXal@„k„@VLn›V@@bl@VnX@mwVa²aVU@mk@'], - 'encodeOffsets': [[ - 114976, - 30201 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4331', - 'properties': { - 'name': '湘西土家族苗族自治州', - 'cp': [ - 109.7864, - 28.6743 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@KšL@wnK±nƒnm‚—@WUk„ƒÜÈn@n»@mVamk„mšU„„l@V™nmmU@wUan¯VKšLn„VWlInyWUœI@WWk@KXU˜n@mnUmU@WœƒmkV@ƒkXašaVaUm‚Ikƒƒ@kaƒX@ƒUm@UKWU@UkJWkXa@IVy@UmIUVU@UJU@WXWmU@™VakaU@@Xm@Vm@wnwV@VL„yV@VakUUa@wUUVmlI@K„UVkUamJk@VU@UmVaƒan_@KmUƒ@@anm@ImWX_WWUk¯ƒ@k@Wƒ_m`@bULUKUnUWWXkKWaVmnU@@b¯UUbVޱK@UKUUVa¯UUmJUƒVIXmI@UU@WmVmkUV@b¯w@lmI@W@aƒ@m¯LXbmJVLklWL@V@XXŽmbVVU@@VU²Ul@VlX@bš`Xx›zUmkUVÒlŽ@bXLWxXVlš@V„bkLma@nmVmULVbmVUb@lnzmbUÒVl@°nLV„lJkn@bmJk_ƒVmmkblxÈx@LUb„xVb@V™n@JmLVŽUš@„nV@¦VbnJ@lVVbkx™bm@UxVLV@n`UnVVV„kl°z„xVb@VU@@ÆlXnWm¦nbVK@XVVUVVl@X„KUV@nVL@WnIWŽXLVKVLlxUbVKXVWbn@@UnKVLVb„JšU@aVU°b'], - 'encodeOffsets': [[ - 112354, - 30325 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4304', - 'properties': { - 'name': '衡阳市', - 'cp': [ - 112.4121, - 26.7902 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lšV@XV@„mXVlXL„W‚X@l@bVxn@šŽšUVkn@VJ@I@alU„JXIVm@»‚LXllIXVVU@Kl@VnXKlb@lVbXIVVUšmVVU`@nbl@@lXLVVVKVbnXWJ@VXbWxXb„Ul™VK„¦nLVVUVVbšb„K@U˜LnK@Un@VxlUV`UnnL@VVL@JV@VUnxnKVbV@@VšIVUnJUVUl@nW„XllIUa„KVbÞLV¼²`V@VIUwlaVmXa@IWanK@U@m„kVƒVUVaX@lšnaVLÈ@‚¥@kkJUWJUaƒXkaUm‚wVXJ@_lWUU@¥n_‚KkamUK„™@amKƒnKƒbV£¯W@k„aWan@@UnwlJ@a@—@UUU@W‚wn@Va@km@UanaWa—UVƒUUVU@K@aƒKUI@wƒKUUVm¯LWUXƒ@mak@UK™LWbUKVUkUmVUKƒLkJ@nƒJ@I@mU_UK@VWkUJmUUL@WkI@V±VU°kzU@Wy@kUm@UWU@@nmKUnkJWIk`ƒIUlm™k@mUUkUb±yUX@VUV@bk@WlXL@nVlUl‚k@WI@ŽkLmš@VV@XVmnnVWbnVUblJXkVl‚XXlWXUJk@±™@nXVWVnL@xUVm@Vn@J—„WK@U™V™@UUVUVKUkkxULW`k¦m„@bkJm¦U@ƒmUX@`UImUU`ƒLVbUVUU@LUbmaU@mJU@U™UIƒKmxkLUl'], - 'encodeOffsets': [[ - 114222, - 27484 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4306', - 'properties': { - 'name': '岳阳市', - 'cp': [ - 113.2361, - 29.1357 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@wUklmUUmU@@UVm@wUaV_mmUKmwkIkJmUUnm@™™@UUƒbUKUƒmÛamm¯xVLkbÇÆƒUƒVUzkVUlƒUUKWLX¦W@ƒVUUUaƒKUbmLKm„@akU@aƒmVaUUVIVWkk@wkƒƒ@@xmLlmÅwmbVlXlÝIWVkK@kkVƒL@VWKU@Ublnaƒƒm@b@bšnW`@XUJk@UUWKƒk@UKƒnn‚@xmLUVm@kbVbV„nV@V„b‚@KnV„LWšXŽÆV̦VblŽš„n„UJWz@ƙVóUVbkV™aÅx@¦lVUbVVknWKƒ„k@ƒwƒK™VU„Å„ƒl@zkb@`m_mJ@xX„mbVbœ@llV@n„@llbXL˜UXalUšl„alVnwnLVKlšVbX@@I„V@blJ@bVL@VVVUXȤ‚VnkVÑXmlbnš‚„VKkÑř@UmaVç@±XUlI„xlV„@VaX¯lUVVUšVJn—V@°°nް„Vxĸł°¦šb²¦lJ@U@aUK@kUm@_m±VIXal@„Kl@„bV@K„K@k„m@UmUUaƒK@_UJƒaXU˜@Xmš_VmUk@WUk›@kU@a@m@UƒaUUU@al@ny‚XXWWwkly@¯n@@bnV@k@mVI‚„œVlUUmlU„JUw„I‚bXƒVaUal@K„b@ƒVKVkXVl@VkUU@ylUœVVaVL'], - 'encodeOffsets': [[ - 116888, - 29526 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4309', - 'properties': { - 'name': '益阳市', - 'cp': [ - 111.731, - 28.3832 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„ŽÆxXL@l‚V„@̚VI‚bXKl@nVV@„XVŽ„JlbXalX„W„LVKš„„UVLl@VV„@ôބ@@Wn@lLlK@wnIVJX@VX@lVVUL‚VnkVVnKValUXblKnXl`UbVLÈU@W@IšKV@@bUV@Lš@lƒXV‚@VXXblWnLVblb@JnL„VUn@llb@„ƒx@ÞUV@nU`VÔmlX„mbUKUVUV@LVVUn˜ŽUb@°UXš@U‚VzVxnlVškšVnlVnaWƒ@wnIn`@_la@y„kƃVƒšU„L„xl@„ƒXLlmUUVakU@¥ÆwšblUUaôVšU@ÅXyVImƒ™ƒkUaġ¥ÅUWX™ƒKmU@Lƒa@UmUUƒUalan@VUnK@wm„m‚L@V„lXLVVl@VI@WX_™m@a™¯mKUkwW¥UK@_UWWLUVkUWL@WUIkVƒU@JƒwkLUUmJVI@WkXm@VmkKUIU@mmm_@VUV™@™„kJċwUU@KUWkkW@IWW@km@klwkWVkkU™V¯m@kWLU`mIkmkXm@@`@L@xUKWkU@VL@JUU@mbUKVa¯WVnL@`lXUVkU@xW@UbUWVU@UJ@„lnU@m‚nÈmVƒa@bUL™wUb™@@VkxmUUƒ™UV›K@IƒUƒmk@akm@wmIƒŽkK@b™VWXkm@wULUmm@UVW@Ub„mbkKƒVn„U@Wl„xV„U@UXmWUXmlnbUl¯Lmn'], - 'encodeOffsets': [[ - 113378, - 28981 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4301', - 'properties': { - 'name': '长沙市', - 'cp': [ - 113.0823, - 28.2568 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lVUllXkx@lln@‚XX@JlXXl‚V@LVVČxlIšƒš@VU@Un`nnV@VJlLUnn@lW@XUJnIVVlK„x@I„VlUVJ@XXKlVVUXKVX@`VLX¦lxVŽnLš°‚an@„„‚bkmVaV@XL@U„KlU@llLXUÞJWkUknaÆxnŽ‚knK@w„@l„@xllUXUJVVUb„n@blV@bnƒ‚LnKVa„LVbVV„UX@W¥XKVL„VVklUVy„U„VÈÅlaUK°wnnÜbn‚V„VL„aVVš@šn@VmnVlIlJna„@Valkn@na@amwm@„UXw˜K@aUUVUUaVa—wWK@kU@UaW@kKUUƒƒ@k™W¯XWan@k„™mmÅ@@I@U@KmLkaVUƒKkLWVUƒk@UVmU@am@kkk¥ƒUƒVUK™„maUb@ŽUb™I@aƒKkkWm@W¯K¯b@VmaULVxUXlVk@UxVJVbUb@xULƒ@ULWW—LƒĕmxVVL@šVb™KUwƒaŲWwX@@WƒUWLU@VbkV@aU@@VUnmJ@VUn@VƒLUK@U‚mUIk@UÇmU@@UW@J@LƒbUmVI@aUmW@@bkXUx@lmLUbm@UbkJ@V@XmlUbkKm@ma@kUaVU@aUK@mImJUIkVƒUƒVUakbWwka@UWKkLUamKUXm`Å_U˜ƒULmaU@@lUV@X'], - 'encodeOffsets': [[ - 114582, - 28694 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4302', - 'properties': { - 'name': '株洲市', - 'cp': [ - 113.5327, - 27.0319 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@X‚‚Unw„Ė˜KXXVK„@VK@wVaUaUIVwl@kUVWUwVKnb@U°a°LXŽ‚@Xnll„L@bšJVa@VanbšƒVL„U„V@al@@UV¯ÅÇ@Ummk™w@¯ƒyVwnUVVVUkmWV—nKVUƒa@WXkVKn@lUVU„VVVXIlV°VnI@VlKnV@mwVm@LXKWkU¥wWwƒƒ@k@m„X@KX¯V@VUVa@VnKWkœƒV@VUkm@aWa@wkUWwkmV£VÿXUVL@mVIXaò@nW@ašUš@@am™@aUU„UmXmWUk@ƒƒnUW@_maVm™wUkamaUL@aƒwƒW@akI@UƒxUm@kmKUk™lUŽ@b„zV˜m¯xUVU@ƒXVxm`kÈlxXVW„@¦kVUn@xƒxƒKUwÅKVXUJWnXŽmVUxWL„¦XŽm„mK—bmUUwW@UV@šk@ƒšVLnŽlbLm`@¦VVkX@`WIUށxVnlb„WVbXIV‚lI@l¦Ç@UKmbk™W@UbUVU„ƒl@n@VmLXb@JWbUnkbVxUJUxWXXlWL@V@V@XXJWx„zUVVVVKnXW`@bkIUl‚„nLVJUbUIWVXlWV@XklVbnn@xlš'], - 'encodeOffsets': [[ - 115774, - 28587 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4308', - 'properties': { - 'name': '张家界市', - 'cp': [ - 110.5115, - 29.328 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@InWVw°wš„@š@šblUœKlUlV„U„@VUUUlW@aöUlUlLÞ@@aVKXwlK@UX@@UlwkƒVkUm@m›@ÅVƒ@akwVaUk›UUlUL¯wƒƒ@UUmƒ@UkƒKƒlw±UULVn@l_XyWwÅ@VUUmJUXU@@mmƒU@kxW@UaUIWbU@@mU@UxƒnUbmKk„WJkUValƒ@aUkUxƒlW_@WUIU@ƒbkKWUJVnUb™bWb„lU@nl›„@XnVmV@n—mWV@LXl@X›JXVmzkJUXmƒ™KULm°Vb@xnVmnUšk@ƒƒ™VƒnnlUb@nm¼m@Ûǃ„Vl@X˜mnm„²ŽmL@x™K@LUl@nULÆx@V@VXVWbXX˜l„@nLlm@bVKœX‚W„L°bnUš@VaVUš@šmšVw„JnwVK°zn@V‚Vb„a„@Ċ¼'], - 'encodeOffsets': [[ - 113288, - 30471 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4313', - 'properties': { - 'name': '娄底市', - 'cp': [ - 111.6431, - 27.7185 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lL„nJ@xln@bnlV„‚„@JœLVUšŽV„nVlw@Uš@VašxVK@a„bnUmÇnV@km@ƒ‚I@VUVVXVaX@@wlVVUkW@_mKXU°‚UbVLnaV@‚V@IUKV@XlVL@w@K@_n@lWlnnJV_XK@l°nšU@WVU@kV@nbVK„V—lƒ@nLlƒ„LXU@ƒlmkw@nW@UKVa¯IVn@@aVUUKl@nXVKVn²a˜ŽXblKnLlmVI@KUU@akLUaVa‚UXm@aƒ@wVUVKnLnWlXl‚n@@U@anUVm@U‚Inm@IUK@UmKVmU_kVUwm@@VmL—K@VƒL™aUaVUUUmKƒ¥ULkšƒVWaXwWa@UXImWUaULUUWKk@WnXbWށVWnk@UV@bU@@bƒJ@bƒV@XkŽmb™UU`VbkaWzƒ@klU@ƒb@VƒwUL@bV@U`ULVL@VUK@Xm@XWWIUbUxm@@lkkÇwƒVÛÇW@¯Å™UJ@xƒI™xƒ@@VULmKUnUxmKULUUm@@‚ULƒU™JkIWJ@b@LJUW„kJWnUV@nn˜Ü_nJšxU@VbšnUxlškb@lš@'], - 'encodeOffsets': [[ - 113682, - 28699 - ]] - } - }, - { - 'type': 'Feature', - 'id': '4303', - 'properties': { - 'name': '湘潭市', - 'cp': [ - 112.5439, - 27.7075 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Æ`n_VWnLVblKXL@VlbXxlaVb„U„VlUVJnInJ‚@VL@bUVVb@lnbn@lLVank@W@UlIVan@VanK@kVwlW@aX@Vn@bUJVn„a@K‚IX@@VV@nŽVÈl@VJn@VVL„K@UVm@UnIVm@UV@@blUUaV@XK„V@XW@XxƱ„bVxšLUa@™UKWk™@wmmUalk@WXUWkXUVJVaUImKƒVklJ@aX_mWULUUVUƒyXwWI@W@U@UXKWkXWVwU@±_U»ÝKUaƒLVbkJkƒWmXk@UVVŽmIUV™J@UU@UamLmwUVU@mnJ@VUnmV@b@Vm@kkWmXmKULUV@x„Ž@bWnVUbVblK@bVV@LUJknmKkLWa—±bUmULmWk@VLUV@bm@U°JUbVLX@@mlxkn@„WVƒKk„mK@k„'], - 'encodeOffsets': [[ - 114683, - 28576 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/jiang_su_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '3209', - 'properties': { - 'name': '盐城市', - 'cp': [ - 120.2234, - 33.5577 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„n@‚°ĀÞ°@¦ULWKkx@bkLWb@lUlVXXJVbƒnUKmxXV@bm@@Xš‚„LޚܦXlVnš‚mzVJ@n@‚²ÞôkƃÞaȰĉ‚wnljÜó„éVÛnĊīČlj‚ĉ@ō@KÞUlU@ƒkklÇÈњÑlġXɛ@UġƒƒaU@U_ƒW@n™@kaUL@VW@kKmkUV@bkbWW@bkzma@ƒJWI@KUKULƒ@U¦™`@XUJ™U@KmXƒw¯KXkmy@aUIWJXXmV@K¯UU@@bVL@¤VLXbV@@JVXVK@„„JVn@bkKmakVVXUVVVlI@`U@nzVVƒb@¤n@@UlKXLVVšI@V@nV@V‚@ÈUx@šóVōšƒkÅWó@mU@bk@Ýwk@WbXxm@@J@zV@kVƒbV‚nLWVUX™WUXUŽWLUށ@Wl°z@VkxU@UVWIxWJkbƒĬ„nW@@bUl'], - 'encodeOffsets': [[ - 122344, - 34504 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3203', - 'properties': { - 'name': '徐州市', - 'cp': [ - 117.5208, - 34.3268 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XKVX@WnIVx@K°Lnll@@I°K„nVašU°x²mlxš@VanU@aƒk@akmV@@w™@Ua@aUwVwUw@w›@UK@£kaĉlóIÇVkޱ@@kUKmVkIkxW@Ua¯UUm@UVI@WVI„JV@ƒ@Um@Uana„U@m‚I@J@XV@XaVlkXƒVaUUWLUyVIXmWak@ƒXkJókƒJUL@KWkk@ULU@Wa™lUIkJmI™mk„VbVš@lV°kXUKWKULU„mb@VUlVnƒb@VV@IVKUUmU@ak@@bmV@xklƒUƒU@UKmV@nƒJVbkXƒKUamLUJ¯UUVmI™bVV—Ll`@LƒLU`m@kXUVU@V„lxUK@xkIWbUKƒx@V‚kVVn™b¯@@U™@ƒxk‚mbkLÇK™b™@@XnJ@LmVklƒ@@XƒlUƒVkxƒakVVb@bVnUbU@@x˜VUšVb@š„ŽnIĊ`šXVVôJš_„K@xlU²Klk„U„@VaVVÈm@kVUVmnamUUaVƒXIVJ„@‚ç@¥nkVLn›„@@XVK@VUX@JVUV@UnVJVLUJVLUVlšnI„b‚KnU@m°™VanI@anV‚KVL„an„lK„blš„KÞk@¦@¤@„VKnLVK„L„KVzlWšLX@VmV@VbnU°@Ualk™˜WXLVU„KWkUUWšƒ@£Wa'], - 'encodeOffsets': [[ - 121005, - 35213 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3206', - 'properties': { - 'name': '南通市', - 'cp': [ - 121.1023, - 32.1625 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VJ@bnzWl°L„xnW@LšVVI@Wš_V¥„@VKVL@LXJ„I‚@nbly@aXXla@aVUnllLX@@UVKlbš@@m„XV`V@„bĢ„lkČÇÆƒȘ¯šwnĕVĉVÿšUƒUĠƒŦğlXÑVǵ@±ōLʵ˝lÇbÝÞ¯xk@Çkķé™n¯@ğŽġƴǫ@kVVlUbƒL@xULǂóLUl¤@nkVV°VLkxVb@l™aUXUKWĖklVX@¤UšƒUkb'], - 'encodeOffsets': [[ - 123087, - 33385 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3208', - 'properties': { - 'name': '淮安市', - 'cp': [ - 118.927, - 33.4039 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šnźUôÒɴ胚l¦nĖV‚kbmš„X@xVlVL@xUb@bUJVnUx‚šœ„lKVLÈx‚m„zXV@lW@XV‚b@bȚVxnb‚ƒVIXa°L„aÆVVaXUlK@aXIƄVlXKVUlIXalK@alwXLVK@¥Ý¯¯ÿ@ƒmVk@aX@ƒm„īlaXI‚wXJVUV@lw@U¯yb›UaƒUġUÅaUKVknaġm@kUm@wÆIV±nLÆw„ÇnUUkƒ@ƅÝU¯JÝI¯¦Ul@bƒ@@VVL@l@LƒLÅmƒL@b™@UaVaUWmLUKV¹KƒLWKX¥WI@mXk@UmaUVUU@VmL@W™bkIUWƒUmVóIkbmm™@UbVLUxmJkU@bkJWbnXU`Wz™KUÞÈlVb™Lmx@„kè@Æ'], - 'encodeOffsets': [[ - 121062, - 33975 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3205', - 'properties': { - 'name': '苏州市', - 'cp': [ - 120.6519, - 31.3989 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôèĊVnX°¤²„lxƒÈÜ@²x@J@b@X‚`nIUƙUUV@bl@VVnL@L@xƒJ@X@blJXnW@@`XbW„kVƒ@UbVxƒXUxkV@LóxVbUVWš²šVJĸklUǬ@ĢƳĠ°@šmƒī°»ÈÇ¥ULUU±a@bU@¯ƒU@KnImUVWUk™mXUVU@lIVaUUVWKUbUkWKU¥n£WakJUkUL›K¯L™KkƒVIn@VaUƒVUUƒ›UkVk@ƒU@amUkJƒ@UUlwX¥W@@UkVmk@JUakL›@kk¯ÝmJUn@nmVXlmbVVkn@„UJ@±WUxV¯a¯KōbżÇxUxƒšUUlWL'], - 'encodeOffsets': [[ - 122794, - 31917 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3213', - 'properties': { - 'name': '宿迁市', - 'cp': [ - 118.5535, - 33.7775 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XbWnUJVzXKVVUbW„klUWbU@@W@IJ@nƒVmbVbn@@V@„UŽƒIUJ@XUJ@VVn°VVbX@lwlJnUVL@l²@lÈUôJĊklb@¤VLœ@@xVxUxVx@bVbš@@xU@ln„mnX˜mXLVmV@X@lxVnVJôL„LXa‚x@b„@@KVL@bn@@m@™@alLUUVaU¥nIV±‚I@mXI@aWWXU@LlUXWW_XWmaUwǙ@aaWUX@@kWUƒynÇwUKkL›ƒ™VwUmVI@aVa@wUKUk@wƒWn™laUmĕk¥„™ɳçóÑŹV™mmzkVmm@a@Ióƒk@@LWU@`—„WbXLWlkImJVn@`nXVbXŽmL@Vn@‚l@nUVl°Xx°U@LVĠ@z°˜@¦UV@Xn@VJmV'], - 'encodeOffsets': [[ - 121005, - 34560 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3207', - 'properties': { - 'name': '连云港市', - 'cp': [ - 119.1248, - 34.552 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@‚lzXxmÆV„„@@¦„@l`XnlKšXXm‚KnLla„b„@„xmbm@kL@V@Vl@@VUXšJX„mbš@@„°Æ@èÈzlW°XĢJlÈ`lInbšWV_@mš™@UUķnƒôw°ÆmnaVƒVÛVmĸ»Ģw±Ý@@mUIny™UmWkۥݙƒK™@Wn@@aWUnwVL„mUaWIUWVk@kkJUVWLUkŃWJ@bkLWVUbÅUƒb¯KWbUJ„WXX`WXkV@KWVXX@bWJ@nJU²mJV¦UbVVkK@b@š@nm@@aUK@Lƒ@@awWbƒKóKUIUmkwW@U@UnWK—nmWƒn@b„l@bmVUb™@kw±n¯w™VUb'], - 'encodeOffsets': [[ - 121253, - 35264 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3210', - 'properties': { - 'name': '扬州市', - 'cp': [ - 119.4653, - 32.8162 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VUXblVVV„b@xV@kz„V@l‚wVLUbVV@VU@VbUbl‚b@nkͰIÞV@Ɔ„VlmVƒÈÅxmKU²ÅJ@xVn@lĢnmbUlVLÆbĢV„V‚bœV‚aXk‚@VXKVVWšXVWXUmKU„aWaU@™¥@£XW‚UUV@@ynam_VWkUVUna@ÆV@mnkWmXkWU„W@k„@@akklƒlWUI@UnKl¥™I@VVma@a@I@U@a@anK@UmK@ÅVUnJl™kI@aVwka@mVIUW@UWL@WÅbmIƒƒULka™UWƒUxkLUKWlXL@VƒImƒÅVƒU™mĉL™Uól¯I±l@ÒUbVbUVVXUJUnVV@lnbl@'], - 'encodeOffsets': [[ - 121928, - 33244 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3201', - 'properties': { - 'name': '南京市', - 'cp': [ - 118.8062, - 31.9208 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@k@ma@kUUVmVIUWVUUaVa@Ѳk°Jôk@Wmk¯KmX¯aUakKƒƒWU„@XU‚LXaV@@mUaVUUl@VmkaUXm@ƒWUUna°IlmV™m™IUW‚@Uk@@aV@VVX@„V‚I°»nm„U@VKVan@m»UaU@U_@WlIUa™aVaUala@¯n@‚ƒkaUkUUWKU@mwkUUmmL@K@ƒLmUUVƒKƒVÅImU—JƒƒVkVVLšèVLVU@W„L„V„š@nVÜULVŽUL@bW@XbWbkJƒUUVUxVXmVk@WUUkVmIƒV@„nbnVWbƒJU„kUULƒa@Jma@XkK@VVL@L@JƒLUVU@V¼ƒnXlƒbm@kbUKmn@lVb@VXXV‚UV@b@LVbÆxXbl@@lV@U„VV@XVK²VlIš`„UbVbUlVVn@WXn@@VUV@„@KmbVLXқLkKƒV@nX@VVUV@b™nVllbšmnb„IWVXU@`lLlknVnmlLlbUmVInK°nUƒU@l@VU@Vn@„ƒ@alI„`VIXaVaVa'], - 'encodeOffsets': [[ - 121928, - 33244 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3212', - 'properties': { - 'name': '泰州市', - 'cp': [ - 120.0586, - 32.5525 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lUU@@y@In@WwXal@Þxl@@anVô@ÆX„lŎ™ôU@™Vw@ÇUU@@m@U™JUUWKkL@Vm@@£„aUUmyV@@_kJUUVUUWlUnblL@aUmƒI@ƒULUW@IU@WaUK@£UK@aV@°V@LnUWWXIla„VV™@£UWlkXĕVLVWšb@kUalwUKU¯lU@mk£VôKȁVK@w„KVaUkķlUI±™ğ¥ÝUʚ™Ž¯ôm¦ƒĸ™‚@XXK@VVXUJ@nlbUx@blJkšmIUV@ÆnL@VmL@b@b@V@J@bnb‚U@UšJk¦mL@VVJkXk„ll@bƒ@@lƒXXVWlXnml@nÅU@ŽmbUVlVUXn`mb@zU@V‚VWX@¤š¦V@Xb'], - 'encodeOffsets': [[ - 122592, - 34015 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3202', - 'properties': { - 'name': '无锡市', - 'cp': [ - 120.3442, - 31.5527 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nLƒÒlxUVkL™am@™ƒkVWUULUxVVVbUV@bVLU‚nnź™ÞVĠ¦X™VUUaôw@KlUVw„WUwVa„@lUXƒWa@_X@WmkI@a@W„I@w@KmKUUk@@aVUšVVÅmJ_@W@a@I±wÛ@ƑÇkw±ƒ¯£mWĉUóçƒK¯VkUWK@XkV¯UWabƒmUa™UUb™lln@b@xƒbXŽWX`@„VxUblL@bn@Vb@`m@XbWnn@l¤„n@xnVlU„™VLÆWœkV@VbÞJ‚_nƒl@nKVU@aU™U@mVk°WVLUV¯bVXŽ˜bXlVn@VmL@x—V@bl„š‚@œnW@X@VVJ@²VJVU'], - 'encodeOffsets': [[ - 123064, - 32513 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3204', - 'properties': { - 'name': '常州市', - 'cp': [ - 119.4543, - 31.5582 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„L˜ŽnxUbVVƒL@xnnW‚nn@VVXn@‚yœImx„„°ƒšL„a‚¥n@VkšKVw„W@nX„VJ@b‚@UVn„ƒ@UnUV@L‚b@`VLklVÞn„Æ@VaXLl™ÈJšmmVUK@aVUUaUUVwVKXVlUš„n@šblKVUkw„ÑmKUVUI@±UI@U@WmX@›™kƒ@a˜U@wnK@UUmWk—aWU°aVUUK¯XUl@nVŽVš@bUVmLk@m„`ÝIUaU@›lÅXUKƒškVmU@wƒmk£m@XmWan@@_Uam@@akKVaUw@ƒW_XW„a@w@akmm@mL@UJmnUKƒ@@XnJWLkKUb@„Vxk„WƒL—aWVUImVULUK@L@lkLVVVllb„m@@°kbVbUbšbVbkJ@XV`V@Vbn¼'], - 'encodeOffsets': [[ - 122097, - 32389 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3211', - 'properties': { - 'name': '镇江市', - 'cp': [ - 119.4763, - 31.9702 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šVĊKšn„VÆUn„„J@UWKXkVLlKVwX„šVlbVK„„nJÆaš„ķn¥°óÇIkšWKUbÅ@mƒUÝlkUK@_a@KVUVm„@mƒVU@@aUIWƒ@mƒXUx™LUlm@¦ƒb™K¯„ƒƒnw›Jzm@UW@UmmXmm@w„KUUVamw—ƒKm@UbUL@ŽƒVmn¯¼JƒUW@UUU@@bl@@VŽVXšJšnnU‚‚k¯JmbVV„Xn@VWlbUnk@VVUŽVb@nU@WbKWVƒ@XV„„lLVb°bnW°Lnl@X'], - 'encodeOffsets': [[ - 122097, - 32997 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/jiang_xi_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '3607', - 'properties': { - 'name': '赣州市', - 'cp': [ - 115.2795, - 25.8124 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„`l@Èbln„@„KVLl@„V@bȎlnšKXkVlVL@„lJnb„¦VKVVnX„W@w°@VU„mln„UV`šU„bVUV@„xnKVI°KXKVkVL@al@Xa„LVlULWV™VVL@b„x@VXVmb@x@V™VV@nn¤„šlb°b°KXXWbX`lbXx‚z@x„`VIVUnK„L‚x„WXLVKVbVLVU@wnW°b„@nalX„‚mXVJn@U²mKkVl„U@@xlnœaVmlKnœ@JVLlŽnVššl@XXÆèVlUX@xVLXVšb°W@wnUWmXk@K‚LVwUmUkUKUw@wVaVK@kƒ@WnkUKWkwlmXL@KVUlLVKXmWU„L@ašL@malaVk@aa‚ašƒnXš@VVUblb„Jn˜ƒXa„V‚wn£„K@UWmUk@ƒUaWIV@b™JW@KmmU@aUUUkmKkVKlUU™nKVU„lVaV£Å¥WUUK@UkUUw@m@mIkƒƒUUWƒLƒK¯Uw°¯@wUKUbƒKmƒ@kkKUL@UUKV¥U@manw@k@U@Wm@@U@Wwkm„wWaUU@UUmV¯kwƒ@@kmƒkKkUW@UK@ÅV@XWWkXa@Ul@Va@KVaUUU@ƒaXwla@UkVWaXk@K@lmkUmV@Vmbk@ƒ»XIƒ¥VUkƒVUVU@anKVUƒKUalU@wX@˜™@a@K—@ÝwƒL@ŽUnÇlUIkJmn@ŽƒbVVb@VmnkLƒV¯U@ƒ±l—IWmƒ@kaUI@aÇU@K@KUIkbWbƒJUIUyƒX¯ƒUbU@méUUmUk„WK—xWIkJm@V¥U_UJUwmVkšƒUU@ƒƒƒ@knƒwm@UmkWJkL@n@VW@@‚U@knm@kUml@xÅxƒ@@XUJlb„@VX„JVxn@lbV„@lULnV@VlnV@bWV@bXL@lVLVb„V@blLn@Vl„K@xln@bX@lašLVbnKUVVb„KlXVVkxƒV@nnVUb‚lV@@z—°WWkbƒIk‚WL@LUJ@bUI@b™`@UmI@mkK¯XW™™mUV¯@UUVUUam@@VULWUJƒIm`IUJ›KUkW@Uxn‚WbnnmlXbmIUVmV@Vnb@V™LUKWLnÒVVV@V„UL@„kJUV@bƒÈ@ŽšV°šŽ@XVV@l@xUz'], - 'encodeOffsets': [[ - 116753, - 26596 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3608', - 'properties': { - 'name': '吉安市', - 'cp': [ - 114.884, - 26.9659 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lxnb@V@bV@ln@‚n„‚lInš@blVXK‚nk¼@VUKWL@b™L@`UXU`ƒ@V¦XLĠ@lJ„¦@„nV@l°nn@‚mVXnaš@nb‚K„n@l„IVƒš@VanJ@_lKVVnš„L@L‚K@Vn@VbšUVanKlLnbnJVbšnWVnVVanI@‚Vb@L„bVKVanXVbVJVU@aXLll„bôlƼXxVLVK@Xn@ƒxnVVVmb@LnVVKVXV@@mnaVXUVnV˜K@_UaUmšwnKV_‚anKVLš»„K@¯ÝU@›™U@kWlUn™lknK‚VnaUkma@ƒUIUwl»Åw@ƒVwV@n™‚n@ÈXlKVmna@kVw@anm‚@n_WWk@™™mUkUK@Im›kLUn›bkm@wV@kƒlUnLV±m@UInWƒkWmbƒ@¯amX@xUVUKUaULWKƒXwƒKmLUVUJƒ_@wyWwkaW_XaWW¯L¯akaƒ™m£@mUUš@U@wnaWU@Uƒw@aUKšUXUVKUkƒKWbk@@bUKUlWL¯LUJmLƒwU@UVƒa™VU_ƒVkmƒnUV¯@@xƒXmWUUULƒ¥makI@ƒUKUkWl™LkmǍ@aƒUk@UKƒLƒ@kmÇak@ƒ_VlkL@`lbnšlLVanLnbmVÆln@škJlbknmKUbÝmmwULUK@bkLWKULUUma@Kk@UV@L@llbVzšxUxnl@bVLmŽšŽ@IVJXœVlƒLV`@bn²@J™@™V@Xmbñ@WbUJ@bm@@LUĬU‚„¦lV@xXb@blnUV'], - 'encodeOffsets': [[ - 116652, - 27608 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3611', - 'properties': { - 'name': '上饶市', - 'cp': [ - 117.8613, - 28.7292 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„„@„V‚š„„I°`nm¤²@bVJUVVXUl@Vmb@xV@XbmVVœ@lkLmbn`VbnU‚@Va„UnbVllUXV„a@w°VW@_VWšLššnVlbšLVbnl„KšnVK@IUW@_@am@™‚ÑUólK@U@WU@VwU@UI@aUU‚aXƒƒ@kwmJV@yX@k‚anƒƒ@mkwVmmI@aUU@aUUW@kVkV@@anKš»„XVWnIVUl`@_„W@wlUœV@UWKnU‚bnްInJl„UV@VnI‚b„Wn@VklL@l@Vn²m@U`kI@bWJƒnV@°VXnJm„XVmx@VVL@bkLmWULUmU@ƒbWXb@llnX@‚xkxVV„nVV@¤nL‚nVxnJVXX@˜ššbn`VI„b„@„blmlLnaV@„blWXnlUnbl@„ƒšKVanUVmm_XK@kWWnašU@UnaWUXa›ƒXamUkKmXUWƒLX¯WakKm™nUWwXa@KW_„aXWW_@WnIVl@XU‚LnWVknK@ImyUUÆbXK„Û@W@IÆUnƒVÝlkVK@mUIVwkUVaUm@aVIVyXIƒaÈwmmk@UnanVUmÅaó»lwšW@kkUVmUK@WKLƒUmWULkamK™Lk@Wa@wk@UU@U@mbUIWVKUXWmkUmVm›U@LkakKƒw@w@U™¯ƒ‚ƒUUn¯l@bmn@xkJWxkL@VkI@mƒkmJUI@V@b@VVxnbWlkÈkVƒLƒbkKmVƒL@V@²nxW‚kLUL@xlKVx„bXmVnšWJ@ޙ°@n™xUKUw±`UImVmnU@kalm@akwƒU@UUJmxU@@Uƒ@kU@Um@@Kn™ƒVm@k™KmkU@@WUnkLWxkVUwmKmLkU™bmKUbVŽ@xUnkJ@n±ŽšUxVXUšWJ@LUb™lUnm@ƒW@nknUJUVm@kXllknVbÆK„VVbš¼V„@šUl'], - 'encodeOffsets': [[ - 119194, - 29751 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3604', - 'properties': { - 'name': '九江市', - 'cp': [ - 115.4224, - 29.3774 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@WUkVUkmaƒVUb@mVUam_nalK@kU›nUWaU@@wna@UVkUWVUUI@a‚±n£m¯_ƒJ™ƒU@ƒƒƒĉ¦Ul@UV™Km™mLlm@ğ¹m`Uk¯@@UVK¯™@UUK@amkmKkVVUa@UkUƒKƒŽUa™L@VVXUJ™@ƒnƒ@™š™WUbƒnVb¯V@LÅlÝIƒJÅkݙm@Ua™WUU@UmUXmmwVUUKWUX±mUam@kWƒzUaVmÇw@aÅLmKXƒ‚UWKkL@W¯IƒwVw™lkUƒJ@Um@ÛÈWށKUxWkƒaUU@KkLVl@„UKUX±KUb@nVVUbUVmaUlUL@„ƒaUL@‚@nUlWzX`@„V@lx²„@Vlb@bšVÞ@°nl@UxVL@lUbVV@n²xVUVmnUÞb‚a„J@IšV°xnbl@nbÆ@VwnK@VnXlK°xnUlVX„V@Vl@L@lk@W_XK@KƒkWxUL@J„nVx@aX@VVUa˜IXlmL@bVVX@VbnK‚a²XVWƒk°a„@UnV¤nbmLmW@XbmJUbVL„aÞK„L@K@U@aVKlbV@nXlJœxV@VnšŽVȚ„ÞKôbźĕČmV@ĊšŽ²xÆIšV@Þ¦ĸ¼ÞVlŽVÞnxln°Jœk‚LXWVUVUVwnJVI@yn@lXlaXmWI@w—»ma@UmK@akKkXmW@_kaWakKWk@@K@IšWƒkUa„ƒ'], - 'encodeOffsets': [[ - 119487, - 30319 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3610', - 'properties': { - 'name': '抚州市', - 'cp': [ - 116.4441, - 27.4933 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°V°UnÜ@n@lnLlV@bšV°L„lnLllVzVVXlV„V@@L@xX@WlX„m@UVƒL@V@n„°škVmVUnKlaXxVbšnlU@lVVnaVI@aX@V„šJš@V„@b„b@šVbš‚@X@lUL@Ž@VlIVm@wUVanLšalVnKnLVxlUXwlKVm@k@Una@mWIXKWUÛVƒk@a@UVWn@@kl@@W„XlW@_Um@UVK@a„LnalInWV@@xnI@¥‚K„—šm@kKmƒnk@mlI„¤laXbVblknV@U‚KXVlUXa‚@@Unw@±mU@ak_±a@ƒUJUIƒVKW_Xa@aWU™šK@mmUVa@IXa@UWmšannlmX¯WKXwVUVwƒ@XUlK@klJXa@kƒkmm@Uwƒw@¯ƒW¯kw@WmbULƒaUUU@mVUU™WmkUb™KmkkK@aƒkUƒ¯¥Uƒl—ƒm@akU@mš@KVIVV@KUkUVUkaƒUWb—„mƒIkaVaUU™@mW™„b‚b@bUlkb‚b@n™K@bƒKXVWnULkKUV@LWKknlxXŽVLml@X„Ž@lULUb@xVxVLVlVnUxK@LWlXnmV@x¯X™aWUUK@wVWUkÅçm`@mn@bUx@lmbUnkLÇWm@mšU@Ux@„Æxk¼VxVJ@„nbVlmbUmLklmškVlX@‚VœšV@°Þ'], - 'encodeOffsets': [[ - 118508, - 28396 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3609', - 'properties': { - 'name': '宜春市', - 'cp': [ - 115.0159, - 28.3228 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@VlbnK@b@JšLlUnx±ĀXxÆW„X@lš@V„@@blJ@nX@˜xUbVVUbVV@b—VmnmJœ„@bmbm@klUbƒLmbœš@lVb@xUX@bVVVbV¤@LVV„bXlVw‚LXÜÇn@@V„IlVškUx„x°J@XlKXLV„‚WnLÆK@bÈxUnVb„ylXn@Vbn‚W²XV‚LVVUŽnxWnnV@VVVšXVbn@ޚÆl„IÞJÆk@K°UUa„mVa@UUUš»@wV@VƒkkUKUVW£U@UmW@@aXkVUnVlKVV„UUkVmU™@kWaUanU„VVamIX¥W@@aUaUVW@_mW@UnIVVn@VbVm@bVL@anKVUkƒWK„UXV‚Ikx‚@na„bVK„b@nVJ„_V›@Vw„‚VUVVXUlUUaV@X@VblašbnKlkVaXaƒ¯@m@U„KVUn@WƒXkW@@w@KU@UƒWkUUUykkmKƒk¯K™U@akUmK@k@mmÛ¯V¯U@‚ƒL™¼UKmLbU`mL™xVnVb@`—LmUVUUWmb@nU@UWULmU@KnaUUmU„wmJ¯IUJWIkVkaWVUIUlWaUIUVkKmbUIƒÒlVUnnŽ@VlLUJ@bUX¯@ƒaWVUKUXƒKUbm@UwKWa@a@VkUWn™@Uak@mbX„WJXbm@mL—aWVk@™wƒL@WmanU@knwWmkaWL—KWUXaƒU@¥l„UVVVbnwƒ¥nKV™»@aUk@a@UƒJ@kƒmLma™@mbUWnm@ULǺ@LXnmxUŽm@UbkbW@@akLmWk@UXmJmUkV@VUXVlULmKUxkL@lmXnJ@X‚l°Vnb@bU@WbKUX@VmKUX'], - 'encodeOffsets': [[ - 116652, - 28666 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3601', - 'properties': { - 'name': '南昌市', - 'cp': [ - 116.0046, - 28.6633 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šXš™„@„mš@VIUW@UšKVb„„LlV@VVbUŽlUnLnl@bVL@V°šUL@V°@Vln_Ġºn@‚knKnššLVU@VkĊ¥Vk@™Uƒ™»UaƒUÅLUalmkklWn@VUVIlm@m„Xn@VmškVa@KXIV™UWVw‚™²@m@U@VK@k@W™Ua@™ƒa@aUƒ™@™IUƒW@@bUJmbUU@kkV™mUaWwkbmLUVUn™lWbUbklmL™akbUaW@U@VbkVWVUUUVƒUx@‚Uœƒ`UI@mƒaULƒamb@lwJWUƒVXLl„UVmL@bUK@aUnUam@UUmJ@VnX@`UXVŽVb@bX@W¦nJUbƒUmVVbXb@lVšUnVlƒVUUkLmUUVWl@bX@VnV@X¤VUVLllU„U@@x™¼VV@V'], - 'encodeOffsets': [[ - 118249, - 29700 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3602', - 'properties': { - 'name': '景德镇市', - 'cp': [ - 117.334, - 29.3225 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VVX@Vbmz„xUlU@mbmL@V²xVbUVVblbX@šVškVykValKVI@bn@n`lVWnX@l„L@™WKnƒVIVa@¯nK@alIXJVIVWUw‚ƒn@nU˜„nK@alI@a@anKm_™a—™W@UWmIUwmmK@£UUƒmUUlwwW@km@kWaX„aV@VnVKnXlK@aUK@UnwWUnƒmIUW@¯mU„XI@alJV_n@m±@U@kkKUlm@ƒXamJ@UVUkƒmI¯JmamVXL@V›UkV@xƒX@`k_UVmJUXƒW™¼mL@bU@UllX@VV@bVV@bnJUnlx@n„Žm„b@lWŽ@zU‚nIlx„@W„bVV@bVJV@UxV@@X@VkLVôÒ‚šn@@b@`VX@J'], - 'encodeOffsets': [[ - 119903, - 30409 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3603', - 'properties': { - 'name': '萍乡市', - 'cp': [ - 113.9282, - 27.4823 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VWnL@UVW‚LXaV@@ama¯Uk@WmInW@klKVwnLVKUkVW@UlUnVnIVWl@nXlK@bX@laVan@VnwWm@KȹVK¯m@kmU@ƒƒ¥kIğ@WKU¥„@V_VW@_šK@aXKVL@Ul»mWLkU@am™kJƒm@kmU@@a@UmakwU@›„Xlƒ@VXk`UIW¼kWWX@‚œ@l‚xV¦XlW@Ubn„@ŽmUkL@UmJ¯UkUWVUaƒUlm@UXWl„nUJ@LmLU˜nXll@bUVUUmVUn„Ž@¦šxlŽnn@VÆÈU°kbV„VxllnL@VnVVUl@V„„anL'], - 'encodeOffsets': [[ - 116652, - 28666 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3606', - 'properties': { - 'name': '鹰潭市', - 'cp': [ - 117.0813, - 28.2349 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@XV@nlšL@lUnš„mŽ@Ln@@VlV„@@VV@nwVI@V„Vlx@bknlbV@nmnUVJ‚_²‚VxVLšw@mš¯@ÝXIm™nUWƒaUwkL@wVKlKXmw@±@U„KnUlL„a„KlUlÇXkmaUw@U@a@Uƒ™UkwUJ@zWJ™w@WbkVWUL@VmUklUaWakbƒ£kJ@nmln„lL@Ž™nƒ˜L@¦mJ@wU@mXkJmbƒK@bUL@VVn@`kXƒW@Xk@@lm@UX@V@b„lÜUXVWLXJ@nmb@V@l'], - 'encodeOffsets': [[ - 119599, - 29025 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3605', - 'properties': { - 'name': '新余市', - 'cp': [ - 114.95, - 27.8174 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@m@@WULUKWwÅ»ókƒakkWK@bUVUIUamWUbULƒa@KUa@mJUbmUXU™mUamImakKmLUb™VUam@@UL@KƒKm™UUkL@`mIUb™@U„@V@bVl@bš¼UŽmL„¦mxUaUUƒVkŽ@¦„VWbXV˜LXKlbXnmx@lmVnb@X„Kšxl@XU˜bnKn@WaXIWƒnal@Vbš@XmlV@U@bXb‚LVxn@Va„LVWVLXU„b°@VW@aVIkK@UmVmkU„ÑVJnalLVUVJXbVkVJXUlblUXJVI°JnI'], - 'encodeOffsets': [[ - 118182, - 28542 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/ji_lin_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '2224', - 'properties': { - 'name': '延边朝鲜族自治州', - 'cp': [ - 129.397, - 43.2587 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Wxĵ„mš@„ó¤VX@@xܼƨš²xWxƒV„V@„XVƒ„„„ƒbWšXllaÞU°Ċ„@ô¼„LôÝWanV¥ƒÑnĉ°¥šÅX¥°¯@w°w@»°k£°mÈŹ‚mÈbƃŎ¦„K°z@Žkxl¦UbU¤šššklV„KŤÞȰ@@bšV@nVVUlÞ¦lUllœVlU°ÑU¯Vƒ°w„bXxl@V޲„˜@n„ô¼ƒó°™kmVk²ĕ‚w@wV™ÞÞ@@Ġƒö»˜¯œ@‚„šbnb°mÞ¯°V°„ÈJmX¥mam™UřƒUƒlaU¯™ƒ@w™Kk—l±n@@wƒkÝVUUl±¯I¯b™a™lƒ@™kLmakbƒ@ġƒŹé°™Þb°šékƒƒLm™„wX™‚aÅb@bVlƒbVb—ÒVbUb›UUanwƒakbVŽUV›ak„¯„UŽƒLmxV°UxnôŻX@J„Xkl‚bkbĉaƒbƒWU„ƒ@ƒk„WUU¯@@klmƒ@@™Å@aƒwWXlKkI@WbUaVIUanUƒƒ@ĕƒ¯K™„mUnWUwm@£ċèkUmbUmm@@nkJUalwk@@nmWUan_óaWmnw±KœIƒwl@UmƒI@an@@mlUÅmV_™KUkƒ@U`@_ƒKUmU™@U¯™mmb¯@kb™ImV¯ƒƒLkbƒKƒƒÛ@ÇnɱJóaÝĢkb@„›x—ÒÇllœ@‚޲V‚„ÆUVV„UÇ°X„óxlV¯„lV@bƒV@n—x›@—¤@„șŎnxV¼knšJ‚nšKX°˜¦UlnVbUbÆVnÞWVX¦llšb@l°œVJôÒnLVbšbXŽ'], - 'encodeOffsets': [[ - 131086, - 44798 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2202', - 'properties': { - 'name': '吉林市', - 'cp': [ - 126.8372, - 43.6047 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôl‚zšaÈV°„šK@„mŽ—LWl™nšVxUV‚È@ŽÝĬUÈn‚ôLša‚„²VmĀkV@„ĠĊnU@b„V@b˜@nl°UVnÞaôJ@bš™V„¦mlkššbmVXx¯@Vxm„nbƒ„šbÈK‚V@bÈL„wĠyônšmnbÜ@nn„V˜x@n²K‚„„J@k„al@nxÞU„Lź±Vwkw¯LWWUš™kŎīVwƒw„°y„Vĕ°wÈVlkÛ»@wW@Uô£@ƒn™ĶƒXwW™aUamKóÑUI¯›@k™akkW¥XUmÝÅUVaUa‚mVk—¥W¯™Lm™IlmU»mwȚō@ƒ˜£kJUÇk@am¯y¯UVwƒa@wġx¦ƒKƒƒ¯X°Ċ¯¦U°ċWULÅa±b¯@UkÅWmVƒ™ƒkIUlóŽċ¹™`óIƒlX„WŽXxmbUƒLݏƒbƧ@ƒx¯bƒÈ—l@xƒš¯zƒaݤ@nšm„VWb²bmn¯J¯Ò@n„š'], - 'encodeOffsets': [[ - 128701, - 44303 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2208', - 'properties': { - 'name': '白城市', - 'cp': [ - 123.0029, - 45.2637 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ó™ǩŁ@WlwUaƑwÛÅÇéĉamKƒōÇ@Iƒ™ôġVƒȁÑŹçƒ™ÝUƧċĉwóóÝ@Ƒ»ğL¯ll²@ƆÅV@¦m‚Åb@nmlU²VxšlUn™@VbnW„bÇbk҃š„n@èlnlšU҄ްLšx@¼ĉb@҄šUŽċxՃènLVxƒÒƒbÅJ±a@_ÅJÅnƒŽVb„Kl„nUÜĊ@„Uš™xXVÆn„mšVššJÞ¯V™ĠwšƒXw°xWL„x„KV¦ôU„wVÝǬóÞޙ¼‚‚„ÞkŽVôȘxބU„lVn¦ÞšĊa°w„b°@šbÆw„lŤL²`„z°@V@@™nJVnl@@¥nUmmn„@mwnmmUnk@mlwUaƒLnƒ›wn¯°anƒWakI„ƒÇmXwÆamUXUlJXa‚UUklKUknmÞV@‚K@VWÞ@VkUwVƒ'], - 'encodeOffsets': [[ - 127350, - 46553 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2207', - 'properties': { - 'name': '松原市', - 'cp': [ - 124.0906, - 44.7198 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„šźèȂÒU„óĢ„š@JŎȄ‚‚LnŽĊbÈêÜÆƒxVbkx@XǪłôš„kÞ`„šW„b@n°ašbšKšnVw°`š_X`W„š¦„ĊIkmVšakw‚K„x°UÞb„U@lšƒl@°¦œVW„šaÞbšxÞI@mVI@ƒVkŚUWK„¥nL‚a@ƒ„@ȍ„@°ƒÆ@nU@KÞalkUwVékUWw„™kU›VkkƒJk¯@»ókƒV¯ÆÇI@bĉô¯@™ķw¯nmmÅL¯wƒVƒUÞy@UówÇLkmm@@UóxkkĉmL¯wVwkWWX™mLõm@kűV_ƒƒô»ÛƒÆ¯@™Va™VšaĠVlmğwķUóÝƽ£ÇJkbǫaƽLW@nxݤkzƒy¯XɅm@VšôÇX¯Ė¯ºÝnUŽnLVlUÔmV'], - 'encodeOffsets': [[ - 126068, - 45580 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2201', - 'properties': { - 'name': '长春市', - 'cp': [ - 125.8154, - 44.2584 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„U°xÆKnn°mĸxš°@Ċó@aÈJ°Å„Uôl@¼l°„IllœUlVƒšXxlVUêVxkllnÈUVll@Vx²IÞ¤VUlVnIôlރlwô_„›„bVaĶLXÅÞÇ@K˜¯@wÛaƒçn¥š¯WXyW¯XwƒUmmÛ@ma™nómğzƒxÇK@aUÇL™a„ƒmanƒUw°@WwnU™al™nkƒ¥šU™@aóIÝbUm¯Vmk—@@aƒU@amVğĉ@ƒlUnÿ±Uƒ™bóKmVÇÞī@ÇVUUw‚™šmXk˜Kn@ƒ™L¯ƒÇU™byókōè@b‚n@lÝX@x¯ô@ƙUV_maXm@aóƒJWxnX@ŽVVnĖVnUJ@nōÆÇ¼V¼kxƒLklÝw@xƒx@zV`ÅbmxU±xU„nnm‚kn‚ŽğU™bUŽ‚šUb@šÅ°Ü„󼄄U`Ʋ@lön‚KšnXWlXUx°xnKĊllôw@Vn@lnÈKôx@VÝz„V'], - 'encodeOffsets': [[ - 128262, - 45940 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2206', - 'properties': { - 'name': '白山市', - 'cp': [ - 127.2217, - 42.0941 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ušl¦kÒÆ°„IlÒU¤ôz„¼lJš„U„n‚ÆXVl°@²aÆbVKČXV¯°¥¯ĉ°W„„„L‚¥Ģw@x„bUx°V°zn‚‚b@ÈlVŽlIœ@˜w@m„U@akU°ƒkUôwWƒÈ¯VUƒVUƒÅ±U›@kÈk˜Ñœw@ƒlaÞġƒUÞ£@ƅ‚KnÑ̝@W‚aUaVUVkkw@a¯@¯™Ý™ƒVXnW@@WkXmK@xkKUb@bW@Uw¯„mmb@WKUbmUbUaWbƒJĉIVW@I—l±LkšmU™bUm™@ƒnkKWa¯n™@„`Ubma™„ĉL@bƚ—@W`ƒL@n¯‚Xb‚@kb@x™Lƒ„™@V‚kL±™™mlUIU¥mL@lÅx@_laƒƒ@U—aƒV@kmmƒK„£ƒƒLƒƒmKUnÅKVbmXVlèĉUUbml„ĢŤƒIlޝbǦœl‚@ô¼Ģ„@x°„l¤„n„a„l@x™b'], - 'encodeOffsets': [[ - 129567, - 43262 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2205', - 'properties': { - 'name': '通化市', - 'cp': [ - 125.9583, - 41.8579 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÆlXnĠx̰lȰš„K„°kXm‚@¦Vbk„ŤJšnݤk„VÞVVkȄb°y„™@w˜k„ǰa„wƨ@„aސ„K‚VnaWwXWƒ„kôJš_ČºôVkƒ»óyV£kуJůlÑk¥V™ša@wƒkƒbƒmk£¯ƒ@wġƒó»@›kÈ¥°ak„JÆ£ƒġnkVaĊVkçWUnUaÆLVmnL„„‚KU™±@—„m@a¯U„bmV¯m@_ƒK™™U™ƒaƒÅ™Wó¹ƒ@UanmWak@@wmI@y™@mk„JVa™@UaƒIkJ@n™@Um±kkxƒm™Ik„ƒbÇm@ްbXn„V@ްÈmlÞ¼¯XVº¯Lm„kWWXLmVVlknƒ@@lnWƙ„Vxbmšnšm„¯lÝaVȁè@¼V„„b™„ÆŽ°ÞUVšJ„„kx›I—xƒƒƒIV¤™ÒXxmn'], - 'encodeOffsets': [[ - 128273, - 43330 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2203', - 'properties': { - 'name': '四平市', - 'cp': [ - 124.541, - 43.4894 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ɇn°W„zlyÞ£mwX@ƾKǬblaÈIƾ¤ôÞĸVĠxnmmVƒ²w‚VnwÆaU_@y„w@wÞxlk„KlwU»È»ŎÅ@mVIUmmĕUU@mWXw„Iô‚@bWnnbU`‚šV@Űó@wÞW@km@aŎ烙@m°Ñ°Inm±aXaƒU™n@mƑšU¦@šÇޝaU£šaU™ġ¦ÅҙJōUŻókUÇ@™¥¯ak¯mUVak@@aċçÅaUƒm¦Ý`XbƄ@n`ƒI™xĊÞōÞml@šUb@Wl™_¯JkšÇUÝÆÅb@n™„llUb¯„±a@ƒ—ƒWĉJġ™Unóšm¤œxôaVnƒxôI@x„V@bmƙ„@lnLmޯޙxVb¯þ'], - 'encodeOffsets': [[ - 126293, - 45124 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2204', - 'properties': { - 'name': '辽源市', - 'cp': [ - 125.343, - 42.7643 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@żôŎVšIÆÑĢ¥Vš™bV¤°bȍ@™V¥ƒ™Þ£lÇUUUÝlƒÞ£™mţIlƒUa@¥nlWƒ¯ƒL¯™kÇġ¯ğwWmÅk¯UƒVU„„bWlXlmnƒbUx¯xVVknlŽUbV„ÇKUb@„™VnbmlnzUº±bmJUbWÈnèm҄š@X`WL'], - 'encodeOffsets': [[ - 127879, - 44168 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/liao_ning_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '2102', - 'properties': { - 'name': '大连市', - 'cp': [ - 122.2229, - 39.4409 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚IÞmVk@wXWÜbnwlLnU„@‚nLlbXW@a‚wnbl@XL‚aš@Ċ¥@LULnJ@xVnmV@VXXV@VJkn@VÜKXXôJlb„xl@„IVbnJVLUbn‚lnVw„JVU@ƒXU‚aUUlwn@°ƒn„VKnV°_VJšwl@nwlV„IXWlIVVnK@IWmkIVaVU@WÈUlmU@U„WUalkXġŻ@kIƒ»mm™akUm›ĉUŁV»²ġVĕ@aUU؍IɃ`ȃ@kƒw@ƒUƒmwĉ™@ƒWķсIĉÇbÝLkymbIƒwÇmÛbmbU„¯ÜõÈkÆVbŎxnXVÆnšǪ¦„bš¤Uš™xÝnĉÒmĊVȄ¤Èš„bƼ„Ā„„ÆÆÞ„źb„VVbX„‚°²¤'], - 'encodeOffsets': [[ - 124786, - 41102 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2113', - 'properties': { - 'name': '朝阳市', - 'cp': [ - 120.0696, - 41.4899 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@na@UVI@m„ÑW™kaV¥UI@wl@„aÈbšm@wVašk„@@K@kƒ™@a@UUmƒUUalmU@KÇUű¯@±kUKVkUaƒaU@¥m@@¯k@WLUmkn@mmIkm@amU@wVmkU@Klk@U—m˜aXIWWUL™aULVbƒmk@UUmUk±™_Uym@mbkImaX¯WW™xWKzU@WƒkJWwkV™@Um@UbVVVVXb@VWX—@WŽ@Vkb@V™nUK±aUUlwX™ÇWKknU@mmUkƒLUVƒVUUVƒUaƒw™bkKmwnIƒ™kJ@nmbƒ`kmVkLWwUm@UUU™K@UmaUa@UUaWK@mUƒ¯Wkk¯VmUUŽ„xVXUVmL¯ymXkWUbmXUKƒVknWx¯JVnkLƒl@VVxnxlĀVL²WlX„l@bÝVUn@bnlÜaXblIVl@šš@Ȧ@VmbXV‚@@x„VVnUn@`°@VnXU@K@„VV@VmbnVn@ln@b„xƒ°Ub@bšLV`Ånƒ„W@@lUšnnWVU@Vbkl@Xl`XxV„UblŽkX@ް¦V„UVVbUlkV›@UbVbkLUxmJkXšš@b‚bœxVKÆlXX˜bnŽnala@ƒUk@U„VVklKVUXKVU°KVan@VUnLšKVL„WVaU_@mmUXa@m˜wXwVkVWXk‚k@›„k@klm@wXKl@U@KVUUUVaUƒV@„alL„xUx@b°°VnnVšxlIXJmx„LUVlV@bnX@Všb„aVx‚@XJ@b‚n@VŽVXȄl@llX@lU„Vô°°@ބVbn@‚V„k„@VW'], - 'encodeOffsets': [[ - 123919, - 43262 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2106', - 'properties': { - 'name': '丹东市', - 'cp': [ - 124.541, - 40.4242 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lzXJ‚U@š²x‚@@Vš„@bUVmKUn„°n@lnVK„„nV@n@VlV„°WbXn@‚VzƒJ@¦@bkb‚bUl@bkbƒJ¯zƒWULWbklV„nb™¦VJ@„„K°U„kl@@W„bVn°@„Všm²U˜nX`„UÜLXmVXlKVbUVVnUbn˜ƒX@VUL@lUbWxš@²kl`n@Vlb„@nUVWVLVU@aV@²bl@ÈmšxWX„VÈU„JV„l@„„la„WnX‚KÈkÈ@Va°bÆm„@XV°IVV°UnalƒVUn@UwVU„@@VVJ„I@bl@XK@wWmXU‚UVbkJVXnJVI@mƒknwlKXL@`l@VI@UUaVKÞn„aVm@aÇ£XW„U@aÇUU@mbkKm£™@WW™ƒL@@Kk@kl›U—bWKUkUU¯UõÛƒmUUaVU„U@WU_W@kVkJƒ_WKkV@bUL™¯¯ƒ±mk¯ġƒğÑ@UmwƒKUakƒ™ƒa@a„m¥ÝƒIUWmk@w™mţ—L›KʝbȗKWĢklVbƒX@VV‚knÇV@XUVUblJXn@J'], - 'encodeOffsets': [[ - 126372, - 40967 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2112', - 'properties': { - 'name': '铁岭市', - 'cp': [ - 124.2773, - 42.7423 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XJm@¯šmXUlnVbUJƒU@bV@UJWL@VXLmJVbkXlJXxVL@b@V@n@b@`Vbk@lxknV@VV™V@bUL@bV@@bVK@VXLWLXJ@LV@nbWJ@IUV„x@LVJUXVxVx@VV@@LXJWL@VU@@L@VnL@bVVmVX@@VVInJmbnLWVnVULVVU@VVmX@@JVz‚l@„nVVKVXރ@mk_lm„UUWV_nJlUÞÑÞVVUVƒVL„UVJ@I„Vna‚@@KV@XwWknwnKlalU„w„aĉݚwšJl_@aUaƒKUUU@WU@WXUÆ@@UVK@n@UnVVšblK@bœllb@b„bW@Xbl@UlnLl°°bš¦nKlVnI„V@UWU@WXkƒw@am@nm@aVw@I@KUaVIm±XÑlknJVnVJšaX_VaUaVKmwnkmmn@lU@U@mnašXlKUmUIVmklaUK@UlUVUW@U™kVm™a@UUU@JmUU@@bmb—KWV¯XUKm@ka@UVKVk@aUKmLkKUUÝUmbXbÇJ@k@WU_@m™™@klm@UXKVaUI@KWUXaƒÇWk™aWUkWUL±U@lUU@ƒUJƒI@V¯JmIm@@aU@Uwƒa™@UV@VkI›V¯aUkƒWkb@bVL„@@VVVUXW@Uaƒ@@b—‚ÝbUV݄@ŽƒLmUkVUbVllLUV@LššXŽWbUXm@U`@„kxlnnJlbnIllšLX„lVlUXmVK„n‚V@L'], - 'encodeOffsets': [[ - 126720, - 43572 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2101', - 'properties': { - 'name': '沈阳市', - 'cp': [ - 123.1238, - 42.1216 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ȚĊܰ„b„L‚lÞxUbUn±‚@ÈnVÆL@xnLšlUVƒbƒxkImJkn@V±LUxkV@bšbšKVKnzVl@L°@Va„xÞUlbôxVVœ@@V±bnŽ@llXL˜ŽöXĶŽnal@nkVJVI@aU@@aVK@ašUUUU@lmkwl@Ua@_@a@m@U@aUKWwkIlWUanIWK@UXKVIU@@a„VVIUa‚mVknW°™n@WI@KUƒmULWnkVkUWƒ™KkkmJkamIkmlw@ƒV_n@VWXaW™™@KVUkKUkValUnV„K@ÞƒVUÞa˜@a„@VbX@VWUU@Uƒ@UK@ala@IkKmUUa@U@ƒVƒkk™WVwU_@KÜUXbl@V¥XUVmƒƒƒXa‚kŃlUUkIm`UIUJW@UIKmkm@UUJƒImmU@ƒVUXU`mIUbUK@LƒJUU™l@Xƒ@UbƒJ™kU@ƒŽn„m@Uam@@ƒ™aUmLKƒwƒ™mWXUK@kUaÇa@JUIUa@aƒKVUƒUXmƒUy™_@lmbkLUKWLX`‚n@bVL@JXL„‚WX@Vnb@Vm@UbnVmL@V@x@LUbVV@V@LƒUVl@mb¯U@xU@UVVV@X@VVblJ@bn„VKUn„x@llnL±¤™b@k`VXÆK@„kV@¼kl@bWIUl@VmLnbm@@JXXmb'], - 'encodeOffsets': [[ - 125359, - 43139 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2104', - 'properties': { - 'name': '抚顺市', - 'cp': [ - 124.585, - 41.8579 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„XVl°bœUlJ@UVUš@„bVxV@@bn@nJ°I@U„J‚I„VV@V@k²VVKlXXVšb‚lÈX„ŽWbXV@LVJUbWL@Vkn@lšš@nV`@X@lÈIWanaÞVVVlLnKVL@bUlUL@Vlbn@VL°WXU˜Lna@aV@nV@IVV@VšbUnšl@V‚XnKVa@U„UnyWkXaƒaVk@ašašbnm@_WKXmWanU@alaU—l@XJVLVxX@˜wnKnVlwƒƒ™@V_@a¯¥@UkKWUaUU‚anK@IƒaU@WUaVw@klUVyUUVUUÇ@Iôbša@mnUma@kXa@UWak@Wa—l@a›@WUƒLmU@U`mIUU™`mUk@@UUK±nkJƒbUam@kwm@@a@UU@Ua@@K@ƒVK@kmKU_UKƒUUaĉWmkkL@`™LƒnmlkLkbmK@k™@Ulmb@b™„@Ž„xUVƒIUlmVXXƒxm@™JUUk@WUk@ƒakx±@¯x¯Umb™KUUVmUU¯UmVVn™WkÆ„lWb„„„ŽUnWVU¦k@WaÛV@LV`UxšXllU„@„@VVbnVlL@J'], - 'encodeOffsets': [[ - 126754, - 42992 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2114', - 'properties': { - 'name': '葫芦岛市', - 'cp': [ - 120.1575, - 40.578 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ll°X„ŽnV‚@XLVb@VVbnb@VšLVV@VVnXxlKnU‚l„_na@mlI„šmJnxlLša„xVbU„VV„UVU„KVlnnV@lmXLšÈWŽkxVV²bVLšm@Ula@UX˜@XW@UWaUUUUVan@V‚š@lUXxlIX„V@‚yXLšw‚ŽXXW°nblJnan@Vzš`l²nVVVl@„nUaVKšbVKnXVaUaVUšyšnXK@kVK‚@X@m@m‚LXa„LWƒU¯„w@™ƒa@UVw„¥°™ó¯¯y¯ƒUǯ»›w¯Iƒm—¯Ç™UUl™¯»ţKċÑţķm¯w@mU_ómk¼VnU`±IkbVlƒnnŽU¼±Lk`@X™Wl¦UbmVUxkXVlkbllU„Vb@bkVmx@XVV@Jb±aULkKWXkWmX¯aUJmIkVm@ƒxU@n„'], - 'encodeOffsets': [[ - 122097, - 41575 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2109', - 'properties': { - 'name': '阜新市', - 'cp': [ - 122.0032, - 42.2699 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šXnb°lš„VlnXVJ„LlVnl@zÆxnK@b„blKVLn@@V„aVLVK@L@Vl@XVVInVVKVwlUXwlKšL„ššVVb@aV@X„lUXbVW@n„lWnXKV@@V@XUVVLUVV@@bVVV@@ln@VbVUXV‚I„xVanJ@UšIVWšL@UV@@¤V@nInw˜W„k„lnIVx‚lnzUVÇJ¦VVÜLĸUnW@aV_šWĊXXa‚Knkl@nm™L™a@alUVw²K@UlmnIlJ„w„aVU™kmK@wÅKmU@DzVmVaÝwkƒKƒaÛ¯șĉķ¥ğ¥ƒ@kUWkƏī݃ƒ@@akU„K@KWIUm¯nƒU¯JmwUVmIkJÇLm@™UImJUU@aW@U@@nUb™JƒaƒbXVWn@UVmX@V@b„š@l@Lƒ@™lUb@x™nÇaƒbk@@xVJU¦lbXšƒÒ@nUJ@Vmb'], - 'encodeOffsets': [[ - 123919, - 43262 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2107', - 'properties': { - 'name': '锦州市', - 'cp': [ - 121.6626, - 41.4294 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nJ@nlmVnXKl@@°n@@¦‚V„bVbUlVL²l°@ƲÈV@LV‚knVb„VVnnWVU‚@XmWU„a„bšIVa@mV@X@@bVVnIVJ@š‚nÈKlInJVUnx°I„V°mVnXJ@LƒLlV@b„@ބƐĬXllV„@Ġ¦ĸ¦naWW@In@manK@UVkXJ@alk@»lU@ƒÅLUWl_@ša²£‚Kkm@kƒwVmULmƒ@akIUa@U@WUUVU™aÝ@ğ›wkƒƒmĉ£UWƒ@@bÇL@m—a@_mKƒlƒXUwKƒLţÓ@UWw@K@U„I@m™U@UV¥„@°UnJ°@@_™KUwƒW@UnaWUmmI@m™ķwUaÇLóVĵwݙUUW™¯šƒ¦Ux@V„b@šƒxV°X„ƒKWbK@n@nW‚@UL@lWL™m™zUVVbUbmWXXWJ—b˜n@Vkl@LlVUn@xnV@bln'], - 'encodeOffsets': [[ - 123694, - 42391 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2103', - 'properties': { - 'name': '鞍山市', - 'cp': [ - 123.0798, - 40.6055 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l„œxĠŽÞ@šbV@@w°Vna‚@Uk„V@K@UUUVa@K@w@UnKmUVan@@Uma@UXWƒWK@IUK@amW_XKVLlKna@kmKVak@VU„@VmšU@anIÆan@‚a„šUVnb@blLV`ÞLlU„bna‚Kn@naVU@¥°IVK@anUUKVaƒUVak™@mJƒkXƒ™UVwkƒVUUa°U@Wƒ@WlkXWlIXUlJlaœx‚IVVXLšll@nLV@lLXl„KĊzš¥maUƒlkXaVK„X°y„Ila@aVkala@a@¥„IUy@WmXaƒ¯kU@U@mmUƒƒULkmm@ƒ¯VmnLVU@a™ƒ@U@±w@™VWIkymLUUkJWXƒJkUmxk@™xUI¯`mUULmƒ¯„m@kxVVbWV@„UVƒIUx@bkšVšVVšxUbVV@V@zšJVXU‚lnk@@lkLƒlƒLUU±Jkšm@UIUVƒLUVU@™K@UƒnnV@l@Ll„ƒaUJ@zn`@nWlƒIUVUUUV±Ln‚@nmL@VUVkLVlUxVLVlÅXma™@@akLmWUX@JUnVJVkXJ@X@`WX„VUVUIlb„W@bVUVL@`Un@¦U`@bUV@z@Jm@@XV`„LUL¯J@IVKmKÅI@J™nWVnLnšVxV¤™z@bmV@VUV@bUL'], - 'encodeOffsets': [[ - 125123, - 42447 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2105', - 'properties': { - 'name': '本溪市', - 'cp': [ - 124.1455, - 41.1987 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lb@Vn„lnVVUb@šVJ@nnJ@bmXUx@xVbkbkŽWLUxnl@Ul@„xWx@nUV@¼Ull„knkK@bmbnl‚LVJX@VIVJn_lJVVšXUmnU°VVVUnVVšLna°V°w²@lw„bl@XVl@VVšIn@„wWWnUVk„JVUƒw@šƒ@anaVkš@@lnLlalKnk„mšK@_lKnlĊXVb„VVLV`nL@lUL@„@L@‚VbV@@V@bn@lxn@Vb„alI²mVL@Vl@nVš_VVnJV_‚@nV„K‚V@Xœ‚@b˜kXbl@XblylUUkš™@Xa@UVIlK@UUWVU„Llm@UUUnKWU@K@UXm„XVa@U°KVUUWUk@ašUVKkaWkƒKUknaWa@U—@m@mk@ƒaUJk@@_WKkLmx„l@nUJmIUWlIUaVWVXn@xWLk@@aƒJUI@Uƒ@UVVxm@UVk„mb¯VUU¯JWUƒ@Ån¯aUbÇ@ÇlLmWƒXkbƒƒk@UƒƒIÇVƒUXW™wÇnk@±aU@@bUVUKUXmVƒ@kaUm@k_±l™@XwVa@kVK@U„Wm—VaUmVUUakLUWWnÛKƒVW_—m±V™nƒU¯@Umƒa@Xk@ƒl¯V'], - 'encodeOffsets': [[ - 126552, - 41839 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2108', - 'properties': { - 'name': '营口市', - 'cp': [ - 122.4316, - 40.4297 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĊĖÆn¤„„°Ċ¯ŎWšô„@xXb‚wnKl@nX@VUVƒKmL@VU@Ux݄@Vlb„x„U@VUb@b‚kœ`‚IUlVUn„V@@UV@@JnXlK@bš@nbÆWUkUKVwUklKVU@UnK@mm²KVUVVVU„JXk@mm_@yVI„bkƒ@K@kmU„m@VšLV@VU„KVUVJn@l™²IVV„K„klK@kl@kmVUW™I@y@UUUVa™wUUU™l™@akmmVaUKmIUaƒJk@ƒwkaóIWWÛL@UlmUIU@WW@UnUUm@wmIVK@Kĉ¦™@bWKk@max@bWXkamKƒ@mVkKmxÛaWX@xUlÝnJ'], - 'encodeOffsets': [[ - 124786, - 41102 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2110', - 'properties': { - 'name': '辽阳市', - 'cp': [ - 123.4094, - 41.1383 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@š`Vz„‚Wn„VUV„L@bVbVJ@IÈbVb@lVLXW‚n„š„x‚LnKVŽšb@„n@Vbn@mƒ„V@šl„IVa„@@WškVV„I@KVLVanJV_VW„UV@nn„JVI‚Vn@na@alLlmkƒVk@»VU@mXwƒwk@@VmkVwXKllaUa@wVwnW@amI@mUI@™VaUUkmmƒ@UkaƒL@ƒUIĉyƒLWkkKU@mKk@™kWKUUJ›wkbkIWVkJWXkl@X„‚@X¯VVbUVl„UxšVW„„lnIš@l‚Ub„VUbVLmV@bUL¯J@¦UVmbm@LmbƒakVÝKU_kK@amaVUƒ™bm@ÅbmJ@b™VUnƒ@UVl@UbnL'], - 'encodeOffsets': [[ - 125562, - 42194 - ]] - } - }, - { - 'type': 'Feature', - 'id': '2111', - 'properties': { - 'name': '盘锦市', - 'cp': [ - 121.9482, - 41.0449 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Vbĸx‚š@nnJVnXŽmb@V„XVxšL@`¯@mI¯Vƒ@U¦@VšV@nƒJ@V@LXx@VŤÔ„K‚LVx„W„knL@`˜b@nÈK@a„@VXĊ¤„nVK@aVU@UnU@ašyU£Uwm™mKXUšm@IÆJnLUL@J°IVKƒKU_@Wn@@I@yVU@aV_@¥Vm@_UKUV@aƒXkaVJVUƒUXW@_@WWIUlUIVm@IVW@IU@@VU@mƒUVVkJ›_l@aVa@UƒVƒwka@UރVwV@@UnK„LVU@UmWk@mLxWa@wóƒUVUIÇÆĉ¦¯¦¯xʟJ'], - 'encodeOffsets': [[ - 124392, - 41822 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/nei_meng_gu_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '1507', - 'properties': { - 'name': '呼伦贝尔市', - 'cp': [ - 120.8057, - 50.2185 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„m@Łkƒ™Žƒklƒôƒ@£kJ°ý™ɅķÑó¤ğLĉÅlÇğŁW¯¯›™ƥóÿlwkţÈéÝƛó™°ÞÅxV¤ĉĖWƒ¯lȭţυ̃ɱÿķƅˋğɱřÝţϙȍƧĊţ@¯kWKUKm¹Å@ķJU@ƧÑƧ„ō¥˹Ɔ@L@„Þ‚VLnš@VōČWJX¦@JŻbU@ţÞmVU@ȁýóbkWWLƒƒÅ™¯UWġkmóƒ±UŹôV¼ƽ¼ƒł̥ĖƽǬʉxĉŽŻȗKΕ̛ʵƨʟÞ˹»Ƨţ»Ǖō˷Ȍ±ȚʊĠUɾɜɨmÜ֞߼˸ƅȂ¯ǖKˢğÈÒǔnƾŎՂ@šĊbôô̐¼ƒ@ĊôĊŽÞĀ™xšĖƧL±ŽœŽ‚Uš°U„°ĬƒČ°ÜƒêɴȂVł°@ƒ„nxŎèƒbȄÞȌ΀Ǹl޲IlxĊl²ÒmšôĖ™Èl„ĵºm„ÈêVþ„xɛČʉÇĵVmš„ÒƒÈɆôƐŰǀĊ°ÆǬĮƾb„yĊ@ĠšƒXǀċm»ôw°Ûk¥Çm¯ç™kkÇǫţǕéX_ĶWǖīŎaÆĵĸĊ@ȚȘ‚™ĊLĢĉ„VÆĉʊÇĕóaU¥šĉ°mkŰġUĠřk°mƒÑČÿ˜ÛƒWĸ£ʠšÆxÈÞŎÞ»ʈ²ĊÇČalÒ°Ť±ĸz„ŽĊKȲm¤Ŏ@Ò°¼nyȂUźīǖƳÈē°@šÝ̓@ƒÈkl¥Ççkxk™›JXÇƒUÅ@˜£k»„óƿīÛ@lÅJl¥óý@¯ƽġƍÅan™ċ™°é¯¹'], - 'encodeOffsets': [[ - 128194, - 51014 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1529', - 'properties': { - 'name': '阿拉善盟', - 'cp': [ - 102.019, - 40.1001 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@™ƏnǟƨʫšŹɆÿ°¯ÆV²ˢ™żÿ@ÝÆŁȰ¯ȀƳĉó™™@ğkyš¹@īš›ƒwl£Źƒƒ¯Ŧé@™ÇÇxŋĉƩUUŃōL™Ç™ĵóÝnƒóç@™™ó@ġƒƱ„¥ƒç™WUçÆōƒ@é—çťK™çȭVһƽ̻aW¥ȁ£ʵNJǓƲɳޗǔlżÞmĠóĬȂɲȮ@ÈĢŮźÔnĶŻǠšŎȭœгŃċóȭţΗÆƑÞƧÅΫóȘǫɱȁġlÛkǰȁÈnšõl¯ô„ÞɛÝkĢóWĊ„zÇɼʝ@ÇÈķlUČÅÜķnέƒǓKȮŎŎb°ĢǀŌ@ȼôĬmĠğŰōĖƧbЇƧōx@ķó£Ål±ĀƧīXÝġƃêĉK°Ýʇƅ@ΌʉżÅÒϱʈ@˺ƾ֛।࡬ţશóЈèʞUš¤Ґ_޸Ƒʠɽ̦ÝɜL׈ɛϜóȂJϚÈ@ǟͪaÞ»Ȯź'], - 'encodeOffsets': [[ - 107764, - 42750 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1525', - 'properties': { - 'name': '锡林郭勒盟', - 'cp': [ - 115.6421, - 44.176 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ʶĬĊIȘƨƨŽ@ĬÛĢșŤĉĬƒĀóšU‚ÈŚÜènŦƐȤȄłϰUƨťƾÑ܆ğɲƜǔÈèʈƲĊƞƒšɆ¯̼V˺Ò˺ȂŤVĢêU܃x„Āˌ˘ƨ„ưѢmÞżU¼ÆlŎ@ĊçŎnÈÒͪŎźƒĸU°lżwUb°°°Vš£ÞlĠĉĊLޏɆnźÞ„n¦ĊaȂīġѝIĉůl»kƒ„™Çý„¥Ŏ¯ƒén£ġљÝȭxƒÇ™@Åçķ»óƱŎ¥™çWÿmlóa£Çb™yVÅČÇV»ÝU¯™KĉýǕċţnġ¯»ÇōUm»ğƒÑ™wƏbċÇŎċwˋÈÛÿʉѰŁkw@óÇ»ĉw™¥VÑŹU™mW»ğğljVÿŤÅźī@ř¯ğnõƐ@ÞÅnŁVljóJƒwĊÑkĕÝw¯nk¥ŏaó¦ĉƒV¦Å`ğуÑÝ@mwn¯m±@óƒÛKˍƏǓ±UšÝ™a¯lƒōšșk„èƒĬގn@ŤġŰk°ċx@œĉ`Ƨĕ°@ţÒĉwmĉ@ƒƒnƒƒa„™¥ķnƒÞĉVóÆókĉŽķ@ÝkƧƧÛaƒ°Ç@ÝÈU˜óbݼ@„ÛÒV°™@V¼ˋL™ÞɅŤŹǠVÞȗŤÇĖŚōbȁƜ'], - 'encodeOffsets': [[ - 113817, - 44421 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1506', - 'properties': { - 'name': '鄂尔多斯市', - 'cp': [ - 108.9734, - 39.2487 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĶL²ĬVłƑkkl@Ȏ™ŘWńÈĬȗ¯™ºlz@ĠššĊôŦô„ÒĠ°kÞܚ™n@¤„UĸèĸbŌÈXŽĸLlÒĢxɲÆ¤ÈÛƾJÈݰUšÅĶ»²VW¯ĸJôšbk‚V@ôlbnĊyÈzVôašb@ĸ‚ÞUl°yǬ²Ǭm°ššk„±lbn°@È»˜JX„VŎÑÆJ@k„LšƒÆl²™Ġ²ʊůĊġ‚řóƛÞÅ@m„ƒmLUÿóĉƧ@™»L@„›`ČĸmšȗÑţů±ĉğl¯Ā™wǎƒçƧŤÛI@±ÜĉǓçō°Uwô™ǫůķƳř±bÅ£™ÓÇwnÑó@ȁƽ@™ƒÇƧĢón»ŏĕóĊ¯b„Å™™VȯÅImƒōKU„™LǓ±Ýxċ—ŋ˜V±Āȗ°™„Źl±šÛ@WÒȁŚŹНŚÅèŌô„¼°ȰɞȂVĊ'], - 'encodeOffsets': [[ - 109542, - 39983 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1504', - 'properties': { - 'name': '赤峰市', - 'cp': [ - 118.6743, - 43.2642 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɲŁĢljĊwƾōÞĭ°_ŎŃźȹƒUČÿl»¯ôķVÿǬƽ™ɅġÅÑǫ»̐ʟȣU™¯wVWݍÈġW»Þ¹m݃ɛŎÿŎōͩůV¹›ō™éċ™óŹÅVVĢǩʈ@Ėċ@ķšÛšV°¯xÇÅţ¥™»°Ûô™ĉʟ„¥WýČ¥™w‚灻±mnÅķ¥ˋVƒbUÒġ»ÅxğLƧ™ƒbWĖÅxš¦U°ÝVóŰlô²@š¥ÜÞÛô„V@²±`𦙄™¯Ý@„ŽÅ„VÒō¼ôš™¤V²ŹĬÇĊƑƒţxƒç¯Lk»ʟlƽýmłÝÆƏ@mö°Ġ@ŚŹĬţÆUĀĠNJĠŽX¼šnźVUҚ¦Ċxȼ@ôlx¯łʊÒÜĀˌÇČxƍČÈƐašx„ÒĠŽn¼ŎVȐ‚¼Ģ°ŤmǖČĊþšLV°ÞŽU¼ċÈUƚzÈa‚¤ôbkŽ‚nXšè'], - 'encodeOffsets': [[ - 122232, - 46328 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1508', - 'properties': { - 'name': '巴彦淖尔市', - 'cp': [ - 107.5562, - 41.3196 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²@Ζǀݴʶհĸ„˜ƒ¦Ķ™̒Uˌ¼ӾÇƾ¼̨UÞĉ˜Ƨ—éÝ»ƒĕĉ—ƐȍœōǪakó‚ó¯a@™ôţ™aV¯Þ¯°@²él¥ĵğťwōxó¯k±š—Vó@™aóbUÇyĉzmŽkaóŽU@l™aó‚ķIX°±Uĵ¼™Æ¯VÇÞƽIÇÜÅ£ɱŽġwkÑķKWŋÇķaķçƒV@£šmۙlÝğ¯ƒÑťóǿƴȯ°Åł@ÞŻĀˡš±ŽÅU¯°ɅĀ™źƧʬmǠšƐ'], - 'encodeOffsets': [[ - 107764, - 42750 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1505', - 'properties': { - 'name': '通辽市', - 'cp': [ - 121.4758, - 43.9673 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôƲĸ¼Æèš@„ÈȮwƾ»ʠĢ¥VÆ@²¥@»Ŏњ¯ĊJŤ£k»ÆÇX¯̼ōšī°aX£ôƒƾȁꥄƒ™aôŤ™ĢL°ƒĸ@Ȯ¼ÈÒʈŚôVXůÆaĠƛÈKƒķšĉôÿ@ğÈĉ™»ÇVn™ĉV›wXĠݰšČÿĸwVƒ™¯¯ǵ±™ĉ‚ǫ™ÅÅm»²Ż±ƽIm¥ţÈķ@¯šƧJV»ÞUÝç¯UġºU£ţŽóaÅÅlƒƒ™Ƨī¯K¯Þ݃ğL̑ȍƽ@ōŎōĀƑɜnÞݺX¼ÇĢގUX°xVšʠȤ̏Ǭ¼ÆÒɆ̚ŽǫƾUĀóĸ°‚k¼ċĀƑVŹȺōń¯`ÝĮƽŎĉxġNJɱłō¦'], - 'encodeOffsets': [[ - 122097, - 46379 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1509', - 'properties': { - 'name': '乌兰察布市', - 'cp': [ - 112.5769, - 41.77 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ʠǠÞĸɲȺƒÒȂƛŎaƙÈĕȘţUÝźǟɆţšÝˌKU»š@U¯ÜÑ@ƒÞ»ôaV—ÞÇÈ@„¯ÜbƨƨÞlĸ@ĊôlôÅĊU„Ýĸmš¦ƒŽ„bm„„„Ċ@n‚ĊxŤÑ@¯‚ƨĖĊ_@›Čwl¯™ƒȭL›Ý„»ƽ¯ķů„Ǔ@ÇǓbċ™ÅÅÆwÿĠÇU£óaƒ¥¯aŎğĠţkw°»¯ůlÝĵkǻݰɱƧǫaóôɱ»Çk¯ŃóƒʇŐŻ›ĉNJŻĢ„ޝÒÈUl°ƒx°n„Ò™Ĭón™Ċğ°ÇŚĉ¦ʵVƒ°°ĬÛżÇJȁńʇʹó˂ƽŎ›Æţ¦'], - 'encodeOffsets': [[ - 112984, - 43763 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1522', - 'properties': { - 'name': '兴安盟', - 'cp': [ - 121.3879, - 46.1426 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÆXnlŎ°@LVLĠþœxĊUȮĊnU„ĠV@żaW¯XIŎġƒ¥Ý@K@w@K@I˺ŻŎ¦ƨƒƨÒŎIÆ@X@VºnX°lŎ@ƾĉˤƒȘǷȘÑÝݚÞbVţĸÿŤxÈĖƐށêÇKnĸ¥ô@›ķÞUnÒl@UŚaƒīˋƒ¯ÑƧx@±kXřƐƏÛéV™ˋ»lō¯ĉ„ÅÇÓǫޗĖġV@ğ»›°ĵ„ÇÞǓ¼¯m˜ÛÅŃĉĠÇƾb²çƒ™šéż¯VƒƒğÞml»ōÑV痻V¯™¯šĕÆU¯y°k¯¯V»ôDŽѰa@Źk™ġKţšóŽšbƒ„ʦƽȂó„W¤¯b™Ĭ̻ŎW°ÅÈl¼ţ¤ĉI™°ōÒ@¼±¦Å@UŽġ¦ʟŽƽ¼šÞĢÒm¤„êō°ƒ¦Èþƒšl„k¼Ċ۰JĢńȁĬ„°ƒżn‚ÇbV„ݼ@¼óĸţ¤@°Ånšl'], - 'encodeOffsets': [[ - 122412, - 48482 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1502', - 'properties': { - 'name': '包头市', - 'cp': [ - 110.3467, - 41.4899 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@źxżĀǔÆǬVȘĀŤ¥œÅƾōôˁʈͳȂŃÈIÜŻ¯ī„¯ōm™¯ɱ˝ƒķÒÝIÝ»ÅV™ƒlÅôфġ™ğVmÞnnƒWçkW܁XƝÆwU»Șĕš£ĉÑ𱱚Åk™„ƒK@lÅIō҃UW‚—IǼ¯@m‚kaƒ²™l¯™ǫnǫ±¯zkŽÝVķUô™˜l²ô°ŎwŦxĶĠk¦±ê¯@ݰU°šbóŤ@š°bôlôǩb›ŎƏȎĊ˜„ĖÞ¼˜ê—ƨÝĊ'], - 'encodeOffsets': [[ - 112017, - 43465 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1501', - 'properties': { - 'name': '呼和浩特市', - 'cp': [ - 111.4124, - 40.4901 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ʶUĊ¥ÈřĠ¯šĉômšīƒÑ¯m„wk¯ÇV°ÑƒżġĊljǓɱţǓ›ƝóX¯ƒɛÒóa@nÝÆôƜŚĉĢʉŰĊҙ¤ȗĖV¼ÅxWƞۂlXXèm„ÝmUnšĠƒĢóÒkƚ„ÆUÞ¼ÞJĸѰ„ɲĕš°Ŏn'], - 'encodeOffsets': [[ - 114098, - 42312 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1503', - 'properties': { - 'name': '乌海市', - 'cp': [ - 106.886, - 39.4739 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ș°ÇīXњŗ@ȍlkƒlUٱīĵKō¼VŽÇôXĸ¯Ž@šťê„°ź„k¤„x™œ@Ĭ'], - 'encodeOffsets': [[ - 109317, - 40799 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/ning_xia_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '6403', - 'properties': { - 'name': '吴忠市', - 'cp': [ - 106.853, - 37.3755 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nLV‚@šVLšaÞbn@@l˜š@bUVlUV„zVx™¤kÞVèšXnš‚@nm°a@UƒÑ„@VŽXnV@Va„UšŽVKUUU@@U‚@@KVa@U²@‚wXkWnk„±lLnU@UmmVKnIVWnI@UK›@UK@@UVKXkmWLWUXmlkVwUyVa@w„w@aVI„K@aVÈw„KlLVV@LnV„VVnU‚ܲ°WÈIUÆ@nÞ¼‚‚@¦™@UÞUVW@UxUxVn„b„K‚b¯ÞU`VbǬ™V@XXÆVVl°InmnUôƒ°¯‚anam£œWVX‚KXmškôaVU@ƒVak@@wmaƒn@K@UÛUWKXUƒÇƒ@UI™b@alW@akLUKV@@Ukw±Iš›nL@kmwkWmk@JUIƒůVmnnU@m@UƒK„VKlkUwkƒƒnVUKmbkI±š—KƒkmVkKƒb@U@aƒVkUmn™`kIlaUK@UUKmbUIݚUa@mUa@aƒ„m@UUULUK@bmKkbWI@WXwlkXƒWa@k@kKƒLVkkK@L@JUVmzUKlwUUnW˜£XVlKUwVU@aXI@aWaUw@W@_nam@¯‚UkWVkUWaU@nwmJkUVkWVUmUkJ@ImbUaƒ@@WÅ_mJknmak@@mƒXƒaUV@„ƒxUšƒ„@‚ƒ„@VUnkVƒ@Vn@`ULUbWLXVW@kbUJ@XW`@ƒnÅĖWJƒ@—m°@xƒxšbnUa‚w²lƒÞ°xŤIVVULۂWbšbkVVXÆ`UbVL„@kx°LlV@Vœ„WbƒJn@bl¤ULV„°@lmL@ƒƒ£U@@aUwmKULVxUVVx@„™@kU™@mK¯LÇa¯@'], - 'encodeOffsets': [[ - 108124, - 38605 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6405', - 'properties': { - 'name': '中卫市', - 'cp': [ - 105.4028, - 36.9525 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°@Èb°KnLš@lVš@@ƒUwVUUwVKnLVx@bV@„¤@„nK@k‚¯UƒVKk£@a‚m„IXa›ƒ@UkU¯Klwƒ@UKVaÅ_UWlU™aXa܁VKUUţJ¯w„ݱkxVbmŽ™a„w@wn¯˜„@XIÆĕ„m‚@X_@WVIlaX@WUXKVaVK@_Um„@lUVm@U„ƒ@„ƒV™„w@ƒVUÛwm@@W@ImKUkU@Ua‚aXƒ@wWaUKkw@UVaUamLU™nk@»±`¯@k—W@Ua™ykbƒI„„@VWJkLWUkJƒwU@ƒn¤mL¯wm@Umƒ²XVWbnV@bmxƒVkxUblLUV@kVWKU¼ƒŽkUƒ@mn@JnV@bUnmJUn@„k‚@XlxšLVVnKlLVV@š@LkKULVbk`WL@lkXW@kVƒ@UÞUlÇX™lkaUbmV¯@@L@šƒV@bkb@xƒlW„—bƒbW@—±@UJ@IU@mVk„VxV@@l„Illœn@Vm@ƒVUbl„@JLmKÛXmVkU›KULU`@LĉwƒKUX„lVUl@Vb„JX¦̼bÞxŎxɜĖĠ„Ŏaô@'], - 'encodeOffsets': [[ - 108124, - 38605 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6404', - 'properties': { - 'name': '固原市', - 'cp': [ - 106.1389, - 35.9363 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Vnn@°xnK‚£„mV@„xlIXVlKXI@Uƒƒ„JlašzVbX@l˜°@²_@¼mlVšnKVbUb@VlxVLXb@xW„bVbV@VlnL@J@Xn@Üx„b„W@nl@nblmnIÆ`@X„@Vbna@aVUUWVkƒ@kbWakbU@VwšW@_l@nmn@@alVlk@UkmVak@@a‚UXaƒL@¯@KVa@axWI@KnkVaVJn_lJ@„X@‚m@nVanUVb@mXLlJ„VWnLla„VVaVX@KXVVkVKlknKVa@aVU@KXb@klJUknUmƒ@K@_UW@alIUamaU¯kJma@IUK@U„@@UW@@aXLVƒVJVaXIƒKlaUkUV@ambUUJkIWJ@wUI™V@JU@UwV@@Um@™nU`@UkUmVUxWUUV@aÅb@aWXkKUUƒUUaWK@wnm@IVU@aXwm@UmVaUalk@anKUwlƒUwlkK@wmaƒUkmmIk@VmkUUbW@UVUnW@kV@xkVmbVnU‚™@UbUV@a›k@kkW@„kLW¤@„nV@VU@W_UV™UU`VLUV@IUVõVULU@UUUJ@wmkUJ@šWI@l@bkKkbVVƒbVbUL@UUJ@Vm@@L@xbVVVLVlVwX@Vb@bmUkbk@@JWIUVÅw@Km@UkWKXxWLÅ@UVUnWK@xkVW„@KULwWVXVWzXVVKVXkV›V@VUbV@U„VV@š@LXxVL@V„b‚Ž„LnKVLVxXVmb@l'], - ['@@@J@aƒU@LWK¯UUxVVn@Ġ„„LUW@UbUUUa@KUX'] - ], - 'encodeOffsets': [ - [[ - 108023, - 37052 - ]], - [[ - 108541, - 36299 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '6401', - 'properties': { - 'name': '银川市', - 'cp': [ - 106.3586, - 38.1775 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šUšwVK@UVWÞUšbšw„V@knV˜@@KU_VK@K„ƒn@W_XWlL@Vn@Ċw@Ulaœ@Wanamī@aƒ»ŋó@aÆÅɲÿUaV_°ÝaƒLƒaUmVwVwX@VUVݚ@@¥Ý»@mVÅÇJ¯XÛ±VUmƒUmU@KUUkKƒLÇxUŽ@bƒLUJ@bƒx@xUbVzUxklWnXV‚KnXWlUL@V@ŽVLœ@VL@ŽmJUXmJULnn@VmVkKƒ²mlXWlx±@@VUb@L@@VV@VVUL™ƒVUbU@WmUƒ@„Ò@V¯bmn@VŽƒ„@lVnUšnVWŽXVl@¦VVUn@x‚š@‚XL@¦‚lXxš„Vb'], - 'encodeOffsets': [[ - 108563, - 39803 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6402', - 'properties': { - 'name': '石嘴山市', - 'cp': [ - 106.4795, - 39.0015 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@U¯ķó±ÇÛ¯™ķmbXb›@kb@Vĉxm@@UkKWXX`m@ƒ„@LULV`@L—@mU@lƒU™x™aÝVUX@VUL™x™VkLWVšš@J„nVLXVlŽUV@zl‚VL@V@b„„n@lU²WVLlLVbUŽVxUx@xǀL˜xôҜk‚K²ŽVa‚U@wXa@W™ÈĉUa@‚bÈk„m@¯'], - 'encodeOffsets': [[ - 109542, - 39938 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/qing_hai_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '6328', - 'properties': { - 'name': '海西蒙古族藏族自治州', - 'cp': [ - 94.9768, - 37.1118 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@„V£°š@laœXô±źwš™ô@„Ulƒża܍n™Kƒw@U„aƒ™ša²L‚mÈLƚÈxlaUa„wÞmÜbÞUšnJ°a„kôƒ‚ÑkwÝVğwÇ@ÝkkV¯¥@ò„»„nŤ¥XImw@mVwša@Åw™mLkaW—wƒ¥l»kçƒó„»@ƒWÑĉŽğ@ĉ„™‚Ń„UwóřVómĵ»™™Ý@VǕ¯kšÝĊÅk™°ÓUklkU±šI„ÇÞkƒ±@šƽJƒ™@UġIk@W¦™VÑșÓÅnťKULnޝX›ƒ@¯mUÛ@WřmóKknōbƒxÝ@ƒŽU@kw@ÿÇLţšÝUkšmwƒŽk™lċVŚU¦™ŽƒLkUWlÅÑ@aƒ@ÅѱUóġʼƒÈĉmŻ@@wkw™Kl¯U™ġ@—„lÇU™Ó¯_ƒ‚Waĉ²Åló¼VbknƒKǎÅ@ƧĢō°Ý@ğ„W™ÅxUUm@™‚ÝXۂW„ULUè¯@mbUaƒLƒbUWġxIUJWz™a¯b™y™@ōÈóLU`ÇXUl™UĉV¯n›mÛbǕLklƒUĉVƒšóaġ„ƏbġKţnkbÝmmnÝWȭȃŽÝXţWókUÇl¯U¯‚ġUɅĀ@°¯„„š¯„VÆnmJ@ĊķnóJUbÝXUlVškL@lVxnnmb@¤Vzš`ÞÞŤ@„VnÆJV„°b„UôJkzlŽkl@²óš@ÆÇ°k˃šÇbÛU@lmb™XV˜kzƒV™ŽɅĀXˢlń„ĬŹ@›éÅ@ĉńưğbUšlŽɜ_°‚@xŦ˜škbVbƒKĢ„ŤVŎް@żÈźlĊ„ôKôb@nôxŦ„Æ@ôŽŎL@þÆb@šnnšWˌbÈx‚InaŎxlU@Ѳ±ƒğVŨƨbɲ@Þ¥ôUUķWVô¯ĊWʶnôaŤˁ@£nmnIôŽǪK°xUXô@Ŧa°m‚kXÆÞVŎkĊ°ÞLȄôyVašIlwX°UVwĢÑÜKôw@nV@œm°nmŽn„Ü‚ɞ£VbmŽXnƒ°ÜÒ@xx@V‚b²UlbkxVnšJUnVVĊ°KȚm°nxÇnn¤±¦@ŽUXVV@„lV„„bmVVȁŽVxšÒ™°šIšbźaȃšbVwš@šƒVL„™ƾÑ@ƒŦô¯ĊkôÑ'], - ['@@„@šƒ„@n„òVœa‚w²bVxšxÜaČVô_ĊJšIVmšL„a°@Ŏ¥XlK@ƒšk„l„KVbUb˜@nUĢn‚aÈ@lmǬ»Ġ¯œn‚mnƒƨVy™Ñǖ™Ġ»ɲInŽ‚@@ÅĢƳ@¯°™ôV„KÈbVIÇ¥¯@Ýó„™@ÑnīWKšƒk™‚k@¥š™¯™Åa™Xƒ±VÅw@±Ġ¯@»™š™n™Wmw@ƒ™@¯ƒVƒUUWçƒKĉ„a±VkkƒV¯w™x@šUJ‚x@bknÇb™mÅ@Uw±U¯¦UŽ™Kmš¯I¯Žť¼ğĊ™@ǃŹÈ¯@Ý»ÇnˡJƒbÛèÇnƒ„ÅK¯„ġĠʐW¼Ålm„@¤n²ƒŽÝb@b„š¯lƒ¯@ƒšÅ¤W„™¼nV@x„„°@Vx„@lbUblbX¼W‚œšÇ²lšUŽ@¼ŽV¦@bÇlVxUbVxÞbVšœbm¦ƒVV„'] - ], - 'encodeOffsets': [ - [[ - 100452, - 39719 - ]], - [[ - 91980, - 35742 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '6327', - 'properties': { - 'name': '玉树藏族自治州', - 'cp': [ - 93.5925, - 33.9368 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɆÿĢV°°VÈklVôŤXÞW„ȮÇÞXnmÞnlaŤmĢLƐãôb„™ĊU„VlkǖKÜaœn°mĊUšVVkÈWV_ôKŎǚ@šz°ašbXyVI‚JĢwVX„a„KVbna°@VçVKXƒÜÞWšn@VVÆwXšĠƒÞ@Ŏ¯ƨġÆ@ȍ„LlmUaô»ÆkĊ±Xb„°`šÔV‚kȘƒĢ@Všk°šLlx@xż@Ċn„Çź»ô̲VÆÒ„@@bÆÒXklV„KšV¥Æ™ČUšk‚l„nxl™çƒ¥ċç@±m¥ƒwÅJƒ@™™™Vƒ„mÈIléÈa°U¥™™@kÞV‚K²ÑWƒ°w²Ñ‚K²ñšyƐ„ÝšVmw„»kkWĉ—JWUƒVÅwƒL™mÅ@@ƒmw„kn¥Vу»°™°@@»„¯„Lla„JônV‚UůƒU@W¯Umѯ¯k@WykU@¯„wV¥ƒkVwţƒk»šwWǜĉĶçšK„ƒÞ™ÇaĉbƒI™lUƒ@kwƒWƒXUƒ°w™±@UšKn£Wĉ—KWxƒkĕVƒšamwXw™@™„Wmnk@aƒVkƒ™bĉLƒl™Imm„wUÇ‚Wx™nÝJn@¥Æ™kwƒaXƒÜĉ™¯ÅV¯¤mkƒx¯kķܙ²VWôŹVUƒƒ@V£™¥@ƒ°wn@™m@¯@UbUôķŽmn@ÆÛ@ÇýVaUÇĊVƒ@Çlğ—¯xÝŤ™lVÈÈVƒx„ƒ¤Vx™„kK@™@ƒx@„kVƒĖġ¥kIWbXŽŎx@nƒxÅUW`ƒ_—@±ŽUa™LUxƒK¯„WbkVlb—bmŽƒLÛÆWIUwƒWkwÝV@kI›ŽéUb›UUk™V¯Km¯k@Umݐ¯m¯›m—L›Þĉ‚ÛUm™ġ£UxkKm°™Lw›šk@kšƒVm„ƒKVUk›@¯a¯Ģ™móKUU™x™ImlÅn™™ÇbXèVVU„°„@ŽšŽ@„‚xXnmš™ššŽ@¼ğ°@²ÆxU‚„²šWÆb°š™š@¦llš™„XLmĬ@҃šÞô°@ȦUJÇaƒLóU¯š@°ġƴ@Ɓ@mɱJğ¼ǕššÒUzƧ‚m„n›mğ°ǫ¼knÇ@bġmmV—@VaUaƒLƒk™l@„kLW‚ō¦¯@ƒb™KUn™JĉIó`ċUÛb™wUw±ax›bñUmƒƒ@™„ƒ@—bƒaƒbǏÅXm˜„ƒÝ„ÅôVbގ™bl„UšÞVޚ„U‚°„VUxƒ@U„V„@l`™¼nL@Ċ„LW„„¤kXķWġXUVVVķ„UbVb@°kVVxÈa‚@ȦĊbšaźJ„U@Ț„„˜Vœƒlš@XkôaWƒĢ™Þ@laĸUÆb²mÞLĠ™ÞÑôbšÒĊa„JVbm¦'], - 'encodeOffsets': [[ - 93285, - 37030 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6326', - 'properties': { - 'name': '果洛藏族自治州', - 'cp': [ - 99.3823, - 34.0466 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÞVŤ™ÈK@ĀlxV@„Þ@„wŎalmôLšnXÆÜ@nV‚°@œ„°WmVKŦLÆmȚԂҚUX¥l@ĢJVš@„ŽƾI@w™W°™™Ån¥›kÅÝVwôƒÈç„@lÑĊĕša„JnaÆLVw°kny°UnkÆVȍĊll¦„Vƾ@@™nUźƒÈǂIn°X„wÞKô¦VWV£„@£°ókċ±I™™am¯Va™»ČĉV¥°™@m„k„¥l@„Ċm@ašU™mwXƒ@wÆxšmĢ_„`VnÆbšKVw„@@ƒnUVğVmVVöIlŽl@@çÛmƒ£UDŽw°@VUƒ¯»m¯ƒJōĖÅLƒa@»ĉ̱`U_k`ÇçšóƒkX™lK@ƒakÝރš£WċkÝ™kxƒJݯÅw™xķxmIÅx„@k±J@ýŋš›¤UœkŽmV™°ÅÝxkwmġƒnÝVU„š¦ƒŤlmšóXk¤™UKƒç™@mVkK@klīƒ£mš¯VUbƒW¯¼ċb¯ĵam¼mVX„m@k¤ÇX‚ÇbƒUƒ„¯J¯„¯È@˜™bVXVҙ¤V¼kxݚV„@l‚V—„WxÛ¦Wš¯šmKnlŽkŽ‚šU‚@nƑUĉ„Ý@ǺۄċUĉ¥™UƒÞŏ™z±òL±Ò¯xX„±ÒLÝU@lššV¦¯‚ÇbkêÇJƒnU„šš@š„‚ÆI„xn¦‚‚@²Č脦‚è'], - 'encodeOffsets': [[ - 99709, - 36130 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6325', - 'properties': { - 'name': '海南藏族自治州', - 'cp': [ - 100.3711, - 35.9418 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VxƒŽńƒš@ĊĠŽĊXÒ°UƾĕÞm°£nb@‚@LUUW„Ûº@nlÆǬšĠ£ÞV°UXb‚VȂǵ„éƒ@kWanm°@™x„z„K°¯ĠVšƒVƒkw™Lnm°kÞxÆa„¥@‚wnĉƏ@™œ_l›š_VwšmĸèŤÅČU@™˜Wn@ÑmKU™nğƒK@ƒ°¯UÿV£nmšLl™„UƒUÛé±óókkmƒnƒakV@ǰóÝXƒWəÞťIţxmm™VÛUVȂÓnWyȁĉkƒVš°WnkĊa„¥‚_œK°ÿWna@ƒmU¯wƒlÝIU¤UXó¥ÝLƒx¯WmJÇÈŹ„mV@šƽ@ƒUk¥ĉkċŽÅUml¯Vmz¯lUxÅKmbƒI™bĉĖk҃@Çèó„UxÆÞœlm¦šÆ¯ššX@x™Ž@Ž„²ÝlƒÈ™JV²klVl¯ÔlšĉƙްlUǖÞ@ššĶ¼nŽUôôŚ'], - 'encodeOffsets': [[ - 101712, - 37632 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6322', - 'properties': { - 'name': '海北藏族自治州', - 'cp': [ - 100.3711, - 37.9138 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ōmġxƽUm±Lǿþġԙ@kxmWƒb¯I¯‚mIUx@bƒbŹVǎƒkĵbƒlĉI¯¥ƒUšm@ƒÆ¯È@šašóšUlƒČ»@w›œ»›wXaƒƒó°ţç݄kUƒaV¥ÅbÝw¯lmnšKlxU„™„ğU¯°ƒLƒyšw¯@mnXb‚l„@ƒêȁǶUWa¯VÝUğ¤ǫ™kÅ@mܹXƒVV@K@ma¯¤Ýnƽ˝V@„ƒ¼„ôlèk¼„¦˜xXŽlbnKšÆx@Ž™bUx@nnxWJţ¦ƒmƒ¼ñ@ް¦lUÞlÈ@ĠxÞUlxÒó„ƒl¯bmI™ŽÝVÛaÝnƒxVbkbÇwřÇKn±K™b„šƒb@V„xšLmŽÛŽŻbk„ƒVó@™šŹxó²›Wkb™@¯U¤ƒźĊ@lUX„°lÆôU„ƒlLX‚aœV°wšxUb°xÜôÈKVkÈmlwškÈKšwšK™™VUŤĉŎ»„»„Il¥na°LV»²¯Üy@w̃°ĸwlwĢw°±„_lVkš@°ƒbƒÆ¯zƒ‚„š„@l_„@̱lŚVlUaރ„LVƒnKlnȏ°IllČa˜wÞѰx„UU™@wƒVkmĠLô»„KÞýôaÞ¥ôĀÞmƁ„™‚mUƒŎV¥Èl°²°a²¥V„@@w„amm@Ñn@Æ£żƒVƒĠ£@W„¯Þƒšl@š»@Uk@'], - 'encodeOffsets': [[ - 105087, - 37992 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6323', - 'properties': { - 'name': '黄南藏族自治州', - 'cp': [ - 101.5686, - 35.1178 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôl²ôÜê„VƒVkš™KmnU¤V°@„„LmĠVšnLÈL@alb@al@n°Vš_XmWUÈamaVIn@n‚aV£œóVWƒ™U£°ašxÈ¥@™‚aĊwȹ@óša™ƒğbm@k„w@mƒaÆw@ƒ„In¯mmƒ@UkkWƒÑÅ@@kċÅçVkÝJÅkVykŹl¥@¯š™ĢU܃X¥òý—mmX™ÝÅlmU@£™Wly™XW»Åbƒl@aI›»k@klm@UxUUƒVƒ¼¯Xƒl™aUnķ‚ƒI@x™@¯„ƒK™„ĉUU`óšlȝô@¤ƒÞJ„k°xVŽ„n@ŽmbXޝ›L`ƒ¦ĉbml¯X™ŽUŽl„ȂĊXzm‚ȁÔU‚ÜVšUnnŤwŦJɚ݄XÞW¯ô@ÈlU„b„mln'], - 'encodeOffsets': [[ - 103984, - 36344 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6321', - 'properties': { - 'name': '海东地区', - 'cp': [ - 102.3706, - 36.2988 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@҄bš¤ÆI°ôU¼š°UŽnnWx™š@b¯L@lUUWbXxWl„ƨnxVUllš„XVŽUŽnL@lȀý²KVnƾ‚ĢwV»ƒ@mÞ£nÆƒÞÑmL™ƒKUaVżĕƒWVk²ƒƒÆÝ@ƒXw°@„ô™@a°wóUUmIk™™aVmÞwmknyƒ¹VÿƧnŏm£X»˜™naV±„Ýw@ašb@aƒm¯„ĉVó¦kÝWKUU@WanU™b@ôǺĉxb@šÇ¦™w¯bV¤„šUX›ôU¤bmm@UJnbÇbXVWn™`¯Umk@@bka@bÇK'], - 'encodeOffsets': [[ - 104108, - 37030 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6301', - 'properties': { - 'name': '西宁市', - 'cp': [ - 101.4038, - 36.8207 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@kmKVUƒWk™VkUmwƒƧXkWwXaVV@k°K@aš™XwmmV™¯V»¯óÅJ™£ƒamŽ—X@šċVţÆķç™nUx™`kœ›`@šÅmĊx@Žƒ¦U¦„blVރŤèô¯„„Wbœx›¼œŽ@xċ¼k„™V™ô™bÇ@Ű@„™n„V°¦ĊJ„kĶa„lȍźU„a@aVwnJ°°J„anXlwš@ĢÓ'], - 'encodeOffsets': [[ - 104356, - 38042 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/shang_hai_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '310230', - 'properties': { - 'name': '崇明县', - 'cp': [ - 121.5637, - 31.5383 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@uŏu»GPIV±ÐɃŜ{\\qJmC[W\\t„¾ÕjÕp‡nα|ěÔe`²„ †nZzZ~V|B^IpUbU†{bs\\a\\OvQ’Kªs†Mň£RAhQĤ‹lA`GĂA@ĥWĝO“'], - 'encodeOffsets': [[ - 124908, - 32105 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310119', - 'properties': { - 'name': '南汇区', - 'cp': [ - 121.8755, - 30.954 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@`y”ĉNǕDwǏ»ƒÖLxCdJ`HB@LBTD@CPFXANC@@PGBKNECCBB@EBFHEDDDSNKAUNBDMNqf[HcDCCcF…@EFGLEBa@ACoCCDDD@LGHD@DJFBBJED@BGAEGGFKIGDBDLBAD@FHBEF@RFDMLE@SGANFFJBANPH@@E@FJjRIACDMDOEKLFD@DbDAJI@AP@BGHFBCBGDCC@DCA@CECGH@FKCEHFJGBFDIHACEDNJDCVFBDCRKRLDLITB@CjNJI^DBCfNVDHDFKHAFGDIICDWBIF@@CFAjFJNJBBHD@CJ@AEFJ@@DH@BFBCPDBMFEQGDIFCNDHIP@HDABFACBJFHEBSZC@DP@@JDBƤ~'], - 'encodeOffsets': [[ - 124854, - 31907 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310120', - 'properties': { - 'name': '奉贤区', - 'cp': [ - 121.5747, - 30.8475 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@~T~JjZdDbLXDLCB_J@@FHFZJJIAGH@HGR@BENBLID@@LFCDF\\FpDBDb@FAHKFE†@dEDDdC\\GreNMACVMLBTMCCFCEGFAA@DAFDLMHA@OD@BMEWDOC@AS@KGAI_DcKw„ÕísƝ‘åĆctKbMBQ@EGEBEJ@@MBKL@BJB@FIBGKE@ABG@@FMFCPL@AjCD@ZOFCJIDICIlKJHNGJALH@@FPDCTJDGDBNCn'], - 'encodeOffsets': [[ - 124274, - 31722 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310115', - 'properties': { - 'name': '浦东新区', - 'cp': [ - 121.6928, - 31.2561 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@EN@JJLNHjLJNR^GRYVBNZJRBV@PDvbLNDN@LGNER@nCNQNuT_TIVFV\\Z\\XnDrI|[Ʉś²ÏJUHOƣ}CA@IO@@CYDATGFIEDAEBBAGCO@GJMCEDCJRHEFANOCADAEG@@CI@FE@BDIC@AGIAIMiEEB@DE@AJCXJDCJEHGBELGCUCeMAD]CIJiM@DSAKJKCLQDQACUECDMIFCBDJGECHAEIWCK@GLMCCGEACNKCEJG@MMBMC@@CIJUINT@JAJSTEPZZCP'], - 'encodeOffsets': [[ - 124383, - 31915 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310116', - 'properties': { - 'name': '金山区', - 'cp': [ - 121.2657, - 30.8112 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@L@BIHFN@@EE@@EFBDGDAADVDD@@EF@CA@IIsRE@GDAF@BF@CV@|FBCHBLCNHAFCADBMDCFZXHILBVEEQA@MWFARJJ@DCX@@TEFBLHAAERE@AJABRPBNK\\BrJ\\VHGND@CNADKDADQjGAGNC@GJ@FCFFHC@JF@@dLBDSFADHVG\\DTEPDDHJALIJkJDJCDIPE@YDCBiK@DONE@EH@BAF@HLJA@EIA@ALKNA@@FIFAFHR@NALadsæąyQY@ƒA±DʼnXUVI^BF@FFF@HBJEDFFGFEBSRkVEXGHFBMFIVW@GAEEFOIAIPKABGWEKFSCQLQBSEIBC\\FdBLRR@JGACFDDEF@AWB@LJJYNABBA@CUEGPaO_AIE@MYMFIGAEFECHSAAKAO\\[JEDB@E@MMA@@AGBKMGDFFCDDFEDFJF@NPBAFLHFH@EDDHBADDC@DDCDHHCDDFDABDAD@FEFOBCJ[D@HEDDNJBDDHABJIBBvGLBJAH'], - 'encodeOffsets': [[ - 123901, - 31695 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310118', - 'properties': { - 'name': '青浦区', - 'cp': [ - 121.1751, - 31.1909 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@RUNKdOFDJCbRFMLAHPLDN@JGL@@APBWYCKN@TU@SHGCEJIDIJKVIZVNM`iNY@CIE@CA@KBOEGEUFCCSADEIEFCDDDIDDHC@CKIeDCG@IG@DHWFEEGCH@@GO@@O]CNpeEQDBFME[JC]DGF@CKOA@QSB@GB@@GW@@ED@AQIJIAAFE@@DO@CFI@KNG@CDACAFEGKGBEGBDCCAIFCCLIECFI@MBCLDHGNAHSF@DMB@EEKBA@@C]DEICFG@ADBHGFKCDAKKHKD@@FHGAANGEEFCHKCECBCKG@ADKCNE\\[A[I@@mGBDQQEO@BCE@AI[AML@JGACLOAFKEMM@EQKC@CUCBCCBCHEA@FF@@FM@GEAJK@GNF@EXPH@FD@M^@HIADJCFDBER@DK@@DE@CAKFOCCBDHIBCNSB@GFC@GQEEOWFICGDUAEJIDBTAHJHEB@DIF@NE@H|HBDBEH@DKBAHEF@HEEUB@FGFGCCCE@AHOB@NH@PRLVNNFBX@RC€PbAvMtBfH@DJF@ELBFA@EH@HNED@FFB@HLC@CJ@@DJ@PIRf@HE@CFF@GPHD@DKE@FFBEFFD@DEFCA@DD@IjCRFBAHFDKD@HF@@PM@H@BlbDJDBFEF@DLXB@HCD@@IFCBIFEJD@FDC@FBALLF@PAACJERACAJCBD@EL@JD'], - 'encodeOffsets': [[ - 124061, - 32028 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310117', - 'properties': { - 'name': '松江区', - 'cp': [ - 121.1984, - 31.0268 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@DLDFRN@FNELPBDKHB@INK\\BBJF@ADP@RFCRHA@nJ@B\\[\\MFLDBCH@DLDADFGLEDFFMHBBGH@EC@GLLLCBLDHEAGBCH@DEFJ^C@DB@LAFFA@CNE@GTMBGHKCAD@NEJFDKJDDJEDBCDHAAFLHFHBEBDDCH@LMJ@DEP@@CF@BEJBJIBRC@@FX@@HA@@HTA@RPBDLE@CHD^\\INFAERCfFMo^D@PP@@HG@HDFFXECGH@@JDHfCLJ@DGDCCCJCCEDJFCFTBDDVEHFPFLAB@NBFCFKFC@CHIACNOHWHCAAFIDD@CDAGEI@ACFMF@R@R_@GQED@EGFEQEDE_IAHKAEXCQUOQCUDEN@ZI\\DDmAMHCICDSOC@EG@BKHIGMIBCGOCSF[CUHCGEBCTKA@cE@@IGDEEEDI@@HMDBHiHCRCBCLMB@DMCGH[UqI[AMLOAAQIB@BQFBFGBAKFE@SW@CDI@QIEBNXB@FRUFKAGJYWDENCCADBBEMGKDGAAD{EU@@DAEE@CB@HQFJt@JDBE@@FC@'], - 'encodeOffsets': [[ - 123933, - 31687 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310114', - 'properties': { - 'name': '嘉定区', - 'cp': [ - 121.2437, - 31.3625 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@F@LI@IDKJADKIEJICADGACFECCJ@HKCAFOHAJI@aCBEE@ICAEB[GFGCKL@FGEIFADMLCAEJM@ELQECEIG@BE^QKKLQCA@EHBIGQ[GEHOMGGDHKH@JOECFCjCBEFDNCACMBCILGTABDLEEOEIG@GFIMM@CGKFBFCDE@@GEAGEEACIcGaHMFITIHDN[AKF@FS@OA@BK@IHM@KCGOKBENaQIDECcPMLQVFHFB@BFBKLGD@FAJOVGIACQ@A`LPCB@JEF@RU@ANS@@RCL\\HIFpRBFRBBDKLLDADJDGBFDABHBEDNF@DGBBBADKDAHC@\\JJFBDEH[DEFDH\\LX@XLBLbT@DNJLDCEL@VJABJNDHB@HBHYFBAA@GNFB@@AFB@AFABFLFBHFCL@HJBAFBLC@DN@HN'], - 'encodeOffsets': [[ - 124213, - 32254 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310113', - 'properties': { - 'name': '宝山区', - 'cp': [ - 121.4346, - 31.4051 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ˆmÖoÖiƒ½[s[YEUJU`SCIEBCCWJY_LIICDWU@@FaBCJIB[ICH[@@CDKEE@MK@@IMCAEBCH@AMFI@SMGEFGB@FK@BHCAIFJNQD@FEBDFMBKGACG@ECWH@@CDDTOEEBGEK@GC@EE@GPHFR\\JHGA@FDBKRLL]RAFH@FJFDKR@FINBFKDCNEBFJEHK@DLEH\\HFADB@JFFDA@bIJGBEPDBGLI@DDEFBDCHDBIJJFCLIBCL@JKJE@ADHDBHJ@HIBBDFHBBAEIJ@BJFAVL¢ˆ'], - 'encodeOffsets': [[ - 124300, - 32302 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310112', - 'properties': { - 'name': '闵行区', - 'cp': [ - 121.4992, - 31.0838 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@T@@ELE\\BCMJGJSNEbGdHDJFBJAFIEIFCEWG@@gMENSFCVJFAxR~B@IH@AIiI@GE@FGEAFQPDRiV[\\DFSGMHAXHDOMCJCDETBBNVJJI@DD@ANNNH@FILDDMFBDHNDHKL@XDFGLD@EHGFD@DDB@CDDHCDAEAHG@ABOJ@BIaC@CECLKPFNCDCJBiQEIF@@@OGBMIAEEBMTHF@NKEC@QFEGA@EBCKAACHCLJHEFHHB@AFCAIEACIC@HG@KCCDC[ECEED@KC@KJMAAFQ@GHG@BHIJYIGE@EI@A`KDWCaKcCiY}I}S[CYJM@CFDVPRRVWDFžLBBG`JCFRFEFFHC@RF@HQ`Q@E@ENBDJ@HFCB@DCCEJBBGDGXMPBDGJ@DEDELEDMA@DJF@DMZ_jMNYUUJILCJIJDFGH@TSVM@DLXZ'], - 'encodeOffsets': [[ - 124165, - 32010 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310110', - 'properties': { - 'name': '杨浦区', - 'cp': [ - 121.528, - 31.2966 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@V@CXJDKJZ`XIDDFADJvSRMDM@mFQHM@KCMKMuaOCU@BDAJSX@HKJGD@PNJCJWAGT@R'], - 'encodeOffsets': [[ - 124402, - 32064 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310107', - 'properties': { - 'name': '普陀区', - 'cp': [ - 121.3879, - 31.2602 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@F@@FHDL@HFFAPFCSDC@@XGFDH@BDLHNACEFA@ERCIMJEDBAGL@@EHAFENHHJ\\ONQBQCIBC[MKACKI@GGGH@I_G@CW@[DMHCDIBMTDHN@JNHEH@FJFPKFACSBKHDJNABDMDECAFiDEDFDIPG@GLHCNH'], - 'encodeOffsets': [[ - 124248, - 32045 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310104', - 'properties': { - 'name': '徐汇区', - 'cp': [ - 121.4333, - 31.1607 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@RADL\\NCPHFfLJaJ@FWLGMGIK@IFMDOYYFOTSBI@IMSAMSACFIDNDCPWGGBHNET[CU\\QjOCERFBEHF@@HjJBJG@@J'], - 'encodeOffsets': [[ - 124327, - 31941 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310105', - 'properties': { - 'name': '长宁区', - 'cp': [ - 121.3852, - 31.2115 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@HFFB@HF@DCAELENSJADCNG\\CX@@D`H@JHGHHJ@BINBFUGEDO[MCKQB}AwQEBUIEDMTNF@hH@FXEDFJEJIB'], - 'encodeOffsets': [[ - 124250, - 31987 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310108', - 'properties': { - 'name': '闸北区', - 'cp': [ - 121.4511, - 31.2794 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@CSG@BQGODUPWTOBQAAFMECKBGEMFKEOHADDJARMR[PGI@TEJBNG@ADBFND@JL@@NFFCL@D\\@DG\\JJADI'], - 'encodeOffsets': [[ - 124385, - 32068 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310109', - 'properties': { - 'name': '虹口区', - 'cp': [ - 121.4882, - 31.2788 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@bA@E@QHSXBDIMI@OHCLI@GTWBIACQAYIOFGCENBBARSPOXCVHPARH@DT'], - 'encodeOffsets': [[ - 124385, - 32068 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310101', - 'properties': { - 'name': '黄浦区', - 'cp': [ - 121.4868, - 31.219 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@NEHFLAFDHDPEAMZUHQQ]IMKJG@EPERABHBGRUCCNGV'], - 'encodeOffsets': [[ - 124379, - 31992 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310103', - 'properties': { - 'name': '卢湾区', - 'cp': [ - 121.4758, - 31.2074 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VDHQGABAFQFOH@LIiKKHEXI@IbAFZB'], - 'encodeOffsets': [[ - 124385, - 31974 - ]] - } - }, - { - 'type': 'Feature', - 'id': '310106', - 'properties': { - 'name': '静安区', - 'cp': [ - 121.4484, - 31.2286 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@DLLB\\NPGLFHUDMYABEeKEVMAAJ'], - 'encodeOffsets': [[ - 124343, - 31979 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/shan_dong_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '3706', - 'properties': { - 'name': '烟台市', - 'cp': [ - 120.7397, - 37.5128 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ŤLšLllVń²è°xżĢĠÆl҄šŤbœ„V¤ĊXnŽlĢVĊ„Òš„ȰĊŰÞè˜L„±@џn»VUźċ²»ÆkôVɆkĊѲkŤVVwUUVmUaƒ@KkU@ƒmUmmk@UwUkmW@UVIXa@ƒmw@a™KULƒaƒx@Uk@UbWU@yULmK¯@kXƒVUwm@@JUUknWKUVƒLUbU@™wWykIƒa@w@mUI@ašUVynIWa„k„@@W„bl@@knmƒK@wnIl™°Kna@V¥ğ@ġUķ»™¥@UōJƒX¯¤k@™wmI¯‚k@mwƒak@@šlX@bUJ@VƒbknWxkLkxlŽšLVlkLmŽšb@bU@ƒbU@VbU`Vb@n„L@Žmb—U@˜VnUVmnU@mm™@kIUWVIUK›VkkUJUnmL@VmLUaVWaXamU@™™U@KUUmVƒU—JƒU™VÇwğn™mƒ@mXĉV@l¯xnô'], - 'encodeOffsets': [[ - 122446, - 38042 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3713', - 'properties': { - 'name': '临沂市', - 'cp': [ - 118.3118, - 35.2936 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˜bXlƒl@zlV@lXXmŽkbVVlš„U@Vn@@Vmb@XšKšVX„WJ@XXl@„‚ŽÈbVLšUl`„@XXV@VVUxVbUxVbš¦„@‚WnXVJ@bnVUzl@„°Æx„U„KlU@mUUnUlUVWVUnVV@XX°V@Všll@Vk„aXVl@Ux@bmbXLlKlb@b@bUJn@@„„b@n°x°K@an@@UlLVKVbXb@bVVnK°LVa@UVa@™Xw‚KVxnLšU°@naV@UWUkWƒULmV—wÝKUUla@aó_@mƒK@aUU@ƒWUkwVm@aVI°W„@@IUw@a±¯@¥kUVUm@a‚wkw™@ƒK@kVKk@maXalI@alL„WXblaVLVU„V@LnKš@„l@w˜aXašLlnUl„LšmV@n°J@_VmnIVym£UKmI@WnIVm@anUVmÇ_kġIÅWUXÇm@U@ݯÅ@ƒ™@naWƒ™IVW@IkK@klKn@naWIƒmk@ƒaƒbkKkLWn™WkLWmk_ƒ@UaVƒUKmLUw@mn£WwUmU™ƒaóV@UkUm@UKULUwmJUX@WW@XҙzVblJXŽWXk@UVWK—X‚¤UL@xU@ƒ@ƒVUaU@@XmVkLmWkXUyÝLmKXnVŽ@n@l™x@bWLnVVn™`knULmxUl„„WLXŽVb@VƒK@z¯x¯¼Wx™KUn@bk@ƒlƒVVVz'], - 'encodeOffsets': [[ - 120241, - 36119 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3707', - 'properties': { - 'name': '潍坊市', - 'cp': [ - 119.0918, - 36.524 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l@@UšK@Ž@L@bX@@VlL@JƒLUVnX@`ÜXn`V²mJ@bU@@n„b@l°xnnĸVƚ°@„ƒĊ£Þ@lWnÑnkʶJmó°w@kk»V@»ƒ¥k@V@kw@wVm„a˜Å„mšaô£ŎƒXI@mln„Kla@mV_UKƒ@kUkw@alW™IU»™mƒ—@WUIl±UUÅU›bkJƒ@a@wUKUaVIÆmXIWaka@m@Ul£XKVw@ƒUIƒJUkmJ™ƒVkU@a„ƒWK—ImVƒ@UxmL@bX`WXU@U`ÇkUak@@°UblXk‚mLUKmL@VULóƒƒVk@@Vlbn@Ub@ċaUJUbƒIUlVLUVVbVKX„VlVXU@mb¯@™VmKUwLWx@šUb@VUb¯KmLUU@aWaUaULkK@Vm@@b¯L¯w@mƒa@ƒm@UUU@U¦lJUXƒVƒmkb@nm„XVWŽkb™IVxUV@VUbWLXVƒLW`Ux@nk@Vn@x@VkJ@œV`mXkŽ@V„xV@lVššI@VULš˜VU„IV`°bVXXx„V@VWVnL@xV„Ub'], - 'encodeOffsets': [[ - 121332, - 37840 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3702', - 'properties': { - 'name': '青岛市', - 'cp': [ - 120.4651, - 36.3373 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„@nU˜JXLƒ„@blVU‚š„nIVl„IVJ@„UxWLk¤@V@nlbXbWJÅnUJVbVL@x@b„ŽlIœaÆVVVk²VJ@X„˜šnV¼šJkX@blxlV„@VLU`@nkbƒLkm@nWJō„ó¤™bƒn—ƃbUn@xlxU@l@„¦@¼UŽl¼ĊUnW„@šnĠmÈxšU„V˜I„VnUVV@LšV@šnVWbXb‚UVbnK@UnKVmVIllœUVLUJVXlJš@nnV@nmVUUm@—˜Vna@ƒK@mUaV_UaV@„aV@@a™anlKUk™KklwlKXwlm„a@UVI@akW@™l@„bnxl@°nJšxl@°£„WŎIUÑn»lašmô¹Ŏ¥VaUUkƒmkġWɱIUUŹ`›@kk@ĉƨřV¥_Ç@™Ĭƒ¤ÝL¯m¯£ƽóķwUW±ī¯kōaĉĕ™kğmó°ƒbW@UKkLUaƒVmz@V@ŽUxVn'], - 'encodeOffsets': [[ - 122389, - 36580 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3717', - 'properties': { - 'name': '菏泽市', - 'cp': [ - 115.6201, - 35.2057 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@¥šIVUÈmÞ»@UlU@Un@VW@UVmkk@aVUUKVÝ@UVknK@UV@VVnIVƒ@wnƒmwmKXaWaXI@UV@Vy²blkVKkam™U@kb@Um@VmUkmƒKmkXKWwkU@Ulƒ@UnK@UVUUm‚KXwšUVL„w‚K„U„@@Wl@@wUkV¥—@@I@W@_V@VWUw@UUa@aƒaWa—@@_mKUw™l¯amzmV—@WK™nU@kƒWLķaUKbÝVmV@UWÇbÛ@ƒX™°UbW@XŽm„Vlk²UJUbmLÇxÅWUzl‚¯Ll„@VkK™XUbWJ@bU@¯@™ƒkbƒLmKka™„@l™_WšXºVbUz@J‚n²V@¤lX„Ž„nV°šLn`WbXLôVlKVUšxXn˜lXLlU@bVV@„XJWLUVnVV@„„@n‚l„°nn‚V„KÈbVXÆJU°VnXV„kV@@xVL„@šWlb'], - 'encodeOffsets': [[ - 118654, - 36726 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3708', - 'properties': { - 'name': '济宁市', - 'cp': [ - 116.8286, - 35.3375 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nam_nKlVLXa„Il`š_@KVVXI@m@w‚ƒ„@@k@Kšnô@n`VbV@@L„L@KVVn@VX@‚VL„Jl„š@VUUƒU@Uam@Uk„wšKWaXamkJmIUVUÈblašUnV@kVKl@@lXL°kVJ@VÈnVJUX@V‚LXl@xVLnU‚@VK„V@a„IUaV@„bĊU„x„K‚kVJXUlV„ƒ„UVašI@WUI@KlUnw„mWk@WXIWƒ™U™L@Wna@Um@@UƒVk™UUlanWW@kkU@y„kWk—aWVUlÝbUU@kƒJUIU@@ƒ™JmaókƒLKǃUUkKWLk@WbkUUaƒbmKn¯°¥V@XwV@VanaVaU_@Wlk@WÈ@VUÈVVۂm„aklKȯlLVUX@lK@aX@@kV@VmV@VwnJV_UWUwƒX™am@kW@wVUkKVIUUVmU@UV@IVK@aUL@aƒV@Lm„UKmx@ށômLkUWJ@šnXmlUxUL@Vkn›VUšU„@V™L™`Ub±LkV@kUKÇbÛ@ƒU™Wó_mJƒ@Wk@@Xƒ@ƒVLƒxUK™VWxLVnUV@VmL@Vk„@VlVXxWLnl‚Ln„VlUnn@@VlaV@nšlbULkl±aUzU@@VWJXbWbnLnxm„@xU„mJUUU@@VmLUl@VUÞVLUV@bllUn@VUXm@@VkV@VݼÇnUV™J@¦nnƒlnVlL@„Þb°KVV'], - 'encodeOffsets': [[ - 118834, - 36844 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3714', - 'properties': { - 'name': '德州市', - 'cp': [ - 116.6858, - 37.2107 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„¤@VmbVXnVVbVJššX@Žll@z„lVInl@„@bVxUbĠ‚l@Èbla„IšxXVWb@L™@n‚ULWVXXšWWLnL@`@LUVVL@lVn„JšU@UUk‚a„™nš‚Vôô„b°¼V‚ސXš˜‚œIÜbČa˜bôW„XÞWÈzÆmnLVJ°ÈnlV²lbnW@™@UƒUV™šmnwmkkKWƒkla@mVIUKUa™aUwmn™JU@@amIk@@bVlkX@mmUklUUƒƒa@_UaUUƒV@wƒw™WkXmW@I@WUaÝU@UXaWUU@UUVW@UUUWUn¥nUVa@m@k@alU@wk™LWa@UUm@@wnmU™wla@anKn_@alK@ݙ_ƒ@@WUUUmlkaƒIƒyU@UwU_Wa¯yU_mWUwkImm@InWWUk@@UVWV—kW¯U@VƒL@b¯b@l±¦@šVV@lUbV„@škxVnUšl¼XV@b@lV@nIWxnbƒ‚™@UU™LƒxÅxm¯ƒaUƒ™wU@mUÅVÝKULm@bmKUXó@'], - 'encodeOffsets': [[ - 118542, - 37801 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3716', - 'properties': { - 'name': '滨州市', - 'cp': [ - 117.8174, - 37.4963 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Vb@`„bV„kVlnV@nlWUk@al@nJ@bV@šInmVxšbVbVLUJ@nkb‚lX„lLnlmx™nUš„V@V@šmXn˜lbĸ@nnVx‚b@lnXV@UJ@nVxšxnxVbÆVn¯ƒĕ‚@@wÈçUÇlķVIœb‚@„Çmk@¥k@UkUK@aWakUóJW_UW@wkkWK@U@Kš@XUƒƒUkmUUalKXala@U@kkWlkÈl@kšV„mVIVmU_‚a„ƒƒwnwVW@wƒwUƒ@wU£ƒwkJWIyUI±bk‚VUJ@nmV™Ukl„Xmx@lnbW„kVƒUkLWŽƒxkKUUmUkb™J±—LÇxUKmkUmkkW™™a„mUaVkšJÆ_²KĠ@U„W@w„U‚¥nUWwK@aÝUkÅVaVK@akLWƒƒƒ¯I@bnbVx¯JW„ñšWbUL@šƒŽnV@VmbkUUV@IÇak@@bWak@WJUœJWL@bXV@„‚@„V„Jlb@zUlUŽUImšnbV‚mz@°UV@V™bV@@V@L@xLmKUnmJVX„J@VkLW@UVUL@b'], - 'encodeOffsets': [[ - 120083, - 38442 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3715', - 'properties': { - 'name': '聊城市', - 'cp': [ - 115.9167, - 36.4032 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ô@VWnL‚an@VKÞLÆUnVV@šxV„„bn°Æw„wšKVVš@„maXwmJU@@k@aWUk»V™Umlw@™UƒVa@kUU@™²¥@k°a@a„K@U›ƒU@mmm@ów—ѱ¥¯@@w™Kmw—I›¥kU¯UmakJmIUaƒVkKUkm@VUUa™Uƒ@UaƒKUK¯@™w™UVŽUIUKVw™k™¥™wƒbVŽ@xn„@lWnXxlL@`„XlJX¦l°XxW¦@¦Ul™n@Ž™@@Um@@VXVmx@¯bllUnUJ@VULVn@b„xV‚VL@b„„VlnVVblV„ÈnVlIVJœLô„lJ@xl²„'], - 'encodeOffsets': [[ - 118542, - 37801 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3705', - 'properties': { - 'name': '东营市', - 'cp': [ - 118.7073, - 37.5513 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ͬUǪlô@°Uœw°ōĠ¯š»Ģ炻XÇ@w™wƑa™ÇƒkwVƑ¯@řķUmm¯w@kƒa@mV@@anIU±m_ÛW@_mWVU„K@IkK@UW@@a@K@™L@Vk@±U@UV@lm@mUU@kLm„„xV¤@xV„„x@xUXmx„xƒ„bV`UnUJƒn™U@lÇkkllX@l@VkbWbkLVbnVVl„„WV™@@L@VXLll@xVXX`ôIlVXb@bVLVll@@¦nlƒÈ@›aUJkĸVÈÇè@x'], - 'encodeOffsets': [[ - 121005, - 39066 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3701', - 'properties': { - 'name': '济南市', - 'cp': [ - 117.1582, - 36.8701 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²¦˜Òôxn@nn‚@V‚œ„°VlXU˜UX@Vl@XVmX@JnnlJVxnXV`°zXbV`VxV@„z„JlbkŽVnVV@X„@š`@ÞkL@bm`mL@bkbšxnVm@xn@VV‚@XbšKl@xkV@b@l@nUbmVm¦XVVV@VUXVVV@XVWb@VÞVVb@X@JnXlWšX„x@x„UVV@aVKVUX@lK@UƒIUWnIVmnL‚K@w@K@UU@ša@UVU@¯nyUman™VJVVk@ykaƒIƒU@@ƒWU@aXK‚IV›XIl@Xb@al@Èb@JVUlVna@UmU„@™VKXaò™Xƒ°IUwma@aU@UU@wVW@фw@a™I±`kbƒUkw™UmJ@UkmÇUUkmKknUVƒ@mJUkaWkƒa@KmKkUƒLmyXa¯_@WmImmbƒLmUkVUbUVƒJ™bƒUkkWJkUƒl™IUm™k™Lƒ›„lK@knaVmkI@mWaƒLUK™UU@@VmLUVLWK@UUUƒWUkkVmx@„Vl™¦'], - 'encodeOffsets': [[ - 119014, - 37041 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3709', - 'properties': { - 'name': '泰安市', - 'cp': [ - 117.0264, - 36.0516 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n¼šŽW„nxšL@x°@š¥Uk@ƒnwlUVl„XVV@VXL‚KVUnK@UV@šVVL„KXb@nlJUnmb@lkLƒ‚„œšKšlVnšJ„klVXIll„Vša„IVUValUnV„K‚annnJ@X°`Wbnz„KlVnL‚Ž@L„bXl‚bVlnI„@VUU@UmVƒ@U@Uš¥@VmV@@_Ua@m°@@ƒ„kmUUm@UVmn@nX‚@@a„anJVUVL„mlIVJn@nkVLVa@KVmVLXVVLš@@U°bn@VaV@@K@aVkœbWaXUVymU@aUImWXƒ@™¥UaVwUaVwUUU@WWƒ@k_™VUKÇa@ƒƒnmxkV@LVJ@X™JUbƒVƒ„kUWVUIlƒLƒwĉVƒaU@VbƒJ@bƒUUL@mVUK@wWkK@UVWUIÇm@UUI¯lWK@kk@UL@lmU™VkbÇaUVVnJlIn‚WbXb™LƒxVln@VbV@V„UV™@kƒƒIUK@UWm@UU@LƒK@KU@Uam_ó@™m@L@lƒ@„@x@nWJUU@L™`k_ƒJWbUKkmLn`mb'], - 'encodeOffsets': [[ - 118834, - 36844 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3710', - 'properties': { - 'name': '威海市', - 'cp': [ - 121.9482, - 37.1393 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VbUnVVUxĊ¼š¼ô@Þф¯‚WǬLŎUÆW„¹Uǃō¯ÑƒÝkţ™™ţóġ™óL™ł̥U™wm¥kÝmkkKóbÝ@U¦@‚mb¯LkšmJ@x„Lmn@lk@ƒa@Xƒ@ƒlXbmJUz™V@bVJ@n@x„blJXzšxV@Va„KVUXLlmVV@In@Vx„UlW°@nLVK@zXVVal@@V„w„bVKšL@bnx@„WbUJ@VnXVlVxl@nnnV@„lV@L„‚'], - 'encodeOffsets': [[ - 124842, - 38312 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3711', - 'properties': { - 'name': '日照市', - 'cp': [ - 119.2786, - 35.5023 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@UaVUUKVk„JVaVIČb@Vam@ka@Ul@„Uô„VK@UnKVLnKlkWVa@¯l@VbÈlV_V@XWW_@anKVwUmVw@@Uny„UVblKVLX@„aô¯ó¥mÛĊÿÈ¥š™Þ¹lUīƒ¯Kĉ¼ʟbÇV™U™ŽUŽ™XmakJUnmV@bUnmJ@XnJVLn¤UzmJUn@`¯ImŽU@™nƒKVkkm™KWb—b@xƒk™@mL@KƒUUVUKkbWaƒXkK@bkJWbnbl@UL@l„Lš@lxx@b‚nUVlV@¦²°@bVx@Jƒ@¯XUJ@bUnlxVŽ„X@‚VV@b„L@nô`@bkbVVÞL˜xnU'], - 'encodeOffsets': [[ - 121883, - 36895 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3703', - 'properties': { - 'name': '淄博市', - 'cp': [ - 118.0371, - 36.6064 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nƒlKV@nVn@@kVU‚@²VVaUƒ@wmKXU@UƒUWwUW¯aU_ƒJUV™—VK@U™JU™@kUƒw@UlnWU_@›lI@U@wUml@@mVwX_„KWUXKVa@UVUUwšJlaXWUnƒ@mla„n„UVWkIV¥V@VVVI@a@akakLWKna@aVwk@WUƒbUlk@™k@U¯UWWU@mUUVUXkVmVVV@nkVƒLƒVÅwƒ¯k@WVXb›aUl@bV@@b@xkVVXVxkJ@nk@@ŽVLUlVb‚VXUVVUzV‚™LVbUbV„VWVkLmškJ@n±@UxU„VVkV@bƒx@ÒUX@xVVV@°J„„X„lK@bULUblÆÞV@b‚LXxmV¦ƒV@xƒXVŽğ@±LÅ`™IUlVbƒnšbXšllVnnlVLÈw˜K²ŽšIlanVVVlL„wXlK„VlUXƒma@knwƒWlkšVnU@mVIUl²aVJ‚zXJlI'], - 'encodeOffsets': [[ - 121129, - 37891 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3704', - 'properties': { - 'name': '枣庄市', - 'cp': [ - 117.323, - 34.8926 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚yUU„U„kl@@aVmšLXw°»°w@y„L@UUaWXKƒƒVknwVKlmš_UmmUXK@ašw@k@mUWmUL@ƒ@™@£@KƒbÝV@akw™aULmƒƒbUK™LUU@lm@—°mL@nUJVxVXU`mIUxU@UnU@@lW@@bkLW@UVkKǰkLlŽƒbnUÜÇUUVÇ@@Xkl@XV`UbmbUbU@WxU@¯¦m°nL„aVblVXal@XKlLVVȄ‚L„KôlnbšI@„V@VJ„I@lVVÞaVkXU'], - 'encodeOffsets': [[ - 120241, - 36119 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3712', - 'properties': { - 'name': '莱芜市', - 'cp': [ - 117.6526, - 36.2714 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lmnLVlÈVln@VnIšVlx„Vla²_šJlUUUVƒVw²@@mlIn™lKXU‚UUƒVaUašKUVyUUWVUUaVkUK@l@@mlIUwUWlU@w@aU@@LU@Ubm@¯a@V™@UKWUUKUn@LUbUKmlm@UIkJƒnUKUVmIƒb@b@mWm@Un@VVnnVƒl@„¯@@nVb@`U@Un@Ž™¦@V@VU„VnV@'], - 'encodeOffsets': [[ - 120173, - 37334 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/shan_xi_1_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '6108', - 'properties': { - 'name': '榆林市', - 'cp': [ - 109.8743, - 38.205 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@™ýVƒnIW»ƒW@»kUÇL—݃U¯¥ÇIUWWїUWwX¯mƒ@»n@ÜÈķô™@a±kȱƒw„ÑmwçċmU»ÆkkVyIm™ĉÿ@ƒÝ¹ƒWnwÇVš™Åaƒzmmĉ¦ó™kVmx™xU¼VškVm_UlVlk„°IV‚kmJa›¦k™™LmmV@XmKnšlUô›VXbƒbƒ@UaÇLğܙ™Åwƒ£mKnmċwÅ@UkƒbmaVƒƒƒn@m¯aU™Jm_k˜@kWXyl@@kÅamw™LU™Þ™ƒ™mWÅzUKƒš™Uk±@™b@nnK‚bX¤mzVšŽVxÇn„‚¯„@ÒknWƒƒVUbkķÈÑWkk@Va™™U@„mUkbƒÝÅ@Ý¥ÇbkĬ™XV`kLǍVmalUUa™nV±nwmkƒJ@Inƒ°KVw¯UnÅ@¥™ƒ™U±bUU˜±œmWbÛKWnUm`UƒVK@bmnœm‚Èż@V„L@xƒxmš„Ť°nŽ@VmK™²VlšlKk„ô@„êÜV@VXLlmš¦UššV°Ș¯²ÿ@¥š@ƁĊ˜²IšmĶnnb°b„KVƒĸLl„Þ@UȮš™Ü°IVƒÞÝސlŽœx@ŽķĀWŽ„Ux„èƐ@š°ŽXnšlĊ˰m„nƒšV„²V°ÒƦ„aބ„˜@zll@bÞšlš¼nKĊ¼óȂb²±šIǪÒ¯ĖV@„lxnVlk„JlaXwŌĉ„„@VnŽššlÆĕ„UÆLœèŌŤôxȚlUœ@šxlaUċĕXm„IWmnkšVVƒ„VW_@aÈWUUmk@ƒ¯çVm»™±W¯n¥V™mkXw±ÇVwƒ'], - 'encodeOffsets': [[ - 113592, - 39645 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6106', - 'properties': { - 'name': '延安市', - 'cp': [ - 109.1052, - 36.4252 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@kkÇmIšmUwVkUƒƒU²WmšVkm@m`mIĢĕUƒVa@™mXƒƒÿVVkyUýšĕ@l_UmnƒW„KVkţ™™¥™aƒwğ@™@aôƒ„ƒWa„kUmƒa¯¯™a±£kx™mmxUwÝ@xmU™b¯K™wó„Ý@kmm¹Ub@lklVbmnnVUV@x›UknƧJUX@ŽƒLÇWkw™LķƧÅwWJk„ƒLkþĉxWz™JUnǚkš@Ɛk¼ÜÔÈKšè@°lșÆk¦l„n@l¼@l¯L™°UU™Vǰƒ¹—`m¼mXk‚™bUaƒV@U¯x@¦™Ç™„UUmlmUVm„nnmlkw™@@šƒ¦Å‚ÇLmx¯Iklš„@¦mưVUx¯Lm„@J„InlmxU²šmVbkV‚bUnȎlKU_šWlīÈaÞ¦Æ@„ÞlanV@ƒšVšUbl@XlÇÒĸlŽVa„UX„lm@ѰƒƒÈmUw‚U™nyW£amL@mša²@lšV„™VLÆynX„šÝšVššKnxÆb@lk@WzXŽ@ll—n`šIV‚°b@n„m„„‚Unb„aVlÆ@ČxmnnL„¤ÆxššĠÛÈKVb„@„aWaœU‚ókVm™nL@W‚UnnšKlšœ¥‚bnIlU¯JlƒUkVkn`lUU™V»šwnwlUôšĊ¥nn„yÆb'], - 'encodeOffsets': [[ - 113074, - 37862 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6107', - 'properties': { - 'name': '汉中市', - 'cp': [ - 106.886, - 33.0139 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lKnb@n„lWb°bkxĸwVb@ł„nlŽ„ƒĊ¥šL@XŽl™ÈƒVblÈK‚b„akVwôml²`‚nœ@‚nVKœl˜k²xŎƒ°¦VU„JĊw@çnWçރVkUóÛ@¥kwš™šUmƒX¯WšÑkƒ@UymIUwlUn¥‚mUk²a°¯V»@™ÝVș„ÝċÅÅVl»@l@a°±@_kammÅb™a@ƒƒm@ż™KknõĠ—@mšƒ„¯LÅw›‚—LVxmb@¼kV™@mw¯wVakKW»X±¼¯Vkxƒb„¼WŽ@nx@x±bóakbƒ@ÝmU™@ķÓÛL™kƒVUm™k¯¤ÝLUlÝ@Ýz™š„x@x™°™™™bƒmƒX¯aUJW¯—k@bÇWƒwÛwWxƒ@XWlb@Žƒ„VŽÈUlwšLnl°VlUô¦œU°¤VšUxVXUxlbkVVlƒI„°„ÅVlU°m@k„ÇU¯xUlƒLUlVL@b™°ĠInĠ°ÈnK‚„@xÞa²n‚aUyšXUKVkšWô¼Èa‚z°JXUVÇV_„JVƒšz@Žnb'], - 'encodeOffsets': [[ - 109137, - 34392 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6109', - 'properties': { - 'name': '安康市', - 'cp': [ - 109.1162, - 32.7722 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„bĊaƨèšwôô„¼šb°ašXVƒÞVUÞ@‚aXƒm¥kImx¯¯ƒV@anU@UÇéğL@ƒ¯¥V£mƒ@ÝÈb„K‚™„X°wČÿ˜ƒ„b@xÈblxȯĊ„„mÆUVƒ„nÈ@ƨÜLĢ¥ƒŹnƒ°Vnn˜K„aô_ȃšwU‚aXmnW‚¯kl›LXƒÇ™ō¦ÝaÅVmbğUn¥±wÅéVƒan¥ƒ„U„»°am¥„£ƒÝ@ƒ„wVw™¥nU„уUmmVwmķIÅaóVWxkblb@ból@œğÒĉ¤ċXƒ˜¯X™xk„Ç@óÆÅx@š™xķ_kmݎǣkblb@`¯²@bk‚‚@k¼ÆUČÆƒÞǚÞU@šU¼¯°±bVlnm¦kVVxnJVz@‚l„™ÒXW°n„™V™šlx@¦ôÜVUl݄Xèm@è'], - 'encodeOffsets': [[ - 110644, - 34521 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6110', - 'properties': { - 'name': '商洛市', - 'cp': [ - 109.8083, - 33.761 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²nl‚ôbš„°aVwnKÞIš`°wšXôw°VĊ°@ŽÅš„ÞÆV„zÞK@xšŽ@a‚LŚ@b@ŽnLlƒ@šln„mnLVw„a„bVƒ‚VnbU¼„Vƒ°„bl„šbÈ@ĶŦb˜@nÇ@amIyUI@ĠVmôƒU™ƒVwkwlanJ„¯lwó¥@an°Jš_„‚@š™nóƒó@£l¥UwmašÑ@ƒUm±V_ƒJ—£›J—UW¥¯@ƒ_k¯¼mUƒVUè¯b@wmL™»ğVmağI¯¤ċIUW™XƒKĵ¦ķaƒJUb™IƒlUóVmk@WÅÅÇ@ƒmU„ÅVƒnĉƒÇ°kwÇa@wƒa—„ċxƒWšƒLÇa@Þn„U¤°¦@„ĠKÈê@VmV@b„U°°nwlJn¦W„bÝ@VŽ'], - 'encodeOffsets': [[ - 111454, - 34628 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6103', - 'properties': { - 'name': '宝鸡市', - 'cp': [ - 107.1826, - 34.3433 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@ƒ„£@›°Išb@¯°ynʃaUƒlƒU£„Umšĵĉ@@ylUÞ@@£kWU¯WaU£¯ÇV¥ƒ@kb¯wƒn™¥ÇkUÇnUƒ@¯±›kULm›@m±_kŽónUxlŽƒbaÇLkŽUaDŽkšW@™Kĉ¦ƒ„kƒm@ŁUaķxlw¯aXaƒk@mmakL@šmšÛŽ@¼m„@l„XV`ƒn™KUš°°@²š¤UÈ@VxmôƒxKl„VV²aVw„Xla„Vlx@UVnŽÇnk°ƒVVL™lkI™šƒJÇk¯V@šknƘn@lznmlVkzVŽ„VVxš@Ux„z@x±¼VxxU„l‚kb˜@„¼Čk˜VXlĠkôV²w‚LUKlwœJ@a‚IV¥Þƒn¯Ün„‚„@nk˜l²kÆ@š°„aVbnI@™š‚Ťn'], - 'encodeOffsets': [[ - 110408, - 35815 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6105', - 'properties': { - 'name': '渭南市', - 'cp': [ - 109.7864, - 35.0299 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@ÈôL„xUް„Þ@mŽÈnl¤nUôL‚wX`@ÞÝL™ŽUšmLô„„ŽôbVbnºlnÞ@ôƒšx°LšanV‚wÞ@Vxnwšnlw²¤šb°°„bVnƒlXbƒ„ó„@bš‚Ġ@„xšbš¦ŤšV™Xġ„£W¥ƽɽƒó@ýóƝÝ»„£X™mƅšĊkUƒ„@™™šó„kťaĵŽÇ@™akƒƒa„¯ƒUV»maUU„ƒaƒbUxmKƒnkm@™k„mK@ƒxó@¯n¯KǦ@ôÅèlxkx°nƒƾ¯KU¯WķL@VÝIUb™yWbX¼Ç°'], - 'encodeOffsets': [[ - 111589, - 35657 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6104', - 'properties': { - 'name': '咸阳市', - 'cp': [ - 108.4131, - 34.8706 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šIXyĊwlý„KlƒXIVaķƒ™»a›£„¯aVU@a™‚wÈō‚ašL²»‚VœUln°WȯW»XašzVaÞJ@Uƒ»@¯Ýbğwly@£kÑţ±Wу@ka™IUƒƒnƒ@¯ƒómţU™b™U¯lÇIÝb@¤Ý@kV@zĊ@™ĶnƒVV¤k„V„„bmź¯z@°™a¯J@œƒ¤@„„bUx™bƒ„@`™xUÔ±ºVXœW‚„UnUJ‚L̝ÈKlblmÈXŎ°šU„°LšŽlkÞKš@Èxl_°ĶUÒkblš'], - 'encodeOffsets': [[ - 111229, - 36394 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6101', - 'properties': { - 'name': '西安市', - 'cp': [ - 109.1162, - 34.2004 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°²@‚„mVVÈÈlš¦„m°xla„@U¦°ÈV¤XbV°lXÞaÈJ°kšVšaŤVôn°„„@„mV„šJlb„@XÒŤ²lÒ@¤kzĠxÞa@°„¼ĸK°XV‚°L„ƽ¯mlwkwÆç@óÈ¥°L°mô@„w@aƙK@b™@wÝLƒyÅUƒÝƙ@ĉ¯¯Uóx™W¯x™_ÝJmLUx¯b™ƒóak±mÝUU„™W¯b™aƒ»óó™xƧçĉbƒaĉxƒIUV¯¥ō„±w—l'], - 'encodeOffsets': [[ - 110206, - 34532 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6102', - 'properties': { - 'name': '铜川市', - 'cp': [ - 109.0393, - 35.1947 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÆxĸƨšKlxÈX„K@VWƨIlmœV@wVUmUnmUalk@kVaUaóaƒóƒnKV™šÞK@ÝW_xóKmVk£ÇmnÝ@¯ƒVƒwóK@ǯXkm›VU±¼™KbÇŎx‚š@bUV°bƒœ¤‚bš¼ĸ„Ub'], - 'encodeOffsets': [[ - 111477, - 36192 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/shan_xi_2_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '1409', - 'properties': { - 'name': '忻州市', - 'cp': [ - 112.4561, - 38.8971 - ], - 'childNum': 14 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Vx@lnbn¦WlnnUšmš°š²VšV‚VVVnUn„ºlz@l„„@Jƒ@kXWVXl@Lƒa@„ƒKUL„ŽlbnKlLnK‚LnKÆXn°šbVV@bUVl°Un@LnaVJUbW@UX²l‚@ČwlVVIšWnkÆa°„„anV‚Kn°™UW¯@™aVUVk@Un@„aV@ValwUanmWU„k@WVUUanaVwnLVl°@nk@mVU@UVK@w„LVKVU@ƒ„K@UUKVUV@@bnL„a‚V„aôšlIXmlKX_°KVV@bVV„@šzV`kblI„V„Ul‚šL@bnV@V„Ċll„„VlIXW@k„a‚U²blKšVnIlJ„albXXlWVn°JnšnL@l@XlJlaX@„X˜W²@l_VmnKšU„blU@mnkVK„¯@U@ƒma@kX¥VƒmakkƒLƒa@aƒ@WIUUVXWWnk@a°a@kkm@kUUmJm@WUUUIk`m@V—kaWWkX™KmƒXk¯ƒ@WKƒLkak@±bƒw@ƒaƒa@akaƒ@ma¯@ƒL—KÇÅkKWbkmġ™±ÅUƒLUK™VVkƒm¯LUVVbƒ„UwUW¯bm„ƒULƒxWJ—@ƒklmkUm@@KnwVkVK@akwƒ@@a¯bƒKkn›VUI™b¯mmbk@UbmKUL@xUUƒ@klmLUŽlVXI‚VVVUVUœU`mLXVWbXnW`Ų°xmށxU@mĉƒƒwU@mbU@UƒmbkVW¦kJ™@ƒX@`¯Im@UlUVVnb@bWJXnmbƒJUU™UUaƒ@UamIkaƒxƒ@@x@b'], - 'encodeOffsets': [[ - 113614, - 39657 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1411', - 'properties': { - 'name': '吕梁市', - 'cp': [ - 111.3574, - 37.7325 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@a@w„@„wlbnJVb„@VbšVVV„InaWmXI@a‚aUmVUVkn@°J@_„Wš@lIX¥lUnaV„V@naV@„xĊ„n‚V@‚wn¯wƱX_WmXaWUnKV_V›VUUUUWJkUVnKlk¯™@@kmKUaٱKkU@WmI@WUIlUUmVwXƒ‚w@ƒUlUVwœV‚@„Lnb‚W@anU@UšaVkô@l»n@na˜JnUÈLVaƃUUVm„VKVƒ²L@mU_lK@UVWkU‚a@a@U¯aUaƒÑóÑUb™„ƒKk@@aƒk¯mVaUwVƒÑkWUmK@UUKmXUWÝwUa™LUU@aWJUUU@Ua݄U@WL@VKVaVI@WnU@alIVKƒƒ@kIƒmIkJ@™m@ƒ™@@_™K@xƒ@kaW@U„@Vmn@ŽUK@mIƒJUXV¤XXWlkKƒkkK@XmJVakImJU@ó™¯LWKUV@nUVƒLkxmKkLma@kXKmmƒLƒab™LmK@V@mXVÆUxƒX@`nL„aV@@VmLUVnLlLš˜„b@„šŽ°²nx@b‚VUxlb@V¯bUV@zV‚XVĊXVx@lVn@VnnmŽUš@LlJXVƒz¯VWVXbšV@bmn™VUVk„Çþń@XVxmbUlV„Uln„W„@„Xl‚@VLXÒ@bÞJ°¦„L˜ò„@nU‚b@°„X@ŽXbmVU„V„nb@x‚x'], - 'encodeOffsets': [[ - 113614, - 39657 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1410', - 'properties': { - 'name': '临汾市', - 'cp': [ - 111.4783, - 36.1615 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nW‚@@UnLšK‚a„b„KnnWL@lnblKnLlw„KVU@mVUXL°KôšV@nIlJUbnI@WlL„llLXkWWU£VW„InJ‚@VL@nm@UVƒX@lb„@@wšL@`‚@„šn@V@lw„@n„VmVX„WmwnUlƒœa@_lK„wVlUn°xVKVXXWlUšVVI@K@K„n°KœwlVlU@kna@V_„Wn‚m„UVm@kXml_@m„LlKXw°m@_ôJVUV@X™l@UaV@Va°I„lk»VwUkVmwUmmVn@V¯@KƒU—wmK@U¯wUVÝ@mJƒU—nWK™@@UnKVa„_lykUmKÛnm@™x@ƒUUlwVk™ƒXW@ƒa@Uƒ@@K@ƒkIV™nammVakUlƒ@wX@@kƒ™¯@ƒVVbml@„„°UbULmlVbnbÅK±VƒKVXUJWa@ULWaUU@@U@aWK@UkxUKƒLUUUJ±UkL@V±kk@kam@UV@l@LWl@n@VVUx„LlUUx@VUV™U@aƒIUl™L@°mLU‚ƒbkUUaWUUaUU@aWK—LWJ@bUL@VUVVbU@m@a@kmKmnĉlUK™XƒWUblb—xmIkƒƒU@xWb@lkšVx™LXŽmzVV@bklVVUzm˜@bk„@Vx@xlŽU„@lUbVnl@„Wxnl@n@ŽUbV„mL‚mƒb@`X@lUX@@xlnkLWaUJnnWV™Vn@l„@bULVV@l™V@XnJVX'], - 'encodeOffsets': [[ - 113063, - 37784 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1407', - 'properties': { - 'name': '晋中市', - 'cp': [ - 112.7747, - 37.37 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@šlInJ„lJ„@‚„ULkJ@bmV@XUJUb‚L@UXKV@ރVbV@VVXI@bVVšKVbÞxVXnWVL@VnLV‚lX„ÒUŽVxUb°n„l@bl@„LšƒVaô҄ÒVb°b@VnLnnV@lmn@lb„U„V@„‚JœUVV‚Xkl@lUzmJ@xšXkl‚bUn„JVšUb„nU‚lb„V@nlLX@lakšV`Ub°š@XVJnU‚L²KlxnI@KV@lbUbVV„KnVl@„zlm@Uš@nŽšI@WUaVl@@mVU„@XkW@ƒnkVKVƒ„_Vw„y@knwVa‚@XalU„@šVnml@„X@V„L‚KVaÞbnnlJšI„mVKn„VVVInVlU„@„m@™mXK@UmyUI@mWUUakamw@wUwmLkakwVƒmK™w@wUam£y@am_ƒW@™UU@knmm„amU@WUa@knw@ƒUUUUV@nƒJm@mVUkKVUUUkKmwƒKULƒKUImV@lUn™nŽm@mbUK@°™bUnmbUmkkƒWUb@am@UXkK@a±@™V™@ĉř„V‚UXVxUVkLWl¯@@bULUlm@@nm`—XƒlWakIkm›VUbUL@Vm@kIƒ@@Kšm@—VaX‚I@W@aU@kUƒVU_™KƒbƒJkkǎ™b@nkKmL™wÅW@kVUUƒVU@WUIƒJmIXmma@_kyVaUUlkUm@ƒkU›x¯Lƒm@L@LUJ™UkVWXUWUL¯wVmUkƒxkL@`›bk„mVnxƒXUWUnmƒƒ@kxU@'], - 'encodeOffsets': [[ - 114087, - 37682 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1408', - 'properties': { - 'name': '运城市', - 'cp': [ - 111.1487, - 35.2002 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„Vl„nJ˜wkaVa„XšWVLĊknmnL‚l@@bn‚V@UaVU@UVK@aXI˜KXL@bVVVbXVVblV„aVnK@¯šKVk„J@bšVVU@UVwkVƒKVwUUm@@Xk@K@kVUn@lbl@²l@UlK²VVIVV„KVLlw@VXL@b@VV@VŽXbVK‚@XbVIUW„L‚U²ÆLmaUankVKVaƒ¯@ƒnkUa„U°@„š‚n@@kWa„UVaXUW@IXKVw@U™ƒ„™WU@W@@UUƒU@mn@ƒ`m@UUULkUmJ™IUƒ@@UƒK@U@›anƒ™ak_@wmKUwmakV™kmK™V™k¯b™wƒ`kwUIÇx¯»ÇaŃmn@@™mƒmUkV@wkKW@kxmL™UkĉLÝk™xÝw¯lóVU„mV@ĀVVX¦W¤kz@`Vx°„²ĸ‚š@„Ul@x„êĸNJ°¤V„VlXLWnXxmV@nUl@„'], - 'encodeOffsets': [[ - 113232, - 36597 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1402', - 'properties': { - 'name': '大同市', - 'cp': [ - 113.7854, - 39.8035 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²£šyl@Ȑ˜Ė@bĸŽĢbĸ„˜X„a‚KŤnn@ŎôllÈx„nVnÞDŽV@b‚nXllL°KšbVb@J@b—„‚„@ŽU„„xlKXLlKlXk„@Ulk„JlkUƒVKXUƒÇVIVm@_nǚLšašl‚w„VnU@UUwma@aƒaÝaLmUk@@Wƒ@U@@X™wVWÝUUUk@@VmLƒKV»nwUw™aUL@`mzƒJUIVƒUaUw™KUaVIlJôanÑlLVUn@ša„@VV„@@UUwVK°Vn_lJÆLœéW@UUUÅ@»lm@aÞIVwXW˜UUkkm@U@aƒU@mwU£VWU_kWmƒXwW_°yUkkK@UÇK@kkUVymóK—U@KWIƒbUak@mJ@bkbmLkŽ™UmƒkVU„W¦@lnb@„@Vƒ°ULml@nkVƒa™VmLUnk`±@—XƒWW@kbǦXޝ„WxI@xmbmxXlWV„„@bŎUz@J‚b@bÞb™ŽU@Wbk@ƒxk@WX¯VۙƒWÝbÝUkVUU@alI@a@akLWa™m@U¯UUmÇL@K@aU@¯VUkƒKmX@`@œkJ@nV‚Ub@lbVÆXVW„ULU`VbkLUV@XWl@bXJ˜@VbV@Vl'], - 'encodeOffsets': [[ - 115335, - 41209 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1404', - 'properties': { - 'name': '长治市', - 'cp': [ - 112.8625, - 36.4746 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Uk™Lky@I‚JVa@mÞaWšy@_W@_WƒXVlUVwš@nw°K@m„UƒVaƒmVkU@mmmnLVUmKXa™U@IlKVUnK@UmWkX@WV_Vƒ@akU@a„KWIXyƒIUVmUn™Ua@WaXUVKVmkUWVkUƒLU@@VƒbƒKbƒIUmƒ@mbVL—x›WUUkn±V¯wƒbÅJUbmLkbmKÅKƒbVnUbƒV™KUb™KUbmLKmƒb™aƒKkUm@UŽnn‚VnxUVlUxl¼ƒk¯JUbU@Vbk@WšU@UVóI@`¯nWxkLƒK@nk`Wn@lUnƒVnm‚ƒXU`@mb@lkV@„VnklVVUblz@`nbWnnJ„IVJ@XUVV„UV@lÆXšxnKlL@mšaȍll„I„ašLV`„UlVV@@b@XJWUb@˜™n@L„@lJn@@UVKVaœUlnlJXb„k˜Wn_@mn@VkVK@a°@XklKVUUwVWUšƒĊƚ@šU²@@blLVWn@@bVa„XllVnnaVmša@¯VLnan@‚šmVm@knUVJ'], - 'encodeOffsets': [[ - 116269, - 37637 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1406', - 'properties': { - 'name': '朔州市', - 'cp': [ - 113.0713, - 39.6991 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XXWVXVWnnlnn@èÆ¼@„„xlš„ŽV„nblšššVŽÈUVl‚š@„blnœL܃ĊmUkU@Ua‚—@WI@aXk@WVUlKUaV_VKXƒWUUÅka@VaU@mlI@›@_nW„LVl°UV@@b@LÈKVn°V@VšnXblK@b@bkJ@bVVlUÞVÞa„Xܚ°UXWl@„wl@XaV@šÝa@aa@IVyƍ@aƒƒXUWknwna@w‚JXw°ƒWÈ¥kI@W@kmKm™¯IUmkXWWkaƒbkImJ™UkL±aVƒb@lWXkJƒUkƒĉkƒ@UmU@a™KkƒVƒUkJlaU_™yƒ@UU@aUU¯LW`kLWnkJó™ƒbUƒbmK@aU@UVVL@VƒL@„UVULƒK@xUL@VUV@nml¯@UkmKUxmbVbUV@XƒlXVmnVbkxUbU@ƒbm@@VUlUVšb°@VX¯šm‚'], - 'encodeOffsets': [[ - 114615, - 40562 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1405', - 'properties': { - 'name': '晋城市', - 'cp': [ - 112.7856, - 35.6342 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lV„Lšb„an‚LnKVašLVašL„UVaUm„aÆLnLlanKVaÆI„a°x²UlmVVœX˜wUKna„@Vn„J‚a„L„a@UV@@alUkKVKnkmmVwUk„w@ƒ™@kxWUXƒW@@mƒk@aUa@a¯aƒLkKmwkUm@kL@K@aWIXmƒVƒXƒWkUVakL@UVKƒw@aUK@UUKmLU@¯n™KUwVƒUIWJUWmka™@UXƒJƒk@UkmW@kLWKVƒx@bmI@VUaVU@a¯@UUmVKmX@±`kÝKVxUL±akL@V™bƒLkKmVƒ@XWVUbƒVXb@lm@@lW@@xk„lVUbnnmbUšlJ@„@L„@@V„b@‚WXš„UlkxVV@„šwn@ÜmnLlVkzƒ`UbmL@Vš@XL˜m„VnIÞ@VU°x@VnL˜x„V@LU°'], - 'encodeOffsets': [[ - 115223, - 36895 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1401', - 'properties': { - 'name': '太原市', - 'cp': [ - 112.3352, - 37.9413 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„@VV@wVKnLVal@na°nšaVJœUlm„L°a@b„@lx@bULUlmx@Ln@lVkn„l˜@XI„w‚K„Vnƒ°aVXVx„ƒUaVU°K„nUlšUVL„KÆVš²Ģ‚lnXalLÈÆ˜L„KUaVkUanmWU™a@WwkUWU¯y¯Ñ@anIl@@aVU„m„I„ymUƒLUUVakaU@@LmJkw±LKmVUI@W¯™VaU_l™kbW@kK@mƒUkaVƒmVaU™ƒIVmalk™W@wnIVy@klkWUU›VI@ƒƒUƒVkam@knU@mmmK@bblVUX@VkLV`@n±KU„ULƒ‚UnVVńUbÇKmV—Imbm@k¼ó@Ul™b@VmV@bXmaƒK@›UUxkV‚V@„xW„UxVnkVVJ@XnJ@XlV²LƂVbnL@lš@°'], - 'encodeOffsets': [[ - 114503, - 39134 - ]] - } - }, - { - 'type': 'Feature', - 'id': '1403', - 'properties': { - 'name': '阳泉市', - 'cp': [ - 113.4778, - 38.0951 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°@nb„@lb@b„b„b‚@„x²al@lb„KXU@m‚kUWkkmUUƒVwV@XUW@™naVklKXblKnL‚ƒnLVanImaXKlL„ašV@U@KUKW„alƒXK@£WKXUV@VU„ƒUUVW„_V™@W@@K„@šƒUƒƒIWmXUmƒULƒn™JkImmÝaUbLƒK@UƒWk@mn™Uƒ@kVWb@Ubmx@lƒzUxƒ`U„ULml@„XWlƒ@UV@nk@U‚Vb@X™Jm™@@Vknƒyk@ƒzƒJƒnUV@bk@mJ@b°Ò°zXVlVXx‚@šbXVmnVbUlVb'], - 'encodeOffsets': [[ - 115864, - 39336 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/si_chuan_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '5133', - 'properties': { - 'name': '甘孜藏族自治州', - 'cp': [ - 99.9207, - 31.0803 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƒaXamƒ¯wm@±°wUwV@UaVw²Kš™„U@UƒU„¥‚a„ƒ@£Þ™ôx‚Knkm™X¥™IUƒÝUwlk°V„@ƒÈ™‚KUwlkUyV¹„mšx²Xll„ÑW»š„l„w°UŎ„nƒ„„˜Jœƒl¯°V@wôIVÇn™nUllšLšVǚLô¼XW£@±„@¥k_ÇJƒkUéƒkšƒƒwXa@ƒšLlw²™Vx„b‚mš¼ÈxlLȃ„VWÞn¯mǙÑUÝlÛkwlĉmƒULmwUJ™ç@wkm@ÑlUX™ƒÑôġƒVa™ƒUф¯@wķÓkbV„mnU@@y¯IķKƒV@¹šaƒé@k„mÞU°¥@a¯@anKlblU„¥@óğç@Çw@wkla„çݱk¯±@ğÝUÛmݯwƒ@kb±¯akXWÜkXUÆÇUš¤X_Ɛw„V@¤ƒXU‚ƒbUƒŽƒIUlÇUkŽġ@™aXČmlUlèUV@„mVk¦Vxš@¦±š¯ƒƒ¯¯anlWš¯nƒƒÅw@w°KVak£m@klƒKknÇU™»óKšīlaUaV£@™™¯@ƙU™VƒÛÝÇXƒÇl—ÓlŹ„»WUğJ¯£mx™Lĵô›ºX„VlUll²bl„„lŽƒxónn°ÝšU¼mJUš¯nƒƒƒV@êĉ°Uĸ™w™@mƒ@¯kmXamѯaUwÝKU¥„mÅn¥Wmn™ƒ¹n±ƑƆÇôXê±NJnšƒ‚UôlĖkȂVÒ¯¼VnƒȮ¯ĀnƆ˜Ģ@Žk°V°¯ĢVlkšVxm¼X²™Ŏ@ŽVxknWܰU‚¯n™ÆÝœ@`„ôݲÒƒ‚Çzn‚mX@x„è°K°Å„UČĬóĖ݄ƒ˜ó¼ÅêƒÒƒbmšk@V„Ž˜„@ҁl@nĉܛê—x@Ėml՛J¯¦óxȭ°ÝmޝLĵè›Ā@Ɓ„l°żƒ‚šX@xmŽkV@z@‚„°blŽnÞ°J@bn@ƼUVƒUóŽóLƒ°X°ÝLƒxUn„°ƒĬƒn@lnL@ŽÆ@šn„KÆxnUnV˜InĬmÆnxŎ¼ĊIĢóÞ@ĊƒƨbUƒ‚mV¥lkƒ‚wnL„mšÅÆ¥Xƒ˜wU@w‚wUÞ™@alUUŚU™Vkkm°aU—°Ó°w°U„ƒ„b°aš²K˜¯œĕ˜@ÈbޏĊaš»„XVm°In„‚Ĭk¼Vb„ašJšôš£VĊan™‚k„ů™™nƒÜU@anKnĮ‚bÈmƎš»nI‚霣Ġ™'], - 'encodeOffsets': [[ - 103073, - 33295 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5132', - 'properties': { - 'name': '阿坝藏族羌族自治州', - 'cp': [ - 102.4805, - 32.4536 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l@@þ²I@lƒ„VL°wnJ°Uĸ™Ŏè„Ilw„V°¤nĮ™¤Ý„lè„L@„ƒ„@x„l™è²ôĊ_ĊġVÈôJżīlbXšÆÈVŽkxÇVƒ„n°„¦Üb@è@nn@@°šUÈ¥WDŽ_Uala¯¯UǙkƒ»„mVwk»˜k²°VxlL@¤œ_@x‚`ȍ‚Ėöb˜š@l²alX„a@bnK°¦VK@nnWmx@nUnl@@lƒlĉk°l°UXkmW@Unš`k„ÇL„ŽW„ÛÈVxšVVlVk@l„IXb@ylXÈW˜Į„WŤzœy@šmIƒŽ²šJ‚š@nް@V„„J°a„Å@ƒŎkVǚk™aUw„KVw™™Vƒ„@nkm™@±ôkô™ĊJš¼šInÑm±nIššÞ‚XȃĊxĊUÈbÜyÈ£Vkw@kVUV™„m@ša„»ÜbÈmƒUXwÝxƒUn¥@°ġ™Å‚aœJVk™aW¯Û@W¥—UŏĶ™@¯kUƒŃ@ašI@mmanwސ‚W@œ™mw°»Uřk¹±W„xVx¯¦U°ƒzţW™w@°ÇVÑk¯@„y°aš£š@šmšnl¼„ašÝÝakwUƒ±aĉImlĵn@ƒm@kkVƒ¯Ñm™ĸ™°x„l™œ@˜ƒXVÞmlÛݙĉUÅ¥mwÅ¥VaUw›™XġċaVůÛŹlwU¯U™ó±™xÛV±¯¯n¯mċƒLmnĊm‚™@™_kJWaXmwUƒĉK™»™@mwX݃UDŽkKÇw™»nƒaUw±škx™K@„Wb„x™„„lVê„lÈIl`@¦ƒŽ@²X¤Wó»™KUșŽ™KkkmVmšUÈóJ@x¯Uk°›„—Iƒƒm„ōƒ¯Vƒxƒk™ŽX¼ƒÒkk±W™wƒnUºVzklVxLǚ@„ƒŽ¯UklVxސV„šJW¦nšmlLówݚ@¤ƒ„bƒ¦„V@VƒV™š±LUxVbU@Vx¯x@²n‚°xn„Wb„b'], - 'encodeOffsets': [[ - 103073, - 33295 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5134', - 'properties': { - 'name': '凉山彝族自治州', - 'cp': [ - 101.9641, - 27.6746 - ], - 'childNum': 17 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĶóšKnw°¤ĠIXVƒ¼kź˜Ôk‚„ÈWŽÞȄÜUVšÅš°@šš‚@U¤Vbkb™ĬôLš¼ÈVlm„Llkn@l¤Ub¯L@xÆx„„°mX™mk°b„°°„²™@¥‚™Uwl¥nU@ƒVUkçVnkWċšbĢ@lÈVVk„J„‚V„aV„W@£ƒUƏxW`™£ÈVVÅlWXÛlW°b²la„@°xnÞVÜĠÞ²@l°Þ²ƒèkblŽ@xÈx@Ġènal£nU‚Dz@‚ÞK„nn¤@¼˜°U¼„nV‚šXU‚šbn™ĠUVbUlVš°LX„@lV„èÜUnK@_ƒyXVyUwmIU»Vƒ„kÇ¥šÿkkV¯m±n@ƒn¯ÜanVVƄz@Ž‚bœwÜb„m@wša@kƒmk»@™a@VUUó„w˜@nb°mš„XŽmnVbގVôanwšJ‚ak£lw„˜šLšÅnÝ@wl¥IÇӃ@U™™Lƒ¼kVǃÅó¯kVmmw@ƒn_‚Vn»°LÅ»@éÇçŹīVÇÝ@ÝğU™ƒaVݙ™š¯ķlŭġlƒ@óÞۂċ@¯nkUӄ—m±™IVġUwóKUn±¯—K›w»ƒKݐV„nl@„óxUwţ›£ĉƒUmŗÇ݃K™„ÝUlmKƒ£UVŽ@ÞȎW¦„Ò@Ĭšnny‚@nÒmœVŽ—¼@°Vbl@VlnUUwl™°a@„œ„@llnk°lbnKWĀnŽU„VxUŽ‚²Å‚m¦Û›ÇڃaU„Vbš@¦m`móX™Umm™xÅ@±Þn虲™U¯»m™ƒV—m@wƒU@wݚÝmLƒa@„™VÇUk„l°¯„VlkVƒ¦UšmxƒaULUèVx@„kIUxmWV¼¯VmȯšU„nl›È—@m»Å™ƒVWxÅbÅğW@kƒm@kVV¦mlnn@‚ō„l¦Åƙxkœ'], - 'encodeOffsets': [[ - 102466, - 28756 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5107', - 'properties': { - 'name': '绵阳市', - 'cp': [ - 104.7327, - 31.8713 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„ńlV°š@Őĵ˜VX»ÆUĊќJ‚w„@È»m»š£°Kšk@ÇnÑÆš@„w°JUwnw@wšbVbš@VlźLUw„aƒ»„aUklyUUVakwWXwWƒUxkLƒmn¥mšwk™˜UX™lJ„w@aƒIk°X„¥Wƒ²l¥šaU™„IlmkklƒÈL@m°nlWU™aW—š@Vƒ„@UaV¥@ašk@Çk¹ƒK@a™K@kƒKkšÇX@VU@kx±V™èkIWwUVUkkKÇ@ƒa@wkml¯@kUWn£Wa„aVwnaV݃w¯@UaWx—n›JńUxUšma@L@„mbUށU±VVnkxUƙ„VŽm@kkKW°„X@¤ÇUkÆÇnU¦¯ŽkƒmLVwÅK@UóbÇÆVƒ¦™L@‚±êX¦mVޚkÜÝnWU—„›@kšƒŽ¯wķšnš°ÒU„lln@@„ĶmnkĊJ²bV„lxÞb™Þƒbk»™m™n™@™¤¯bƒz@Žl°UÒ¯È@ŽšxŤX„yV¯°¥Uwƒw²XlºVڝ¼nx›š@ށXݏmxnb@n™J@b'], - 'encodeOffsets': [[ - 106448, - 33694 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5117', - 'properties': { - 'name': '达州市', - 'cp': [ - 107.6111, - 31.333 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Uxn°‚bnŽlUnÒÆƒnn@n‚¤„LnxlU„ššV@„Æl„x°XXxl`XœƒVW‚œL˜è—„±nÈbƒŽ°b@š²x°Kܼ°ĉ„V¦lJnU@¦šÞ‚JÞğ„mšLÞ»šxU„lb„VÆann„alŽ„VƍX@lnŎV„mU™maÅXƒa@aWmœ@‚£@wĉJVƒkk‚kkmƒnk@ƒmna@šal„Kš™‚J@Þwm‚ÅŃ@ambkUƒƒ@™™KUġKU@m‚ak¯±ƒ„a@aĉÑÅaVwšXlwƒ±—V¥l@@a™kƒ›@@£šmƒĉÝónWV@ށnÝÇÇx—UmbƒaVkkk@m„@m°ƒÝýXm›akÅīƒ@@ƒmb@@xmšnbƒ@mxšŽkWL@ƒ¯b@WUXmWœWKkbm@kx™Xmm@LUl„xlêóK™nUš„all™LƒlLó°m¯JVšU„K„„@x˜K²Āô¦l°'], - 'encodeOffsets': [[ - 109519, - 31917 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5108', - 'properties': { - 'name': '广元市', - 'cp': [ - 105.6885, - 32.2284 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÆL„Ċx°»Ŧ¦˜W„™šLȄ@xÞKܰÞnVxÅĀlÒnJ°a@w„V¯l@XWknKnw˜VȚ°XXa˜lX°VI°b„W„nšaššš¥@ƒw°™n@šyÆ@nkÞ@°¯lJn„°IÈl‚UšlXÅ@ķlUV¥VUUÝޙUUƒ@UwƒJUkĉm@ýƒƒlk™WUwVwWJk@VUK™lUkaVƒUƒmLk„m@ƒƒ@Uƒ›Ik`@„™UmlUkV¯ÇXKÝ_mm¯@Uƒ`kwmƒl¼±KV¯—¯Vk±Vk±kzma™KUnDZ™bk¦±ŽX„ƒ¦¯Wl„J@bƒxkIWš—Vlš™xnŽm¦„nlKVwX„WxXŽlxUbVVkzVlƒb„¼ƒbVxŹKUk™@Ua™a@xmxVx¯Iƒx™@ŎmÒ@șl¯L™¤n¼'], - 'encodeOffsets': [[ - 107146, - 33452 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5118', - 'properties': { - 'name': '雅安市', - 'cp': [ - 102.6672, - 29.8938 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ln@xšèVInxVKn„‚ĊklxkÜVޚÒnÈm°nxš@š¼ĊLV„nx‚WXblIš`š@nmĉn‚KȄôÅlUÑmU„K²¹@ÇÅVÓůVýÞW„‚UVmX„ÆbnwšKUÿ‚™@UmmIUb¯¥Uwƒ™¯™Çmš™„çmanUm»UUƒl—kƒ¤ƒa¯bV™U_WĕmÇŚ±ĢUlƒUl™ÛVƒçkUƒ@WޝKU™VkUağVmš™aV™WUƒmV»—¯@»m£ƒmÝLŽ±@ÈmVk¤mb@ôƒ¦kVkamL@b°‚@b¯¦ÝVƒn@l„ê™b@º„UĸL°J@zV@nmUƒlaĸÔ@xƒ°VҚ„Ub„‚óĢ„ÒWškV@Ò'], - 'encodeOffsets': [[ - 104727, - 30797 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5115', - 'properties': { - 'name': '宜宾市', - 'cp': [ - 104.6558, - 28.548 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VlÈnl‚XnWLX`m„²nV‚@b°xĢçlnšVm‚nn„@@„°‚UzšlV°nޘÒkxl„w„`UnVb„mšL@albÞKÈۚmܼ°@Xǚ@wmW@ńKĊL„lV„šLVŎçÞL²±‚ğkw@Uƒy@¹lKX™lKVa@w™™Č@‚w@a˜ÇU¯n™@@wġak—™aō‚ƒƒK@Å»VakUWmķwkbğ¥mL™akš™@ġރ°¯xVVÞ@VšxVš—VWx„XlxU‚™@k²WVŃULmèULVĊklĠ„VœJVx±nѝ¦mwğ@mƒƒlğkkl±@kšUk@¯±Ç™Kƒ—kxl¤b™Imx'], - 'encodeOffsets': [[ - 106099, - 29279 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5111', - 'properties': { - 'name': '乐山市', - 'cp': [ - 103.5791, - 29.1742 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@kšVŽk„ššÆkšV²UlºÈIlxƒLXèÜlU„„XU‚mkƒbVè„x°@„@¼°Knnn@m˜ÆIUbnJ@bVI°b°±@nK@mVakkƒKl¯nbšmĸ„èl@VnÈl‚UUw„wmwnm°¥„L„™lLnU@Va™ImbkƒmK„ƒƒnk@mƒb™ƒƒLV„JVUUƒ„VnkVmb@a¯JUaÆkk¥„IW¥„Klw—ÑmÝU¯™kVy¯@ƒƒ@mmn™Ukmġè¯w@aU±mnƒW_XKWmkÇmUkóbUÝUanmW™ƒ¯nma—@ƒxVôUV@šb@‚l¼„n@l™b@xƒnÛa›xa@ƒyUÅmUÛbm°@„m‚n²U°ll™ĀȦƒlU„V¼nJVxUz‚W„z@`mL'], - 'encodeOffsets': [[ - 105480, - 29993 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5113', - 'properties': { - 'name': '南充市', - 'cp': [ - 106.2048, - 31.1517 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ȲVmšLnblyl²²UUl˜°U°²L‚»„knlx„_Vް@nnÞ`WL°ÈUŽVlnkšV@ƒl_œJV„‚@„„n@lƒnKV£™Çšƒ„UV¯šm„@laX˜U„‚UbVx„@VkôJU°Jn™@™‚wUk°wnUƒV_nJmknmm¯Vwk¯ó¥±ÿ—L@wƒƒƒLVU™kU›bX¯mykI@a±Kk¦ULmaXƒƒVm¯ƒK—z±ƒklUIVbÇJšƒkL¯™l™ƒU™ÿ™UƒlUkJƒUmŽUUkVVklKk@@a™U@„™J„²ƒxƒ¦kĬ@¼±ºXnWb—xƒU@xƒx@lšL@b„Llº@șl@bU¦Vbƒ@U„™@X˜‚bVškX¯m@nÇKk„llknƒJVš'], - 'encodeOffsets': [[ - 107989, - 32282 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5119', - 'properties': { - 'name': '巴中市', - 'cp': [ - 107.0618, - 31.9977 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@V„U„lbkVšŽVLUŽl@XI‚ŽUxVxšXkl„„@þĊnVl„IVx„@VVݚVÞUVU¦kV@ĸWÆô²š@VÞnš@Vaôb²W@‚K@XUmÑUW°¯°Ina@y„_lWn¼lLUbô¼„Kla@™nkUyô—Æx°@šn£™Ý@¥mVkIU¥Ċƒ‚¯Û»¯L±w@™¯a„Ça²m˜ƒ—ç›KX„UW›k_Ww¯WƒwÅk@ƒ™Uƒ™kVmwƒK£@mmmńmÑkVmamnnlmIU`V„m¯xVlx@šmš¯IV‚óIUlƒ@UwVaƒ—VW‚kbƒ@™nU°ƒV™„šÈU¤'], - 'encodeOffsets': [[ - 108957, - 32569 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5105', - 'properties': { - 'name': '泸州市', - 'cp': [ - 105.4578, - 28.493 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VVXwVKn„˜wnVƒn„l@b¯xmKUbVn°°X°@blLšènV„@Vn‚l@U„LnmmUna„VV_ĶV@wnJ„„l@@kkKVólaUwnJm„wUlm@ašUaôKVnJWbޚ@VšwVLX¥VVš_Þ`šw„WƒÞŹmmnIn¥Wƒ@k„WV¯@ƒ°kI™ŽƒLk¼Ç@k¤±Xk˜™nmݯUlÅÛKWV¯kƒlUwkLƒÓ™@U—@ƒ‚w@ġXV„˜WX„š@UbVbšV›š_kÇV™lU°lnwŎ¦ÞaƯnmm¯šU„™m¥nkVmkƒl_ó¥¯UÇl¯@™ƒ™L™kƒ`¯ķLUy¯@mw—¼ķ°ġ_řU°mlšnÇVUޚ„@‚ƒš_ƒJUnV‚UXšbl˜Ģb@x@mšV°—È‚b@‚xċ@šš@xUbkLWškL@º„zV‚@lxĠ±²'], - 'encodeOffsets': [[ - 107674, - 29639 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5101', - 'properties': { - 'name': '成都市', - 'cp': [ - 103.9526, - 30.7617 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°n°m²°ÜUšw²ŽôVš°ŽVkxÜźUŰČb‚ŽĢlaÈL„»ƒ@k„wVǂ@„ƒnÛÆ»È™UݰKl_„V°Uš`Vbn@VbÈLšaVU@ƨ»V™nIl™šUUa„±lIk±š@VnKmÅ@WaƒK¦™lVōškK™Ý@maXÇmw¯IU‚@kƒVƒwUmVIƒƒƒç—ÿƒU±ŽÅ@¯È@xƒK@wƒLUbÇKō@mÝ£@yóUóóUxkI@WlIUaƒbƒaŽVĀ™LmxÅaWƒUnVƒÝXUþưUÔÈÆ@±ºƒLnVVÒkóÆ'], - 'encodeOffsets': [[ - 105492, - 31534 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5120', - 'properties': { - 'name': '资阳市', - 'cp': [ - 104.9744, - 30.1575 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„è„„UJVn„x„U@lV°JnxWÈnbÞ@šŽlLŎ™Ušk‚¥„LXbÆ@nŽmLU‚@zlbXmlnVynL„çšJVb‚UnómUnamU„an¥lKV_²aValWô„n@nƒ‚bVœK°¯VblW@kkƒlUnlV£°W@w„UXk°KVwƒmVkwVyVI@wkmƒVÅ_Umm@Uÿmbk£™xUaVw±V¼V¤kLWxU@Uk™bƒyƒXšómƒ°V@@zÝÒkKƒn™±U@@_VVkƒÇaVwnLWalm@@kkVVl™¦kIV`±n@w„Kƒƒk²™aƒVUUV¤™nkxmUkVWVnLUbVbƒ`kUU„mLU‚mX@`ÅbǚXbWLXŽ›n'], - 'encodeOffsets': [[ - 106695, - 31062 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5104', - 'properties': { - 'name': '攀枝花市', - 'cp': [ - 101.6895, - 26.7133 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„b‚KÞnޙ@x„V@x˜n„Unš°¼šVš±mç²ÝÆ@šwnnšVWŽnôn_@¥‚™UaVƒ„bƙœÈ܎n¥Æ±VUwVƒmXÿmLkal¯km@k›ƒ@ƒ¯bkšVxmVUkk@Ua@¯˜»Un›mс@mz™m@īƒÑX¥Ç@ݙxU¦ƒšÅŽÇUkx@šlb„UWVX„mV@xĵ˱@@ޝxUšÆLnÆm„šx@nXL±lUUVwKWak@WxkbšÞƒŽĉbUn@‚ƒ@@xó¦„Ŏ'], - 'encodeOffsets': [[ - 103602, - 27816 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5114', - 'properties': { - 'name': '眉山市', - 'cp': [ - 103.8098, - 30.0146 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„šVx°¦VanJVnš@„b„aVbkJ@XlJVwôôôV@zÞ¤@nƎÈLVa„K@x„L@w°ÇÆ@²„V˜ĀœmWXKWașÆa@_nWVnKVƒlV„_UaVamKXUWwnmmwœÑm£@ynUƒkWƒĉUkWVkkV±çkJmkKƒšƒK¯¦mnnxƒxVxVÇkUmk@ƒçķ™nmak°„LllUb@nmL@‚¯²¯aUJ@amIVaÅJn—m@mm¯L@»ƒŽ¯@ƒwUç„anlVƒWVƒÛkWç„KkwÇJk¹±V™UÅl™™ġV™²ÈƂnXĖV`Uš°a„b„£˜l„kVVn¼mVnbƒè™šÈn°š'], - 'encodeOffsets': [[ - 105683, - 30685 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5116', - 'properties': { - 'name': '广安市', - 'cp': [ - 106.6333, - 30.4376 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„VlIV‚„kšVšĀ„Vkš°šlK™„ÈIUaVJlk²„˜y„Ln°„UW„nbVKl¥²L@blJnzW°œalV°Inô¯‚K„kšKkkƒbV™šmôLkéƒwVk@KnnšWlwn@laXL›ŽnXVW@X°a@„XKl™nw„@man™@w‚@na@„„@ƒw™ĕġġ™wUkUWb@mk@™¦ƒ¥mUÛb±yÅn@bml@kV@„ƒlknVbmVnlmš—bÇk¯bWyk@V_UamJ@I—@WaƒVXamIVWkUkbVaƒUUxƒ@VnkVU¼›bkKUxmK™„@WšƒxnV@n'], - 'encodeOffsets': [[ - 108518, - 31208 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5106', - 'properties': { - 'name': '德阳市', - 'cp': [ - 104.48, - 31.1133 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nUW¥²é@šK„¥‚UÈÅôa@VÆLUxnKl„°V¥ÈmlÅÈV@£ƒWX¯lLln@UšƒVÅlwUm²U‚VVna@ƒ@KnbV™VwƃœI˜mXwWƒkIVwÝĕVUa™IƒèmKUzkmWnka@y™@l²kJƒ²Vb™VkšmJUšƧ¼@UV™bÇKUam@Ua™_¯VƒUk`¯LVÞǚżm܃„@Uȃx@l„ƒ¼ÇKkbWŽœšVxUbƦnxƦĊV'], - 'encodeOffsets': [[ - 106594, - 32457 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5110', - 'properties': { - 'name': '内江市', - 'cp': [ - 104.8535, - 29.6136 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@²èlUUllXĊVX„„lmV@zn¤›ÒnxmnXxlUnVlwšmU£VV„Ušbl±„„ƒL@x²mU_lJš¥UklU@ln@‚kXbmKUxÈbl„UU@`V@š²„mlLÞÑ@yU@„¯ôn‚™„W„zšaVlV@XwlKU£‚»—aVaUwm@mwUVUwkƒlVDzLlƒ„KV™m_@ykUmƒ@mU™çkKmxkIU‚Ý„@LUJ@n±„kº‚LXb™¼@mmIXa™@mamnkW™ƒKUƒƒxƒ_U`UklwUw™mUbƒV™²ƒakbƒmkn@`„UmҙšVxUb™I™`UƒaÝÈ'], - 'encodeOffsets': [[ - 106774, - 30342 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5109', - 'properties': { - 'name': '遂宁市', - 'cp': [ - 105.5347, - 30.6683 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÞĖUxlJX„Vb°@„xUÞmbUxƒbXbm¤VX@lk°ln@x„bÈ@lLVlVUXxlJšç²UlwV@@UÈWl™„L„w@w„V˜wXaWm²¹@»lī„¥„wƒ±šI@ƒšV@bl@kLUllUVVn@mmU„wX™ċbVb@VUkbmamšW@kƒa@™™k@ƒlaUa™@¯b@šmmwó@@lkXUa¯°›LU‚am„m@óƒkXUb±bU`kLm¦ƒbnVmbnVmô'], - 'encodeOffsets': [[ - 107595, - 31270 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5103', - 'properties': { - 'name': '自贡市', - 'cp': [ - 104.6667, - 29.2786 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lIÞDŽbVŽš_šJVaUwš™nуV@_lm„nla„bš±„UVašnVxkxVlV_„`„wV„„LšlXnmnbš@WbnJ@nš»WaKl¹²ƒ@mVI@KރVlJnw@aW¯¯¯UmVanL°w@aƒk„mmU—xmƒULWxUUÝKōèU™KUƒƒkĉKƒL@ÆnX@x™‚Wȯ@Û»™nÇÜÝLka@b™KƒnUaVmƒ_ƒxkƒLX¦ƒJl¦ÅlVb°I@bnaUŽmlƒUV„UVƒIUŽ„Kš„„a@nml„„ƒŽnLl„našJUbV@'], - 'encodeOffsets': [[ - 106752, - 30347 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/tai_wan_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [{ - 'type': 'Feature', - 'id': '7100', - 'properties': { - 'name': '台湾', - 'cp': [ - 121.0295, - 23.6082 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@\\sŽ@pS}aekgKSu™SsMß`¡CqZ·be@Q^o@‹gieMp‹‰]}•}Ľc_Kk…{™ù“A¡r‰[uom@эĥJiq©mʼnq¯Bq]ÙYgSåk_gwU­isTE…“‘ĕiqiUEkue_‰OSsZ‹aWKo¡­q“ycY£w}‹ĩ™ĕS§Z©S™N¥SyLÑ¡±Ks^IY‰PdƒY[Uo†Fp}´\\¬\\j]ˆe܍ò‹¤¡–ā a\\bn™U㺹Ìs¼j®[cíȈEŽĝĆ`ļf¶Š®K|VØDdKGpVnU‚FjpH—F`†B’[pMºxÖjbpÎxp€¬‚|ΟÜÒCв®‚ÜAp„ZG~€Šd˜ÞàV¨|¸€`|Œ²tx~\\~|dFf^zG€ĄŚhœdL\\hĸž¼†ŠOªP®lV`p\\]Xpll˜æ¤œCpQ|oF}fMRi†NSon_²qämœM„NM‹\\•'], - 'encodeOffsets': [[ - 124853, - 25650 - ]] - } - }], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/tian_jin_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '120225', - 'properties': { - 'name': '蓟县', - 'cp': [ - 117.4672, - 40.004 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@EUDAEI@WNMNCBFAHFFNACDJDPBD@@GD@DIFFHEFGDBDEQOFG@EI_KG@OcJQM]RMEKBGPG@[LaCIICBWKCEEG@WBQHCDFD@HSLEJI@IHWECFGAAEKCGDBFCBSBIDCKKHEADMJMFABKOKEQAA@IEEG@GIQAEK@OZEESMOL“lu@SLUTYFQCMG@@SQUAYKAACA@IB@BDB@B@DC@@BGAEFAA@BEGKJCC@AGAIHA@@JC@QEIP@@A@EGIDC@O@C@@@@CJCWKABFLBBEBSQGBAAMIEM@AKBcJEN@BEBCFMAEFEF@J@BG@BFABECKFG@AFQ@@F@BEB@@A@@AAAKAE@GFGDECEFEECBKIKDELDFEDYH@EIACDCHKBEB@BAAC@ADBHABKJIAIJICEDGDCD@@A@A@DHCHJHDFEFGBKRKBGIK@GIMHSBCH_BOJECCJCFKKMD@DNJEDEGC@OJCJHRUL@HRJ@H[DCNKDZHCTFDHCFFKR`TANVDFZRDLFARB@HPAPG`ILAR@TERNDFNHDLCLDDCXDYbHF@FEB@LDDVE@JPNfXPINCVDJJD@NJPAJHLXHDNANHhB@DPNLRMTBFRBHHr@`NBFEBOCCBIAQJDHCHLHFA@HSDCRLFTB@HEFLNF@PELBDJALFLTC@EPFLLP@tUHQJDfIHGTB^JTCPDLKAIBATFPADIEGECEMJ@JIAIHGECFEAGDI\\SPOXAFCL@BQTQBBTMZECYGAHA@GJAE@HCAEME@IECFKJADDBABLTHHG@ILEAMNDJCDHEBF@@JNFJELDFKTOT@JETBFFHBHEHKI@@IJEJ@XKEOUMS@AF@CEB'], - 'encodeOffsets': [[ - 120575, - 41009 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120114', - 'properties': { - 'name': '武清区', - 'cp': [ - 117.0621, - 39.4121 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@FWôµ@IFCLIB@EHNBp]AGEAKAEDMGZKFGBGME@ILGP@HEFB@BXMEAHUGC@IHCLOD@X[NWHWPKAEF[@EKIOL@EKGBNMJ@EIEHKBIC@BAKMIACCFQZCF]DB@ERAKADIHGEIBCGIIECFaGLZO@EFCNGAGDGAKL@BMG@IE@ADSDEH[JGC@CGA@BMDeK@EIACFE@@GG@FIAMM@CCGC@EM@ADE@CFMAAGHBDKIEAJG@DOGCDEKAGIS@KFCHKAEHIE]BeKNO[IFIOELC@A]GMBKVYCDDgGAICARc@MW@AQE@DGI@@AQ@@BKBAIQQYEFW@CEADIGGBCEIiMEMF_LGEKMBBDWEBGRC@E_CHYGCH_IAED@FFBQh@FGJaJ}AHRAREF@bE\\C@CT`FHC@\\BBF@BID@HGDDJ@@FAHKBARECKDAZBJIVNHCTA@EREAMLHDAFFBVFFC@RNRETHD@FOJMACH@CAB@P@DF@@FGDWE@FFSIEMKQDYCCHKb^JADOCIDGNDBdBCFJB@EC\\A@BJEA@JAAAD@HHD@LFBCFF@BERDHNhZQHMBGHOACCEBWEGD@PSJKCGEUD@CINLFGHE@AJK@HDABBHTB@F`DBFLBBHEDARCFG@ABJBAPVFE^FBGLGCFG_BMLEXGAAFE@@JNRVJHFALFBEHQJCTbNDHCF@PlFLJSXCHFHfVBTNJ\\BPJXC^FAVNFCHFB@FFH@JF@\\ABCFD\\BDMCAAJKQBGAILOEGHILECQLWFENJHADC@QxNHFJNLDFA@CBA@D˜UÂmR@FBL@BD'], - 'encodeOffsets': [[ - 119959, - 40574 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120115', - 'properties': { - 'name': '宝坻区', - 'cp': [ - 117.4274, - 39.5913 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@TZbB@JHD@DODCLM@AP@LL@BNH@ETFN@`E@DNG@CHLBCJA@AICFKDDBKA@\\N@AFNAGRBFjFFFL@DHLBLFQPcXAZMJ]GAVHAIZJFNE@JpDRRDCLFDGXA@EFF@CFFPDfEBDB@DCHCFCJDJIJBLI@I@CB@@ADBB@FALADGDC@@H@BB@FZGFCCE@@FMLALJDAFFFEFDFCB@@AHCF@L@@BBB@BB@FC@E@@R@BEL@HEFD@G@AH@AIB@@@FEFEBALDDEFAFO^IF@JCBBFPNJJ@D@PRDCEKBAXL@BIFD@T@JE@BHHJORFDI@@B@JGH@@B@BDDLIFFHCD@D@DEE@BAAAB@DAF@B@H@NGLJLMRDNMfGIEPMI@GDAKK@KIDIJ@GE@CFDN@FE@GFEPGV@TCDFKHBBF@RW@DD@@ID@TJFKIKLI@EP@IGBCLAEKLEN@KSHIGYACSD@SEAMBBMGEBMQBCMIGKFB[D@HDLPHDBC@IFITDLG@IIIFGVBNJDLN@VIRI@YIAIHIC@CLKZCBEE@JECEIHEAKGDGECBGEEM@@DA@CCCBBEGA[GEDBBoNAAH]MKiIAWKQoIIPMFQAEEDMH@FMSUYIeF@EK@BIOEKJEBICFKaKPFAFSE@LWCCFMHDDEKESBOGBKIEIODLG@CCDEQCEDWEMDIEIB@EHGEEDAEAa@@HqDEJGF[AECCFa@WCEIKAAEQB@FCAE^YDERDDJBLNABD@AJGLJF@FNIAMLH@FPKLJ@FE\\BFOLGXMXW\\C@KPGD@JHDGVFBWN@AEAGFO@KH@JNFAHEHYLNHFCLBFBBHo^MAFGA@KJED@Jó¶EX'], - 'encodeOffsets': [[ - 119959, - 40574 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120223', - 'properties': { - 'name': '静海县', - 'cp': [ - 116.9824, - 38.8312 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@NGFMDATCNDR@CCbINEHNJA@C\\EEGVE@IhE–[˜w”epc¢·²›^QEKIEKIgiQDkehY£uSDBMkUDOJDHC@GF@CAFBFEN@C‹Q@BeP@@G@HD@@MHQKi@[IGCOCESE@GMA_OcCGDu`aˆ@VZzKDkJBLNXGDqKEWE@cFEFA@ƒISIi@@KMABJGBcMuFEzGVH\\ATSEUBeALCEMG@CEBUHUCGXaBPtUBBFIBFTDFF@DDKBFNGBJPHXDDMDCLJ^mBIHIL@LR\\@LCR[@@z@NFD@LLBNb@RHDBNTPT\\F@BJF@BXCFBHHBDLFB@HODADE@@JHVXCPDHCFTLBBFNCDCCCU@@GAABEHHZHBCAEdEjFDD@GfD@DXFCHF@ERFDLBH@'], - 'encodeOffsets': [[ - 119688, - 40010 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120221', - 'properties': { - 'name': '宁河县', - 'cp': [ - 117.6801, - 39.3853 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@BFLBFJXDb@DEFD\\BHEFIrC@Gb@FBCBFFGH@FJAJFNCXFFCRDCFDDH@CKJPJFALPHTALFCFGCENDDKXF@ETEBO‚bLELJDFALIPFAJL@@FfEZJTVENG@CNFFRBNEJOpJLRBXjJNLG^BBpMAAFC\\HHBAFDADDB@@CN@FFAHFDCHLHFBJGFCFUNKJJTD\\XUXF\\^F@DDDQXXBRLRCBDFEVCDLVDpUl@LEDJHAPRFGL@CETGPBTCDDVI@CFF@GFDCCVGLKEK[Y@MECISG@BKNSCGCKWEAaEBEKNGFSECO@GGM@GYI@DÅCMLHPTF@DJHAVVNKEGDETJ^[TJNNd@NOAMFYJ@@GFANDPEJB^aOadSTQSI@MHBDIEOKCG@EEFCKCqXO@@DMFENCDDHCCGJ]AKFoDaGGHYFDHKJiCMFGC@EQ@AEHGAC@IEAATKOHGIC@IXIFEoƒGE[JCFCDHNmRADFZMF[EEBMO{GU@AOW@@]ZeHBDEHBKEfQkuIWBs‡@EC@d[@[^EDMTKCEEcI@cDAB@FCBCACmOCG{PYHeBgPwPFDDALFFFCHQGSD@BHFAR[TaFYXMASUiGFL@DQNCJI@@D@PLDN`ETEFIGMCGBCE‘~CAIFDPEHGEQPHJADFJGHCJLB'], - 'encodeOffsets': [[ - 120145, - 40295 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120109', - 'properties': { - 'name': '大港区', - 'cp': [ - 117.3875, - 38.757 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@JFFL°_`ONJKDDFIFZN xlb~yFVNRŒrdJGzDPVFBCTNND\\UR@E`F@@Ip@IWGUoawOEE@ÏDgK{İEEMFëC—b…™@—KwOCDHHKBDJCDEEEAGHOABFABMCgDLSQ@CFEB‰MgYIDQINE@AUSwSAdYEHQMEyK[KI@GRMLE@@OqOoBOnpJ@BmEAFHL^FDB[C@BBDVFAHFJENB@sNEjQAMYsUgCSBGDJH@\\LjGR@NC@@G@HO@AfR@DŒM@EFEADBE@@HGDICCPlVANTC¤vgZlfRChjLJ'], - 'encodeOffsets': [[ - 120065, - 39771 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120107', - 'properties': { - 'name': '塘沽区', - 'cp': [ - 117.6801, - 38.9987 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@|ODHnPBDADEDA@CB@ddJFFLDNSFC\\]\\@@cFDˆ@nACOMW@M@ITURBRZNHNWRQšoO•j½f‡cqŸAqeiDÿÍyÓįFL|Ch@ÐFFxPpbHVJXo@@JCTR^BPABQA]^MB@bE@@FQBFVJRH@FXtPNZSBAja@@NƒDTŽLJrQTHFXZFB`'], - 'encodeOffsets': [[ - 120391, - 40118 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120111', - 'properties': { - 'name': '西青区', - 'cp': [ - 117.1829, - 39.0022 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@LHAHRHATh`LHNHDG`HDGZ`D@FQDAHXFACNAFLVRTBFOfHDCVBFQH@HSXHEPFB@LDBF[bDbLFKJBFLADBDjLvCPEI]FGEIGCBEUSjcFiBIVWfaHCjN^HtwBBFGPBJGjFBEGECGDONMFAP]TDHQOWCMGAMHKIJEIGQ]aDlUG]VGEGDC„{PEbBZmE@@GH@BCA@FMQCFMYMJECELCMI_P¯`]R±œ¡¸od“f—x•\\gF@JUFFH[F@DIBGMMFaJDDQ@MCSDCBENMH'], - 'encodeOffsets': [[ - 119688, - 40010 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120113', - 'properties': { - 'name': '北辰区', - 'cp': [ - 117.1761, - 39.2548 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ROHFFGCOJEDB’}DFHANDJHFEFSM_KC@O@CJ@DIRM@CEKKA…L…FKACHoLSJSIBETDJaEIIE]E]K[MYUYQILC@GF[MGNKEK@A@BCWECAIFEFYAGFOMI[OFuDiKACBCEKIAELaKaCE\\CA@KEAFOWGGTG@ERUACDeGEPSAUQKHE`FNjNFJADHHCJFB@DEXZFRRBJLA@AR@@BJ@CHF@BRX@@NQdDBBJhHCCZDLUNA^H@BKDPFEJ\\JMPfL^AJFFGLBDGLET@HJLBCFHDCPH@BIJFCLGABHNBDEF@BCN@@FHDDDN@BNEJH@@HF@DEJB@FfLNC@AHB@DHD\\IFGTCBCF@@JNH@ALKHBHCHBDMFEP@KYbHDEJF'], - 'encodeOffsets': [[ - 120139, - 40273 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120110', - 'properties': { - 'name': '东丽区', - 'cp': [ - 117.4013, - 39.1223 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ZV\\N^L^FJFFJIbSCAFTJTIpKDGLB†E†KLBjHTVNBZWbE\\SBQGE@ATCRHDGEEKECBECxOhOfAZGA_YEEWSGqRKIS„C@Mb@BiTAMYsOEWG@IQEURA@EF@@acUOXQRYCUDCHDTEF[SUEgAYDcVGJM`iAWDWLQRMHUHgDsDBLHJFCFDFGHBFFVEAGHCJN@RJF‡PIhBD\\FENCPWA@LFBAFHBEJUEARCDIAEDQBRNa^'], - 'encodeOffsets': [[ - 120048, - 40134 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120108', - 'properties': { - 'name': '汉沽区', - 'cp': [ - 117.8888, - 39.2191 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@LMEI\\MTABKN@FCDMH@COAcH[AoēA™M¡Wa[Meq™pQRMXMGQYQASV@J@NNXDPmBAtJXlveRLFGACFGAYf@^X@BPV@|HNPFA\\FNEEYBCnQGMDCDE\\IHFp„EFWJ@JJDGHLPBSFB@JBDGHBFR@@FHDNEjDLICGZEHGbHpCLE^BHIDDCGDCFMNE@CP@rWLDEDFFH@'], - 'encodeOffsets': [[ - 120859, - 40235 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120112', - 'properties': { - 'name': '津南区', - 'cp': [ - 117.3958, - 38.9603 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@TLv@CNHFFBHGZFETNPhCVGNGRQXKXCjBN_HIdUZChBVF\\TFECSDGVCZDRQPWdVNA^]RBBAAOQ]DSE@F_Q@[VMCSMADUECOHycI‹qMQEU}zkaŸwENRDENB@ADG@@HF@YnaAOFƒ|CDFHUHH^kVbCR^JHIFLJNGHBDNPXGRSCO^EBMNCPDHHFAFiEIHOAEH'], - 'encodeOffsets': [[ - 120045, - 39982 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120103', - 'properties': { - 'name': '河西区', - 'cp': [ - 117.2365, - 39.0804 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@d@hZNFdcLYXKRCtCMOFSYEGHEAGEDMu@SKAAsx]GMTGt'], - 'encodeOffsets': [[ - 119992, - 40041 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120102', - 'properties': { - 'name': '河东区', - 'cp': [ - 117.2571, - 39.1209 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ZBVFFIGABEEA@KXBDOFM[EACJgˆOIE@QIMGDBHUFEEGAEHECEDGIAKQDWLKZcdQPEP@FOFBJTJ@HNORJf@DBCN'], - 'encodeOffsets': [[ - 120063, - 40098 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120104', - 'properties': { - 'name': '南开区', - 'cp': [ - 117.1527, - 39.1065 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@NMVDCG\\E^B@HlB@YEDS@C…HsNSiMGDebUXAJEjidVTAFHDFJ'], - 'encodeOffsets': [[ - 119940, - 40093 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120105', - 'properties': { - 'name': '河北区', - 'cp': [ - 117.2145, - 39.1615 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@DBXFADB@L@LFHM\\NHED@JKZRb]QMRAFCJBDCBQYADMCAe@QIMP@GSIAIPE@E[EGH@ZEF]^HJAXK@KF'], - 'encodeOffsets': [[ - 119980, - 40125 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120106', - 'properties': { - 'name': '红桥区', - 'cp': [ - 117.1596, - 39.1663 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@J\\PNHEZBFEJELEL@BWGI^]FEkA@G]A[FDHUCMNEHJ^'], - 'encodeOffsets': [[ - 119942, - 40112 - ]] - } - }, - { - 'type': 'Feature', - 'id': '120101', - 'properties': { - 'name': '和平区', - 'cp': [ - 117.2008, - 39.1189 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@D†T@FCHG\\FFOROMEgYc@'], - 'encodeOffsets': [[ - 119992, - 40041 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/world_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'offset': { - 'x': 170, - 'y': 90 - }, - 'features': [ - { - 'type': 'Feature', - 'id': 'AFG', - 'properties': { 'name': 'Afghanistan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ࡪ͇وŐǬϠڐŶӂʮǚڦ۾njƀ̚ІɣʪҴMوǯʲĹ،˒˰Nj˖ϪԈiżŬĘͺβ̈Ҕȏĝʱʪ¡ý۷ͪ˟̊ǰώĊԼϖׂ×ࢀAƬʋӧĥяƹ७ĭࣗǭӫλȤΣĪллΛ–͑ɳ̡ߛ€ͦ։՗ɅΥԕ²ԋ͡ɿ̳þٝŋğɻسDҵӇ‡܍થΓבôǝȁԇņ࠿űටіހހåզُƚßՔ˟ڢάҢιŮɲؒ΂ਸ'], - 'encodeOffsets': [[ - 62680, - 36506 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'AGO', - 'properties': { 'name': 'Angola' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ȸصʌԋȘ˕͐ѯ֊æˤŠҬşŲɀɂӨԶ®ƤіHñ̡৴RfՉǞ͕ūԑÖԫ˪̷­ৃȼüκsԴŴϦ¹ĘʹĩСƨϿů̿î́ყZᦵ֤ۋպԽ໳΁᎝Š׋Ж₭—ŵÏԃϞկ~ԉƝЙDžÿՈŜ݊̂ޒªΰ˚ݶȨΆӘռːϐĘج«ӊʣ̜ɡԚȵԎ®Ǩʶͬʭ߼ǣ֚сՐĄǎΌŔʒg̎ĸៜ['], - ['@@ɉėɣلͼδʪƘ̀˽̩ǯƍɍλ'] - ], - 'encodeOffsets': [ - [[ - 16719, - -6018 - ]], - [[ - 12736, - -5820 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'ALB', - 'properties': { 'name': 'Albania' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ń˷ŢέΒȳiə˗ŧ»˙ϷСƛÐgȂү˰ñАîֶŖʼƗƂÉˌθаÂƿɨôǴɥȪďȨ̂'], - 'encodeOffsets': [[ - 21085, - 42860 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ARE', - 'properties': { 'name': 'United Arab Emirates' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ƭ¤ŒɱڂƂ۞uԖ{ֺ֪ظՠՎԮdž˹ŖڑѕGçճƪŝϝǑE΅ʓΏuͷǝDZᡋъ͏࡚Ț'], - 'encodeOffsets': [[ - 52818, - 24828 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ARG', - 'properties': { 'name': 'Argentina' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ߗ§ѓ̔ԑx࣑@Aሞ͒ϵрؿનԋ୲ȿϙп'], - ['@@Ӵ؇͠ڰॠ“ƊǷ໶ോۊŷਆاࡾ͡Ŧχࠡ౧ࡒɭ़ŷڔƈނ٢ƎݐжLjфӝiڣۻҩ֟΁ॅࠃ૭ଧȽڥɣࡹT࠷ǽȇÝիËѫ੨ܙŗ׃Հν§Ч߯ઁఛ҉။ǩउĎǰԅǣػƺщԋ̏ࡱř̪͕߱ɗŜ࠳֨ʧҠˆʢѧޛʻڭԹūࡋȣ҇ߏEڃљʋؿؙࠞߦǝ˿ݭ঳Ӄձটލͧ΅Ͽ˔ࢍ֔ӡΟ¨ީƀ᎓ŒΑӪhؾ֓Ą̃̏óࢺ٤φˈՒĭьѾܔ̬૘ěӲξDŽę̈́ϵǚˢΜϛ͈ȝॺ͸Ǣƙ਀ȠࡲɤݢԊ̨ʭࠐEޚَոo۰ӒࠎDޜɓƶϭฐԬࡺÿࠀ̜ބռ߂צԺʥ͢Ǭ˔ඔࣶд̀ࢎĹɂ۬ݺશȱ'] - ], - 'encodeOffsets': [ - [[ - -67072, - -56524 - ]], - [[ - -66524, - -22605 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'ARM', - 'properties': { 'name': 'Armenia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@୞ƀǨə͌ƣǛɁ҄˽ʁˋΦɫϘƏl׋̣}΃ӢHżχCʝɤǩuͧʖرȼĄФƛ̒'], - 'encodeOffsets': [[ - 44629, - 42079 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ATF', - 'properties': { 'name': 'French Southern and Antarctic Lands' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ը˃ߐĿˆDžɽϣಇÃq҂ŮΎÊǢ'], - 'encodeOffsets': [[ - 70590, - -49792 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'AUS', - 'properties': { 'name': 'Australia' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ߺ́ҜŘپNJԎÉÐঽ˽́ēگ̉ɰ׍בǧ®ԫ€ԭܘŗֈӝܸtϬռõ'], - ['@@̢ڇբ̈́˦ΡЖ͟đϋǴܛŸнɄĹɬܕąѥ˖֭࣬ѭצЋ֞λŋȯӔՃࣧ͜ͲȂ;ηȴźƢࢹ׬ԩϸ͋ڀڹʀڭtӏËԳА܋µݓơϵɩݡjӕǕ׻χއثЭ̫ٱ˫гʝܧ͕нɅػʼnׁªˇӕ̇व‰ޡ·ϫ͙ԕέ۟ψԥƪżѬҝǃ݁؉ܩɪӉƄӑÔ߿ʐիԮƻْțьЭ;߱ĸˢРȯزЧ׉ݝƷѮҬŶӞ͘ЬãجہܑԿ˽͏ڛٽΊ~ҀԿ،ѹ̀ǂȘઃԚןz߯Цຓāછ̝ख़˫ߡÈࢻљܯȗljѱ̳Ϳ܉qՅõݑƶ׿ğֽԁ҃ʕœуʁЗˋؕ֛Bࢽ՜ҋDŽlӖкŘƚȒ‡̠ĺאģӼѻࡖƏӒ˜ӎͭնsʚϋͰĽڄӓڔřΪτε˳ެиʑʞ͗aјеڎă˄țʦĠӠǢȸŘрęӮΎ؀Úٕ΢׀ۀˬЦΪٜ̰ϤàɴĻڎ̺ԚĤŶȀɞüҬoࢨʖҚώɊ҆ӲѐœͲvҘט܎ΠܩΦǚ̗Ј˂ТψǻĸٖҠаȮͨцƜ`ɼτĭdɂτŦОŔبϫҲӽՂMՖÿDZҦДڪϜɘſȾκӒԘ̒јıۺǂeі؛ˢ҂Ū֎ȻҀ·ۼɋʈĐԶʵӬʊ͂ñȠNJϬеɡ͉҇ͻ˿ƒĮͱʙп̗ЭÔʁڜҫ٨ˏѠ́؈ӻʂBѰɍŶʷߤ˵ֈ˼ǐҊǠόľҤʰڞŝОÔʔīӔŌنLjǠŽˬȮѾdžҦtʈ̸̾ʂЩÎՃȾķ˜Λ̨ёÚӇ‡̥'] - ], - 'encodeOffsets': [ - [[ - 148888, - -41771 - ]], - [[ - 147008, - -14093 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'AUT', - 'properties': { 'name': 'Austria' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Û΃ӁCǎǻ˧էLJƗܽsщȏۛÞயɐȉ̊ࠧƣĭDžԗŢѕxϝƶźȴƬʪ²ьɹŤɜݎ•׸ƮЖ}ˀǣþƜšո̠ń̒ϰز˓ӀΆ̐ÚٶʱЂªϰǁãŃČ̅'], - 'encodeOffsets': [[ - 17388, - 49279 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'AZE', - 'properties': { 'name': 'Azerbaijan' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ʞɣψDGŻ΄ӡֽŒщϰƃ͆Ǫv'], - ['@@ϊËƞɈԈͺѴѵђ׭ϺŸʸɧۗãƣٵƟ̭̍ȝvзȽ¥ԻѲ̂дʝʚ̿×যإk׌ϗƐΥɬʂˌ҃˾ǜɂ͋ƤǧɚȶƎضʍҐ¹ŘIJбҔɔŚʀ…׀ԙ'] - ], - 'encodeOffsets': [ - [[ - 46083, - 40694 - ]], - [[ - 48511, - 42210 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'BDI', - 'properties': { 'name': 'Burundi' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Á০ɃϢԜßʲӎҀŸͧǸȏT˗ȹǭ͛ѫ̧̥΍Ÿ'], - 'encodeOffsets': [[ - 30045, - -4607 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BEL', - 'properties': { 'name': 'Belgium' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@؜áުǪՐοҦȝħ֧ɕĝһܿϦћßדІϷͶϷ`ũ̒ڪǔ'], - 'encodeOffsets': [[ - 3395, - 52579 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BEN', - 'properties': { 'name': 'Benin' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ۛįȹ׆žኞǛǦЮ̇̌ʱʞņѶ̀ĨǠξЪĀȀʤˮʘ̠F٘ә˩ȎӽǓͷĘɧСԳʵʳǁՉt՗µണ'], - 'encodeOffsets': [[ - 2757, - 6410 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BFA', - 'properties': { 'name': 'Burkina Faso' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ֹɐϽ‹̍Ƀϗǰƥ˦ϙǾÅӦɮΤo˴ښۢŬּɲȴОœΚǢŘɎٴϖdžˀ޼ΒҦŢɀLJՠJáСŔϣӀչ€НॺȏmֻǿʣЩÿǟν˿ħ݁lϳâ˓ƉωÖร¡qӉŘم'], - 'encodeOffsets': [[ - -2895, - 9874 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BGD', - 'properties': { 'name': 'Bangladesh' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@i׽̉ŶÆگʉѬµєDžКΕӨޟ’ü΋˃ҳΧǠũƵʃĠ͗øŽۖ̅لƜԒԫɤȆ̪Հ̼؅Ѽ֮̔ږεВ£ô׏ߞřު^Ӟƛϯ܅ϕµʷӍҢѥƎ՞ɶFѶ೯'], - 'encodeOffsets': [[ - 94897, - 22571 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BGR', - 'properties': { 'name': 'Bulgaria' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ʎΉ͚Ö٦ſ௾«иɌবȜ̩ؒӴĕѥΏ̫׹˔ӏܣŒࡥ˃Uлޅÿס̊ڧɱة|Ñ֊сːƒŢĝĴƘˌ͌ˀСδ÷̬ȸȐ'], - 'encodeOffsets': [[ - 23201, - 45297 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BHS', - 'properties': { 'name': 'The Bahamas' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ȵ£ɇӜ̿ʐǾՔʨ‘ۣ̎Jӥ'], - ['@@ࣷƅÏ̴Ђäֈ{~ɕ'], - ['@@ƟׯƷņ`ѮϓͪCĪڐϗ'] - ], - 'encodeOffsets': [ - [[ - -79395, - 24330 - ]], - [[ - -79687, - 27218 - ]], - [[ - -78848, - 27229 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'BIH', - 'properties': { 'name': 'Bosnia and Herzegovina' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̦FȿσМ͓ūЃȡ™ƽû˙țūҥݓ͈ͅΘ͋Ȅϭ̾ǻʺЩϾǬΒ̞ȕǼǨϾnܠƓ׈\\Ϟȅ'], - 'encodeOffsets': [[ - 19462, - 45937 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BLR', - 'properties': { 'name': 'Belarus' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@߼Mࣰ̈́ȚӄېːÿϔԜƚ͖ࣘࢮɁŢȻѲĴࠒȧĊЁǷɧՄս΂Ƴ»Ʊ֦Ʃʎɡ͝ǿڳˆljÿȠ˧ȸ՝ܝ¹ʵȁÃхͭĆݷ¡əȞ̿ƥ́ŨڍjफȬࡕàٱmҡɩГeϐʷϴԌǢLͰɷ͌™ϊ'], - 'encodeOffsets': [[ - 24048, - 55207 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BLZ', - 'properties': { 'name': 'Belize' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@OŮĸžƴı̞ԔDŽZHūDŽGaɭƋεôŻĕ̝ÀăīщǓɟƱǓ̅ʣ@àॆPژ'], - 'encodeOffsets': [[ - -91282, - 18236 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BMU', - 'properties': { 'name': 'Bermuda' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@OEMA]NOGNG\\Q^McMOI_OK@CQSGa@WNLVWHFLJXVFGJ`ZRTDLeeWKIHGIK@@[MQNi`]VDTBHCJAPBJLVFjT^LV\\RJZRn^RH`TfJjZHHOTTFJP_NOX[EYQQKMEJOLANJH@HQHAARF@ZEPS[U_IcRQXE@EEKKOCGGCQCOGISKYGUC'], - 'encodeOffsets': [[ - -66334, - 33083 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BOL', - 'properties': { 'name': 'Bolivia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@य़”͟گӳ؈વȲ۫ݹ؅ŗ͡୆ҋऺˆ߾ѳ΢ŏ؆ЫֲՌ࣢αۺȖ˰ƭ̶͠рh܎¤נǸ˶ܩഠزíѠnȈʪ݀;Ѷ͂સƚęؽļ͓ãࣰ֛ݫऴƑ̻ͦ֨ǕΐʑՈTӦʟšӟǐʕZγʓa͒এྖ“ūӟĜͧҞɽȤԹƫڋɯρĄӏʿǥaʶ޳јޭ^ัʓЕ݋sҋͥ৕ƉǸ'], - 'encodeOffsets': [[ - -64354, - -22563 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BRA', - 'properties': { 'name': 'Brazil' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@૮ନॆࠄ֠΂ۼҪjڤуӞеLJǒӜŖӼBҦ̡ƴ̿Ƌ̻œį͔ýޔƿʤ֥ɪ΃ǏࢱLjÈଜʝҴˀǦăӐɰςƬڌȣԺҝɾěͨŬӠྕ”͑ঐʔbYδǏʖ™ӠӥʠՇSΏʒ֧ǖ̼ͥळƒ࣯ݬä֜Ļ͔Ěؾષƙѵ́ܿͽȇʩџmرîӃƟϡĪÈ౨ۏӷݏv҄ͅ֏¶DzΰұԞΓݴɜƶA΢ԖʎċҔɊ̈Ôϼ०ֲێNJŔŴݴŸϚᘰpθſӔύ̬LؐӀƒǚē†͐ӯĔYՀ࿖k˦̂ɸˉǐӷǂļҨѻٸÆnjʲشȞΊƐĮΤ׸ʆ¯Ǯ܅ðśՊ’֞ϓɒǀþجŅڜȿʐȤ؀žल̮͎̾ŏʂѪšȜȗʼnσ̀ŵȖϷɷ̏ƅ܏ɌыÔϳԬϿЮ¥Ģǒˆ˜ϠƦ˚ɢҬíȲŠҚçøǢƗǘĎʐͺõЈĒӔDZξǥʺɪȊ•ŘɿДÒ͒͊ʴؤӼޒ˺¢ȺҫҼ฽҈Ƒxׅمەʾʩ๤ƁŠࡃٔր੐̟ඊԡШӱƏҫ঎ʶ࿐ѹఴŽఔ۝੸व٪ʏܖ‘̦˅˸੭Ɣԗͯ൹ёշஅୡՙोثܯȿgɻءÒ༽ɹಓęօˇͧƫ૱࡛઱ƛࢁڹηȟԋ࣯Fೕ͓סύवʗ঩ڝ܅࠯ũطƔҫƽࡓȏЧחҥट๕݉ڗ֯Ͻϥߛ։ӑɷӈψЊӟֲڇҬࡹՠ̹{ࡅٰձę'], - 'encodeOffsets': [[ - -59008, - -30941 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BRN', - 'properties': { 'name': 'Brunei' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ͬ̾܎Ң›Я·՛Б€ǭ˹ϥѦ'], - 'encodeOffsets': [[ - 116945, - 4635 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BTN', - 'properties': { 'name': 'Bhutan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@΂ˍÏԩۇ{ۿÈՇſޅ͊kǚ֌زҒɈ׸șѺqπɥ'], - 'encodeOffsets': [[ - 93898, - 28439 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'BWA', - 'properties': { 'name': 'Botswana' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ǜƭ˄ӡॎइήĝD̑ʚՑٰŹ՚ϝ஑أݭع˩֓ʧ́ҙãƧГďʽ՝țہ¤БɾΟĸХșȵГЉʧпϑ׻đȇ̐üԠӽߚɧŲAរࠤˆ|Ჾش„ಖ͎̎΍՜ͤʮDӂȎưÙ͔ڣ'], - 'encodeOffsets': [[ - 26265, - -18980 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CAF', - 'properties': { 'name': 'Central African Republic' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ۜÚƺɎƔgȾȏ੔͐Τ͠Ѭ̌ĉ̐ʂüߺ½߆ϴ؊ࣺю;ՐƜĪΫӜԿF΃ƋΓÄʻ̆ʍٖοҢͻT˗֠ѫΖεɆԋغͩƊˉˣęաpكĘ̹ïųȱ˕}ͧDzधнϥĎŗÝʥԕطǐؙĊ՗̴ۓ˸҉˓͛яùדգ²֩Ƙԅѻѯޱėʐ›Ϧϧ˔̳Ѡï̠ЇѮæʢċΞÞٴȬƴц࡜'], - 'encodeOffsets': [[ - 15647, - 7601 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CAN', - 'properties': { 'name': 'Canada' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@؎œުxЯ΅̵Å੥Φȿˬ͆ʸ̎С'], - ['@@Хcઝ˂ޯІ̄î૆Ɂ࡮Η|Ʒ'], - ['@@хŝൡϢʥ̘ݩ̌Ưʈࡻư͕ҜðȚࢨǿԨŵ߄ė˺̃дЋ࠼΍Όҩ'], - ['@@։ܿո˴֠ǵ̏̉ݚɱϰȴ࠼ʵʹ؛טƞņѿʼԷΝ݉ϝ‹փǂǾیɻńইܯԅ†צЂ߫Ȳࣙ¹࿅~ŹʠԼ̐λɬ۸Ԓࢄ೾Զӎܲ̂϶™Njɫ҅Չ'], - ['@@@@@@@@߰äʥ॓ܶگͯDԑϪ̵ϮчʾƻτºˎЂŋ'], - ['@@͡ѳχîəʢ Î͖ʦΆkɈǣ'], - ['@@ঝҧץnǿɪزϲ଼SiǍ'], - ['@@ƼυјżӨɗं˽४ʽöЍؤÞ׶˥ݙ˃ಳȬҽϚ࠭ҁ஡ѣ˿Ӯଗăܴдņڌ˺ޔ؈å'], - ['@@ष¥ȿЪΦҼޖŜپɷXέħřձʛ'], - ['@@Է̍ଉʬۃğଫϘ݊ʼטζࢼʃԎƯʦDžԠ͍'], - ['@@G࡭૰ڄ৐եʡح߾֥࢚؈ؖܨ°ईஞÝఔūૼй¼зس҃פ҇ŃУ࿩חୡŻࢃʨʣуߵ۽ʓοই֩ளÇڏΡÇձ঍Ŀਉڻ࣭ु͙ڏ±উంƕϜ޻ϼّ୲ǔ༞εࡀ͋׺Ѕ੆ɳࢸΟ൶µࣴąƍܫʼࡋ،ळనߗ٨˚ҔࡺѭೢףѶഎЀ॒לҮהç֭֘܌৷لলࢤνݾ˫ಾגȘ෸ɫࡸć۠ɚ޴˵ਚӣʮ͙ຄÛ}۷˪ਜ਼ގſ،ӵ௖Ұߦऔ֌ϸٺݣબੳघ৙͵Յ૤Ӂݰӓംɏբˍͬ܃ټŏͶͅÖऻ؍́׽̏൯̗੏ۑ෇ƋᅛǮుPࢇÍ۱׽ੳω௉૗ॵޡ܌Ɛഘૄᄈ۪సČݔЫߍ֟ˊࣟ˜هતп൸ŨࡆीÎ؍ժ̥ਣսᇷԁ࠯ͽय؁ٓ֍܆ฤ۞഍ƒणĹջӆBନύʐ֛ƛ˧ɚٙىʱٹ̕ϡΥŽˏ¥čȹ໽A౥MϛƷࢵ؃Ŀßˍ͝ޗBࠛGϛƅƊǑøʯeďષлࡽſউ҅Ɂ@˷ƂĥŦnĔȂ̎ЂҦʘӺǙܴǵނ࢕ЂľƬūĺɳ@ǛƆ¥ȤǍēɥ€¾ĊȡĊćɚٵːڹ˪ࠑ͘߁̨ݧʃ˝Sਕɔڻʼnࠁʺ࡫Ɔו¾ʻƜƫҤ˳IE͓჏BᮝA᭯@ᡃ@ᠿ@៙@ᢡ@ࠛ@᠁@ᛷ@őF྽ࠜ׵δຽΐҳݖŤԨ੻ΨƧڴ৭؎iѠҲКwՌෙ՘࡭ॠՁ׾ޑϚ֣ΈѿѢࡇ˕ࠇҹݛւדπࠋɸࠟ|JⷎNᷲ༬ȭ೘Й࢘û݆ΖৰˀఢĹ఼τ൘Ⱦ־ΑظȠȊЄ׈ęෆݫ૦֬ŖّਔƐ͆ʖৰ·౼Λዸ̭ୄƛࠖÄଊэ஁зຶǷᗘIJܒƦࣆԋࣴьࡩΦժ˼৾žڦĎڴȩࡊҗरä๢ϛಬƄ௬oĭԺݞƦದ˵KߑՖڠڰuϞࡊ࣑԰কͺäघশ؎ૌƇࡘχଞॅݗЭ༠ǝ'], - ['@@нϿሎʬୠщॊіސ˟یࠛфΒ׭ࡰ݊Ŭ࠲Ƈश͹ՆࠉʼץථеະЉĝσൡã՚͓˱ູ̯Ƃฃɪঋ»ཅ˷ᒃű๻āҕІଫɮݙģਛږ֔ĚಘƜஈ›રƦྷȞᅗã஗jѷ̴ዎͲಗ[ืɚ۶ـגͮᖬԠ࡬Nj'], - ['@@݉ևಹך˸Ş૸’ٔȁ'], - ['@@öɵࢿ|ࣟjࣿőʑ¼ऍѾ˜̠ИÈነěชң'], - ['@@ڎԽޤڴᒆΈ෺ࢅůջဒʒߒͮሀыୄЏŊν༚Ȑ࢘՗᎐ܸͩ͹ߐ޻໯ϹጘչೲȁீޙೖÇʽכ้ঋਗά೓߲ઙĿŁӕࢪӥଜϯΌɟմࠩ́׿੕ɪᑏڨஎܣ࢔ԕƎ̉ᗱͲᅩӤ৳Ц̌ʂయќ௥Т`ʑᝡƅ܃˾ֆؤ཈dႸņ˫̜̊оચࠊɳϊ͕˾౿Рၳ˺՞ɆࢷԺ݋´ڏ˸҇ʛ຿ŅᵝȈᄫʚഹŴۥ̐࢞Ϧ஝Hˉ࡚٦ݨࡺ΄ᓪɢأի'], - ['@@৊ǯຄńɖʑ޷Е౜αƱݳ൝͗߳ê׉͎ᐡٮjˎ႖ĽएռসР'], - ['@@࣓عय़ŒԽ݆`кѮΨ࠰ɮც‡ྈȱళݟ৉Ǎ'], - ['@@ᕍЙѷςኹѺήΤ׌ؘܰւࠑԦᭊƀ஬ǧᒰ±ࠄʑࣖΝ੍ɃᏝןਫי@ν'], - ['@@ҙ͙௝Øৱɖ҂Ϛீɨܼ̬̍ˇ'], - ['@@ٞϵ€љϣس൱đࣗƈjӬ൝ÝÁٮࣜౌ˺ஂµÜŎ'], - ['@@̙͢ݠƘࢢ™ƪЩԝЋ᭗Žᑯη౩mŅ˜პϊ④ij୯Ʈପࠐ߈ɾᛄ˳๶ӻฺÛறߨޔ̪ࢄĭ˲Џ'], - ['@@ढ˓ကFܨˡȑ́८ȍՔȧଊ™௬ë೸ǼႊðീÏ࣒ͅȊ΍ԽɟభǷ੽ĸᜱŻႫcഫļᖁ˔̃ҦĹжࡇξ჋ĺঅʼ͂ΈႾÁ'], - ['@@ŗ٣٩̇޹£༝Ϋ഍ŹଗǼ@@ුؼႮծಆ[ସŬ'], - ['@@ϣy༽Âɡɼၜ]מƻĵĩ'], - ['@@༩ʋఝ˔ڼˎ௮Đஈſ˩ʥ'], - ['@@৽ǏඉBbŤࡴʦҌદǝ'], - ['@@కǥۃȚέ͂áΎજ‘ӪÅ৐̇ɫ̣'], - ['@@͜Ε൏Ĥ൩˘ሏŒߺʠ৫ȮÕ͐࿶ŕᗢ̫ٞЍ'], - ['@@০˕ଽʟ༇ك๥Óდņࣗ΄^̦ڔɢ໡Oए˨ՑϠ׌ώ׊ʲࡴÎοȖዜ¨੶҅මǵ൞ǃڒև'], - ['@@ᖢßᅮŅ໤ɫ™ɡᏅη᎙ǟݻȉᆬJጡԙേʃ෯ۇႿƓՙǡᡷěୈĿׇƭ۞бߙ˽ಛʃЋ͡୫ʣŞȏ෬lȳᖟԋᔧɴឿŻధĸཟªĿЖ༊Ȑб؆ԢÐᖤγ଩բഹLjڼ͘๰Ȩʄ̊஋͠ΥѠᘞ—ڒĝ಼̪ቃĬ᰽Á๣˸۩ͼগʘȁ˺దLjঘ‚࿲ƌం̺ਬ©ࣤɽٔҒૐƈບĢᢲ–Ҁĝ᝚ƚᆔÁᆒÁ'] - ], - 'encodeOffsets': [ - [[ - -65192, - 47668 - ]], - [[ - -63289, - 50284 - ]], - [[ - -126474, - 49675 - ]], - [[ - -57481, - 51904 - ]], - [[ - -135895, - 55337 - ]], - [[ - -81168, - 63651 - ]], - [[ - -83863, - 64216 - ]], - [[ - -87205, - 67234 - ]], - [[ - -77686, - 68761 - ]], - [[ - -97943, - 70767 - ]], - [[ - -92720, - 71166 - ]], - [[ - -116907, - 74877 - ]], - [[ - -107008, - 75183 - ]], - [[ - -78172, - 74858 - ]], - [[ - -88639, - 74914 - ]], - [[ - -102764, - 75617 - ]], - [[ - -95433, - 74519 - ]], - [[ - -123351, - 73097 - ]], - [[ - -95859, - 76780 - ]], - [[ - -100864, - 78562 - ]], - [[ - -110808, - 78031 - ]], - [[ - -96956, - 78949 - ]], - [[ - -118987, - 79509 - ]], - [[ - -96092, - 79381 - ]], - [[ - -112831, - 79562 - ]], - [[ - -112295, - 80489 - ]], - [[ - -98130, - 79931 - ]], - [[ - -102461, - 80205 - ]], - [[ - -89108, - 81572 - ]], - [[ - -70144, - 85101 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'CHE', - 'properties': { 'name': 'Switzerland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƫŹȳϞƵіwá΅χƙةŀǻ͹ЏơƄһ˵Л¡αǶ˽ςБſ^ϠؚҾɈϤûɲƞ܎MǦǼ࣒ʱ'], - 'encodeOffsets': [[ - 9825, - 48666 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CHL', - 'properties': { 'name': 'Chile' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Bም࣒@Ԓw˧ͻܛʻЭ‚ӻä؏ʨ࢟ŨੑҸ࡫Ҏୃशۘǭ୼֗૜̟ѢϬ˘ֺޠΎװı'], - ['@@͢୅؆ŘĺɁ˿ࢍࣵг€ඓǫ˓ʦ͡ץԹջ߁̛ރĀ߿ԫࡹϮฏɔƵCޛӑࠍpۯٍշFޙʮࠏԉ̧ɣݡȟࡱƚ৿ͷǡȞॹϜ͇ˡΛ϶ǙĚ̓νǃĜӱ̫૗ѽܓĮыˇՑ٣υôࢹ̧̐֔ÄgؽΒө᎔őުſݝPЙȷݷ̣Ɖ޹Σoॅ˚१ג@@ਲ਼ӔˁՒʄӰх֒Ņ෤Φ߰ࢴٰౣʔߞݒ˸ඊत̏Ѯგ֝ɠʿ਻ՉŠ˂ல˺༒ϮָʍࠎéूΠ„Ԩപ׈എΤబȗ఼ʤۚĵਞӮਆưྺ˒ნˀሤÕ൘ǩ஄ќɌɦњЬֱŐ؅ѴΡ˅߽Ҍह'] - ], - 'encodeOffsets': [ - [[ - -70281, - -53899 - ]], - [[ - -69857, - -22010 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'CHN', - 'properties': { 'name': 'China' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - [ - '@@ԑഓΫۏѷ܂ĩخӶࠜڦَϨʡƣԓ', - '@@ܩЗۏʺyܢаϠࣾɾӚoȊ͍σσșӟ' - ], - ['@@ฬˍ঺ׯͼ߃౨Cܰͨ൸ʜѳݱ͙̭˽ः֡ࠇ৵ƪܝ̑ɜܙť঳ѕwLяթӺͯһಙαƀѹܩŒЍ˂ֽ׭ऑҋۃա୭ʑأϽࣝɭ҂ϴǭ͞ږ֠ѹѲܷ̓ॉ׏ԫթ࠙¡ѓϻѸ֩یƏ„ϕڔʕस׶ݚ͝լuƌѱஓɻϻҏࠇућיࣜҥͦࠝԞޓ֮٥_دՅɯȪ҃ӶʻŻۃɇڗҷ÷ؗࣧڹિޭোିޡୟۻृĩԣύ̃˘Ӈй୭сࢵŹ˻ࢱҭ·ə؎Ȧ͘ૻːЇƍࡍɔЏ΀ƄӜޏƶЙܑ̀҃ࠇīڡJ҉ȳѥūŶ॥҃x÷Ȣ}Ύ؝ʓεƸر͂ʔۤՏǎȧޜࢱƓĴাߔۮ”ۚ{٠νȨ˭ӶӭÙࣟŲ˴ΜϿԺ׳Ν۵ȸॷ՗އسڳĿοɦѹr׷Țґɇ֋رëڌԟǭওĈोȖڿτٵǔ˯ЖҽŦࡓոکʴΑȩଢ଼טࠛՒɽऐ׾ő‚іͭјĐۆࣙঠ൧ͼʝ٦ةϼƫʌųӎˆ͜ԛȔ˟ďɇިʈȔśȠߤЈ׈ǐࢸő͆՜ંIJͮ̚೜ҔŠȐãӐּɔݱฦဘͲјȈ؆ຒဠˡҲϞ¢ࡆۦĀٖ֔͢èɚו۸ѽப̿׆ڱ͕ঙ̢ηূƝଆŝ৪ԻԲġϤޟӲӿऒnჄȉ૤Ŝࠦůఔԛ৮BόʽঐҌബ̈ాŒঘ̒׾҈ך˰Ƌˤˍ͔ѴըӀùࡺǝ࠸Ѿ౲͚؞֊נʆ௠ŐڐĥĠ̘ݿזګː٥̳ࠣžӇŃɏΆר࠾Цو৚̓ஆՎQτݸࢾҲːWҪңȦۜмਰƲ૜vసʡ݈̱԰ࡏ̀α̊ԩ̶ࠕ'] - ], - 'encodeOffsets': [ - [ - [ - 124701, - 24980 - ], - [ - 112988, - 19127 - ] - ], - [[ - 130722, - 50955 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'CIV', - 'properties': { 'name': 'Ivory Coast' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ϣUוǒ՟Wহƥ׍ʍ̯ࠫNjvÞۖĄŀ}ͨΣΚˉÈʕɲǾώčО ʔƄB¸ξÝnjĄŜ̸ĶȹڨȗΎæ˸ǘÞŊúɸųٮOƸʖƢgʎĦžΫȞłΌŰϚǽƦ˥Ϙǯ̎ɄϾŒֺɏɠ஡Ο۷ɕेθܣ›ͧ'], - 'encodeOffsets': [[ - -2924, - 5115 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CMR', - 'properties': { 'name': 'Cameroon' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ľ°ӻŇԝŒЋÅ൅nŬڒ͟֊ϧƚǟϖɋŦXɶɎתЎ߸ʒRԄӮ͈bҾΉ־˲ĀΔȌͺžь҆ΊǞךDzȊŢѨɜ՚۾ٲ¬˨ĠƲͫͰ‚ˌʂ¶ͮ՟Ê֏‹֏ҜޅҷTʁÏϥČǻЅӸөμƛŠΏˆ׃ſɩх࡛ȫƳÝٳČΝåʡЈѭð̴̟џϨ˓œϥĘʏÓґڛȤڷɜ੗'], - 'encodeOffsets': [[ - 13390, - 2322 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'COD', - 'properties': { 'name': 'Democratic Republic of the Congo' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@»ঙͶŕˑ̗͓ɟ͍ѫǯϷ±ګț͍Oهʍɹ‹ԃŗÝýҟɄϡÂ৥ưޝċѧǘӣӤҹҒ੕ͥĒ૿ƙɣĵʇՙȊχƫষĻࡇɨƫט͝ɲƴìٟࣟR·Ҧ̳ΨٟŠȋѰԣ˅ڧŞ˫ϢՕüϽqµʾ́rϥºԳųιtȻû®ৄ˩̸ÕԬŬԒǝ͖eՊ৳Qò̢ѕG­ƣԵɁӧűȿҫŠˣş։å͏Ѱȗ˖ʋԌȷض៛\\̍ķʑh΋œşʼɊʀμƎɎ̪ǰɚđ˼͐ҜSÄʃ̼ƩӶՄӨШɆːƒ۔θࠆϬўքМĪˌt̰Ǝ̆«ӊŀݖǐԾʦ҈¸Ԕúה͜ѐҊ˔۔˷՘ؚ̳ĉظǏʦԖŘÞϦčनоͨDZ˖~ŴȲ̺ðلėբoˤĚԘۙϘķɤƖϲÅҶDzȦΫ݊֏'], - 'encodeOffsets': [[ - 31574, - 3594 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'COG', - 'properties': { 'name': 'Republic of the Congo' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̿˾ʩƗͻγۏࢸٖҪ̓֌˾ɂ֦ĺäό҆Зݐ•ʴЈł֒ĝڀЉӺζ঄ȽǘسçɻѢÔξ੘ڸɛڜȣÔҒѰ޲ԆѼ֪Ɨդ±·ԓʥ҇ǏԽĿݕ¬Ӊƍ̅s̯ĩˋփЛϫѝηࠅ„ۓɅˏӧЧӵՃ̻ƪÃʄқT˻͏əĒ'], - 'encodeOffsets': [[ - 13308, - -4895 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'COL', - 'properties': { 'name': 'Colombia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ΫȤЭ˨ʅƅ܉Ŝȱΰƽ_࠿Ӓŕʺ̼ڛтȢ̦иÊΞՆ͐Ѵ̳ȦDŽӦȏސǸɚƃ܄ͻ҄ņТ˔ÑǂʠțӶĺŬѢـהΌĚT˦ƺ܂ӖϸՊfäǪڂéڌъ͞ȊОК̖»ɚɛǍ˱գƕɇп͗ʋʓ̷Ĺ׵ɷӭѢÇņϭȄȁâ͹ij̵ˆǫȸéȨ̉ઊĄӦŃעܡͼĚ؂­ӐĪ̔ƟƱҍȇ˯ß׻ǜ֑ʆʟ†ȉэл̨ȃɠ̋ʰ࠹ǁĻǏӸɷˊ˥́࿕lZԿӰē…͏ǙĔҿƑK؏ώ̫ƀӓoηϙᘯп҂ʣpժࡤٟϾԍị̈ƤҧɝصŀӵࢤϳɐˍІ֑Њɡā'], - 'encodeOffsets': [[ - -77182, - -155 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CRI', - 'properties': { 'name': 'Costa Rica' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@җȆǟǮĬƤ‰ȄɷȪͥǔ́ņÅʖəƮÄʑǗȩȓɸˑĊŗǞLʮŎˆʁŠȖnjŴňֆɝȖŊˊéƔǥʜÇȪDzɈҙ͖ͷЂΩ͗õLͷǪűűıƱëǟ©Ǖ'], - 'encodeOffsets': [[ - -84956, - 8423 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CUB', - 'properties': { 'name': 'Cuba' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ܨÑڊW߄˹̭ͮ޺Ĩ̔ȡ܈ԳԺϛˢ\\ԆǟÕʁئ“ٌ΅ıȟ֑Ń֡¥׃âளą֜Ҷ΁ɔէÈ̃ʐȥӎӃ޵ɦʥǬભž̋ǐ̀ɀࠗ¨׿ѧΏ[ťȳеğΫĂѺʸǼ̤ϞȈіǎَĄȰĢ'], - 'encodeOffsets': [[ - -84242, - 23746 - ]] - } - }, - { - 'type': 'Feature', - 'id': '-99', - 'properties': { 'name': 'Northern Cyprus' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÐJŨȮ؄Yކʢ֧ΧÔƿęˆLJÙűj¥iĎѾNjVɫïƿ¬'], - 'encodeOffsets': [[ - 33518, - 35984 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CYP', - 'properties': { 'name': 'Cyprus' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@€ãࡱͿЩŊȟͶЎŒǀ«ɬðnjUÒ½j覎ŲiLjÚ̇'], - 'encodeOffsets': [[ - 34789, - 35900 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CZE', - 'properties': { 'name': 'Czech Republic' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ϯǂЁ©ٵʲ̏Ùҿ΅ر˔ӃΰѕȬėΠƧʠؒǾ̸Ⱦ׾ǎɂdžɜīϒĖЊ˓ؼñ¿ɳҘǧŲɒּĥĄʿز»ϮЯʡCŽƯȕ—ÅȑLJ¡wý˹ēϋbšȁ'], - 'encodeOffsets': [[ - 17368, - 49764 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'DEU', - 'properties': { 'name': 'Germany' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@d͗ࡔțS̗ࡢǂҾɰॊͧІˋȞёɹɣ̨̙Ⱥ҅ß́Έ՛ϑĕɛĬɁDž׽Ǎ̷ȽؑǽƨʟĘΟіȫӄί̑ϯ̟ŃŢշýƛʿǤЕ~׷ƭݍ–ţɛыɺʩ±࣑ʲǥǻ܍Nń״ьֺ௅ƸЇɘ´ςǗȐĨ֨ƗࢢԎ@Ɉ͂Ⱦޔƿ˴ǐDz۰°Ƽȃ֮вȓ̀ӈٌōՠŸ'], - 'encodeOffsets': [[ - 10161, - 56303 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'DJI', - 'properties': { 'name': 'Djibouti' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ȤʹΑӏȩήɯ̱҇ȅƬȭÏҷb_ʮßɶ˴Ѐ̐ϊήñʪȴ'], - 'encodeOffsets': [[ - 44116, - 13005 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'DNK', - 'properties': { 'name': 'Denmark' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ԋڹ࢟ӄŝΒ௼˨ˎу'], - ['@@ȵ̓ʡĞ؁؁ɮХ՟ŷًŎͽҲ}࡬Ɣɪʌʦ݌À̐ɴڮʂƒѝʟ˙ĶɽҘŵ'] - ], - 'encodeOffsets': [ - [[ - 12995, - 56945 - ]], - [[ - 11175, - 57814 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'DOM', - 'properties': { 'name': 'Dominican Republic' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ŀƞپIӾɏɜtƴ̕Ҡhʡϐ‰Ю̷̯ͿЍǼϫ•ˡ¢ƱƵ͑½ŷȲˣťͳֻɏƆ§ʎjɬɍʦȲƚÞ͒óҜ'], - 'encodeOffsets': [[ - -73433, - 20188 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'DZA', - 'properties': { 'name': 'Algeria' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ᮩཽᝩ࿷இϑटćU՘ϵƌԹʊȧЀᬻᆴᬻᆴṕᎠfnj@ÊQ঺ബب࠼Ÿێɦ͎тচͪ˜جӢòϞ̶સƚƸ͜ɛDz̃ࢲ¹Ԟ́ՠ߰ҠࣦƢՌΎ߶ʰ෎Ƭർæшůߊͨ࣌P΀ȝֺ¾ǟћƄߟȡۙԭҵôمۊԃRȯԮ͹Ϊຝ˖ݏ°ϵƧۇÔϥŃҟòՇͫΗӺؓŽέ̘ҵϼƸڒϷςՃ'], - 'encodeOffsets': [[ - 12288, - 24035 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ECU', - 'properties': { 'name': 'Ecuador' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@҂غǻξ͍ϵԉςǞʀƙބ̎ŴƺԼ͆զÍ΄ҢǸ׀Ͱࡀӑƾ`Ȳί܊śʆƆЮ˧άȣŞٓʽճࣷ࢟য়ͧԥܵǃ֣Ӆ΋ΙъͻĞ΍áw̮ʈȨıΔ'], - 'encodeOffsets': [[ - -82229, - -3486 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'EGY', - 'properties': { 'name': 'Egypt' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɽͷǹىɫѩȝƥ˩˔ϛϒ׵ஸđùΐࢯԪࡋٌವ̴ҙ˒ӃݮछǗƣ‚ճ঒ݭƨǣΏ@Ὁ@⁩@@ᶶ@Ჴʥڲɐ԰Żά̤Ж૦b߲ɝ࠲ʛϴſ٨ˊΌʊݎêװŃɮеȜ˜ڨȣټ³аɄւ෽'], - 'encodeOffsets': [[ - 35761, - 30210 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ERI', - 'properties': { 'name': 'Eritrea' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˻˖ΉӰϋ˒ɏܷ̄ͶֻXȭǬӯȡԛϢʽط঑ǬęʹβఀĊ֒ˆʴؤƐьӒӦঃɴޗҢУବߏҲӍҖӝˀ˿аʧʩȳέò'], - 'encodeOffsets': [[ - 43368, - 12844 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ESP', - 'properties': { 'name': 'Spain' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@¦״΃θஒ؆ਊƱ૾NࣂƝۦªമƒͰ͛໺ϡ̨ǺीϝআŊ®ӥߓ֓ઁǯõ˱ԩү͕ہ͞ӑӟϑǹճىǗש٥੧_ߟhՃ͍̓ͅЩê̵˴ʃӚ޷žé˦̶̀Śɬ̃ʢɶրͳԌδè’ЈƎŬZپϲɪɻфөˆƝŁӹCɁЬ΃ū̥ɇ'], - 'encodeOffsets': [[ - -9251, - 42886 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'EST', - 'properties': { 'name': 'Estonia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĮӸ̱ŁՓ̘ñӘਫ਼ɼ੔Ũ࣮Ƒࢂ|Ŵƣׯӝʞ޵ΫˉۙDܡ̸ρļ܏Ʃ'], - 'encodeOffsets': [[ - 24897, - 59181 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ETH', - 'properties': { 'name': 'Ethiopia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ԜϡӰȢȮǫּWܸ͵ɐ̃όˑΊӯ˼˕̏ω˳Ͽàɵ`ʭҸaȮÐȆƫǽ̴̕ҧ̴Й̛͎ᩨঽۺNᛛᡃફ™ݟףաeɯ˅ַB͹˴ލΙʝΓ֕àȃĬȟwˇT੟܌ב@˹ˢ@ҾѧƘӻࣴϥȚƧʹэЦԧÒ˸ӐҀrŲʰ[ݲʞࢠЊɾĎ΄ήٜԔи΀ࠠƆܠ঒ǫʾظ'], - 'encodeOffsets': [[ - 38816, - 15319 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'FIN', - 'properties': { 'name': 'Finland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ūיಀ֓ޡى঎ख़֡ܛݴس΅յఘֻ́ѓޭӟᅡੵໃá๑̯ൃǯӡҞ߿ˠȈࠢСݶАӪނՆ኎࣮֖Ǭē΢ୟЈ˳͜uಒ಻ֲ૩ЪԊɞतѻલ¦ࣘȭߠϊЬ؞ಬ˶઄ͯΡכ'], - 'encodeOffsets': [[ - 29279, - 70723 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'FJI', - 'properties': { 'name': 'Fiji' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@̂ʍƓѭԳŗҩļąτ͖̀ϤĻȼƐ'], - ['@@՛ǯŅ̼оǤˊ°Ӱˀ@ЧՕȷ'], - ['@@é­@ШǨžĽЗ'] - ], - 'encodeOffsets': [ - [[ - 182655, - -17756 - ]], - [[ - 183669, - -17204 - ]], - [[ - -184235, - -16897 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'FLK', - 'properties': { 'name': 'Falkland Islands' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@৘Ԍ܎ȿԌʹڦϙʥ̋ଋʥϙ̌܋ϙпϚ'], - 'encodeOffsets': [[ - -62668, - -53094 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'FRA', - 'properties': { 'name': 'France' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ˣ٭ϡǠș֢ǜ̺ը͎Ɯܛ'], - ['@@הЅќà݀ϥȊñʎjЈɗெƷыֹŃ׳ɱƝϣü‚ɇؙҽ]ϟВƀ˾ρ“ʁʚ̿̅ʯɐٱҖŃĩηݿӅစɬ௧˗ĩԑঅʼnिϞ̧ǹ໹Ϣͯ͜ѢԎdžူࢁࢤإю౹͒čؖઠǾථɏˇॎߌέዠپʨێܾǞŪ̑ϸ_ϸ͵'] - ], - 'encodeOffsets': [ - [[ - 9790, - 43165 - ]], - [[ - 3675, - 51589 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'GAB', - 'properties': { 'name': 'Gabon' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ࡹࡔ։ۚԙࢄ‚˨ǾˎȲؔǜخ˴¶௢SOৠЌÆԞőӼňľ¯ÓνɼѡشèȾǗεঃЊӹĞٿŁ֑ʳЇݏ–҅Иãϋ֥Ĺ˽Ɂ̈́֋ٕҩ'], - 'encodeOffsets': [[ - 11361, - -4074 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GBR', - 'properties': { 'name': 'United Kingdom' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@҉ֽًǦԱ[ǦҊǥ҈۴–ࣔԳ'], - ['@@࣋ࣧࡦŘऄIɕۅݯݩࢄÃäĕݠ঱ֺƇԬढ़ʈͧৰDžķ՝ѓʗͲѣݱѯ૳Rෝɱϻǒ։ϿޥĪם͍ҁǘ௼ࢨݪǺOBಽƔʃͰ࢜ʺҡҐdžռఢ÷D@ŮӤ֛Ԯ_\\৵ƨȧɬ̨ϒˡɴҍЇ·߶щє̨ࢆٶھڤá০ì'] - ], - 'encodeOffsets': [ - [[ - -5797, - 55864 - ]], - [[ - -3077, - 60043 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'GEO', - 'properties': { 'name': 'Georgia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ųάȿִӟ̲ҭĬ̯ʴĺIJ܄ƝఆƋଦЕƦƻԚƂ޶ǭʴ·Նșɓřвғŗıҏºصʎȵƍଢ଼ſ߳Юࣅ¡'], - 'encodeOffsets': [[ - 42552, - 42533 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GHA', - 'properties': { 'name': 'Ghana' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@೉ӯҳ˽ݳʑݡʆœͨηܤɖैΠ۸ɟ஢ŗنrӊฤ¢ϊÕ˔ƊϴáÕʿΖџC؍Ąڍɂ̫ȅݳäйɢՓȈ̍'], - 'encodeOffsets': [[ - 1086, - 6072 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GIN', - 'properties': { 'name': 'Guinea' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ʃtǡͷʁJǏǴÈͶΗԨɕħǵmɳ³V̮Ƈɘ‚ʔǻΜɹ̜ڥDțǁɵoƝǷīɹ҅σρӼ͛͢ɋŊȿǖħϊūȂʓƐώЦʮeɖƘȄDƄŎï˨ĢĖd˶МU؀ȱȄlÚĤҜáŨ´¶̭ƆBɖŒƔƒɸɇάãɲǺ˖ŒȬŠǚuȈȁĴɳΆΙǣɏ˙ǴĊŀį«ʡʲʍǗÝå˷Ș΍Ⱥڧ̷ĵăśÞNj·νƃA'], - 'encodeOffsets': [[ - -8641, - 7871 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GMB', - 'properties': { 'name': 'Gambia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ņόࣶzȎȦˊ`ͨȷʼIˢƚǞʏεȋιdέǰ̷ȗƭQȫŝއl'], - 'encodeOffsets': [[ - -17245, - 13468 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GNB', - 'properties': { 'name': 'Guinea Bissau' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@҅ΘΝÈȕʀLŸʯǴÁǶѼƌ˦ɦĨ༈•c˵ġĕð˧ƃōȃCɕƗʭfύХ'], - 'encodeOffsets': [[ - -15493, - 11306 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GNQ', - 'properties': { 'name': 'Equatorial Guinea' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƿŴ़̀െmPয়௡T˳µ'], - 'encodeOffsets': [[ - 9721, - 1035 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GRC', - 'properties': { 'name': 'Greece' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Ҡ˱ٺ¶شÑqƣҜĶĿʛ௃íTƒਁǎƺΦ'], - ['@@ʹՁȥĥԟ|ѫĀৱɓ׌ҿяƋҳAѻўƿȁȊԅрЁ̓ǿҴϯжʑ^ӅޥɠʜѕՓĕ͈ݏ֏Yۍμ̿ڦƧ֒͝ϮљӐÉʆϸТ¼˚˘Ũjɚռö͌ȀҖgƒƦdž„ت{ڨɲע̉ކĀVмЦɝ'] - ], - 'encodeOffsets': [ - [[ - 24269, - 36562 - ]], - [[ - 27243, - 42560 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'GRL', - 'properties': { 'name': 'Greenland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ᬜԆ᱒›ੴ̴ᲈĄ䀦Ŀ㉊ڗ༅͕ộ™⭏ćшƫᲐĠᡚ́࿈ʴۦ̝इӧᒞ̺✘͚ᠼNjҾΫ⃝ױӃȕ᧑ơወ¡ছؕگկ€ध৚շಽ“൧ˇ༂ѽȢ܋࣍ýઞܡህÑঈ΁˟̑இŽ୥E੆֩\\Ϗပΐћɣଌȿ઼ԣ͈ڱກlj٫͖ਣӘ˼֭উѵᕖ•୆¯ᖯܵᗿڏឧ́ओIࢅ͓ୟࢱᅵכׅ“૧ȷ஽ȝܛԱ[כыտോڧͺٿϗ۝љࠍஅ½఍ۈဿLࠁҢ֕ࠐฝਲэոŗݮ୓ޢ̢ئ֗̒ࠪচొ̺ͨΘǬڀॡ̕қůݯţਏ˜Éְ͢҂ެ\\႔ɟ෿Քݩ˾࠷ş۫ȼम޴ԝ̺ڗ׈ৡࢼ੯͚XΚᖷӮᄻÖᖟ‘Ꮕ×ইˌวՈᕂ˄ၚ¬≹ɖ቉΄Ś͜ẊИᶎИ̪͘ᗗ̠ܺͰ᯲ז௢ĚΓϘጲɜᣚƂᣖRࣺʽᕺҨፘ̽୺áპ˙ፅҐŘή'], - 'encodeOffsets': [[ - -47886, - 84612 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GTM', - 'properties': { 'name': 'Guatemala' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ћƦԻfϩǖҍΌrʖĮȠšƾКۆ઄Ft˸Ƌ¾ġǺ̵Ț̹ˬϜDBӂ޸BަUOڗßॅʤ@˚ƱòŰʘŃϥ͍ЉɻÏljâǑǧɇȟ½¬ıƿġ˽Ƀ}ŭ'], - 'encodeOffsets': [[ - -92257, - 14065 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GUF', - 'properties': { 'name': 'French Guiana' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@͉͑ГÑŗʀȉ–ʹɩνǦɈΪòϤƢή͛ӸáֺѪܠ˸ğؤȥࢸۿƔ·ӻޑʳأ'], - 'encodeOffsets': [[ - -53817, - 2565 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'GUY', - 'properties': { 'name': 'Guyana' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ր̯Դյzџ̈́o҈Чͪ̇Ƈݱԛɕ°ȣƹџϊ؏ːAŎӃԢܳȱ‰ҫî˙ɡϟƥ˅—ġǑЭ¦ԫЀÓϴɋьƆܐɸ̐ȕϸ˿ŶŊτțȘѩ™ْ֩ɬɲiϲԬƊȾƾ˽̸ô̬ږӲ'], - 'encodeOffsets': [[ - -61192, - 8568 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'HND', - 'properties': { 'name': 'Honduras' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ơˀʭòÐʹŗĞǣÒσij‹ŔʩƈǷǚʛìǨɈáǒÐNJЊɼϦ͎ĔȂƨʊ\\þ垦ϸùϲv˒ĢİĦˎ©ȪÉɘnǖòϨśƄkʲƿʐį̏Źɜɳ˽jśŕ̇ŋɃAȅŃǙœƛźĕ{ŇȩăRaǥ̉ɳƹıđĽʛǞǹɣǫPȟqlЭūQĿȓʽ“'], - 'encodeOffsets': [[ - -89412, - 13297 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'HRV', - 'properties': { 'name': 'Croatia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ȳ͗ˊʇ͓̓ϝȆׇ[ܟƔϽmǻǧ̝ȖǫΑЪϽǼʹϮ̽͌ȃ͆Ηݔ͇ġƛ߃̶ӣ̢ޑʠ۹ؤǞØϥΞe˲եƄʱγʝˮn̆Šbג…Ƹƚ˸ƍͤgGɼ̈ĒĈͺڞɠˊĻؼέۜlj̼Ų'], - 'encodeOffsets': [[ - 19282, - 47011 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'HTI', - 'properties': { 'name': 'Haiti' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ԣ™ܰƁôқÝ͑ȱƙɎʥiɫ֏ƜЅÍԡÔϽƿ҉ʾö˔ޜśيã̢ȈϧθP͎ՋžȌɶ'], - 'encodeOffsets': [[ - -74946, - 20394 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'HUN', - 'properties': { 'name': 'Hungary' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˨ըǍǼӂDÜ΄ђɋ̲ğ۸ļäǚͮ~ЦžĜÃЂŀȠȢˠ¼࣒ʭǴĒҲɭÎɣԡǭЉ֫ԕ֭کǁԽš١ə̻űۛNJػήˉļǍ˴ƗV'], - 'encodeOffsets': [[ - 16592, - 47977 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'IDN', - 'properties': { 'name': 'Indonesia' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Λe૝ך޴ǒѴʭ̎ʭ»ɩ'], - ['@@ܙȁijĶø˸ΰԢࠨͬĐǓfʫշع'], - ['@@̢ɣԲèȼΥॿǛ׉őҍP̀ӚҤPɤ̖'], - ['@@ūұ౅ʅૣľE̬ښǪՂʥ֔Üݬ̮'], - ['@@ྔċȂΌ༘З̪կీƵਐӿय़͋ऍ͸ݻwࢍØ޻ưঅ͎؝ČΓŁ໕ΌƣΰޑØּߤ৶·ڴ͡ΒÛŘ̗'], - ['@@ѝֱćنƬ̠Ǭ˴ȒʗCЏ'], - ['@@̿˥ׅƸǏΰࡘ¢Ⱦˣ'], - ['@@̨ٝۿΌۯìӃÅׇˆȦҦਠ”ऎʕ'], - ['@@ɼയ࢈ԉ۰ࢼ८ԔݜBܘ̉خ̛ࣘLJbᩑbᩑݟې࡟ǜȷʇ੡}ΦۂՈɺɕࣲЕ۸࿃܆ۗêృަʛУ͑óȏ̮GκٛЮ̢ࣞ״gëɠ௵DͩԄݥƺΡдଈȰњ˜ഘ·Ƃ̹'], - ['@@ڭ࠭كlj߱ǐඓ¥ܽŧţٍݪݛҒϠ༪˸çϯλŪιӯ͙݉ߒ੿Ƶ˿ݲॻQտ҅ʙ̐͡Мی࠙͗ȻɶŊ͖؅ӲØࠌ֕ʭîও”றՓũίʚʌޜŽ߸ΛPʻֺΎվŤښф౎ǮΎ܎ذپʛ੖śॴ–ࠨ؎Ʀȉ'], - ['@@©ܽџĈŷԝΌѷɽĵ͹Ւʟ੺ǚڤ˨̨ÔҝӸóĀ΃'], - ['@@सާহį˫ֵšݿַ߱u࠷͕౻ŭ̚ॕϙͫԤ׳´лːৃ̟̩Оս¯ۗĬŹૺнɺЕܘŝ݀ĮުԂ֐Ɩָ֗ӅըǠ՜ÑӪъЖôߒɽۆǶњୠ͔̈̆क़ॲ@ܰƙӍݷآߓơϭ'], - ['@@छkۻ۰અۊέԚٍۄзؾٕ୴۪݅ʙܠ̳ڀݵՊѭܘمҺࢗऒóђզ‘ಢNjݔࠓٮ֫ҪΓߔࣙࡢ_ۺֹӠ۳٘ϥͳۉӖ̞̅sƜו̊ҵؠõФՏɁ਱‘ಟ'] - ], - 'encodeOffsets': [ - [[ - 123613, - -10485 - ]], - [[ - 127423, - -10383 - ]], - [[ - 120730, - -8289 - ]], - [[ - 125854, - -8288 - ]], - [[ - 111231, - -6940 - ]], - [[ - 137959, - -6363 - ]], - [[ - 130304, - -3542 - ]], - [[ - 133603, - -3168 - ]], - [[ - 137363, - -1179 - ]], - [[ - 128247, - 1454 - ]], - [[ - 131777, - 1160 - ]], - [[ - 120705, - 1872 - ]], - [[ - 108358, - -5992 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'IND', - 'properties': { 'name': 'India' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ࣚটďۅͮїѕ׽ŒɾएࠜՑ୞חՑϟ͛޻ࠀͅߊЭરһସʼnӜёٮāৠȝ۪bĪͪŋՖÞβԠǮìڋlǙކ͉Ոƀ܀Çۈ|ÐԪ΁ˎڴŀވشॸ՘۶ȷ״ΞЀԹ˳Λ࣠űÜ͇̍Ʒèԫ׷Ʋછׅ~ӓҩ۵§ХϏۗځȒࢇȏ˹ĚΣгȥѵ೰ɵEƍ՝ҡѦʸӎϖ¶ϰ܆ӝƜީ]ߝŚóאБ¤ڕζ֭̓؆ѻԿ̻ȅ̩Ԭɣƛԑ̆كžەţֱ̫Zਛǩ´ك҃ӻ௃֡ळ঩كՋ࠷ջCϭлȹݳ̝Ͻ«ʥٙǪધ®ۡΣߙI෗ѣ¡ϣٙʰˣދʃ˱֯͵ʍߑ޸ϳ୴͑ࡒ̍Јѿ߰ȻੂơՀޅ଼Α࿀ʣ੾HৰǍ޾௣ԉףĶ઱৲И̤ʝͤড܊֖֔ᇜCǗܞҽюĩ٨ջϘऒࢢঊÙ࢞ࢢՄ࡞ࠄࡈ_״ܒӠڳд֪݂̇̕Ьβ౤ȱपŰߺ۸'], - 'encodeOffsets': [[ - 79706, - 36346 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'IRL', - 'properties': { 'name': 'Ireland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƒ׷ًݣ๯ӹ஑Ŷڼ࢚ѭࡢତڄٌϼǦ҇ǥ҉Բ\\ٌǥ'], - 'encodeOffsets': [[ - -6346, - 55161 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'IRN', - 'properties': { 'name': 'Iran' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@݈njװӔ֚{τƾװýघэڤğ।ݓظ‰òۻ΁਷ɱؑκŭΫҡˠڡàՓِƙæեݿݿжѵ͸ԓߦυx݉ДƋêϯ௉ѡ̓উཌྷʪࣷȖेŊΧਐЕƪ٣ƭࡑНਇ˦ࡑ٦߳ʈ֗ߘا૪ҍƋՕ˦̻͝ҭѴS҂ˍ@Ɛ،ѝٔ਍Ң׉ߜȜپц̂ÙӬտʨխ৊ҟڨǐʼʿ६ּʈƄͅъϯ־ő̤~রئ̀Øʞʙ́гԼѱȾ¦ˈإߖǩ׎у஠ƟಾɞĄȞ'], - 'encodeOffsets': [[ - 55216, - 38092 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'IRQ', - 'properties': { 'name': 'Iraq' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@րʧÚӫх́țٽ׊ߛ਎ҡўٓƏ؋ˎ@TҁҮѳӿ¤֟ê؝߭༟äᛍၖఫךৡɪ͹৾ᇶ࢔͆৬āؘҢȺјԾΰž঎Ň̐ɉЖƚծ৉'], - 'encodeOffsets': [[ - 46511, - 36842 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ISL', - 'properties': { 'name': 'Iceland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@șիॊֵથٙᝓֹܣƵૉŮᚑˈࠠψᆧЪ๪ǎ—ʘᄋȜ֨նౠŰಸ֭౨Ҝ੒ʃൌ҄ආÑ'], - 'encodeOffsets': [[ - -14856, - 68051 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ISR', - 'properties': { 'name': 'Israel' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƥ˅̣Ŝǫ֓ɂĥɋř—ɛЄŖp͛нഉց෾ʔˢ˶ɞϼǠيŤɆzVˬCþƦɤ\\`·ŕŵhM'], - 'encodeOffsets': [[ - 36578, - 33495 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ITA', - 'properties': { 'name': 'Italy' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@̟ڋŲʹǭѝٝ̈́ёĞ୩ѐŞќজûࡪĠْò'], - ['@@Ԍ׭ş૕ϣÂ΁˫͇ɞ‘২ȓӒҨ¥рʼ'], - ['@@ரɏĝЯȬΧڝŪہ̗²зĻʇˠё߀чцۛदڱچLȲȃɽǗݪ̥ؠʩܜѫĔƿƽ̛үϼܳƐΝի؈̷ıѫΗ¹҅ܛΕÝHʲǢҊǼǶ͝ӤʱшΑŀʛδգƴεͶثÆٿϜޑմ֯ӜʿࠪйĮہˤϯŕӝϵΓÕĪθҕńɏٲ̆ʰʙ̀”ʂβǵМ¢Ҽ˶ƢƃА€ǼͺتĿψƚâΆԘšĮdžࠨƤȊ̉'] - ], - 'encodeOffsets': [ - [[ - 15893, - 39149 - ]], - [[ - 9432, - 42200 - ]], - [[ - 12674, - 47890 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'JAM', - 'properties': { 'name': 'Jamaica' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@֢÷ҀȫƔɯןeʭƗҹƊӑ̪ĶȔΜÎȒƒ'], - 'encodeOffsets': [[ - -79431, - 18935 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'JOR', - 'properties': { 'name': 'Jordan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ʀˆपͫ࿪ࣆͺ৽Džų၅у࠸࠿ˣƛƑ˭ٙřȩ̡εʵधƆƒŨоഊo͜Ůʚ@Ԥ'], - 'encodeOffsets': [[ - 36399, - 33172 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'JPN', - 'properties': { 'name': 'Japan' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ņ˽ҿԕΉːљțɝӭշʈRЊҬԆӌīΊΜؠǹ'], - ['@@́ڡƤсѩף੹Ѓ๏½ணॡ͔֡“غษȃষЃঝe࡞أ֗෗իΝН͜ȶݶՏʒͿ־ߐʶѲՈࡌѢ؞ָာʤ࣎ǣࢠ๺֔Б௾ࡀӌ͜ՈਈƟा΢ՎࣀƸҞୗ}ڻޥࡍbࢁ'], - ['@@נǵרΤȈहఝɯ݁࠱೓ָқँण]ř࠴д٨࣌²ʖ୐ʜټন࢓٤˯'] - ], - 'encodeOffsets': [ - [[ - 137870, - 34969 - ]], - [[ - 144360, - 38034 - ]], - [[ - 147365, - 45235 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'KAZ', - 'properties': { 'name': 'Kazakhstan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ӕƹ્דο׹̹KɱЊ੫‚ǡێХNÚࡆ৓ؘ෷ßডũߣݶۋ͆ಥ׼ƽðᓗӹᶽљ£יچ֧ɼॕǩχ˧±ȲȶΖDž̊অ˺ϛݮҩɆ…˜ࠊāŽؘ܎ƎܼűƲࠎƭԲ࠿£܍ȴঃσ޵ǭяƌĐўՙ֘دw܉֬ӞِʕǢڢऊࡺӣŀؘჄࣴಾtᇢ׉঺ͻࢼΠ೰j੺ѥʔʠ୼—ɂЊഷ׀߮Цƿɮ߮ɔ؅ֺϬ˼Ḯ̈ШȺᑆ̴ݰΒຢǹ˄ࢉ࢚Ȳઆ˹éҝ߮´ᑌߎ̭ˁ੶٭ሠᒑ҄ѰୄӛீɎҪƯКӟטNjΨΥ઎ŒѾԣٕ֓ۥÿ¡ࡅұϝဟˢ؅ຑїȇဗͱݲลֻɓäӏԭŬу̠ఝĖඃx̧ġ஥ΞӉǧŽӹ൩̂փşȉρ'], - 'encodeOffsets': [[ - 72666, - 43281 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'KEN', - 'properties': { 'name': 'Kenya' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ӾۙיͱȹΕ̿Õšףˑ͹Ǐ֑ͷ˥஻ࡀËӤᵁႌƙĢSࢺʊ;а֌̨ؔσ॰įтЉ׎ԬԈ֬ֆѨƗ@ҽ˺ˡג@੠܋ˈSȠxȄī֖ßʞΔގΚͺ˳ָAܽ॑Xᵣ'], - 'encodeOffsets': [[ - 41977, - -878 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'KGZ', - 'properties': { 'name': 'Kyrgyzstan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ȊςքŠ൪́žӺӊǨ஦Ν̨Ģ඄wఞĕф̟Ԯūşȏ೛ғ̙ͭઁıͅ՛ࢷŒׇǏߣЇŜȟʇȓཟŵਡ˘࣫ÝĂӜࣴƕ̮ʸٖĉ੾؂঻ѸױȽإ͂۶ծʟĊ'], - 'encodeOffsets': [[ - 72666, - 43281 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'KHM', - 'properties': { 'name': 'Cambodia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@΁Ѭыࢄȣ২ՠۨઘdž߀ťۚ͡Ϟׄݖ̱Ȝ֕Ļ৕ඳ٧τԙࢥÓܫͷ۱Ū'], - 'encodeOffsets': [[ - 105982, - 10888 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'KOR', - 'properties': { 'name': 'South Korea' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ܨযȺխPॷ̓ҥݽljڥΏݳïĥҚƼـχ࢔ذƚֻܘÂúϒ‡͞Ϝצ¢ΨÈŨȮ'], - 'encodeOffsets': [[ - 131431, - 39539 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'CS-KM', - 'properties': { 'name': 'Kosovo' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@›ǣŃPĘ́ȩĐdzɦƾȌȪÒŜ˨ư²Ţşƾ¿ŌƅƒŸǎƻŢLĥȳijij„×ȉӹŻ'], - 'encodeOffsets': [[ - 21261, - 43062 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'KWT', - 'properties': { 'name': 'Kuwait' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ǭχõȓ˔هשuȽАݟĆ؞߮֠é'], - 'encodeOffsets': [[ - 49126, - 30696 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LAO', - 'properties': { 'name': 'Laos' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˚Ϝœ܆ڹܸ¿ٕࠦھٍÎǛ̉ӯyʣƨࢯԅoݬȸࢮ֧ž³ԎηʸǴ̲ܐնøȡ҄wŵ०ѦŬӮڏϖޅਚO͚ܹ՝ɗʉ̟৔ԉۦ঳Ռ݋َ׏ɄץƵ࠿ݕ̲ϝ׃ۙ͢'], - 'encodeOffsets': [[ - 107745, - 14616 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LBN', - 'properties': { 'name': 'Lebanon' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɣ[ýƥ˫D̘ۄмעfˆϘ§Ɛͣқ̓ȷҟ'], - 'encodeOffsets': [[ - 36681, - 34077 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LBR', - 'properties': { 'name': 'Liberia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɗQࡽАޅٖ܏Ң֣ըȪː¬ʔϜҘϺϺǶnɖĨΘԧÇ͵ǐdzʂIǢ͸ʄsŸʓĎНǽύʖɱˊÇΤΙ~ͧăĿÝە'], - 'encodeOffsets': [[ - -7897, - 4470 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LBY', - 'properties': { 'name': 'Libya' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ק̷ҿҤ೧βρՄڑϸϻƷ̗ҶήӹؔͬΘñՈńҠÓϦƨۈ¯϶˕ݐШȜðΠėΒ־͔ʶːЦʌ´٦দ́ΜðۮƓ૞ϓЀݛݮǍஆΙࣆйЦɔЖϮț٠˂Ф؄ЀׂŘ଒ǣ˺ϑ̺Iˌƛ࠴ıȲˣ̣ЕżΫɏԯʦڱ@Ჳ@ᶵ@့ॱGYΙ‧ྐ‧ྒࡓҟ'], - 'encodeOffsets': [[ - 15208, - 23412 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LKA', - 'properties': { 'name': 'Sri Lanka' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ų࢓ΙʇܵȓЍڜƫீϠ഼׆ұϺסО࢓'], - 'encodeOffsets': [[ - 83751, - 7704 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LSO', - 'properties': { 'name': 'Lesotho' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̆ʩʳУƛ˛ҳſƹˍ̛ċؿ٨҄ՐҖ͢ϼǠξʵ'], - 'encodeOffsets': [[ - 29674, - -29650 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LTU', - 'properties': { 'name': 'Lithuania' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ãɊĚɲχƄࢡƨDZ۸२ʴඬÁࠜĊŞǩ҂Ã߲СĀϓۏˏșӃ࣯̓߻NȫʶљĜ'], - 'encodeOffsets': [[ - 23277, - 55632 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LUX', - 'properties': { 'name': 'Luxembourg' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ǘȏ³ρʍiȉòĞҼɖŽ'], - 'encodeOffsets': [[ - 6189, - 51332 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'LVA', - 'properties': { 'name': 'Latvia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@†نЮՆߊ˼ڜعڪhNJ٤ܐƪςĻܢ̷ۚCКȕîС˒ӷ͕ࣗԛƙ߱ТҁÄŝǪࠛĉණÂ१ʳ'], - 'encodeOffsets': [[ - 21562, - 57376 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MAR', - 'properties': { 'name': 'Morocco' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ԒΥߜÎࢊȃκU͂՟ºԝ̄ࢱɜDZƷ͛ષƙϝ̵ӡñ—ثঙ͍ͩсۍɥ࠻ŷഫاRহŷ@@@p҉Ա˓ȑϡ@̥Ŋ۹ě˛ٻʿÕЁ੕ୟ࣡ˣୋ΅ϗĵ̡ቅãaD ϶͒ɮ˞ѪÃ˶̀פҴՖ˲ƊɞӬp҂̤Բ̪֔Ւ࡬f\\ц͔ްĢڎָтɠۮۮȿਸ਼͊ܢŔѶդ֨ࡈϦخΐ֘࢈˄ԪؤI'], - 'encodeOffsets': [[ - -5318, - 36614 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MDA', - 'properties': { 'name': 'Moldova' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ȨŮ֒ĊؤʽΊϞɥÑ˵̪ƏŨΗ̊ɇÏűƾčɝ×ӷ|ĉŜǫãÒƭɱˍƥ˽ɁĝƯϦĘΪςӝԂˉΠʹʠʯĈ'], - 'encodeOffsets': [[ - 27259, - 49379 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MDG', - 'properties': { 'name': 'Madagascar' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɠΥȺ։Ɗঢ়ɒϽĉЗƩʙ˷ӰǁʝLjثõΥɵȗ¿܅ͧওб୅ԯཧ͑ୟϛইہȣܻΡӛɊڙ̜ɳѺÇݘ̑ڠù؂Ʈ؄ϰƢD˪Дِø՚șЈǃՌãޠ̊ҺŔՒмŒҶǤ̶Ʋτ\\ӐӎۖԮʦцŗάΦĵҪ׎fԐ˦ϔ̊ί'], - 'encodeOffsets': [[ - 50733, - -12769 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MEX', - 'properties': { 'name': 'Mexico' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@͙݅ƥ؁Õ૷ąЧƤқʺЧǚٳ֎سȞӏ͢бࢾɝΐΙ݄ɾٚĎؼưՊƠՖ΂ȨӬè۸Ƣʖ֬ɚࢶȚݔ‡ԚîȬDZ…ЙҋԁȥԝƸƥűγɁٽɅɎǭcǃY̝ԓƳIJķPŭޥV޷AAӁϛC̺˫̶șĢǹƌ½s˷ઃEЙۅŢƽĭȟqʕ्ࣞџ˘ۇɖҷÓګ́чĉץɜؿDŽ޹ϬؿŠ्ϸ۱ВɃɤҹº࡯ˈΓϦࣗӊсՌȧЦ˪ĈđʈȖɔJ̄˱Ϙùͮ˭ъ݋࠴ࡋڀУԼܝ΄ƷȴŸԲѓȞӹФȽהҍæӣѸϿФ™ˀҍو̓٠^͔؇ͬ˫™ӑɴƇͿƔЕĆف̀΋خׁƒȡŸÓŎ˽Ƭ\\ǜթʮɇǴ̕Նё˨ޯʠρɸϿ²ѷКƒͶϡ̨ϑqƭΝ̱ƫJɛԞջӎ؃РїɈ„ؚŵҖЏʺֿϒŏŇɃɖԭȰӷӦÖÚΊ³̸̼ŽϜ٩׶ӱɶ̱Հ̷վϳڦͿݲॖÞ੪ĞÿǑ౔СኀףဪPژ@DΌผ@̪̕јˇԀσ˨ѭȾҥѢʩۤʥՊڒۊhפͱфֹ̄ӯӸӏȂחɾЃپʹ׮ȁ͞|'], - 'encodeOffsets': [[ - -99471, - 26491 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MKD', - 'properties': { 'name': 'Macedonia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ńOœǤӺżȊ˺¶ϴbтˏÒ։DžƒƑƥҕh͋ǿջõΑȴšήń˸'], - 'encodeOffsets': [[ - 21085, - 42860 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MLI', - 'properties': { 'name': 'Mali' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˰ƶƘӶˊpזɻӄǖ͖ÇŴȈ⁚^ȈךƣļЛ⋈Л⋆౾dᬼᆳᬼᆳȨϿԺʉ϶ƋV՗ठĈFካҟ֗íԭݛƃ଩ï̳̗ա՟IȿLjҥš޻ΑDžʿٳϕŗɍΙǡНŔɱȳūֻڙۡp˳ɭΣÆӥ΋ůȝŁŽάʍĥơhƷʕ٭PɷŴʼnùʱʎ¬ʢĿİdzĉ˚Ǥɐ΅ΚijɴȇȂǙvȫş˕őɱǹΫäɷɈƓ„ɕőƅAµ̮žʾí̽͘ʀǓӔԺ'], - 'encodeOffsets': [[ - -12462, - 14968 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MMR', - 'properties': { 'name': 'Myanmar' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ӫηץ›ϥࣥΟƳО݅ՔؗΈօ̭ܵ̃ƹȪу֖ڙĪҷ_ϵ͠ދң޵Сࡷăذʴ٠˯ӼæࣸͽѤ˛৔Ʊਗ਼εۢօуॕ׳ҽöԳȠ̂ਪǫ޾څॺļ̢ӭņ׭ۆÅڰ̊ŵj׾дȦęΤȐ˺Ž࢈ڂȑϐۘ¨ЦҪ۶}Ӕજ׆׸ƱçԬ̎ƸÛ͈ӮÚˮӵξȧ|ٟ“ۙߓۭijঽࢲƔȨޛՐǍʓۣز́ζƷ؞ʔ~΍܏յdẕӓȗ'], - 'encodeOffsets': [[ - 101933, - 20672 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MNE', - 'properties': { 'name': 'Montenegro' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÁǀηЯÊˋǫÞɽ˞εǖĢƜŬҦ˚ȜƾüɠƟŬśˠě͌ǧçïƽȋɧó'], - 'encodeOffsets': [[ - 20277, - 43521 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MNG', - 'properties': { 'name': 'Mongolia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ࢮƢ྄ܤ౬Єܴʳ࢚]֘Ͻ࠼‰ௐɁࠈגͿӶࢊࢊश΍ނįনɍLjؿஜΛߐƺਫ਼ŌࡆōࠖЗԚѕެT੒Ƌޜȼૈƒ௸פԌĝѰ˭ৌêХهק࠽ɐ΅ӈńࠤŽ٦̴ڬˏހוğ̗ڏĦ௟ŏןʅ؝։౱͙࠷ѽࡹǞҿúѳէˎ͓ƌˣי˯׽҇গ̑ఽ‹ഫ̇এҋϋʾ৭AఓԜࠥŰૣśჃȊऑmӱԀϣޠԱĢ৩ԼଅŞুƞ̡θ͖চׅڲன̀۷Ѿəז'], - 'encodeOffsets': [[ - 89858, - 50481 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MOZ', - 'properties': { 'name': 'Mozambique' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@لæ৞ʁɖńגt̚ʦԌaऀ͜ڞӤƊϕ“࠷ľ݅ಿƨЫʣ׷͙׍՗Եޏ͉ृСॉ͓ࣕƵוׯ΋ȗí׳ЌُǔӱZʣƪ¦{ࠗƋϷȤƝűΓΗ̗ۗ˳য়ҕρ̳ðΟɊÉíѵّRïϊůϖí̠ƬपɓװГஂࢬ॔ɜ؆ŶúĨӶƉʞ˜غǐ׌E੠ѥ˒ЏÔǹȼϳǰ۫gÅ̼āװᢈۘӚЕɴüͨɅ¸͵ǯϷØסոԱʲ׌ζǰíઊΙ؈̣˖̅]ɽદɾٔ'], - 'encodeOffsets': [[ - 35390, - -11796 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MRT', - 'properties': { 'name': 'Mauritania' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@և־ԗؤ֍ɞГʚҵUЧǽйð˽ˏïҐɺаŀߊģࠨĵкČмɑЎѵδǾˬᾔMǃ௎ȴќ߀øᒸ᪂©F౞Ṗ᎟౽cМ⋅М⋇ƤĻȇי⁙]ųȇ͕ÈӃǕוɼˉoƗӵ˯Ƶ'], - 'encodeOffsets': [[ - -12462, - 14968 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MWI', - 'properties': { 'name': 'Malawi' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɽٓɾથ̆^̤˕Κ؇îઉεǯʱ׋շԲ×עǰϸ·ͶͧɆɳûәЖѵɔʮޮ˄̈LJۢǚڼƞɪɉ܌Ѕϐ࠘ƽǜɵ˶Ϲɾଡ'], - 'encodeOffsets': [[ - 35390, - -11796 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'MYS', - 'properties': { 'name': 'Malaysia' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@àћֈĶ˞ΈȘýӸԓΜ֛¶֣ęϡĆ˿Öӻ̒ɵͤݑe˳׫Éߑخ঵ښįђӟ֚ś̡۠ҜĠؔȃΤƤƮۈρ'], - ['@@أ˹ܯƚॱ@̅ॗ͓̇љୟۅǵߑɾЕóөщ՛Òէǟַӆƕ֘؜˽ٮǀǜ܆άǂ৖Ǻ׾ڔЬՐϦѥǮ˺В¸՜œа٪אшڀͼHќыžιֆɻ۬ʧÑ֝͡¥ƮЧ'] - ], - 'encodeOffsets': [ - [[ - 103502, - 6354 - ]], - [[ - 121466, - 4586 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'NAM', - 'properties': { 'name': 'Namibia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@رٌؖ͡ȃࠊȷ،˯ಒm৒ŅҞ͛Όѡۜѳ৘ǽՆۃࠐ»٢КdžԊƞհ}ԄϝŶÐ₮˜׌Е᎞ş໴΂یȒհµͨȍPéӁȍʭC՛͍ͣΎಕ̍سƒ{Ჽࠣ‡BយA᷋ݣѕҋÕՇDŽϗÔƗάͩɰГг'], - 'encodeOffsets': [[ - 16738, - -29262 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NCL', - 'properties': { 'name': 'New Caledonia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ېԵѨϭ͉ȫҥɪ׹ϚէѼ։פś˶β[Һ˹φ˷ˎɻ'], - 'encodeOffsets': [[ - 169759, - -21585 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NER', - 'properties': { 'name': 'Niger' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nּॹȐОҿպœϤâТբ̴̘ପðݜƄîԮҠ֘Eኬஈϒᝪ࿸᮪ཾ೨αӀңר̸ȸಯ̾ɓ`ˋΔ˽ǻί͕ၻ«ધੳߋγૉΔ̵CեբmčЃʁµˋƻm֩ंȟ’ځҷٱʔҍ¸ʏşӯ~ӷΧѓq৯ѢЉȵѓb̿͆ࡅ̼ࣗıɕǻşӗʋ͹ÍݣٗӚ̟E˭ʗ'], - 'encodeOffsets': [[ - 2207, - 12227 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NGA', - 'properties': { 'name': 'Nigeria' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ࢍ̡͉¬͓ȉڥl҇Ղˡ؊שֆكYݍB¶തs՘ǂՊʶʴТԴėɨǔ͸ȍӾ˪ÎݤʌͺŠӘɖǼࣘIJࡆ̻̀ͅєaЊȶৰѡєrӸΨӰ}ʐŠҎ·ٲʓڂҸȠ‘֪ँƼnͬͯğƱ«˧۽ٱɛՙšѧDZȉǝי҅ΉŽыȋ͹ÿΓֽ˱ҽΊ͇aԃӭʑQЍ߷ɍש'], - 'encodeOffsets': [[ - 8705, - 4887 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NIC', - 'properties': { 'name': 'Nicaragua' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̃ˆϽͺȁ˲Ο˄сϜĤžƒŵÚÒʾ”ŀȔŬRkЮȠrǬOǺɤʜǝĒľƺIJ̊ɴbǦĄQňȪĖ|ƜŹǚ›ȆńɄB̈ŌŜŖ˾iïă§ȉĐ̫ȗ˹ěͷυ®ɏtϙŹĉýΫÌɛǣɋ ɩźƏȩDZʛÈƓǦˉêȕʼnօɞųŇ'], - 'encodeOffsets': [[ - -87769, - 11355 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NLD', - 'properties': { 'name': 'Netherlands' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ۦyǀ˳Ƚޓɇ́ԍ@ƘࢡҥȞՏπީǩ؛âѠɲ݀ఆଲΘ'], - 'encodeOffsets': [[ - 6220, - 54795 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NOR', - 'properties': { 'name': 'Norway' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@᥆ؙઍɣऄՅෛ͵ڵû΢לઃͰಫ˵Ы؝ߟωࣗȮ઱¥णѼԉɝԷ“ūփནƊɝҵ߭Hևױ࠿झಫ஁̨˹̇ͫ࠯bձ޿¾૟՞э˥ধֻۧυӛ֝Ԫဋঁ૫ȟ୏є̛ࣚˇ኶ޞզᕠ۶ဌࢂ໤୦፺ྴඦلᘼ੊ᇎπ൪­౮ۢ໖›ພǘ'], - ['@@ም΅๝Ȝ׆ɐԕˎეǚͮ̿ொȍ'], - ['@@᪖صᑟͥұأ݅ǁЍۡৣᅵԢނ̘ఽʐ࿕܂ٷڄᘎ̜Ң̋஦\\͊˼௾ˆ੖̋'], - ['@@࿮̏ఝҍ᝱ı៙ƖƫɴஹdँϬᣴɼ௞ȫࡘʤᑺȽ'] - ], - 'encodeOffsets': [ - [[ - 28842, - 72894 - ]], - [[ - 25318, - 79723 - ]], - [[ - 18690, - 81615 - ]], - [[ - 26059, - 82338 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'NPL', - 'properties': { 'name': 'Nepal' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÝαŌՕĩͩ۩aয়Ȟ٭ĂӛђଷŊયҼ߉Ю߿͆͜޼ՒϠΒȪڪʳࡔշҾť˰ЕٶǓۀσौȕঔć'], - 'encodeOffsets': [[ - 90236, - 28546 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'NZL', - 'properties': { 'name': 'New Zealand' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Ȓ΋װ;ʐΡBΝ̹ϳչإїͷ̴З٭Yܗ̓ɣջӋࡗڇϓнʇޝlխˢࣱÐƗ̰Ҍذ੐ࠦժǀ׾͌ܜѰԎѦώظ͈ɆŰҶלϴȆΧ'], - ['@@،ࢫlָϜɯŲًڰ˛֨ãӒ͎юĭȯݗʯӫٛjɡʭþαūƻͅҏзֹ٭ͯƟɘΕŨӞ۔˟ҨࣛͲz̦؈̌ƚ٨Ÿլͻ֜vƪБΎڋݔΗת̸àҚұٺɑʂݡ'] - ], - 'encodeOffsets': [ - [[ - 177173, - -41901 - ]], - [[ - 178803, - -37024 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'OMN', - 'properties': { 'name': 'Oman' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ֹ̻ϟªǩȧƉэļ֗ÿĻϯFԽ̻ćХȓǯԹP͡ɃJͻПɷҩĂ֗˳ϱ³˝טٿ൴ᠾ࠾֖၂ϩתv͸ʔΐFΆϞǒƩŞèմіHϖֵҸ̧؞ŋӼƳϜӕɨ˧̞ŃCȉ̩ԃƅɽΟˏ'], - ['@@ʼnƳDž˺ʔ˺ľñā΍'] - ], - 'encodeOffsets': [ - [[ - 60274, - 21621 - ]], - [[ - 57745, - 26518 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'PAK', - 'properties': { 'name': 'Pakistan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@تϻʞ٥൨ͻ߹۷ऩůౣȲЫα̖݁̈֩ڴгܑӟ`׳ࠃࡇՃ࡝࢝ࢡউÚऑࢡռϗĪ٧ҾэǘܝᇛD֓֕؛Ɇʣ؀٭٘໻ǁിeஃŝ̈́ঊொѢéϰГƌw݊ߥφͷԔеѶඨѕࡀŲԈŅǞȂגóદĈ܎ҶӈشCĠɼٞŌ̴ý͢ʀ±ԌΦԖ՘Ɇͥ֊ߜɴ̢•͒мΜĩмȣΤӬμࣘǮ८ĮѐƺӨĦ'], - 'encodeOffsets': [[ - 76962, - 38025 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PAN', - 'properties': { 'name': 'Panama' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˫ʎǵҒȺɢɅÎƿˤлɸοÁǝ̇ͻɁǽ‡ĉǩВҗɯŅŧŭϷ©ơԈŋƛˡ¸ǝ͸·ÈɓİέCǻĩŶªǖìǠƲŲIJǩŲK͸͘ö̠̝iDZͲ›ĀæɴȵЮÔΨɄԜǞ˺ʤҬ·‹ĉҶ…ώơ˜ʧ̈́ɵĹūȜӵǁʟ˓ÒŅС'], - 'encodeOffsets': [[ - -79750, - 7398 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PER', - 'properties': { 'name': 'Peru' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɥљћɋࡅӘñΈရࡊທࣾ٫԰ΏۜƐʎ܅ાࠣ༄ߍီ΅Ϥ˃ؤٷպױͼ˖ϒПߢʼךڢՎIJΓʇȧx̭ΎâͼĝΚщӆΌDŽ֤ԦܶৠͨࣸࢠʾմŝٔɢĂ֒ЉˎЅϴɏӶࢣضĿҨɞ̤ƣԎð٠Ͻթࡣʤoрҁݳ œųۍlj॥ֱÓϻɉ̇ČғԕʍBΡɛƵΔݳҲԝDZί֐µ͆҃ݐuېӸÇ౧ϢĩӄƠܪടǷ˵£ןg܍͟пƮ̵ȕ˯β۹Ջ࣡'], - 'encodeOffsets': [[ - -71260, - -18001 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PHL', - 'properties': { 'name': 'Philippines' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@Đ֏ºҽ˹ޑ̫ࡨϽэˎإʉϿ঩Ӧɿ؊ʰЎՑЈˁΑЃثҵƑʖ͢۾ՌʀҜ̈́̔ϝٔɰƎϒרv·ٰڼЋêхÐ̱'], - ['@@̟ˡˁՍ˃ʝԫ׈ǦɤɂɾĢԸҨ¸Ɖ֣جߺāߡ'], - ['@@ૣߕЬט؈԰Ԏ׊Ѱ࠲Ʈۅևҧѳֿ'], - ['@@Ԏʹ՘BgΗϳΣՕʧ‡ϸÒєŽА'], - ['@@ʀभ٫ɞj˭ȶԯЍȋ•עʧªƁԘӶãY͈ԣٜ߮mɴ̻'], - ['@@ɟܩέоѓ٘ܚ‰̡̈'], - ['@@ԮʉʶɖüɇƍΑ˼׻ɛۥӷ˥ƁڳȊڝѾġϊIJਾүăҙ˜ȫēϯٻЮ̵Ѵɍ̯՗ԊރůлȆ¨ΎˀɊʣȘŇ̡бӚűμߨͺˡĔೄ˜ހԘA'] - ], - 'encodeOffsets': [ - [[ - 129410, - 8617 - ]], - [[ - 126959, - 10526 - ]], - [[ - 121349, - 9540 - ]], - [[ - 124809, - 12178 - ]], - [[ - 128515, - 12455 - ]], - [[ - 124445, - 13384 - ]], - [[ - 124234, - 18949 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'PNG', - 'properties': { 'name': 'Papua New Guinea' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ɽčε͔ρՔǷ٘ŜĆĜʡʬȏРՑЈ˵ŝɽ'], - ['@@ѯçƃɽҟȱћȟѽBۏʔӑɺêʺݬũҠàŶЖŦrĆѽӐÜʂ˼Ҹ̚ġӸԌfǜƏgү˯ԡ'], - ['@@ݤտղࢻӖ„‘ω٬ƛʥǁࣀΝġʏ֋ÏȷɔܟĦࡕŴٷ՚ӉҦѧ݀ભπ܇ʇԡˣńإڇ˿һƖࢅ–aᩒaᩒภ׃༊ӓׄїҴхŸӵඔԱȲѽޛěȄ֕'], - ['@@ʿɡǁӸȝ͘ϝ˞ӍΪ؇ʚɺȮҒɻ˸ȁΜȫʹΛ͊ˏĶѧ'] - ], - 'encodeOffsets': [ - [[ - 159622, - -6983 - ]], - [[ - 155631, - -5609 - ]], - [[ - 150725, - -7565 - ]], - [[ - 156816, - -4607 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'POL', - 'properties': { 'name': 'Poland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@·՜à̂ȹ̧҆̚ɺɤȝђָʘ಼ϴ੒˴࠼ƙÚȱ߸Yਚħ໶^њěȬʵšωɸ͋KͯԋǡʸϳfϏцܻěɽзįރۥɒϗǿ¶ߙ͔؁šЇĒӹǵч̖Ήŕ³¼ϭаر¼ăˀֻĦűɑҗǨÀɴػòЉ˔'], - 'encodeOffsets': [[ - 15378, - 52334 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PRI', - 'properties': { 'name': 'Puerto Rico' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@јõưǕɋɃمLӫ‡·άŢŬیK'], - 'encodeOffsets': [[ - -67873, - 18960 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PRK', - 'properties': { 'name': 'North Korea' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Şƥ͉ºη˵ʣ˷Ž׽ѣȅƫƧ̓ʝ֓ƏηɥηįġͰƋӈσŧȭΧÇץ¡͝ϛϑˆÁùСdžĵƿʙé‡ǀɑüɥƆɰφȤİõƶɆҒÅƎөĠЇɤۄբऒҌ־׮Ўˁܪ‹ſѺಚβͰҼժӹ'], - 'encodeOffsets': [[ - 133776, - 43413 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PRT', - 'properties': { 'name': 'Portugal' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̦Ɉ΄ŬɂЫӺDƞłӪ‡ɼуϱɩYٽƍū‘Їγçʹԋɵտ̄ʡřɫ̵̿ê˥ͷɓѷŠџġŸڂÿԬϓþȩ͈äռͰ̨ÒͼǪԎkΤǙ̠™˲'], - 'encodeOffsets': [[ - -9251, - 42886 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'PRY', - 'properties': { 'name': 'Paraguay' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ͦ৖tҌЖ݌าʔޮ]޴їbʵʞҳÇଛࢲLJ΄ǐ֦ɩǀʣþޓİ͓̼›̀ƌ̢ƳAҥŕӻǑӛƍݏށ١ړƇऻŸࡑɮࠢ౨ťψࡽ͢ਅبۉŸ໵ൌ'], - 'encodeOffsets': [[ - -64189, - -22783 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'QAT', - 'properties': { 'name': 'Qatar' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ÇؔɨѲɰĜʬˁdӯǽӳɵÑʫǖ'], - 'encodeOffsets': [[ - 52030, - 25349 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ROU', - 'properties': { 'name': 'Romania' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@δǶԴġՠGϸȳ˺źبĄɄȠΠ@ʰćʺʟˊΟӞԁ€ρėΩưϥϒƹЂƊϠƟpɏПǹʯĀɻ৥ӳĖ̪ؑফțзɋ௽¬٥ƀ͙ÕʍΊƵƦȚƘȷŀ˃ȋөʔßΌԟȢĥˌҕͤڪǂԖ֮Њ֬ԢǮ'], - 'encodeOffsets': [[ - 23256, - 49032 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'RUS', - 'properties': { 'name': 'Russia' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ࡌ๫కˤԫ்ࠌࡳyוُԒսٱƻ۸Ĥࠊħ࣢Țٌš૴ӯࠜôରަϮͭϴϐŠɔ։̆ߵuࠟΎࡑ'], - ['@@໵]ਙĨȒτ୊˚ࢢƧψƃęɱäɉ'], - ['@@֦Ƚțؐᗸű࿨޻࠭λ൛ēsࠑͳǩ޽~ٗ̊ૣʖȉθ࡟Ǝॗʼnҗ̎Ǽ̸৓ȥϚЃӉΣ@„Ꮪٛᔺ࠳ïԷ'], - ['@@ः©ƭˌੲΖ@ַ'], - ['@@ળ»@ָň–܈E௒ʉïŗࡽȩ'], - ['@@ౡMႣĤƧ¬ߘͪੀþஞ͏ĸə'], - ['@@ॿͩഉø༛ͨȪ˖༨ųᑔɗ'], - ['@@ډرᶽzඃȣမղҎ׀૎ǂᕞ™ᴬѽ'], - ['@@ӹóᩣŊɟώູɦūҒ࡮Ƕ…Ҟသܒޙĺ፨݆ɩϢሤѺ᪪բ᫠ǀ෴̸࿐Ŋאͩ֟ʻᲗз᢭Џᤙߝఫࠍ೉߱Ǡۥྎۏ'], - ['@@ɨгސȲឤYቈЧڬ̿ȽѧङʝᕅүفʟਬşఖɃݴDŽєաτɔഊƂ᧪ƑȴϽ↲ů´ٜᄼƥഄLബѷϮ՝ӹΙੌڋ೔Ϳ߸ࢦഖϙ෢ɦྼʵؤʀൖş؅ޮૐζ䢀ձܐӿᔲٛ₎DŽာƑ۪΍Ĺؙਜʇ૴Ǥ๰vཚǑཪĢะݛਪˎڷ՞ϐώᧆɻფºᝂБ୲ν@”MKઇσઝÖݶҁԄەϲɧĮΏɑɝ༧Ǿ᚝مݛĭ౽ן௛ԧ̱ϣய׊ᔗڇϣ̸ߵΫ૱Ř˓ց৙߽Šͻड़ȋő௣ޭ‹Ϋ۱Δα฽ѕ̅ॡభȳʥ࡟ே޳ׂ̳έ௬ҵለИ୘܀ԆªϾರȊຊ੒คࡺຢڢڮஆ৷ëԍۗᒉइۍਖᓧ˷ᑃටۚԧሙɕಝēÔ؊ಯŶ਩ЭᢵƠ᪏ʟᨩ࿛ủጝ೚ŁаՃࠄȅ՞оईÃௌऍ†܍ځ࠽ë্ϛഉ్௓˯ׇଙ঑ଇॻթӹ૩ӱՉYՇФૻؙſ˩ŝƦKѐіxŦ঴ɛܚܞ̒৶Ʃ֢ࠈ˾ऄ͚̮Ѵݲ൷ʛܯͧ౧Dͻ߄হװหˎ̵ࠖ̉Ԫ̿βԯࡐ̲݇షʢ૛uਯƱۛлҤȥXҩұˑݷࢻRσஅՍ৙̈́োéѯˮԋĞ௷ףેƑޛȻੑƌޫSԙіࠕИࡅŎ੝ŋߏƹ஛ΜLJـধɎށİवΎࢉࢉ΀ӵࠇב௏ɂ࠻Š֗Ͼ࢙^ܳʴ౫Ѓྃܣࢭơ͡çѽԤઍőΧΦחnjЙӠҩưிɍୃӜ҃ѯሟᒒੵٮ̮˂ᑋߍ߭³êҞઅ˺࢙ȱ˃ࢊມǺݯΑᑅ̳Чȹḭ̇ϫ˻؆ֹ߭ɓǀɭ߭ХസֿɁЉ୻˜ʓʟ੹Ѧ೯iࢻΟহͼᇡ׊ಽsჃࣳĿؗࡹӤڡउʖǡӝُ܊֫ذx՚֗ďѝѐƋϥӽ߿Ƒ࠳ࢁކߕĉ֣ࣼফԇ͹ƝɇωÌֿԚɿ†ՅȚʳΈ޵ǮԙƁƥƼଥЖఅƌ܃ƞĹıੱ܂य़̈́ܩӴؒƈۤ۰ҹͪఌ΄uȀݯƉ‚ώѠɼ߼ÖƄ˪ȅҪ΀ѰWʚఉ˚ӭUԯЀ١ƃ੩̐lǒ̗θڟ¤éʼɀǞ՝ӈࢋąʭ¦Ƀȑ̽”ȷ՞ȟ˨NJĀڴ‡͞Ȁʍɢ֥ƪ¼Ʋ΁ƴՃվǸɨĉЂࠑȨѱijšȼࢭɂˑӸíТЙȖάˊʝ޶װӞųƤक़ҬࢡЎᅢ੶ޮӠ͂єగּΆնݳش֢ܜ঍ग़ޢي౿֔ŬךڶüොͶࢀ̈൦ԕᘨȧṺो٤ЋÆ֓टѳ൏ɡ⏷ٔ؟Ńൌ؛ÂϵÆ࡫ઌʯڂɓňРԑΰ՘͈᎖Թ۾Ȳ֣؜ዦࠖޢµ޸̋Ӫ׀۫ԄЪԊءԶᚠˑӔҹ੡ĻNҳڌ˽ಜǼȶ՚ჶАᰪܞي£ࠣԙਬĕ׼˼༾xఢΐफ़ԏॖ֌ࢡӢѪˤ២ʫ୒ʿᴾॣ֚ѰࡡѺ{ǴৣĈˢЌ҅ټ}ː༄ݾրކزǒᕮɛǬұߕڽԺˋ˒חȏଵऒԧέ֕࿫஝०ŭ̢ͮऎɎɞжܮЎөӌϼֈࣿêȫҲڢࡈણۆຒ֦șװмnѴүͧ߷࣐Ƶϥ؄ඤͦლ¬༈ӏݛ۪ċࣆศǞ፾™ᆘŌہѮংւॲx࿎иᕠŐ˪ɲᕂþیȋሴҀ໲aɶδߤΨጤΈ෸˗ଥȷበŹ'], - ['@@ⵙ͕ໞીےĦقÃᒈӋʟͿ'], - ['@@૽ōݱÛśƏঙƑ࣫ȦӐʾል~࿞ƶ౨XǢɧӘȬߊƐఞǿ͗ŷ'], - ['@@ᆳĿᚉʎඅ͎٣׾଩ǔᔆָᆎȎ࿌чኬ߻ȹݯ'] - ], - 'encodeOffsets': [ - [[ - 147096, - 51966 - ]], - [[ - 23277, - 55632 - ]], - [[ - -179214, - 68183 - ]], - [[ - 184320, - 72533 - ]], - [[ - -182982, - 72595 - ]], - [[ - 147051, - 74970 - ]], - [[ - 154350, - 76887 - ]], - [[ - 148569, - 77377 - ]], - [[ - 58917, - 72418 - ]], - [[ - 109538, - 78822 - ]], - [[ - 107598, - 80187 - ]], - [[ - 52364, - 82481 - ]], - [[ - 102339, - 80775 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'RWA', - 'properties': { 'name': 'Rwanda' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ͬӃµӵʏŁѿÆʱӍԛàþҠŘތԄʎɺȰďԈʸ'], - 'encodeOffsets': [[ - 31150, - -1161 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ESH', - 'properties': { 'name': 'Western Sahara' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@oҊŸ@@ÉeNjEౝ᪁ª‚ᒷ޿÷ȳћDŽ்ᾓNǽ˫˜΢bCቆäĶ̢ΆϘˤୌୠ࣢Ђ੖ˀÖ˜ټۺĜ̦ʼnϢ@˔ȒԲ‚'], - 'encodeOffsets': [[ - -9005, - 27772 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SAU', - 'properties': { 'name': 'Saudi Arabia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ʼnΪʩʨÝͲѡ̞҃۴ʁۆׇ׀ϑƐ֋ߠīא–ӾӕञϿ͠ґǨˡӖ°ȎɹѦʕȊ͝زԟڴѓ־лIžҦœ̌ļͲनƅζʶȪ̢ٚŚƒˮˤƜ࠷ࡀ၆фdžŴৢɩబיᛎၕ༠ãݠąȾЏתv͠ܥаȓƠִ̏Λ¼΍ċ˩ł˯ʎɽŐ˟ŲȵʬǕɶÒdž͍Žș࡙͐ᡌщǞDzϪש֕၁ᠽ࠽ᝑ͑޷ϙ׻ࢥϹƕɁˬ͏§߻ĎƷČॹmɫùΉɔɝЭĒΟρˋ'], - 'encodeOffsets': [[ - 43807, - 16741 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SDN', - 'properties': { 'name': 'Sudan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@śhdмĵ̀џͨĵ؄ĶبϳÌÍȇԍ©Ȭʕðԍңңл؅џđ۹Ӫͅǥđʓџǃ…ǥ࠵@řǦ؃†̡ƝɳîѝӬƟɲ؃ŗɱϵɏݣ˿ǁʳğå ̅ʎÃʼƌΔE΄ӛՀĩάZȰ̱ʜUӦǭ͖̍µĎ̰ɒΖħΐˢʴǫȞɞ԰ϨئܦÏ¥ ZΚॲH@း@Ὂ@ῼ@˔ࠗȁƳŪࡻ্̰͌ȷҠ̳ыӑأƏ˅ʳĉ֑α௿ĚͳƅܟͿࠟԓзέٛč΃Љɽʝ࢟Dij'], - 'encodeOffsets': [[ - 34779, - 9692 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SDS', - 'properties': { 'name': 'South Sudan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Xٽűʯѿq˷ӏԨÑюХƨͳϦșӼࣳ֫օԫԇԫϭסFگȟՕȊ΋ɭ݉֐ȥάҵDZϱÆɣƕϗĸԗۚƉˊعͪɅԌΕζ֟ѬS˘ҡͼ֯͠ʴĠ̀ǂɐݤɲ϶؄ŘƠɱўӫɴí̢ƞ؄…Śǥ࠶@†ǦѠDŽĒʔ͆ǦۺөѠĒм؆ҤҤïԎȫʖԎªÎȈϴËĵاĶ؃ѠͧĶ˿cлŜg'], - 'encodeOffsets': [[ - 34779, - 9692 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SEN', - 'properties': { 'name': 'Senegal' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@΍ٺн̚φDŽРמȦќ˾ːкïШǾҶVДʙ֎ɝԘأֈֽžԹǔӓ̾ɿî͗ʽŧ³қâÙģȃk׿ȲЛV༇–ɥħ˥‚ѻƋƏ٢ވkȬŞƮR̸ȘήǯκcζȌǝʐˡƙʻJͧȸˉ_ȍȥࣵy'], - 'encodeOffsets': [[ - -17114, - 13922 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SLB', - 'properties': { 'name': 'Solomon Islands' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ɾ˿חN͉ԬԈȯǜ‰'], - ['@@͝mԧĎǫżÀͮֈƁ˜ǭƎə'], - ['@@ųƹحܰǫԈ˺@̠ڥʹЗ'], - ['@@–ǛڅΦҟ̠̿˪ŰĐϮȫېϭȢˉ'], - ['@@Ǘ³οȒ·Ί¨ƖԈΡͰ˛'] - ], - 'encodeOffsets': [ - [[ - 166010, - -10734 - ]], - [[ - 164713, - -10109 - ]], - [[ - 165561, - -9830 - ]], - [[ - 163713, - -8537 - ]], - [[ - 161320, - -7524 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'SLE', - 'properties': { 'name': 'Sierra Leone' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɧØ؁ͺѩ҈Ƨ̬Ĺت҆τĬɺƞǸɶpȜǂڦCɺ̛ǼˁʓƈɗṶɴ´ϹϹϛҗ«ʓȩˏ'], - 'encodeOffsets': [[ - -11713, - 6949 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SLV', - 'properties': { 'name': 'El Salvador' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ġȡӡ^̡Ą΍ǘұÀʃǶ~Ů˾ɄǀĢ«IJȠ¾ʜëǸǙʪƇŒœτĴǤÑŘĝÏͳ'], - 'encodeOffsets': [[ - -89900, - 13706 - ]] - } - }, - { - 'type': 'Feature', - 'id': '-99', - 'properties': { 'name': 'Somaliland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ϛԩד۫۹Mᩧা͍̜̳К̳ҨǾ̖̲҈˚ƹǒΏϜΗкGߊɌࣴĴ݌ʼиÆ̚ƶӎˆKaE΋Aࡑ@ѫ'], - 'encodeOffsets': [[ - 50113, - 9679 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SOM', - 'properties': { 'name': 'Somalia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ѼĎЊ˾͈FpɵýӧHѳǯ̣ʁࣥЙयԱ੷ܝ௷ܓवধ଩ࡁڹష࠯޳ٕँৱȗѷȍȣӽۚWᵤܾ॒ɰˆբfݠפબšᛜᡄה۬ϜԪ@ѬBࡒFΌLbːhϰŰ'], - 'encodeOffsets': [[ - 50923, - 11857 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SRB', - 'properties': { 'name': 'Republic of Serbia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ԡȡà΋Ӫʓ˄ȌȸĿșƗƶƥȷȏø̫Тγ͋ʿƗˋĞijƑšϳa˹µƒØĴĴĦȴšKǍƼƑ ŋƆƽÀšŠƯ±ś˧ȩÑèð͋Ǩ˟ĜūŜɟƠȢšŬЄЛ͔ɀτ̥Ë͔́ˉʈȱ͘٢ɚԾ™ҖͣĦˋ'], - 'encodeOffsets': [[ - 21376, - 46507 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SUR', - 'properties': { 'name': 'Suriname' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@৔ǙĞưڶÔࣚɥѩܟâֹͤӽƥίóϩɉΛӓDzЇđ͹öčʏƘǗ÷ǡҙèԡܴōӄˏBωؐƺѠ¯ȤԜɖƈݲ'], - 'encodeOffsets': [[ - -58518, - 6117 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SVK', - 'properties': { 'name': 'Slovakia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@´»ΊŖш̕ӺǶЈđ؂Ţߚ͓ɷɓǏ͹dzđ࣑ʮ˟»ȟȡЁĿěÄХŽͭ}ãǙ۷Ļ̱ĠёɌċ̆äńŢȂόa˺ĔxþLj¢ÆȒȖ˜žưʢD'], - 'encodeOffsets': [[ - 19306, - 50685 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SVN', - 'properties': { 'name': 'Slovenia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ۜÝъȐܾtLjƘƘUǎ˳ڝɟć͹̇đHɻͣh˷ƎƷƙב†ȈúȫΨĞа'], - 'encodeOffsets': [[ - 14138, - 47626 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SWE', - 'properties': { 'name': 'Sweden' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ࠁוƀԥ೹ڭྱܡؓஃײףߦүޗॅ࢑ȝ͍තӋ޿৳ĆӅڗঃˉߐ۳॔ٓஐφӜּۨ˦ন՝ю½ૠղ߀࠰ä̧ͬ˺ಬஂࡀञֈײ߮GɞҶཔƉŬքԸ”૪Щ಼ֱv಑˴͛ฃʃ'], - 'encodeOffsets': [[ - 22716, - 67302 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SWZ', - 'properties': { 'name': 'Swaziland' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ǡύӭěԅҖS̄ɰ̀ĂʔʐÒшƵŰϕðω'], - 'encodeOffsets': [[ - 32842, - -27375 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'SYR', - 'properties': { 'name': 'Syria' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@࿩ࣅऩͬgNŖŶ_ΈȸҠҜ̈́Əͤϗ¨ÿٞȶΌɤȀɤȀ°Ҹ˞Ǐऎɺ҂ƿۖFॴ̀Ґaक़žїԽҡȹĂؗͅ৫ᇵ࢓'], - 'encodeOffsets': [[ - 39724, - 34180 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TCD', - 'properties': { 'name': 'Chad' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĎЄաnDզΓ̶δ૊ੴߌ¬ન͖ၼǼΰΓ˾_ˌ̽ɔȷರࡔҠ…ྑ…ྏ¦ ܥÐϧإɝԯǬȝˡʳĨΏɑΕč̯̎¶Ǯ͕Vӥ̲ʛYȯՏƛэͽ؉ࣹ߅ϳ߹¾ʁûĊ̏ѫ̋Σ͟੓͏ȽȐƓhƹɍۛÙƀɪ˅ׄşΐλƜӷӪǼІϦċʂÐҸSқކŒ֐É֐ͭՠ'], - 'encodeOffsets': [[ - 14844, - 13169 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TGO', - 'properties': { 'name': 'Togo' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ڱdzȇ̎ɡՔãкȆݴɁ̬ăڎD؎ΕѠÖˀ݂kŅѵʲʝ̈̋ŽЭǜǥኝȺׅ'], - 'encodeOffsets': [[ - 1911, - 6290 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'THA', - 'properties': { 'name': 'Thailand' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ݭϬܗeŬڈ݉Káऋґ௯˙ݏÌ؋ն΀ދưܭҶӓԚĭѤѧ˝·ևĵßќۇςƣƭͧ͒ƝжҁӄПЌƏӳǃҲĠԾʚ߬ТࡸҤ޶͟ތ`϶ĩҸ֕ښȩф̄ƺ̮ܶ·ֆՓؘН݆ΠƴϦࣦצœӬθӔȘθʷ´ԍ֨ȷࢭpݫࢰԆʤƧӰzǜَ̊ÍٖڽÀࠥںܷ›܅˙ϛ޿ŦગDž՟ۧȤ১'], - 'encodeOffsets': [[ - 105047, - 12480 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TJK', - 'properties': { 'name': 'Tajikistan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̭ʷࣳƖāӛ࣬Þਢ˗འŶɈާˠĐԜȓ‡͛ŴӍࡿBׁØԻϕύĉ̉ǯͩˠþ۸ʩ¢ĞʲғȐα̇ė͹Żūԇj˕ϩ˯nj؋ˑʱĺӀࡘǹض؟ȨɔφۮŸЌҬˌբ૲ȜǩϵŤɹΎv'], - 'encodeOffsets': [[ - 72719, - 41211 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TKM', - 'properties': { 'name': 'Turkmenistan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ñۼطŠॣݔڣĠगюׯþσƽ֙|ׯӓ݇NjƻרŪ࢞ٽ˶Ɏֺ֏¸Ȇ۾ߊȵ݈ˎؓԎʉӔڱɋď؛ʿհψ˨ॖǪ֨ɻךڅњ¤ॆ\\Əцܖ̂۾ӦଆѹĜڡ͐ǣࣦžˮƳаࡽ०ׇոЃ࢞Щ૤Ϋwԥʩ€Ѕɤſ̙۽NjǙڥӁʭڏŵǫϟهŏࡩ͈'], - 'encodeOffsets': [[ - 62680, - 36506 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TLS', - 'properties': { 'name': 'East Timor' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@IJȤܢȌז†ˀŀ͆Ľ̯ɫ࢕ο۳ʋeʬďǔ'], - 'encodeOffsets': [[ - 127968, - -9106 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TTO', - 'properties': { 'name': 'Trinidad and Tobago' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ӚŊǮ‡‘صۭġƯúʒɲiͪ'], - 'encodeOffsets': [[ - -63160, - 11019 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TUN', - 'properties': { 'name': 'Tunisia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ΩພԭͺQȰۉԄóنԮҶȢۚƃߠǠќࣶͺךĵ}ы܊̲ÒljпЫMϱ̆ȽōܫփхDŽқѤaɄЍ͊ſ³٥Хʋʵˏֽ͓ĘΑïΟЧț'], - 'encodeOffsets': [[ - 9710, - 31035 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'TUR', - 'properties': { 'name': 'Turkey' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@஺͗ঐżܤõলѬࣆ¢ߴЭƜ̑ăУزȻͨʕֻʇˀ५ǏʻҠڧЕƙ̏Ɋ঍ňίŽॗŽҏbॳ̿ەEҁǀऍɹ˝ǐ¯ҷɣǿɣǿ̱Ϡ͈͂ԟí۱ȖֿәౣĥڹҊࣟ†ȗΑׇij߻҄ࣻeӽ࠶ؗҰЦٸՓВठߨಒ’Μྀٔŏ৞հ঒ʄർlุף'], - ['@@۫ҏ˃Ϻ\\ǦȦĦʺՂХɞࡦ˄ܤőĴ͓ܼ˓Ƶȵি±Ωʷ'] - ], - 'encodeOffsets': [ - [[ - 37800, - 42328 - ]], - [[ - 27845, - 41668 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'TZA', - 'properties': { 'name': 'United Republic of Tanzania' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƚġᵂႋÌӣ஼࠿ϱਙ¸Ӊՠ̩~ɓɳԓ¶ʭÇГ̌Ճΐ̰ࠡǿڝӣࣿ͛ԋb̙ʥבsɕŃঢ়ʂكåɽଢ˵ϺǛɶࠗƾӉʨՕƘͯƘΗɈґ੖ӣҺǗӤČѨƯޞΎ ̨̦͜ѬȺǮS˘ǷȐ·ͨʐł¶Ӷͫӄ̎Ķऄ[ႎà'], - 'encodeOffsets': [[ - 34718, - -972 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'UGA', - 'properties': { 'name': 'Uganda' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ः\\̍ĵԇʷȯĐPوȜ͎²ڬǰϸ͎Ѭ͔ɠ˒̘͵Ŗ¼চΌɮՖȉڰȠעEԬϮЊ׍İсτ९̧ؓЯ֋ʉͽTࢹႍß'], - 'encodeOffsets': [[ - 32631, - -1052 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'UKR', - 'properties': { 'name': 'Ukraine' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@̾“ɄȒʮ¥ࢌĆ՞Ӈȿǝêʻڠ£̘ηkǑ੪̏٢Ƅ԰ϿӮVఊ˙XʙͿѯȆҩƃ˩߻Õџɻύڡã֑˕޽«ܣ̻¸ԹЪȭࡨ¼Ǐ̛ँơଛӟұǠȄЂࣽʘƨLjߪ˪ʑȔಯɆË̼ީĻ̷ҧٱةϟƠЁƉϑƺɂĞƦ˾ɲˎÑƮǬäĊśӸ{ɞØƽĎÐŲ̉ɈŧΘ̩ƐÒ˶ϝɦΉŽأʾ֑ĉȧŭΟ@Ƀȟاă˹ŹϷȴ՟HԳĢγǵÍɤұɮǐͺɸɔȀµɑϘބۦиİĜɾхܼДҢɪٲnࡖßबȫڎi͂ŧ̀Ʀɚȝݸ¢ͮąÄцʶȂܞº'], - 'encodeOffsets': [[ - 32549, - 53353 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'URY', - 'properties': { 'name': 'Uruguay' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ղĚࡆٯ̺|ࡺ՟ڈҫӠֱχЉɸӇεՇॉұاǚғěޥΰ֫ԟҬÞլǾȈS࠸ɤࡺȾڦ'], - 'encodeOffsets': [[ - -59008, - -30941 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'USA', - 'properties': { 'name': 'United States of America' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ũƕȽŤ|ɾƓ̨¦ĤƤƎÍǔ¸þÜe͐ƙƬñƌőɊ̍q¯͟ǵˏſ'], - ['@@˭ÑƟǮīèQÀĈî̘āɘŹëĵ'], - ['@@ĝ҉|Úĸа•'], - ['@@­µÓŻˆŃȒ’ɤŚêÃʐ˥'], - ['@@ıĉ˱ƴªÖŸĈȘijȝ'], - ['@@Ƭңʼƛז½࡬ƅࠂʹڼŊਖɓ˞Tݨʄ߂̧ࠒ͗ں˩ٶˏĈəȢĉ½ĉɦǎĔ¦ȣǜƅɴ@ŬĹĽƫ࢖ЁǶށǚܳʗӹЁҥȁ̍mēĦť˸Ɓɂ@ঊ҆ࡾƀસмfĐ÷ʰƉǒϜƆࠜHޘAˎ͞ŀàࢶ؄ϜƸ౦N໾BĎȺː¦Φž̖Ϣʲٺٚي˨ə֜ƜώʏAଧռӅƢ˝࣋Пࡷ̃ࢱʝѻӿƛȋSѽˤѽΒsė̬ʦȇãʇ֥ƋЗhةƥλ¥ӥ¥۫ʏఀǂʠǃ୳ʥ՗C|ĺʭɷʚǹ׽ؑ٧×Ɏȁª˟ɀǪҍȼƭ^ͅˏ͛ҿڡûʺֲѕ͎įۦljεǴՑևƀׂ˓˜ߛʊÍĖ̃ŠࡁՕدࢇʝցӱнÁэ̱ţ˭इձӁЍЅӽŻׯƪ׍ˬܗώשLεЊঅ֥—͛ȿԡʣŃЯĺƁς͋ȖѻܢϹٞű͢Ǥ֐ɽҦٻ۲͟źࡑϡƭ¦СϼՃȺोŁݗĤٙÍΏſƲɟaͽǴǓLJō̵Ů́ǃ؍€طѺܻĿ؏ȚԹÏۻȝއح࠳γҝБȕϗUׅ¨ЕDŽ˹͝{׭ȂٽʺɽЄȁטӷӐ̃ӰуֺףͲۉgՉڑۣʦѡʪȽҦ˧Ѯӿτїˈ̩̖ป@C΋ڗ@ဩOቿפ౓ТĀǒ੩ĝॕÝƙіխӚϻĴğʌһ¦̝ɪޭĊɉƌĹҢࠁࡊ۩ୠˆȚχˤٯ۴řۆ҃ҞȀۢ…ܜˍ٢͠ߊĸނĺނƱૼˇܘʓ϶ĸǐ௒˷҂ߋȺɜƇې˷ێᛸ@᠂@ࠜ@ᢢ@៚@ᡀ@ᡄ@᭰@ᮞBაAF͔˴J'], - ['@@࠽͋ѕɐŽЀބ̘҆Ÿ֐ÉΤʻܫЍ'], - ['@@ԧŽսƾԛɮࠦƞښùĂ͑'], - ['@@԰DžԾĒڸɛ࠲őéĝُDZٕǾ͋Ʋݍµȧôº̈́'], - ['@@؊ϛώnjහ»¹ȕ౾ƛࡨČᄚ˅ྤā٨ʼn૦Ǝౢʧࣲŝ@@MᷱIⷍࠠ{ࠌɵהρݜցࠈҺࡈ˖Ҁѡ֤·ޒϙՂ׽࡮य़ේ՗xՋұЙҥ͂ݍˌʃܺએںҍߎ߯Ä೷rটʌ჉ࢎߩDŽ฽̜୑í࿻ϬৃΨटǯǦ׏ҫÁঁǫ݉˱झdzťӶϚࠚࣀʶɱɂੱҵֵ֑௅ױؚСߏ׿ࣗΗࡁʱȻωಽѡ˅ϿছΫֽÞ޷ɻ࡝˹ۧ˫෹ʉſƘऀϾࠔʸࣆҠਬĨвΈ୘ԊȈǚب̒ƢْђӸॹʫ˓Ơҕ̧շюɧ̝̽м࠿ͳԩBïԄƲ̮ե̚થLJ܁ЀַȬIӈ٩Ϊ͘ӘۆҸ̚њںÖ־ƇڴМ؎ï٘ʼƻϨҹưج͖ԩWࢻǽʯȃڏȄஏĥ௷ȬΛ͸੟Ӧ୾ΘመШ۔@ŕнᄢŽڽԶਕ͌ױр߫ΨଽˈҺѲ๰‚ਗ਼ϦȨФ࡬ЎࠊĪཪώޜÉಐ҄ౚǭ'] - ], - 'encodeOffsets': [ - [[ - -159275, - 19542 - ]], - [[ - -159825, - 21140 - ]], - [[ - -160520, - 21686 - ]], - [[ - -161436, - 21834 - ]], - [[ - -163169, - 22510 - ]], - [[ - -97093, - 50575 - ]], - [[ - -156678, - 58487 - ]], - [[ - -169553, - 61348 - ]], - [[ - -175853, - 65314 - ]], - [[ - -158789, - 72856 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'UZB', - 'properties': { 'name': 'Uzbekistan' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@xԦૣά࢝ЪշЄ॥׈Яࡾ˭ƴࣥ͏ǤěڢଅѺ۽ӥܕ́Ɛхॅ[ᶾᓘӺƾïದ׻یͅߤݵঢŪ෸à৔ؗÙࡅЦMǢۍ੬ɲЉ̺Lπ׺૎הӖƺʠĉ۵խئ́ײȾ়ѷ੽؁ٕĊ΍uţɺǪ϶૱țˋաЋҫۭ ɓυؠȧǺصҿࡗهǰҳN'], - 'encodeOffsets': [[ - 68116, - 38260 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'VEN', - 'properties': { 'name': 'Venezuela' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@yȣӱĭ˜ϡYѭυӥ͆ڙδÆȌ؈ʻ̒§َਸ਼΀řІ̎ˆ̞ןל_մҵ˧ݮQ࣌ĔӖϕٞĻҼʾXɄਨ¼৖\\܉ʛ˼Їڦ×ِЯƆڧѬn͢ȣڕӱó̫˾̷ȽƽԫƉjϱɫɱّ֪Őʁ̭͍ऱ̽׿Žʏȣڛɀثņƿýϔɑ‘֝ŜՉ܆ï°ǭ׷ʅĭΣΉƏسȝNjʱٷÅҧѼʯ࠺ɟ̧̌Ȅюм…ȊʅʠǛ֒à׼Ȉ˰ƲҎ̓Ơӏĩ؁®ͻęסܢӥńઉăȧ̊ȷê‡ǬĴ̶áͺȃȂŅϮѡÈɸӮĺ׶ʔ̸͘ʌɈрդƖ'], - 'encodeOffsets': [[ - -73043, - 12059 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'VNM', - 'properties': { 'name': 'Vietnam' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@૭ܗ۫ߍȁ׍٠ࢭ޺ળނԱԞګϪ།ŕ๓۫փ१եۇ۫਷ޱ̧ՠʀ֬دӌܬ͸ࢦÔσԚප٨ļ৖ț֖ƶࡀɃצٍאՋ݌ۥ঴৓Ԋʊ̠՞ɘ͙ܺਙPϕކӭڐҊȴڢIࠈĬܒ҄К̿ސƵƃӛАͿࡎɓ'], - 'encodeOffsets': [[ - 110644, - 22070 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'VUT', - 'properties': { 'name': 'Vanuatu' }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ˣō˭ςŒɤՆӗ'], - ['@@ƌڱɥŀǩ­ťɴi٢Дʵ'] - ], - 'encodeOffsets': [ - [[ - 171874, - -16861 - ]], - [[ - 171119, - -15292 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': 'PSE', - 'properties': { 'name': 'West Bank' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@ԣŭʙЃŕ˜ɜɌŚɁĦǬ̤֔ś'], - 'encodeOffsets': [[ - 36399, - 33172 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'YEM', - 'properties': { 'name': 'Yemen' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@؉ɥNjύo˹࠷Οഇϻݩףυ±ʥºӭΑ՗lj۷©ɃµǿɛəÕŻɇеlˍœ׉¨ɓӬzҠƍʜǑتʋΊǚ¤đϨĸNJ™ξςˌđΠɞЮΊɓɬúॺnƸċ߼č͐¨ɂ˫ϺƖ׼ࢦ޸Ϛᝒ͒ڀ൳˞ח'], - 'encodeOffsets': [[ - 54384, - 17051 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ZAF', - 'properties': { 'name': 'South Africa' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@ǏŧΣяɻћӇ׻ोࢁףԋًϣ࢛͙ѓ«ŇɷԛŰеDž࣫NJԙĹΏ¬ࡿͩܓƃԱͅϡoΣ̚˳fαϒŸśŏɦLӰ˙֞˔ƴs٤ս޼х܈AF׽તДдͪɯƘΫϘÓՈǃҌÖݤіB᷌ɨűӾߙûԟȈ̏׼ĒрϒЊʨȶДЦȚΠķВɽۂ£՞ȜĐʾƨДҚäʨ͂˪֔ݮغஒؤ΂UОƛ˲Ķ҂ċД஁ɔׯƫऩî̟чƶʏÑāʓɯ̿T̃ԆҕӮĜǢώْQȿؑıۥɑϛֵщ', - '@@νʶϻǟҕ҃͡Տـ٧̜ČƺˎҴƀƜ˜ʴФ̅ʪ' - ], - 'encodeOffsets': [ - [ - 32278, - -29959 - ], - [ - 29674, - -29650 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': 'ZMB', - 'properties': { 'name': 'Zambia' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ІϏɊ܋ƝɩǙڻLjۡ˃̇ʭޭѶɓᢇۗĂׯٍřӍͯĹ̛̅ßܵۓҭխ˳o˗ĬऱĠƯÚOêͧȎկ¶ۋȑչԾ֣یžᦶშYí̂Ű̀ƧЀĪТėʺ̂q¶ʽϾrՖûˬϡڨŝԤˆȌѯ٠ş̴ΧΈҥ٠Që࣠ɱƳח͞ɧƬļࡈƬসȉψʈ՚ɤĶ଀ƚͦđΘɇͰƗՖƗӊʧ'], - 'encodeOffsets': [[ - 33546, - -9452 - ]] - } - }, - { - 'type': 'Feature', - 'id': 'ZWE', - 'properties': { 'name': 'Zimbabwe' }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ҁČ˱ĵНƜ΁VՙϞٯźʙՒC̒έĞ्ई˃ӢǛƮ͓ڤलğ˘ī˴pҮծܶ۔̜àĺ̆ӎͰَŚÆ̻۬hϴǯǺȻАÓѦˑF੟Ǐ׋—عƊʝħӵŵùɛ؅ࢫ॓'], - 'encodeOffsets': [[ - 31941, - -22785 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/xiang_gang_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [{ - 'type': 'Feature', - 'id': '8100', - 'properties': { - 'name': '香港', - 'cp': [ - 114.2784, - 22.3057 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@™@}ScTʟ@cWuJÁ–]„l¦RLj¼BĄà˜ ŽH@TOHCTDDDHDNAT@PEHDDNJLX@BABALHFF@DKHADBBLDHHFBLEJB@GDBBFBADDB@@KFAFBBJJA@BB@@FFDDADFF@FADDDBJC@AFBD@@DDD@DAA@D@DB@DHHBFJBBFEHDFAN@DGDC@DLCBDDCFDlAFBFCBEF@BC@GDAB@FD@DZJ‚X´HĐMja@Ý`p_PCZ@lLnRGSDMFK|a\\Y}­ƒ§™Mën'], - 'encodeOffsets': [[ - 117078, - 22678 - ]] - } - }], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/xin_jiang_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '6528', - 'properties': { - 'name': '巴音郭楞蒙古自治州', - 'cp': [ - 88.1653, - 39.6002 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@˜@ÈÒĊanwŎV„™Ȯ¦ͪŃĢ„ÜōȂçČéƐżLɆóĊ‚Ċaʊٱ¯²Um»ˌmÈ»V™ʠţWÑůǓ郙ôƑƒğÆīŎī@Ƿ™wô™˺LÞ¯ƨVǪуšĢ™ȘV°wĢŽôk°¯ƒ»΀@Ȃ»ĸŽǔ@΀ƒ͔ôôLɆó̐ÝɜLɲōͪƒƨóŤK@ī@IU܃ÛmȻţǩÝ˹ÛljťǓǫō@Ɲ²¯VçōKͿŁΗÇţ»ƽ™ɅƑLÓŏÅÅɱV@ÝĊU¯ÑĊĭÞLšÞŎJ±̃XȣˌōlƒUÈ¯ŎKÆƅ°™XÑܱnŗġV¯™óaUƒƧUōŁ„Ñ™±„çɲ¥lĉkğ°ƒk¥˜ƒnğţL¯ÝÝUƽĬ΁lķ°@„ō„XÿݯV»ŹLʉÞɱŤĉó°ÝJ™¦ÝKÝ£ţܙÈĉ@ƒxǩUċƑ@ky͓¹™`U²ĉVġ»ğa¯¥ť@ĉ™‚ó@ŻÛÛJƒw¯nó¯ġWƽʩķÝɛwĉĕݼȭÞķō@ó£Å΀ƑޝôȯÞ¯Ȱ™ÆōèĉXǼó@ݚnºƒĸ„ÞVƜĸȚUʶõˀĵĖɱŎÝĖVࢰӒѢ°˘nϚVˌ™ÈmɼĵŦW¤öʊõʔ@°ÈXVŽ™ènŎȁb¯ǫĉ„±Èğ`ġwōÔğ»mVVށ„Ý¥ó@™ĸķô@ššbX„ĶmV²²`Þ_˜˜ɴbͪȰ„ÞWĸÈŌmބškɲŽÈUÆ»n¼ǬVķĸźô¯°n¦ɄǜÈ'], - 'encodeOffsets': [[ - 86986, - 44534 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6532', - 'properties': { - 'name': '和田地区', - 'cp': [ - 81.167, - 36.9855 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƨ¥šèź٨ΘƑᩄbUࢯÞĕɲōĶĕöʿVʵķșUƛƒÝ„ķm¹Þ™ô@È»ĊWŎçšÅ°ȯȰÝ°óƒÆͿĉ»̽çnƒmɱĵƧºóU™™ƽ@±wóL¯°̻L±Æ¯Vƴķb¯VÇ¥ğ²Ǖbk¥ÇKlÅɱġ@у™óK@™ÇaÝXğţxĉČǫķê¯K@уaŹ„ƑKƒ¼¯Vóaónġw™óÞéU™ġbóĉğÇl¹™aUóğKW„Vůn›ÇŋƑ›ķnʇ»óxĉw™çǰÅw™°ċ„XŽ™„ób±ƒkÈÇJ—ƒm²ţx@ÒݎšŦǺn„ó¼n°ÇbUÒ±¼XĸĠłƽXmwĉºƒzÈÜmnxmx²ĖmҚbnŽƧêUºĊêÆVóĖóUĉ¼ÅĬƑ°ɆƆŻŚlłÞLš¼nĠƒ¼@ޙšÞź@ŎÞ°VšɄɴжϼِ͈Ŏ„'], - 'encodeOffsets': [[ - 81293, - 39764 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6522', - 'properties': { - 'name': '哈密地区', - 'cp': [ - 93.7793, - 42.9236 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@WnŐÆĶL̦ţºź„lxÅĸƽŚ‚Ʉ—Į˜è@ô²ÞUĔƐńV°¯ĸX¦Ɛm̐bƒ»Ɇa΀šĢ™ƐLˤ™ȘÑnƒІljĸÿn¯ĶaŎ¯ĢĕȘ¯°΂œla¯¥™ǕǔwˤӱlťО̻nŻmɃĕċţUw°WUóƨÅţķ°ýV±óÅǓéʉ¯ƽكéōǖȁÝƏůǕw˹ǫȗǓƧǕVý™é@ĬţLƧôͩ„ɱŎɛK̏ÞɅôóK@²@°ōؚ¼lŦ¯ŰóƜÛlV¼ķ¼ƒ°kȰ™Ű„ĠƒǬ™ŚÝŎmˁ`@ÇÜn„'], - 'encodeOffsets': [[ - 93387, - 44539 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6529', - 'properties': { - 'name': '阿克苏地区', - 'cp': [ - 82.9797, - 41.0229 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@VƚxˌŎÞŎƒ°n„ȂÒ°²VĊ¯VğƾˍǬƨÞÞKÈÞĊVźôɆÞĢèԐôWȲŤVÞĸʶbl‚¯ôn_VÆĸlmÞnVź_ĸ¼Ȯmǖ„šéĸW°°„ĸJ„kʠ¼Æw°¤ÈƒlxɆzČºĶI²ÆǔUš°ô@Þ¦‚ƒUnUĠ¼ŎÓĢxĠ_²ÇĊƒǬ°ŽȂamōšçUÇW@¯öʓõʉX£ĶťnɻšÇUˋmϙ¯˗ӑѡᩃaΗƒœɜ°xWƴUxɃÒˣ¤Ʌwğ„ʉōóÝŹ±°ȗ@¯„ƃ²¼', - '@@ō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘnIÇŃÛÝĊÑĠƏ' - ], - 'encodeOffsets': [ - [ - 80022, - 41294 - ], - [ - 83914, - 41474 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '6543', - 'properties': { - 'name': '阿勒泰地区', - 'cp': [ - 88.2971, - 47.0929 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ɲˣĊIÈ¥‚ÅU±Ċýkō°ƒĉƽó»ĶƽXóʵʵ™ȯƑÅȁɅ¯ĉ@ÇሗK֛@@ˤV֜ʵрƒǬVĸƑŎ@ƆϯÑóŽķ@ʇ»ķ¦έmlÈĸĊX¼WźÛÞÝѸ‚ĢČþ„ĀĊôάVö¼ĊUƨ°°èŎČUÜÆóôVôô޲êȘlˌç°`n²ǬŽĊaš™ƒÛ°±kğmm»š@°ÝɆÛÅÇVaݍVm͔ğôÝÈb‚„@„ƒ™n¯š™ÜUĢÑĊ@źīżWŤÈǖWôŁÆI²ÓƨL@ŽĊX„mmÑÆ»ȰÑkƒĶō@ý°m—¯'], - 'encodeOffsets': [[ - 92656, - 48460 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6531', - 'properties': { - 'name': '喀什地区', - 'cp': [ - 77.168, - 37.8534 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@Č@°ƒĠ„ôÓô@Ŏĉ@Ƴĸ@Ť£ĢlVôWVóřXĉŤêÞ@ƐÒĢÑlèÈV@šĠIk°ÆŘ@ÈÈĀ@ǶťÒğ@š„@ÒĉlŻ_@šƧĖÅĬōÆ@bźÞnƒƒlVœÝĬšWƼʇ„ƒÝÅ@ÇÅÈwWóĉ±ğz‚ĬČƨƂÝIĉݯbÇÑĉƒ¯ʈV°xUŰĊ¤ƪ_ôÓɚI@lȚXȮ™ŎlɴȘ՘š„¦ɲÆʈ_ɴŽźŽôÞʊŎĠƒɆxˤ£ɄÑVwXƳ¯w›ɛŹ٧™çƧ¦ōƒُ͇еϻɃɳU™Ý¯@ōÝŹš™@݄»mğ™»ÝKkŁżřɅƅƒ¯ÆīĊ»ôVôĕÅUĉéV¹ƨém™anѱĕnwmwnÇۄyĉ¹ŹlŏkĵèķmōÞġKñÔċKÅèĉzƒŽ„ômxȗÿƿI@þÅČÝKݰ@¼ÈVºš@Å̚ÆUċłn„ÝÆǕČĵJm£ÝJ¦@ĊƒxV°ƏLċ¼ǩ™@™m@ÅĢómÇÆğ¹Çš™ÆšĖÞKšx„wô¦ÆÑÆL²ÆƾŽU„ޱŚÅŻĖ@ĬŤÈñ„@ǔÇx„Èǃ', - '@@VÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁVé' - ], - 'encodeOffsets': [ - [ - 76624, - 39196 - ], - [ - 81507, - 40877 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '6542', - 'properties': { - 'name': '塔城地区', - 'cp': [ - 86.6272, - 45.8514 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': [ - '@@ήnĸ¥ʈ¼ĸ@ôϰÒ@ƅƒōUķƑǫʶпU֛܃LګK@΋ĸ@Æ£ÞġÅĠċšLV݄»™@Å»Ýnm¯š»nŻĊ@nķŃ@¯ómóÛÝǟ¯aÝóȭ¥ƒšōUmxĉbÇї@›bUº¯X¯ÆƧbVÒĉnǕw¯°ƑŽV„—ŽÇ@kx±Uƒšɱn™ŽÅKƒ„¯ƒĠǠU°ɜL@°ƒxnĬ‚ĀŋŎÇLƒŽğšϱÞέƜkôÅĀǕłƒĸĊŤUṴ̋„¦ȂϰÜɨ°x@°żǠÆƈČVĠ»ČL°ÇšbĊÑ̐óÞlĶwބɆVÞwǬxǪţȼÜLŐĶˢ@', - '@@óKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°ɜÞʊĠğŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒašƒċƨbš™Vğ—w›ġ¯@Uōa™ĉÝJğÑÆŎkŎÞĀlꃦ' - ], - 'encodeOffsets': [ - [ - 87593, - 48184 - ], - [ - 86884, - 45760 - ] - ] - } - }, - { - 'type': 'Feature', - 'id': '6523', - 'properties': { - 'name': '昌吉回族自治州', - 'cp': [ - 89.6814, - 44.4507 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@መL@ȰĊȂɆƒÆĊ£„ťôWÓɆbĢÅŎƒÆ¦ČÑW¥°ķU¯ƏŃVē±Ý@ó—ç˜ĭɃƾřÆķkwʃŤ¹ġ¥ĵKŏÅXmˍщwǓ¤Ƒ@wóōVķ£ɱšġôÛa±Òȁ„óèţIVŽƽ¼k¤ó¹ġJmx—»ÝUƒ²™@ÅÆƒĸǫŎ„ĊmŎǬ՘'], - ['@@Þô°bÞǠôÜôn@°ĸń˜Ƕkłƒ¼UޙKğȂÆÝĢŤķ@@ΌڬL܄K@ˣȂ˭lĉńW¥ĵVÆý@ŃÞēUŃȗƅ@ŹƩǕĉ»k»Ç™VğóřX™ŻKƏŽċêȁèÛŎġƒͩń'] - ], - 'encodeOffsets': [ - [[ - 90113, - 46080 - ]], - [[ - 87638, - 44579 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '6530', - 'properties': { - 'name': '克孜勒苏柯尔克孜自治州', - 'cp': [ - 74.6301, - 39.5233 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ˎǫĠƽ°UUĉ¯±ȁÑmƒ„¯Ýōˋō™wUű»ÅƑ°ƒȘ@²¯ɳʇ`ɱŃ¥՗™ɳȗōkȭšșW@kəJóÔƩ`ĉ£Vů¯wU°ʇĊ„ÈÒ°aĊÞÞJŁċƧīĠyĊ²XôÇxÈÆÆ@„ÞʈƒÅ»™XÞīU›Ƒkm„ŹÝ@aŎÅÆīƨĕ@™ż`Ċk@љƒĠ@ŦÑ@ǵÇÿ@ÇÅŗl¯ğJ@™ÇUkçġÒƏÑÝ@ţéWĊôŚUŽóXUġkţ¤ķ@@ƴōĊó@óÔğƒ¯„ċ@@Қ¤kôˣŰ͓„k»ƒKX¯ċwƧôğɐšÒôIVƙš¯UķǬķšnŽ™¼ôb°ÒȰVVÈÞ°ƒĸó¤V¼°„V°²êƒlĢ҂Uƨ¦ôȰƴĊVV¼ǖIċĊ„ÞɜéšnČW˸Ǹša„řÈw±īšçĸ¤ĊšôšwšŽĸU̦˜éǖĬ„Āô¼lÞkÒ°x°ƆÞx„šÆV²ǔ»„b°wގȘ¥°n„šŎV@°„„ʠè‚ŰȂb'], - 'encodeOffsets': [[ - 80269, - 42396 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6521', - 'properties': { - 'name': '吐鲁番地区', - 'cp': [ - 89.6375, - 42.4127 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ôK„ĉǪa²¼lÜô@ʠê°Ĭ™ôȂƒ²ÑÜbĢóɲ™ĸ¤ŎUô@xƒŽǔ£ъxˎmƒÈÛ@‚_nĕÞōšř„ǫƒğšůlȯ„¯ĸ»U»Ükôƛ°ůkť™»Ŏŗ@¯@±͓óͿ„Ǔ@ķȁ¼Ϳ@Ƒ¼¯°ólġ¯xȗUġšƑ™ǩÒƧUݰ˹Kóššx@ǸōĬÅĬƑĠ󃄚ǔêÆ°XÒʟŤUšÇ¼ˋnn¼±V²°ȂUŌݜbʟǔɅô@żǬaҎÈ'], - 'encodeOffsets': [[ - 90248, - 44371 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6540', - 'properties': { - 'name': '伊犁哈萨克自治州', - 'cp': [ - 82.5513, - 43.5498 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ĉ„ÆŘȁ̐mÞ¯ĀX°±¼@ƾ¯ƴ°ŎÝþŋ¦WÜÞbȂĉźUœÇmwVUȂóô@ȰÝ΀nÆJn™ƾ™ʠ™ŌLČóǪ¯œ¥ǔaǖšŌaôÝĢLšx„ƒÆLšɲm„™²VlwÈ@˜Uƒƒ°¯ǖxĊmUÑƨa°Å°WV¹œa›ÇɃÈm¥°¯ŹóĸķǫUm»Å¼ÇVɱ™l݃ŋnķÇÝX¯ƒͩÇɳa——Ý`±_U±ĵnWƒ™a@™ĸóšķ™¯ǓV±ÅĵJċ¹ɅykwDޝ£Åxʟ»ƒlķI¯ƒX¯ķ‚™êǕƒȭnķ»Ź`±„kÞ@Žš„Ýô@Þ°xšŤŎIƨÆUxōš¯²ǔĬǬlUŚ'], - ['@@ÞĀlꃦ¯ĸŤKޙšƒċƨbš™Vğ—w›ġ¯@ţƽJ'] - ], - 'encodeOffsets': [ - [[ - 82722, - 44337 - ]], - [[ - 86817, - 45456 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '6527', - 'properties': { - 'name': '博尔塔拉蒙古自治州', - 'cp': [ - 81.8481, - 44.6979 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ήƛϲÝĠ™„ÈKŌōÿmī„w@¯ɛKV¯ğǟ°Ƒ™wġKóÞŋbǕ™Ǔb›¦ǩ°ċôŋKʟšƽšmšÅImŽͿŽȯÞó@ȁôUVnx›ÈŹVȁĊÝabŻ£¯°l„óxȂŤĸkĊšÞyĊêĊmĢxV„ƨÈŽĠX„ŽΘÆĠÔź‚Ɇţ°LXƾŤŤb'], - 'encodeOffsets': [[ - 84555, - 46311 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6501', - 'properties': { - 'name': '乌鲁木齐市', - 'cp': [ - 87.9236, - 43.5883 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šŽWŽôŚUĠȚl¼Ċ¼ƪǖ@źȘƆ@ýlܚXVŘޙš¦V¼kĖó҃èkĊȁˮ֜@ǫ՗nōƒĉǬō„ķÆÅš@„±ÞV˜¼nwĢIôºl£ƾ»UŤJôçšó¯īʟéó@kÛ±»ǩbƒĊóLҍÇǫb@ŻɆóʠǓ›aŋÞȁVʉłĉbĉɅô'], - 'encodeOffsets': [[ - 88887, - 44146 - ]] - } - }, - { - 'type': 'Feature', - 'id': '6502', - 'properties': { - 'name': '克拉玛依市', - 'cp': [ - 85.2869, - 45.5054 - ], - 'childNum': 2 - }, - 'geometry': { - 'type': 'MultiPolygon', - 'coordinates': [ - ['@@ɜÞʊĊýVaŃm»ʵƳƑʝȗīV¥¯ĉ°Ñ@ŃÅI™»ĉmğn™ƒaݚţL°ķóKĵĀV͈ĉłƾNJÆŤƒzXl°ƒÆL²¼źŽôÈĢǔ™¦l„ô°'], - ['@@ƾIŤ@UUwōa™ĉÝJğÑÆŎkŎ'] - ], - 'encodeOffsets': [ - [[ - 87424, - 47245 - ]], - [[ - 86817, - 45456 - ]] - ] - } - }, - { - 'type': 'Feature', - 'id': '659002', - 'properties': { - 'name': '阿拉尔市', - 'cp': [ - 81.2769, - 40.6549 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nIÇŃÛÝĊÑĠƏō™гwȁ¥Ƨ°ŹÑķV™¼ÞêĊ»‚lĵšm¦ÅW@ĀôÈźaɜxÈbÞÆĶIОŘ'], - 'encodeOffsets': [[ - 83824, - 41929 - ]] - } - }, - { - 'type': 'Feature', - 'id': '659003', - 'properties': { - 'name': '图木舒克市', - 'cp': [ - 79.1345, - 39.8749 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@VéVÇ™ţ°ğUĠ¯mk¯ó¥ķIġÿƏbƒ„ĉa±ÒĸĀlKU„_m»nwšŽ„m@ÈŤ¦ĉbÞ°±Þżł̦°ĢŁ'], - 'encodeOffsets': [[ - 81496, - 40962 - ]] - } - }, - { - 'type': 'Feature', - 'id': '659004', - 'properties': { - 'name': '五家渠市', - 'cp': [ - 87.5391, - 44.3024 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„çôÑlĕU»™¥ÝšUŗ™WkÛ@þVńÝĔ@ńÅþĶUX¦Æƒ'], - 'encodeOffsets': [[ - 89674, - 45636 - ]] - } - }, - { - 'type': 'Feature', - 'id': '659001', - 'properties': { - 'name': '石河子市', - 'cp': [ - 86.0229, - 44.2914 - ], - 'childNum': 1 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lŁ—ǵm‚ĉ@mż™¼n°ÞmƼš@'], - 'encodeOffsets': [[ - 88178, - 45529 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/xi_zang_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '5424', - 'properties': { - 'name': '那曲地区', - 'cp': [ - 88.1982, - 33.3215 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ƨʔĸbܺÞwnxźbÞ°ô@„ĶŽĸIȼĊJŎÈôUšÝƒ¤ǔLސŎ@ĢŽȘblƒôL„ÇźçȤôLš¥ÞIÞ¯Ķxʊťƨ™ƿÑĉXVķŦ¯ȂKÇǕšÑ¯IUš£¯Óƿ£VĕōÞÿÆwƒƑ„£ǖxÞĕ±ÇÝaUÑȃU¯‚UōÈ݃wWŁĵ™±Ý„óĢÿ°IÞ±mÅ̝mÿ„¥°UnÑŤĢĕĶwǬŻͪwŎ¼źÇĢ„Ġĕˎٰóƨ¼Èa‚m@¥°wǔ„ǖ°ŽƨÇŤœšġƨ„ŎŃôbÈÛŎĊ°@Ġw²ÑÞJƃÆb²ƒ°êĊUނlȲƒV„ÈKĊÒĸĉ›»ÅôťUÅǃk¯@ǂÑklǁÅl™Ģ™VÑóƒ@°@„ÛĸƒV¯ƒÇĊ™n¯Uĕšƽ¯m›¯b™È@Ò°Ĭƒbĵ›¼„‚kxķýÇJk£ÝaUÑÅóĶǟkÓʉnĉƒÝ¼Ƒ„ó»Þmn£m™Č¯@ƒȮÿV¯ĸƒ™k@Ýówƒ»ğ„ġ±ǓLō„ƒšV¼Əèķĉ™è±b@Òţ„UÑóakƒl£™Ó@¯L@™ÇlUóȁš¯aġÈÅĕÝLķ¯Ė¯@WĬ—x‚ÒÈnW°ţôU²ǓÓġ²V°¯ôƒǔÝL—ċšk™š»Ý»Ýš¯ÞƒVƒwۄÝÇōͩÈĉċ»ĉm¯£W¥ţKkóġƏW@¯±kōŽÈ›b@җšÇaƒÆ¯a™„ƒkóŽÛƒÇ¦Ýa¯šÝ™ĉ@ǻۄmƒǓxķƛ¯lVĀÅÞġb™™ÇJUÅV™ĖƑW™zō»ōšƒW™n@è¯ÞóVkwƩnkźÇބҙޯƒƒýğÇUxÆÈnè±bĉÝ»ÈуwšwÞ@m»ÈV@ýÇ°ķ™xƒa„ݯXċ¥ƒÈóW@ôkxlnxVÈóĊkŤġ¼@°¯ŰƑL̻۱ŎÝV—Þ›VƒÇÞŎÇakƞ‚š@èğŎĸżšƾ°ÒšLÞôĠKȰĖźVÈÒĠ„¤™VôšŽU„ÈþťL@ôǬÞlÜÈnÇÒUŚ™@šĊƨW°™°Xƒ‚@ČÇþ„ƴĉÒķ¦@ŽĢôWĀôłUÞĢǬ™ź°¼š@ƒôV°„bUÆnzm¤ƽĸƒÈ'], - 'encodeOffsets': [[ - 88133, - 36721 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5425', - 'properties': { - 'name': '阿里地区', - 'cp': [ - 82.3645, - 32.7667 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„Çƾķn£myVŃaU¯„ó™@¯»šŹġǫVÝóŁXÿġó@ĸ¥ĊуƳÈý@ċ„Wš¯X¯ĉƧ‚™š@VřÈÑÇmkÛǫÝ@óŦKÇýVƒ™U󚏃£ğÇÑŹUȯĕğLÝó™K¯Ñ™ƽķŻĠō@灙lƝÈbƍÈ݂„œU˜ÝÞU²ō̼ůƒK°ů@¯UK±—ĊƧbōÇmçÈġƒóšÅób™™źóš¥kól™ç™KôĵUƒÅ„VŃķ¥nÅŏm¯¹Å‚™»@ÑǍóxÝkʇȤU¤ķb@ƒ¯ĊÇx¯ĸĉKm°šĀk¦l„„KnĬȀƾÛ¦WÆÅmNJĉ°ōUţ¤UšŎ°šŎKÞłÆ„Ǔ¦ƒÞ™‚™„ř¯bmUÝl¯Um™ğl¯£șwŎǫaÝnĉ̓k@¯™K™šō»ĉn™aÞ»ťnkml™ĸ¥UŚŻkÑťƒĉV™ôó°LôīĠU„ÿĉǕÅz±Kƒ¤„²ō¤¯Ė¯UÝ¥Vĵ™óÈťÝwķșÑk¤ó„™ƒWýĵĕ™„VĠƒV󍃎Ǔ„ķ°k±VU±ţ¦UǟÝřJVљ¥XUċUŎlÛƆǕÆȗƆ¯wŏÞÅ@™šĉl݁óŽƒÒ™nUôńlxólÝôێ±™™LÛôÝL@‚ġ¯X¯ÇUżóa󤛼XÒġŎóLk¦‚ôżĸĠ™¼™KġƆô¦„ÆƑÔĉ͝ImÒ°¦n°¯Þl˜ÝČn„ƒÒšKĠޚĕkƒlýƾťœšôI‚ĖŤÒnƜm¼¯lnżóÞ@Ůó¦™ôƽĖċŚn°Ý°ôÈUƜƒblÞóŽ@Žǖô°UÈƆ°X„þôŽô‚lѢšŽ²Ėm¦°š@¤™XŽĊblܚzkºƒĖmX„šŎWVšóÞn°lĠxȚa°»żLźƒ„b@ưXĠÝȚxĊĕŤaȚ‚°È@„„@èŤ¦Ü¼œW˜ÞkŽÈ@V°lŤkŎ±²¦ƐUšlj°aÈÑŎb̃ŎbÆ¥ÞIȘlššôVÈU‚™šb„kɲĶn„mnXb̼òƾĖŎ@̐ȂÑôÓĠĖʊšĊÔ'], - 'encodeOffsets': [[ - 88133, - 36721 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5423', - 'properties': { - 'name': '日喀则地区', - 'cp': [ - 86.2427, - 29.5093 - ], - 'childNum': 18 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ĶĖXþš„ôƒl£šÒĸÇÞxÇŦšôUĶÞ¦°V°ĕŎ£ƒ±„£²LÆyĊǖƒĀğVóĬ¯KóôUš‚ĊŦ„lҙżVÆķ¦kšlnŦmݼšbĊmŎ¼š™šL@°„lĊĵÞmǬbƍȚx°¤Ġknš°VÞkVn°aƒŚš‚š„Ýǔ¥ÅƒÝŁōL¯™ōV™Ť£ŎVĊ¯nljƏXÅÜ¥ǿƽmīƒLkƒl¥™ÿn¯ĊL°ķÈw°ĉ@ƑĸaV£ʈȣÞlôwȎ@Қ¼Æ°ºŐnmÆĸ¦UńƃV„ó͚LšèôkŰlĬ™¦Źôššôa™Æ„ôÇĢnèŎÈƨa˜ĉ²‚VLĢ»lţôĉUǂwkmlw@óôX„ÇȦ°WƒÞ„b‚wĸšÈ¯@þÇUn¼Ý@™x„xÇńÞ¼Ċ޲amçÅÇVwĠȄþ°„šÝƒÑÈÝlŹƪmlxôU°Ý@çšm„XŎ™Ŏ¼šyƒXšĕÆUVÈIššĢaÆÝUÿ°kĸƜǔwn„܃ȼĊ@ޚ°™Þbȥ܄ô„lšƒ°b„ÅÈb˜™@ќa‚ǯUU¯Vġš»ƒ™¯aV¯Ç°Å™mnÑŤçǬVǬ™±ĉ¯¥Vĕ¯Ýk£˜ō—w@±ġÛ°ÇVїƒ@ۘa@ČL™Ƴ™„ƒÇa¯¤ÝIĵ¼U¥ƿōķÅţŻókÝóĕ‚¥¯™U»Æ£X¯ġŃÛkݰV°ó¼¯èWôÞĖ„ȎƒŽkĀƧĀówm¥¯JŹÝJݙōVVŁaݐƑ@ƒ˜ğŭǂ¯_ƒ˜ĵ—›VnxŃón›ƒĵxÇĖĉVÝÈğV™Ò󃯐±Żĉ£ķÆÅL™Ljĉý˜ţۃ¯VƒnV¤ÝÈ@°ÅÞݤ™ŰğŁm¦ÝxóKƒ¥ɱÈUĠôêVôÛ¼ÇWÝçĵaō¦óĖƧlÇĢƑŽnŎDŽV¼¼‚ºÛ@m¦ƽ„ĉmm¯ÝKÛç¯bŏłĬ™bƒ¼ÅLmŽ„xť°ÅU™šÝXkŽÝmĉ¦W„¯K„ÒknÝaV„Ýè¯KɅńÝKnÞ¯¼'], - 'encodeOffsets': [[ - 84117, - 30927 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5426', - 'properties': { - 'name': '林芝地区', - 'cp': [ - 95.4602, - 29.1138 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚VÈłVôÈk@š°K@ŽšÔk¤l„ôbVÒŤƒ@ѲašçĸĊƐçU»„™ŎƒǔK̲Ġƒ„¼ôx@ޚlƨĬ„Ul¯ÈLV‚šÞJ„°Ünʊ„wÜbXê‚VÞ¯°ššanaU°wƼɴÑWѰmÈýÈam¥Þ£Ť@„¥ôblÞĢ„ź¥ôxÈÅmݚ™ƒĕŃV»ĉōŤōnóƒ»ÈīķIUƒĠѰġĸLÞ¯VÒÆ‚@bš¼WôÈ@V¼ôóŤKÈÑU»šwVǫżnWÒÈx™¼‚lŦ£ĊōŤx²¯@ƒÆƒU¯šçÆ@„¤°£„é°k°lšůÈó@¯ŤÇÈĉƒkkÿó¥ÝXķљÜ@ÒóŚÝ¯°ĉówÇ±¦ÅJUÒĉĀķw¯°m˝„±akxÝÅnƒ™»lуK@¯lU™¯UVѯóĊ¯mōğVǓƅƒÞƒWÝÈÛ@ƿô¯ÜġzÅþ¯ólmôʇġĊÅUͿřŏȁˋŁóÇˡōƧƒÇb™w°Ķôk¦šÒƒnUþġҙÔkǔķèó@ƒ²@ŘōńĵyƒzġaݤÅIƒ¤Ƀť¦ğѯ¤ķbóš¯ó±ŽU²°¤ČÜVnÈÆ‚„ŚŎ°ôĢ„þÆzèVĀǎĀǘƒXŹÑ¯¤ówċķk¦šłUÒġzÇ@ƒ™ÆÝx@²Þ@Ƥ„Uô¦Uš°x„U'], - 'encodeOffsets': [[ - 94737, - 30809 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5421', - 'properties': { - 'name': '昌都地区', - 'cp': [ - 97.0203, - 30.7068 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@™ŽVĖm°ĉš„ÈU°ķ„ƒÜ¯@@ô„UÒġškš‚ÆkÈlށÒ@Èl°È„VÆóŦƂœ¼‚a„ÅĢ™Ʉwnōw@¥Ŏ¦°ŹÞmVš°wnÿƒw„wÝw@¯šmÞŗ°wĠ˜ĸkÞğlĔ²¦°@„ĕĸwVóšal@nĢÇĊn°@¦šŽźUXçǔůĸVš™ÆK„ÈÝĠš²ÅĔô@lšŽÈ_m˜„zǖl„šaU¼ôwV°¯¦‚ĬÈa„l@Čǎ„¼™„nŽ˜I„xô»ɜ@ƨ¥ɆŁ„ŃǪȁkƛƨȍʊȡóĭ›@—ÈÇVƒůރĸƅmēƨť™ÅÈʉVǵ°ġVŭÅɧ°ÿnɛš£mƒķ²ŃóÑUĉ°mÇ»¯@mxUèţ°ȁÝç„ġU¯ÆÇţÈ@°Çô™Ű¯k¯lƒê¯¤ƒ£Å@™èV°Å„@„±°ţwĉŎť¤kš»ÇwXÑŻmUǬ™xV¼ÇÒţLóôU»Ç@X󙻂a@ÿŁUÑݰķK¯ĢğÒV„ĸJÇĬ„¼môţŎĊŎU¼Æ„„Ė™šnÞÇÆówʦġƒkÝóaƒ¦ţ@ݤn¦ÇbÇþ¯nXÒɳÒÅ»¯xVmb™b¯™Ý°UWéÛaƒxʉÛmƒ¯ÝI™‚UÇKk°ƒVƧīķ„U°ȭĀ@„ċ°nšm¤Ýnô¼ƒƒÞ»Ċ„ʊmlÔĵǠÆôVÒÞbl¤ÈIĸþlwƒœ»ĶŽ„a¯ī@њǰanœƾ°'], - 'encodeOffsets': [[ - 97302, - 31917 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5422', - 'properties': { - 'name': '山南地区', - 'cp': [ - 92.2083, - 28.3392 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°ÞU˰¦²ĊôÇÜLǖĀɜŽȘŰÞLĸźêÞ@UÜUŤ°ɞ¯Ü„°WŦĀmŎ„¦ĢyVљŁl¥Čĸôx°£źÒ„Wȗ‚ÿȍUÿ‚çÅyƒýóġō¯ƒřŁmÇÛUċޝ£V±²°ôô™ĸa°£ĠÒŦ¥ɄŽ„£ÆJÞ£Ģb„yĶzŎŃ@ŗ„±ô@ĸçlǓšÓĢÑVý„m™Ñl¥ĵó‚¯̻̥™ƛǫÝһÇƧĉyţ¼ҍēVĶĉŎ°ĸmšÞVÝĸ™ÒÛaċ„ó™ŹĖƒèÈÈl¼k¤ÝX@`ސŏ¼Æō¼ÇçĉKUÝÝ£ğ¤@¦ġl¯Òġĉ¯óš™móxÝÞğVšƴċK@—b@ܘ„UÒ¯ÈĢÜ@²˜x—Ŏl¤'], - 'encodeOffsets': [[ - 92363, - 29672 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5401', - 'properties': { - 'name': '拉萨市', - 'cp': [ - 91.1865, - 30.1465 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ŏ²l@°‚XĢƐlôŤLX¦°¤ĊnȼÇĊŎͪÞÈ܃„x„U°Ýޙ޼™¼lšČ™˜ŽÞK„Ǔ°óU¯Ģ±ǔÔV±ŤóX¯ÇmÑ˜wXī°@°ĕĸÞKÆĖĢǰbȂ™ÇفUƒV¯wV™ó¥ƒVÅ£Ý@@±ÞwšÅ‚„È@ƒ¥nōťÿ¯Xۃɝ°ţ¯ÛVVÝ@ŹéķÝKȗůɛǕÿÛKóÈǫšǫUţèmҚn¯Æ°ÈU‚°b„š™¼UĢV°°V'], - 'encodeOffsets': [[ - 92059, - 30696 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/yun_nan_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '5308', - 'properties': { - 'name': '普洱市', - 'cp': [ - 100.7446, - 23.4229 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@U‚ô²‚a@޲²Ķ¥œV°šĶ²bl¤kVxl‚@œ°‚ڲ@˜„„y„@ô¦¯„@xƒxVxU„VššbVšÜm¼Ŏ„„ĢmºXXWÆ@œšmŽmXU°ÅÒm¼Þx°w„@°‚XêĠ°»nV°U„l@k„@V±ôī@£‚ƒČŃÆ£„KÞý@¥‚k@y„a@—nWV„UVƒšwƒmƒ£Jƒknm@wmkn‚X„˜šX„¥mUUlUnbš¯°ŽnkƒVInlIUw°n™mk@@mlanXlanmšk@wVWUw™_@éĠašnmUaÜ£ƒmXƒ¥¯@@„óUmݯ¯ÞÝlKnxô£š»„»Ġ„J°aV„UÝÿV¥ÛbƒI@wmŽón¯yÛL@ƒWkŎmș`IWa¯K@¯mUnmaXm™bmak„¯ŽƒĢ™ÒÝm¯mV¯KÇb¯KۜWW™X@a™V™knċLUWV™kXóW@k™a@ƒób¯Uƒwmb¥UUlaU¥U£ma횃KXkƒmÝ@kwmѯk±ċbUUVakaġ¦ƒƒkL@`ƒœ™a¯xƒm™Åƒ™LUWƒ@ċnŎUV°LkL@b°°@¤š²ƒ‚šnôôk„l°kè›ÒÈzV¤È„WôôƒnV@„ƒ¦@¼Ux'], - 'encodeOffsets': [[ - 101903, - 23637 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5325', - 'properties': { - 'name': '红河哈尼族彝族自治州', - 'cp': [ - 103.0408, - 23.6041 - ], - 'childNum': 13 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@°°nÞôV@ƒ°@„¦WŽ„nÛ¤Vbmn™ğb@êš`VxUX@xš„ÆÞUnn˜WÞĸ̃šÈ@ŽÇè@zÛÜWšÅêlš²„˜KnV¯ĖĊx@bk@@„°JÆ£Èbl„nnm°nlUkVUUwVm„Kn„‚nVŽÞxVLX¥laX@@xl@VzȎVmšk@b°šÈĸmŽV¦`W„XšƒbUb‚bX¼°x@ašVVkn@lþnXUlVxŤÅ„y‚IUƒka‚IŎĊ@lXx@b„z@‚ô„ƒ¥„_V@l‚n@„ôy@al_l`nmƒÈ»@kƒmXwWK™U¯»™a™Å@wƒmUÝKUa™UUƒ™wWƒ@w²»@kƃV£—mm£VKkÑV@@»nwƒ¥™ƒ@kƙnllIVlnLVakalknJšWmnaUaVÑVVލn¥m@ƒ„¯Uÿl™@™™™VçƒaXaV¯UyVLVkš@nJlšXLlŽkxlbla²Òl@nVJVkšx„KlkUaVķÝÑU@Åm¯@±™Uó°ğńķĠmU™Ñ@ǯ¯Å¼@nml@°¯¯`@w™£@¯Çƒk@ƒ»nmċ¯U»™I™Ž¯LÇĶÛn@bó°™U›šwmޝ„™Umǯa„™ƒ™ƒI@ykIƒVUޝbƒIğŽƒ¼™¼ó¤mwkLÝÞ'], - 'encodeOffsets': [[ - 104243, - 23429 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5326', - 'properties': { - 'name': '文山壮族苗族自治州', - 'cp': [ - 104.8865, - 23.5712 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@šwô„š@²¯maUmôUÆxš@Xš˜bÞInlVUVw„JVaU„K°¥„xmÞXnlKlnna°@ĊČ„ÆwUmnkl@°ƒƒ£nyn@VV@Vak™ƒ@@kÞ݄bmx°Vnw°klÞInĖÞVlKl™@Xa°„„KlV„U@šJnx‚U@ÈĢbUKlm@ak_‚wšanWUk°ƒl»„k@Wk@lwU_ƒ@UalóU¥ƒÇnƒ™kJWƒ@mVXx±bƒK@nV±a@™Åa™£ÝK²ƒWknamKknǏk¯ƒaV™™V¯ĀƒU™„™Ò¥ƒI@mm¯¯xōW@@`k@ó»ƒUU¯lm£ÅWlĵ„w@mmwÅmWU@y±U—xmwU„¯Uƒ¥Ý¥¯£m@kŽÇVUV°VbklƒL™wUlUIm‚k@±ÑkbkalwkWKk™mI™@UlUKVzU°Wb„bU蚚@škšVƒ°@„n‚m¦ÝŽUUUÒVbmbXn™‚mIkllbUbmKUkkJmkŚ@lš„„¦mx@¼U@lÒULn¤˜nU¤Å„@l±¼@xX„šxV„šVVbÞLVŽ„n@xšÆšb°¼šV'], - 'encodeOffsets': [[ - 106504, - 25037 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5303', - 'properties': { - 'name': '曲靖市', - 'cp': [ - 103.9417, - 25.7025 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ȦlKÞĕUV¯Um¯„ÇVUnVVUƒĉn™ĊÇƾLn°°È„JÆw„@lbÞa„¦V„XJ°¯W¯„aÞJVkUša„ƒ@lKnÅmWUk¯a¯»@m±@уkkbWWX_WÓU»_l™kÑm@U»m@l@IWċn¯l@VanV„UV™UVwVx„KȄVmUē‚@„ƒn@VÝÆL„w„VVwnVlmkUVÑǰka@k™ÿÝaÞUl£™›—ċĕX±±ĉƒa@UnVnalónk@wl™UVmkÝJ—aW™™@ÅwóVVnnb±°™@óƒ™xXLWx„n@lǼn„m‚k_k`@bózƒ‚m@kU@ƒ`„¦óƒ@nWš@ÜÅXWw@ƒyƒb¦@ÒlnUb@x™lܐk‚@²Ç@Uƒ¯bmy@kV@bƒb„¦U`lLVx@b—Ll¼Þ¤@„°VVބU@WސUb›J@nnš@lnnm„šxUŽƒUUbƒK@šÇwklkUƒVWakn@ŽlbU@@„ULVxkKUn‚°¯Ò@¼™„kmƒ¦m@kl™Ȱ@lU„l¦„@Vl°wšnnþĊUÆbUx™b„ŽV„šĖU°„a‚nnašV„al@@b'], - 'encodeOffsets': [[ - 106099, - 27653 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5323', - 'properties': { - 'name': '楚雄彝族自治州', - 'cp': [ - 101.6016, - 25.3619 - ], - 'childNum': 10 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@mҁXU`Wnšš™@Xl±¦š„Uxnbl°knmKUx„„ƒxVôUx°¼ôÒȄ°JlnÞKĠœW°¦ƒ„Vx²JVwš_°¥@UV@@wnymknK¯I@‚™²b°ƒš£V¥šwU‚V„¤nLškÆJÈwôô°„l»Č¯ƒġVƒUU@@ƒ°ƒƒÝXl@U»°Å„@U„¯@w±¯VmUUlm@m™„ÑnIVyUwmak£Vwm±—@Çw@nƒ@UxkwlÇnL‚mkř@±Žk™ka@kóJV¯Ç»U£lw¯™Xalbl¥¯UXƒ@a˜™UaÈL@ÇVIVƒkaU¯mm™akLWkUJ¯Umxnšƒ@ƒkUx¯xƒ„mWÅīÝkkbƒŤƒbkxWmXwWk¯wƒKkƒƒLŤċń„@¤óĬU²ƒ@@lƒk¯VmU¯¼@xV@k°l°kbUš°nm‚VnUš@°„š„UVèރÆbUÒÞnU¦›V—¼lô„@Vl'], - 'encodeOffsets': [[ - 103433, - 26196 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5329', - 'properties': { - 'name': '大理白族自治州', - 'cp': [ - 99.9536, - 25.6805 - ], - 'childNum': 12 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lbœKVIUa˜@²m@b™xôÒÜxXLmbnšl@š„„K°šš¼k„Uô‚xôlV¦nJ„Uš™Ænšm„@šx„ÆwšbXšÆôô„LUVwôK@wlmšaVwœ@WknmƒIUmlnJla@_™@kÝmKUašÑm¯Xw°aUaVl»²JV„bÆJkôͲVVk„mšbVwUó„wƒƒVwnLlmk¯maVw™ƒ²¥Wkš@™™XmV_‚WnÑUkƒ@k󘻜UV¥ÝmVÑÅa݄UçƒVƒ™@¯V™Umn¯mV™lak¯l¯U@@wğŽW鯁ƒ@¯xÝw¯š¯Jċa¯U¥mLU¤„bÞȤƒbÇLWUwmIUVW¼kbš`U„Vb¯L±ĊÛkƒÿÝKkwƒKţê™UĉþƒÈƒV¯ÞVbUްKVšk²Ý‚mI—ƒmV@kƒm™UkšVxm„¯KXÈķJU¦V°ULWxšL@môƒšb@bkx±LnVUŽVLnkÜWnwlLŃmW@kkJU_ƒV„šWĊ„Þ'], - 'encodeOffsets': [[ - 101408, - 26770 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5309', - 'properties': { - 'name': '临沧市', - 'cp': [ - 99.613, - 24.0546 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@‚xĢ„l`²X°ŽV„šx@x°Þ°KXašğUњW‚bnIl`X²°b„xl°„„šV@xVxk¦mb„l@xšXV‚ÆzX¤™Æ˜k°„kx@lźêlaX»VUnJVx‚XÈK„aÝȣƒaV£nKV¦°‚Čb°I°™n»ÆÑV¯nWn›™@ÿXÅWWn¹ƒġōƒn»‚ÛU™™aU™VƒUw„w@w°ƒó¥ƒ@ƒz—ƒ±@ř›¯@kUwlk£±aĵޝ™›Uĵ¦±±@bó±VÝ@ó¤ƒw¯I@mńóm±XޝIólƒK@š°Ullb™zkKlln@@ԙºƒUmVk²ôҙx™ŎUVóLƒb„ŽmÈnŽmbnl‚a„x@z„@Ǝ„¦kš'], - 'encodeOffsets': [[ - 101251, - 24734 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5334', - 'properties': { - 'name': '迪庆藏族自治州', - 'cp': [ - 99.4592, - 27.9327 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@W™Xwƒ™@akk@y›—k°īX¥›Uóķ¯w@n»UaVaUۃ¯ƒmV¼k‚™Þċô@n¯xÛÒm„V‚¯Ô@xƒ‚@šk™wm™Åa@ƒUa‚݁¯VŃyV„a@ÿšn»ÝVmank™mmÞÅôƒ@n£±›ğzÇmU¦™Vm„nÜmbn@°nV@xmzÅ@mºV¦k°ln¤š¼õô„n@xkƃIUxUš@Ťƒ¦VšmVkmkXW¤XzVx@ƚx™¼ƒÞ¯b@lVš™ĸގV„m¼XŽm¦V„ŽÞ@Ǝš¹Vón¥ÆKn„‚KX¯x@èĊȱłXšaÆxnlV@UÛlȻkğV¥„m²ljmÅÞĕƒƛm°„ÆmX¤mznƃŽV¦ÞVVb°bnÞWbnްl@V„È@„‚VĵĊ±@ó„InxÆw„¥@£Þ›W¯ĸ£UƒUK‚ƒk±akkkbmWmÈķ„aÆÇU—ȃÆW@wmknmU¯'], - 'encodeOffsets': [[ - 102702, - 28401 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5306', - 'properties': { - 'name': '昭通市', - 'cp': [ - 104.0955, - 27.6031 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@mƒnK@wmƒUř¥mšóXǓŏmX@Ž—VƒmL@xţ™nk@mlUšŻÒğŋ@ƒL@mmLkm™š@b™XŎW¼ka¯lÇŹ¯aÇ»™ÝÝ_@m„@@a™@UklwUm@ak@ƒb™UmbmƒbV¯™ĕUƒƒšaVwÅaĉVmý™m¯xUkƒ@k¥VƒUXƒ¤VÈm`@„—ńÇÜ@Ākn‚ĔkƞÆĠ„™Þš‚U„VôƆÞI@ŽUxƦn„l@ĊĊnxUÒ°¦Vb¯WUnWށIml@xn„Ubô¤‚¼ÈxlI„»šKVš„@ÈԂJkšU˱ÆVb@nœ„VÜVUVƒšL„wĠl„kn„Ġ@nx°¥Æ„²mUwƒ@m™mÅUl¯UњÑUm„Lll„Il±š@VkwƒW@w°@U»™kUóI°ƒ„»ĢтL„™š`nUĠ²lm„bôV@n„JUxƦX¦l@š‚ŎUƒV„@lV„KVřV£UaÞU™ƒnW@¯VU@ó™'], - 'encodeOffsets': [[ - 107787, - 28244 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5301', - 'properties': { - 'name': '昆明市', - 'cp': [ - 102.9199, - 25.4663 - ], - 'childNum': 11 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@n@Vk‚VUn²°@xƒ°Vƒ@¯ÆV¼k@WŽ„Þ¯„@„@‚VVU„„Ģċ°k¼V„Ċxœ¤Ōœx°mVkƒÑȏšL‚°„x°Xœ°VmĊLVxU˰bX¦VW@kšȯlkn@„¥lnšƒ@»°Ñ¯VmlLUwVK@ƒV@ka@lmXb„UlVlkÈx@™„LVa„VV™wnƒmm@km™@mœIVaݏ@XƒVUݯU@ƒÝ£k»˜K@aUwkKV_ƒ¥„a@alU@nz°aV„È@@±lÛšk@wVakm@т¥„a„z‚@XxÆW@ÛX™@m@ƒy@aWw@kōĉJlbV„JƒzţÆUwVkmWkým@Ul™U@b¯wVºƒU™VUêšĠƒXUaUbVĊUŽWXUmkK™™WnUUU™V™ƒƒVV™Ý@kk±‚™¯ƒƒLkƒš±WkXlVklƒ@ƒwXbmLƒ›VUIVmk@Ubma@kkaVKUƒ™kmlXLWn™J¯ÒĊ°@zkºlLUŤn@@n›ô@lƁnmKkÈlxVw„@@mÈx˜@n²Uxl¤nbVxUzmJƒÒnš'], - 'encodeOffsets': [[ - 104828, - 25999 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5307', - 'properties': { - 'name': '丽江市', - 'cp': [ - 100.448, - 26.955 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l@™„@w°ÓUnƒÜѰw@mČóšÝlU»n°„„VÜUbVbm¼@ްxôĸœVW¦¯Ĭlœ˜@zll@b„šWxXš‚a„X@ÆĠÆaXwl@XaƦn¼˜Jn@mnKW¯È»V¯°ak™VanXVwl@VyUĕVU„bÈīlaUk°ƒk¯lƒ²V˜Ukƛô@ƒ„I@mVwĊa„™ƒVaka„™ÆbUŽVLšaXIWKUw™ƒ„aWÑÅKUaVk°ƒ@Uw„ƒ¯¥›XğÝLkm¯Iǃóѯ»™aƒnUl±UĵÿlóÅIƒaU‚±Ik¼UŽVb¯bWxn°™ÒVbnLlޚ@@`kbmIkŽVn„JmnXl›@Ux™bkn@xóLUxVŽƒKóóŐW™™aÅxƒŽ™wƒ@™nÅm™šƒV™„ƒôX„ƒLlVU¤ƒb¦m¼™Ž@ƒbU‚„zUƂ°ÞVb@„Æbnššx'], - 'encodeOffsets': [[ - 101937, - 28227 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5328', - 'properties': { - 'name': '西双版纳傣族自治州', - 'cp': [ - 100.8984, - 21.8628 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l²°ŽnÒlxÞ@„nWl„Lĸ™nbV¤V¦kbVV‚¦na„x°Vôa@„šb@lôXlWUšVXČKlmššU@bšWXXܛ°LÈa°LnU°‚ÞnšÑ„ġ°lƒnbšaƒ¯¯KWƒœó@kmK@UšĉV@k°„VV¹„a@y‚_ċl_nÓlL@anI@ƒóWl£VU—ƒl™kĕl™šKVw„U@™kVƒam¯ÅL@bƒ‚Ýk@Vn„UbÇbÝwÅ@ċ¥¯lk‚¼ÅŽ™Ò°b@¦nlUn@ŽÇV„mƁbWôU@ÝÅōm™¯ƒaU™™mk™WWw—@±ƒ™n¯U™è™a™Lƒ¯mƒL™škwƒl@°mnÈÒ¯šów@V™xƒĀU¤°Įƒ°Xl'], - 'encodeOffsets': [[ - 102376, - 22579 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5305', - 'properties': { - 'name': '保山市', - 'cp': [ - 99.0637, - 24.9884 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@X°„Il‚@¦ƒŽÈ¼m¼ÞaÞÅl„ÈxV¼šlVôÈÆlLޣȺlkUƒ‚ƒUw„¯UĕVwĊ@n¦mlnVĸIWǰLnƒUwl™šV„n@lnU˜„nJށl±U™¯LVUa°Ý„U„ÇĊýšVŤé„LlxÞL„ĀÜl²ĉ°KUaVƒ™_Źé@klw¯ƒlÅ—šW£ÅyU™W@wƒknal¥Uw@w™Uƒƒk¯ƒw¯aW±k_mJa™XVҙĠWb¯L¯Ý@w™wUƒ¯±Wk_ġƒwƒwōKmb@¤„bk°l˃ô„UJƒšVnÅlťUš¯°VbnbWxX„m„ÞššWUĀ™L™yWzÛKmbUxVKkn݃kŽVšĀċ¤Ux„@ޝŽm@ƒ¦'], - 'encodeOffsets': [[ - 100440, - 25943 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5304', - 'properties': { - 'name': '玉溪市', - 'cp': [ - 101.9312, - 23.8898 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l„„L°xXlWxXnlw„a„ţlaÞlÆĬnX„ƒ°wVw„l„@m™nw°VVIXllKšbnnV°lbU„UJ@ÈÇKVb—š@bW„°Vk¦kaWb°škxV¤È¼U°ôI@llblš²š@‚@œó@mm@VţkKl¹@yĉ¯°ÑšIXmWKnkšlV„ULlb@lnbVal@UnVJœU‚„nKWa„x„@lkkUlW²X„™‚l„K°„šl²@lšÞUŽ„U‚„UšVšVVXmššlLVnXWVUĉVaVb„W™ğVéšU„VU¹W»aVa„aW™Xƒ‚_U¥nÇ흙@a™lUnǍUyk@@wW@kbW¦UKÝwUmmƒƒLUnVxUVVlk¯mmnƒmkÇaŤ¯I@ƒl@@aĉw°ĕmU—L±ƒk™ÆéX™ÜÛ@yÈç@™Çġ„Ýķ—XmmÝVՙƒ™lmnkbmWkb@nl@nŽmš¯VxkJmUJ„ml¯™°makVVnVƒ¦™Wƒ—Wmnl@xmn„l‚I„¤„n™xU„ƒVUŽmX@˜ƒb@zl@¦Ýþ'], - 'encodeOffsets': [[ - 103703, - 24874 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5333', - 'properties': { - 'name': '怒江傈僳族自治州', - 'cp': [ - 99.1516, - 26.5594 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@WyX£lWlnnUU™„¥@ţV™Vw„JlÅ@wƒmö󙻂£kml¯U¥n¹Æ@ny@wmU@¯mnamÛnƒšUV¥ÈnĠy²œm¤„@ÆónݚnmlnbÞU‚¥„aV£kU„KWƒ„óšƒmIU¥ókwVólƒ™»¯™ƒL™ƒk@m™naWKÛwóњw@a±n—@VbUJ›LkaƒÝXĉƒ™„UV`lI@lnXÆƑkKmxÛXmlUKVmU²Klw@a™aó„@n™KXwVKU¯V¥mUnkm¥ĉ@UxV˃°Vx„V„klmޙkKWĀkVWšnl°Lnm@°ŽUxlV@nk¦™JVȰŽVÒ@nX°@ÆlUômlnôƒ²nxmłnVV„¯x@Èm°XblVUšl°@xkXU¤WXX‚W„Xƃ„mkÅJmށw±bƒxUīkKmÅVUĖÝèV„kx@š›lX„lnk¤ƒLkŽ‚Ėk¦‚xUššL°‚¯Ė@LnK@b°xVI„¥Ua°Ñ@»nm@¹‚KŎÞÈWln²n'], - 'encodeOffsets': [[ - 101071, - 28891 - ]] - } - }, - { - 'type': 'Feature', - 'id': '5331', - 'properties': { - 'name': '德宏傣族景颇族自治州', - 'cp': [ - 98.1299, - 24.5874 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„¥n@°@ƒVwČ£™ÿUlÞ„lmULVwnaÜLXyšzšKVÿ™XݙnƒWƒXwmaUa°¯V™ŦŽÆkUm„™VIƒ„ókĕl¯ƒa@£nama™@¯m¯œó@óyţbġkÅm±ÛammVkƒLwU`Wk@VƒkUmŃlUUKmbkkUVUwƒ¦óް¼šbn°ô¦lºƒz@xšŽ¯„™@UްnƒšU¤ţU„°VƆ@ÈmlnzÞl°¦Æa„xUxƒLkxWƒn@‚š²ŰšW„™‚@°ÈXl°Llx'], - 'encodeOffsets': [[ - 100440, - 25943 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/util/mapData/geoJson/zhe_jiang_geo', [], function () { - return { - 'type': 'FeatureCollection', - 'features': [ - { - 'type': 'Feature', - 'id': '3311', - 'properties': { - 'name': '丽水市', - 'cp': [ - 119.5642, - 28.1854 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@V‚bVl@Xn‚UXƒKVŽ@¦nxlUXV‚n„KVmnL‚UV@bn¤lLXK˜²„`nnlJXIVJ‚I„Vnn°KnnVll@VLXWV@UkVaVK„zV@„ƒšVVaUK@U»VUl@@WnUUƒ@wVLn@Vwl@XW°LVbn@VU‚@X„l`@XnKVbkl@XVJlUnlV„„xlL@lnXl„@VšUnV°°„@a„UVLXblWVXn@VVUV@Lš¤VLV„U‚VbnalLUUVX_laVa„WVzXKV@@a@KUmImmXama@kU@yVIUK‚aVa@kXK@aWU@VIUmW@kkVm„Uš@VwUa@K@k@Uƒ`@kUKVk@UV@VaUm²Vy@klUUWUkVmUa@_ƒKVaXa›XmƒU@mUlWkaUXƒ@mmkL@w™JƒnVVÅbWKXa™@@I@aƒJUUÇ@V„UL™W@akLmb@K@a™XXw@mƒVmUVkUy@£@aU@@VkUWm@kUKƒXUWU_mW@wkkmJUUkLWWUXƒW@IkJ@k@mW_kӃ_Ul™Lƒm@I@aUa¯m@kƒa¯LUJƒ@mVVxUb™a@LUKkXƒbm@Uak@@a@Um`ƒIUbUJ@nUVW@@LnVV@lšUbVlUX@`š@blXklW„Ušm„Xlm¦U@@V¯bml@š@nUb@llnn@VbX@lV@ŽUVULmU@JVn„bVbkb™VWxU@@nUVk@'], - 'encodeOffsets': [[ - 121546, - 28992 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3301', - 'properties': { - 'name': '杭州市', - 'cp': [ - 119.5313, - 29.8773 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@X@l„°KXXlW„b@²„`šššb‚I„šX`l@„@bWl@n@VnLUV@V„@°¦@šl@XVlU@š@xVbUb@Vkb@‚@XVJVz™J@Lޚ@VmLUxUJ@LU„Vx‚b„xXUl@VaÈw„b‚aÞa@Vl@XUVx@V@V„LlbnV„al@lb„Vnn‚LnKnL@VlbVJXalIšb@KUU@mVInJ˜„U„Vl@xUšVLnUš@UÞaV@lkV@UanK„L@UlKVUnbÆmn@@nUlVnVJl@@UXU„L@WVIVJVxVLXV@IÜKnbn@V¥V@@I@ƒƒ„y°b@UUwnk°ÆƨVlUšçXm›£aƒÇ™IkVƒ@WV@@aWIUWUIkb@WW@UnƒK@UU@kaWVkƒVIVVnU@UWVUV@VmVkKkWIkVWaULU`UImJUImm—U@ƒƒwmwUV™IUWVkUamaU@mV—kƒb@KVU@aVU@anKULVJ‚U@kÛU™JUV›kkƒVakU@ƒaVwkW@UWkXmWaULUaUK@XƒJUUmƒVU@UVƒUkJ@ImwmKU@k„@lU„W@@akKm„kamIkWl_UwVm@UkaVUUaƒ@UamakbWlkL@aUalU@mkL@U@U™lmK@XkKm@Ýakb@xƒnXbƒ`ƒnUUU@›™U@™wU@@ƒmKkkƒV¯U@lULUbVbUb@V‚a@L™ºÝb@bLmK™x@VUL@bk@mxULWl'], - 'encodeOffsets': [[ - 121185, - 30184 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3303', - 'properties': { - 'name': '温州市', - 'cp': [ - 120.498, - 27.8119 - ], - 'childNum': 9 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@ll@xnXV`VX„WVL@lXnlV@UV@@b@¤VzUlnV„U@nWxšW@b@LnalK@bšXVKUƒÈ@VV„I@b@Jš@WbXLÆaUU„mšI@xlKnn„@VWlbkXV‚@n„VWnœ‚WbUb„L@`VbUnVlVXkV@lUz±‚VnUbU@@VUlVL@l„_@V@l@LVbV@XLV`VÈlxn@lU@aœaVV‚k„@XJ@nl@@LU`°LVb„L°a@a„UVy@anI@a„a‚nV@²wÜJX@VšVV°k„na@WVk„aWwU@m@™ƒkƒaUĕ™ÝšÝŤnÈa„aóI›»@±X™WkUķ@kV±kw™ƒUkWw„™UƒÝ»ÛkɳlImaUaWóXÿǬk‚UnWVmmk™KţnŏÞğl™„UlUx@XWb„V@JkXƒ°mb@VULVxUVk@@LWWk@WIkšƒUkJmUkVmI@yƒ@Ua™kLm‚U@mUUUkaVk™@mK@UlUU@UmKmbUUUJ@n@KVLUL@VkJWXX`mnULWlkL@JVLVb@°kxkU@LVŽ™V@„VLV`UL@VUX'], - 'encodeOffsets': [[ - 122502, - 28334 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3302', - 'properties': { - 'name': '宁波市', - 'cp': [ - 121.5967, - 29.6466 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@Ċ¦ĸ°‚nXÞVšKškƨƑźÿ°»n„@wô¥ÜbœU°ÆXÞWóçĉݱIUƒÈ¥@U°wÆ»²mm_@aXƒVKÞVlk@akk›̅@£X»VwƏXWa¯aȗb™KƽۃĊ™xƒLóŽk@ƒƒƒ@¯nƒKUL@xkL›ÑkWULUUmJUXVŽU@mŽUX¯@V`mbXbV@@nn¤WXšx@škJ@nVVUVl²UbÝVUVk@Wx@V@„ƒVXzmlaƒL@VlLU`„XUVVVUnl@VbnJlnUVVnƒlUKkbmnn„VxlJnxmbU@UL@KUV™X@xmb@lk@mnVVUš™è'], - 'encodeOffsets': [[ - 123784, - 30977 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3309', - 'properties': { - 'name': '舟山市', - 'cp': [ - 122.2559, - 30.2234 - ], - 'childNum': 3 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@l΢ƒʠþÆVĢLĊƒǬXĊ܄XôV„ÑÆw„ƒlšƏÈóVĭVǓ@ƒĉwɛkmK@ĉXīWaĉUĵÝmƒ¯ĉƒwĉ±±nż¯x@VǦV„²JĊÞôèÝXÅW¯›VÛaó¦@xƒŽmޝ¼ŹĀ'], - 'encodeOffsets': [[ - 124437, - 30983 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3310', - 'properties': { - 'name': '台州市', - 'cp': [ - 121.1353, - 28.6688 - ], - 'childNum': 7 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@lV„IVWVz@bXJl@Xal@°„nLll@nVxnV„K@UJVbƒ¦°„k`UIWJXnƚ@bUJ„Xl@lb„Wn@UzVV@bVVšmVnnJVXna‚bšKUKnUVVUnVLlKVLXa„Jm£@mU@WanaU_°@VWnV@UVWnIVVVKlXœÒlK@wVK„L°m„@„„l@ô„Kšw„ĉƾůUƒl£@»UƒVk„m@ƅUƒƒaÛIŏmUk@m„w@a™£ƒWk@ţšƒIm±@ankôUlaU™Uw¯ƒōaƒbÇbţm™ÞšÞVĖ„b„l@š@n‚VXxƒbUl@XmbƒŽ¯lUUU™W@ÛI±xU@mƒb@bmJ@bUzƒV@b¯bƒKUa¯KV_@Kk@@mWIƒ@lUU›b@bkVm@kwUÇU_WKU@Ux™@ƒVUnllX@Vn‚J@UXV@bWL@lUbbVLUJ@z‚V@lnbWbnnnJVŽ@L'], - 'encodeOffsets': [[ - 123312, - 29526 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3307', - 'properties': { - 'name': '金华市', - 'cp': [ - 120.0037, - 29.1028 - ], - 'childNum': 8 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@nbVb„@VbUVlb@VUnVxk`lXnJlbnƒlL@bX@Vƒ@klƒV@nLnx@JlI„V‚U@VUVn„VV„I@WVLVbVKXbWnXl@VlXUx„b@ŽlVUbl„œlVUšIÜVnalKX@@bV@@aUUlUƒwUw„@naWW„UVaUUšaVb„LlxXJVk°ƒUƒlkU¥@k„a@LVlXLVlšVWznVn@lxšJl_@WX_@mVa„a@alU@kVVna„KVLlK„b@UUaVašbnUWmXU@k@yVI@ařWmXIVJl_¯ƒ„¥UaVI@ƒLmUUw@mkkmK¯ƒk@Wbk@WI@aUyUXƒJkU@bU@WLUyƒXUbkbW`UVVkKmbUaVUƒUK™£@KVUUUm@UWkXWaUKƒV@b¯ƒ¯mU™V@UkƒmW@kkKƒwUƒmkkVUI@WlkUamL@Wk_Wƒ@UVm@Ua¯KWXk@Uxm@UK@xV„mV@Xk@UVV¼@‚VLUb™Uƒ„U@ƒyULUbVlU@@XlVUVVbƒU@lXXVW@XUVl@@VUVƒÈn@VVU„@lVa@„U„mL@`X@`WL@VUX@lUL@xlx'], - 'encodeOffsets': [[ - 122119, - 29948 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3308', - 'properties': { - 'name': '衢州市', - 'cp': [ - 118.6853, - 28.8666 - ], - 'childNum': 5 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@XkVKnwl@@aVK@UšwnL‚K@aÞaš¹@Kb@UVaUaVaVK@k°V„UllnL@„V@šxV@œšV@VV„m„_Wa„m@wlaÞbn@lL@WnLšk@V@VlK@nkVVb@blKXklakw@wVK@kVW@UXK@_‚W@_nKVƒ@ƒUb@kVƒUUm@„ÇVU@Uk@VU@WUXWW@k„VUaVUkU@WWXUKk@Ukmm¯LmmƒUJUIWJkImmƒ_—±WLkKm£@aVUmKUnƒLmWUkVmw@¥U„LVWm@WUka@UmmLmm@@bUX™@@WUIm@UVUK@UVUUU™VVJmb@b„Xn‚mVƒ¼nnn¦mJUVƒL„V@VW@UzUlVnUbl`UnVl@XU@kl@bmÈUx™Vk@@J@„ƒ¼W@ÅaVVnzmVƒ„@WJk@kWJ@ƒlXbWbXxmVnšlLXb@°lKVXnWšbWV„„X„mbV@Xl‚bšI@Kn@@x@šVLlm'], - 'encodeOffsets': [[ - 121185, - 30184 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3306', - 'properties': { - 'name': '绍兴市', - 'cp': [ - 120.564, - 29.7565 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@„x@„˜VnnVJnIVJV_VKXblUXJlŽlLUŽUnU@UVVX@ŽmVUUUJl„XUlbV@@V„LVmX@@XlaVJVXXJ@b‚@XU„@lUšJ„È‚bœ¤Ō„JšçV™UUnml@@kna@wšWVU@LVKV@namwkIUwmƒnmlaVL„kUmVUkmmIUak@VmUUVUƒWV_kK@U„K‚bnkWy„U@ƒ@UXwl@VUÞUVak±VUUU@mlI@™™wXWƒIWbUKkLUKVmUUmVVL™LambUWmIUm™nUU@aUUVym@ƒXkak@ƒW@z@lWVXnmV™aUbVb@VƒakLUKƒLmbUU@lkV@bƒbUb@nW`@Xk`™Ikwm@mUXy™UUkWKUk@Kƒb@lV¦klV„¯„UlWIkwƒKUa™bVVUbƒVXXmbƒ@Vx„xkVVV@bU@@aW@kLmb@lVUIVKmL@bUV@bUV@L„a˜lnUV@nbVbUlVXšJVUnx'], - 'encodeOffsets': [[ - 122997, - 30561 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3304', - 'properties': { - 'name': '嘉兴市', - 'cp': [ - 120.9155, - 30.6354 - ], - 'childNum': 6 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@@blIX@@VÜVUnn@l‚k„lKnI°Þl`²LVKVbnbVaVLUVn@W¦@VkVVb„@VI„`@blLnL‚aX@„VVb@U‚@XlVa„@@kVaUKV»U_lWXUƒƒ@alb„k@VllnLVKn@@UVIUw@y°IVVXU@VV@lw„m@wVkƾaœJ‚LkΡƧƒ™l™LÝUmW¯ķÿĉ¥ƒIŋŽWn™èkVƧU¯ÅmlVx@V¯aƒz„Ž@„@JU@U¦m@@šnVmn@V„LV‚'], - 'encodeOffsets': [[ - 123233, - 31382 - ]] - } - }, - { - 'type': 'Feature', - 'id': '3305', - 'properties': { - 'name': '湖州市', - 'cp': [ - 119.8608, - 30.7782 - ], - 'childNum': 4 - }, - 'geometry': { - 'type': 'Polygon', - 'coordinates': ['@@kLlƒkm@VmÛU@UW@kJ@aUƒK@UnmmU@™maÛL@JWUUKUwUIUJ@XƒKWV@Vk@UIUmVk@mm@ÅnmaUVkL@VƒKmLVbU@klU@ÝbV™@mVUKV™@wUkVƒ—ƒmIUJ@nVV@L™akJWbUIka@UmKmLKmmƒUUVk@@nmLX`WXUV@Ž@nUl™kmlU@Ub„„ƒxVVšIlV„Žšnn„@@n˜„UҚ@„°n@@xmb@„VbnV@šš„@b@`@L@L@x@blVklVbnnV@‚aXb°VlU@W„b°U„LXWVUV™„™VwÈwÜ»ĸaĠnUVw²X@V@lVU@wlaUUVm@knUV›'], - 'encodeOffsets': [[ - 123379, - 31500 - ]] - } - } - ], - 'UTF8Encoding': true - }; -});define('echarts/chart/gauge', [ - 'require', - './base', - '../util/shape/GaugePointer', - 'zrender/shape/Text', - 'zrender/shape/Line', - 'zrender/shape/Rectangle', - 'zrender/shape/Circle', - 'zrender/shape/Sector', - '../config', - '../util/ecData', - '../util/accMath', - 'zrender/tool/util', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var GaugePointerShape = require('../util/shape/GaugePointer'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var RectangleShape = require('zrender/shape/Rectangle'); - var CircleShape = require('zrender/shape/Circle'); - var SectorShape = require('zrender/shape/Sector'); - var ecConfig = require('../config'); - ecConfig.gauge = { - zlevel: 0, - z: 2, - center: [ - '50%', - '50%' - ], - clickable: true, - legendHoverLink: true, - radius: '75%', - startAngle: 225, - endAngle: -45, - min: 0, - max: 100, - splitNumber: 10, - axisLine: { - show: true, - lineStyle: { - color: [ - [ - 0.2, - '#228b22' - ], - [ - 0.8, - '#48b' - ], - [ - 1, - '#ff4500' - ] - ], - width: 30 - } - }, - axisTick: { - show: true, - splitNumber: 5, - length: 8, - lineStyle: { - color: '#eee', - width: 1, - type: 'solid' - } - }, - axisLabel: { - show: true, - textStyle: { color: 'auto' } - }, - splitLine: { - show: true, - length: 30, - lineStyle: { - color: '#eee', - width: 2, - type: 'solid' - } - }, - pointer: { - show: true, - length: '80%', - width: 8, - color: 'auto' - }, - title: { - show: true, - offsetCenter: [ - 0, - '-40%' - ], - textStyle: { - color: '#333', - fontSize: 15 - } - }, - detail: { - show: true, - backgroundColor: 'rgba(0,0,0,0)', - borderWidth: 0, - borderColor: '#ccc', - width: 100, - height: 40, - offsetCenter: [ - 0, - '40%' - ], - textStyle: { - color: 'auto', - fontSize: 30 - } - } - }; - var ecData = require('../util/ecData'); - var accMath = require('../util/accMath'); - var zrUtil = require('zrender/tool/util'); - function Gauge(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Gauge.prototype = { - type: ecConfig.CHART_TYPE_GAUGE, - _buildShape: function () { - var series = this.series; - this._paramsMap = {}; - this.selectedMap = {}; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === ecConfig.CHART_TYPE_GAUGE) { - this.selectedMap[series[i].name] = true; - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - this._buildSingleGauge(i); - this.buildMark(i); - } - } - this.addShapeList(); - }, - _buildSingleGauge: function (seriesIndex) { - var serie = this.series[seriesIndex]; - this._paramsMap[seriesIndex] = { - center: this.parseCenter(this.zr, serie.center), - radius: this.parseRadius(this.zr, serie.radius), - startAngle: serie.startAngle.toFixed(2) - 0, - endAngle: serie.endAngle.toFixed(2) - 0 - }; - this._paramsMap[seriesIndex].totalAngle = this._paramsMap[seriesIndex].startAngle - this._paramsMap[seriesIndex].endAngle; - this._colorMap(seriesIndex); - this._buildAxisLine(seriesIndex); - this._buildSplitLine(seriesIndex); - this._buildAxisTick(seriesIndex); - this._buildAxisLabel(seriesIndex); - this._buildPointer(seriesIndex); - this._buildTitle(seriesIndex); - this._buildDetail(seriesIndex); - }, - _buildAxisLine: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.axisLine.show) { - return; - } - var min = serie.min; - var total = serie.max - min; - var params = this._paramsMap[seriesIndex]; - var center = params.center; - var startAngle = params.startAngle; - var totalAngle = params.totalAngle; - var colorArray = params.colorArray; - var lineStyle = serie.axisLine.lineStyle; - var lineWidth = this.parsePercent(lineStyle.width, params.radius[1]); - var r = params.radius[1]; - var r0 = r - lineWidth; - var sectorShape; - var lastAngle = startAngle; - var newAngle; - for (var i = 0, l = colorArray.length; i < l; i++) { - newAngle = startAngle - totalAngle * (colorArray[i][0] - min) / total; - sectorShape = this._getSector(center, r0, r, newAngle, lastAngle, colorArray[i][1], lineStyle, serie.zlevel, serie.z); - lastAngle = newAngle; - sectorShape._animationAdd = 'r'; - ecData.set(sectorShape, 'seriesIndex', seriesIndex); - ecData.set(sectorShape, 'dataIndex', i); - this.shapeList.push(sectorShape); - } - }, - _buildSplitLine: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.splitLine.show) { - return; - } - var params = this._paramsMap[seriesIndex]; - var splitNumber = serie.splitNumber; - var min = serie.min; - var total = serie.max - min; - var splitLine = serie.splitLine; - var length = this.parsePercent(splitLine.length, params.radius[1]); - var lineStyle = splitLine.lineStyle; - var color = lineStyle.color; - var center = params.center; - var startAngle = params.startAngle * Math.PI / 180; - var totalAngle = params.totalAngle * Math.PI / 180; - var r = params.radius[1]; - var r0 = r - length; - var angle; - var sinAngle; - var cosAngle; - for (var i = 0; i <= splitNumber; i++) { - angle = startAngle - totalAngle / splitNumber * i; - sinAngle = Math.sin(angle); - cosAngle = Math.cos(angle); - this.shapeList.push(new LineShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - xStart: center[0] + cosAngle * r, - yStart: center[1] - sinAngle * r, - xEnd: center[0] + cosAngle * r0, - yEnd: center[1] - sinAngle * r0, - strokeColor: color === 'auto' ? this._getColor(seriesIndex, min + total / splitNumber * i) : color, - lineType: lineStyle.type, - lineWidth: lineStyle.width, - shadowColor: lineStyle.shadowColor, - shadowBlur: lineStyle.shadowBlur, - shadowOffsetX: lineStyle.shadowOffsetX, - shadowOffsetY: lineStyle.shadowOffsetY - } - })); - } - }, - _buildAxisTick: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.axisTick.show) { - return; - } - var params = this._paramsMap[seriesIndex]; - var splitNumber = serie.splitNumber; - var min = serie.min; - var total = serie.max - min; - var axisTick = serie.axisTick; - var tickSplit = axisTick.splitNumber; - var length = this.parsePercent(axisTick.length, params.radius[1]); - var lineStyle = axisTick.lineStyle; - var color = lineStyle.color; - var center = params.center; - var startAngle = params.startAngle * Math.PI / 180; - var totalAngle = params.totalAngle * Math.PI / 180; - var r = params.radius[1]; - var r0 = r - length; - var angle; - var sinAngle; - var cosAngle; - for (var i = 0, l = splitNumber * tickSplit; i <= l; i++) { - if (i % tickSplit === 0) { - continue; - } - angle = startAngle - totalAngle / l * i; - sinAngle = Math.sin(angle); - cosAngle = Math.cos(angle); - this.shapeList.push(new LineShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - xStart: center[0] + cosAngle * r, - yStart: center[1] - sinAngle * r, - xEnd: center[0] + cosAngle * r0, - yEnd: center[1] - sinAngle * r0, - strokeColor: color === 'auto' ? this._getColor(seriesIndex, min + total / l * i) : color, - lineType: lineStyle.type, - lineWidth: lineStyle.width, - shadowColor: lineStyle.shadowColor, - shadowBlur: lineStyle.shadowBlur, - shadowOffsetX: lineStyle.shadowOffsetX, - shadowOffsetY: lineStyle.shadowOffsetY - } - })); - } - }, - _buildAxisLabel: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.axisLabel.show) { - return; - } - var splitNumber = serie.splitNumber; - var min = serie.min; - var total = serie.max - min; - var textStyle = serie.axisLabel.textStyle; - var textFont = this.getFont(textStyle); - var color = textStyle.color; - var params = this._paramsMap[seriesIndex]; - var center = params.center; - var startAngle = params.startAngle; - var totalAngle = params.totalAngle; - var r0 = params.radius[1] - this.parsePercent(serie.splitLine.length, params.radius[1]) - 5; - var angle; - var sinAngle; - var cosAngle; - var value; - for (var i = 0; i <= splitNumber; i++) { - value = accMath.accAdd(min, accMath.accMul(accMath.accDiv(total, splitNumber), i)); - angle = startAngle - totalAngle / splitNumber * i; - sinAngle = Math.sin(angle * Math.PI / 180); - cosAngle = Math.cos(angle * Math.PI / 180); - angle = (angle + 360) % 360; - this.shapeList.push(new TextShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - x: center[0] + cosAngle * r0, - y: center[1] - sinAngle * r0, - color: color === 'auto' ? this._getColor(seriesIndex, value) : color, - text: this._getLabelText(serie.axisLabel.formatter, value), - textAlign: angle >= 110 && angle <= 250 ? 'left' : angle <= 70 || angle >= 290 ? 'right' : 'center', - textBaseline: angle >= 10 && angle <= 170 ? 'top' : angle >= 190 && angle <= 350 ? 'bottom' : 'middle', - textFont: textFont, - shadowColor: textStyle.shadowColor, - shadowBlur: textStyle.shadowBlur, - shadowOffsetX: textStyle.shadowOffsetX, - shadowOffsetY: textStyle.shadowOffsetY - } - })); - } - }, - _buildPointer: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.pointer.show) { - return; - } - var total = serie.max - serie.min; - var pointer = serie.pointer; - var params = this._paramsMap[seriesIndex]; - var length = this.parsePercent(pointer.length, params.radius[1]); - var width = this.parsePercent(pointer.width, params.radius[1]); - var center = params.center; - var value = this._getValue(seriesIndex); - value = value < serie.max ? value : serie.max; - var angle = (params.startAngle - params.totalAngle / total * (value - serie.min)) * Math.PI / 180; - var color = pointer.color === 'auto' ? this._getColor(seriesIndex, value) : pointer.color; - var pointShape = new GaugePointerShape({ - zlevel: serie.zlevel, - z: serie.z + 1, - clickable: this.query(serie, 'clickable'), - style: { - x: center[0], - y: center[1], - r: length, - startAngle: params.startAngle * Math.PI / 180, - angle: angle, - color: color, - width: width, - shadowColor: pointer.shadowColor, - shadowBlur: pointer.shadowBlur, - shadowOffsetX: pointer.shadowOffsetX, - shadowOffsetY: pointer.shadowOffsetY - }, - highlightStyle: { - brushType: 'fill', - width: width > 2 ? 2 : width / 2, - color: '#fff' - } - }); - ecData.pack(pointShape, this.series[seriesIndex], seriesIndex, this.series[seriesIndex].data[0], 0, this.series[seriesIndex].data[0].name, value); - this.shapeList.push(pointShape); - this.shapeList.push(new CircleShape({ - zlevel: serie.zlevel, - z: serie.z + 2, - hoverable: false, - style: { - x: center[0], - y: center[1], - r: pointer.width / 2.5, - color: '#fff' - } - })); - }, - _buildTitle: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.title.show) { - return; - } - var data = serie.data[0]; - var name = data.name != null ? data.name : ''; - if (name !== '') { - var title = serie.title; - var offsetCenter = title.offsetCenter; - var textStyle = title.textStyle; - var textColor = textStyle.color; - var params = this._paramsMap[seriesIndex]; - var x = params.center[0] + this.parsePercent(offsetCenter[0], params.radius[1]); - var y = params.center[1] + this.parsePercent(offsetCenter[1], params.radius[1]); - this.shapeList.push(new TextShape({ - zlevel: serie.zlevel, - z: serie.z + (Math.abs(x - params.center[0]) + Math.abs(y - params.center[1]) < textStyle.fontSize * 2 ? 2 : 1), - hoverable: false, - style: { - x: x, - y: y, - color: textColor === 'auto' ? this._getColor(seriesIndex) : textColor, - text: name, - textAlign: 'center', - textFont: this.getFont(textStyle), - shadowColor: textStyle.shadowColor, - shadowBlur: textStyle.shadowBlur, - shadowOffsetX: textStyle.shadowOffsetX, - shadowOffsetY: textStyle.shadowOffsetY - } - })); - } - }, - _buildDetail: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (!serie.detail.show) { - return; - } - var detail = serie.detail; - var offsetCenter = detail.offsetCenter; - var color = detail.backgroundColor; - var textStyle = detail.textStyle; - var textColor = textStyle.color; - var params = this._paramsMap[seriesIndex]; - var value = this._getValue(seriesIndex); - var x = params.center[0] - detail.width / 2 + this.parsePercent(offsetCenter[0], params.radius[1]); - var y = params.center[1] + this.parsePercent(offsetCenter[1], params.radius[1]); - this.shapeList.push(new RectangleShape({ - zlevel: serie.zlevel, - z: serie.z + (Math.abs(x + detail.width / 2 - params.center[0]) + Math.abs(y + detail.height / 2 - params.center[1]) < textStyle.fontSize ? 2 : 1), - hoverable: false, - style: { - x: x, - y: y, - width: detail.width, - height: detail.height, - brushType: 'both', - color: color === 'auto' ? this._getColor(seriesIndex, value) : color, - lineWidth: detail.borderWidth, - strokeColor: detail.borderColor, - shadowColor: detail.shadowColor, - shadowBlur: detail.shadowBlur, - shadowOffsetX: detail.shadowOffsetX, - shadowOffsetY: detail.shadowOffsetY, - text: this._getLabelText(detail.formatter, value), - textFont: this.getFont(textStyle), - textPosition: 'inside', - textColor: textColor === 'auto' ? this._getColor(seriesIndex, value) : textColor - } - })); - }, - _getValue: function (seriesIndex) { - return this.getDataFromOption(this.series[seriesIndex].data[0]); - }, - _colorMap: function (seriesIndex) { - var serie = this.series[seriesIndex]; - var min = serie.min; - var total = serie.max - min; - var color = serie.axisLine.lineStyle.color; - if (!(color instanceof Array)) { - color = [[ - 1, - color - ]]; - } - var colorArray = []; - for (var i = 0, l = color.length; i < l; i++) { - colorArray.push([ - color[i][0] * total + min, - color[i][1] - ]); - } - this._paramsMap[seriesIndex].colorArray = colorArray; - }, - _getColor: function (seriesIndex, value) { - if (value == null) { - value = this._getValue(seriesIndex); - } - var colorArray = this._paramsMap[seriesIndex].colorArray; - for (var i = 0, l = colorArray.length; i < l; i++) { - if (colorArray[i][0] >= value) { - return colorArray[i][1]; - } - } - return colorArray[colorArray.length - 1][1]; - }, - _getSector: function (center, r0, r, startAngle, endAngle, color, lineStyle, zlevel, z) { - return new SectorShape({ - zlevel: zlevel, - z: z, - hoverable: false, - style: { - x: center[0], - y: center[1], - r0: r0, - r: r, - startAngle: startAngle, - endAngle: endAngle, - brushType: 'fill', - color: color, - shadowColor: lineStyle.shadowColor, - shadowBlur: lineStyle.shadowBlur, - shadowOffsetX: lineStyle.shadowOffsetX, - shadowOffsetY: lineStyle.shadowOffsetY - } - }); - }, - _getLabelText: function (formatter, value) { - if (formatter) { - if (typeof formatter === 'function') { - return formatter.call(this.myChart, value); - } else if (typeof formatter === 'string') { - return formatter.replace('{value}', value); - } - } - return value; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - } - }; - zrUtil.inherits(Gauge, ChartBase); - require('../chart').define('gauge', Gauge); - return Gauge; -});define('echarts/util/shape/GaugePointer', [ - 'require', - 'zrender/shape/Base', - 'zrender/tool/util', - './normalIsCover' -], function (require) { - var Base = require('zrender/shape/Base'); - var zrUtil = require('zrender/tool/util'); - function GaugePointer(options) { - Base.call(this, options); - } - GaugePointer.prototype = { - type: 'gauge-pointer', - buildPath: function (ctx, style) { - var r = style.r; - var width = style.width; - var angle = style.angle; - var x = style.x - Math.cos(angle) * width * (width >= r / 3 ? 1 : 2); - var y = style.y + Math.sin(angle) * width * (width >= r / 3 ? 1 : 2); - angle = style.angle - Math.PI / 2; - ctx.moveTo(x, y); - ctx.lineTo(style.x + Math.cos(angle) * width, style.y - Math.sin(angle) * width); - ctx.lineTo(style.x + Math.cos(style.angle) * r, style.y - Math.sin(style.angle) * r); - ctx.lineTo(style.x - Math.cos(angle) * width, style.y + Math.sin(angle) * width); - ctx.lineTo(x, y); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var width = style.width * 2; - var xStart = style.x; - var yStart = style.y; - var xEnd = xStart + Math.cos(style.angle) * style.r; - var yEnd = yStart - Math.sin(style.angle) * style.r; - style.__rect = { - x: Math.min(xStart, xEnd) - width, - y: Math.min(yStart, yEnd) - width, - width: Math.abs(xStart - xEnd) + width, - height: Math.abs(yStart - yEnd) + width - }; - return style.__rect; - }, - isCover: require('./normalIsCover') - }; - zrUtil.inherits(GaugePointer, Base); - return GaugePointer; -});define('echarts/chart/funnel', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Line', - 'zrender/shape/Polygon', - '../config', - '../util/ecData', - '../util/number', - 'zrender/tool/util', - 'zrender/tool/color', - 'zrender/tool/area', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var PolygonShape = require('zrender/shape/Polygon'); - var ecConfig = require('../config'); - ecConfig.funnel = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - x: 80, - y: 60, - x2: 80, - y2: 60, - min: 0, - max: 100, - minSize: '0%', - maxSize: '100%', - sort: 'descending', - gap: 0, - funnelAlign: 'center', - itemStyle: { - normal: { - borderColor: '#fff', - borderWidth: 1, - label: { - show: true, - position: 'outer' - }, - labelLine: { - show: true, - length: 10, - lineStyle: { - width: 1, - type: 'solid' - } - } - }, - emphasis: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - label: { show: true }, - labelLine: { show: true } - } - } - }; - var ecData = require('../util/ecData'); - var number = require('../util/number'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - var zrArea = require('zrender/tool/area'); - function Funnel(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Funnel.prototype = { - type: ecConfig.CHART_TYPE_FUNNEL, - _buildShape: function () { - var series = this.series; - var legend = this.component.legend; - this._paramsMap = {}; - this._selected = {}; - this.selectedMap = {}; - var serieName; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === ecConfig.CHART_TYPE_FUNNEL) { - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - serieName = series[i].name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (!this.selectedMap[serieName]) { - continue; - } - this._buildSingleFunnel(i); - this.buildMark(i); - } - } - this.addShapeList(); - }, - _buildSingleFunnel: function (seriesIndex) { - var legend = this.component.legend; - var serie = this.series[seriesIndex]; - var data = this._mapData(seriesIndex); - var location = this._getLocation(seriesIndex); - this._paramsMap[seriesIndex] = { - location: location, - data: data - }; - var itemName; - var total = 0; - var selectedData = []; - for (var i = 0, l = data.length; i < l; i++) { - itemName = data[i].name; - this.selectedMap[itemName] = legend ? legend.isSelected(itemName) : true; - if (this.selectedMap[itemName] && !isNaN(data[i].value)) { - selectedData.push(data[i]); - total++; - } - } - if (total === 0) { - return; - } - var funnelCase = this._buildFunnelCase(seriesIndex); - var align = serie.funnelAlign; - var gap = serie.gap; - var height = total > 1 ? (location.height - (total - 1) * gap) / total : location.height; - var width; - var lastY = location.y; - var lastWidth = serie.sort === 'descending' ? this._getItemWidth(seriesIndex, selectedData[0].value) : number.parsePercent(serie.minSize, location.width); - var next = serie.sort === 'descending' ? 1 : 0; - var centerX = location.centerX; - var pointList = []; - var x; - var polygon; - var lastPolygon; - for (var i = 0, l = selectedData.length; i < l; i++) { - itemName = selectedData[i].name; - if (this.selectedMap[itemName] && !isNaN(selectedData[i].value)) { - width = i <= l - 2 ? this._getItemWidth(seriesIndex, selectedData[i + next].value) : serie.sort === 'descending' ? number.parsePercent(serie.minSize, location.width) : number.parsePercent(serie.maxSize, location.width); - switch (align) { - case 'left': - x = location.x; - break; - case 'right': - x = location.x + location.width - lastWidth; - break; - default: - x = centerX - lastWidth / 2; - } - polygon = this._buildItem(seriesIndex, selectedData[i]._index, legend ? legend.getColor(itemName) : this.zr.getColor(selectedData[i]._index), x, lastY, lastWidth, width, height, align); - lastY += height + gap; - lastPolygon = polygon.style.pointList; - pointList.unshift([ - lastPolygon[0][0] - 10, - lastPolygon[0][1] - ]); - pointList.push([ - lastPolygon[1][0] + 10, - lastPolygon[1][1] - ]); - if (i === 0) { - if (lastWidth === 0) { - lastPolygon = pointList.pop(); - align == 'center' && (pointList[0][0] += 10); - align == 'right' && (pointList[0][0] = lastPolygon[0]); - pointList[0][1] -= align == 'center' ? 10 : 15; - if (l == 1) { - lastPolygon = polygon.style.pointList; - } - } else { - pointList[pointList.length - 1][1] -= 5; - pointList[0][1] -= 5; - } - } - lastWidth = width; - } - } - if (funnelCase) { - pointList.unshift([ - lastPolygon[3][0] - 10, - lastPolygon[3][1] - ]); - pointList.push([ - lastPolygon[2][0] + 10, - lastPolygon[2][1] - ]); - if (lastWidth === 0) { - lastPolygon = pointList.pop(); - align == 'center' && (pointList[0][0] += 10); - align == 'right' && (pointList[0][0] = lastPolygon[0]); - pointList[0][1] += align == 'center' ? 10 : 15; - } else { - pointList[pointList.length - 1][1] += 5; - pointList[0][1] += 5; - } - funnelCase.style.pointList = pointList; - } - }, - _buildFunnelCase: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (this.deepQuery([ - serie, - this.option - ], 'calculable')) { - var location = this._paramsMap[seriesIndex].location; - var gap = 10; - var funnelCase = { - hoverable: false, - style: { - pointListd: [ - [ - location.x - gap, - location.y - gap - ], - [ - location.x + location.width + gap, - location.y - gap - ], - [ - location.x + location.width + gap, - location.y + location.height + gap - ], - [ - location.x - gap, - location.y + location.height + gap - ] - ], - brushType: 'stroke', - lineWidth: 1, - strokeColor: serie.calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor - } - }; - ecData.pack(funnelCase, serie, seriesIndex, undefined, -1); - this.setCalculable(funnelCase); - funnelCase = new PolygonShape(funnelCase); - this.shapeList.push(funnelCase); - return funnelCase; - } - }, - _getLocation: function (seriesIndex) { - var gridOption = this.series[seriesIndex]; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - var x = this.parsePercent(gridOption.x, zrWidth); - var y = this.parsePercent(gridOption.y, zrHeight); - var width = gridOption.width == null ? zrWidth - x - this.parsePercent(gridOption.x2, zrWidth) : this.parsePercent(gridOption.width, zrWidth); - return { - x: x, - y: y, - width: width, - height: gridOption.height == null ? zrHeight - y - this.parsePercent(gridOption.y2, zrHeight) : this.parsePercent(gridOption.height, zrHeight), - centerX: x + width / 2 - }; - }, - _mapData: function (seriesIndex) { - var serie = this.series[seriesIndex]; - var funnelData = zrUtil.clone(serie.data); - for (var i = 0, l = funnelData.length; i < l; i++) { - funnelData[i]._index = i; - } - function numDescending(a, b) { - if (a.value === '-') { - return 1; - } else if (b.value === '-') { - return -1; - } - return b.value - a.value; - } - function numAscending(a, b) { - return -numDescending(a, b); - } - if (serie.sort != 'none') { - funnelData.sort(serie.sort === 'descending' ? numDescending : numAscending); - } - return funnelData; - }, - _buildItem: function (seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var polygon = this.getPolygon(seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align); - ecData.pack(polygon, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name); - this.shapeList.push(polygon); - var label = this.getLabel(seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align); - ecData.pack(label, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name); - this.shapeList.push(label); - if (!this._needLabel(serie, data, false)) { - label.invisible = true; - } - var labelLine = this.getLabelLine(seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align); - this.shapeList.push(labelLine); - if (!this._needLabelLine(serie, data, false)) { - labelLine.invisible = true; - } - var polygonHoverConnect = []; - var labelHoverConnect = []; - if (this._needLabelLine(serie, data, true)) { - polygonHoverConnect.push(labelLine.id); - labelHoverConnect.push(labelLine.id); - } - if (this._needLabel(serie, data, true)) { - polygonHoverConnect.push(label.id); - labelHoverConnect.push(polygon.id); - } - polygon.hoverConnect = polygonHoverConnect; - label.hoverConnect = labelHoverConnect; - return polygon; - }, - _getItemWidth: function (seriesIndex, value) { - var serie = this.series[seriesIndex]; - var location = this._paramsMap[seriesIndex].location; - var min = serie.min; - var max = serie.max; - var minSize = number.parsePercent(serie.minSize, location.width); - var maxSize = number.parsePercent(serie.maxSize, location.width); - return (value - min) * (maxSize - minSize) / (max - min) + minSize; - }, - getPolygon: function (seriesIndex, dataIndex, defaultColor, xLT, y, topWidth, bottomWidth, height, align) { - var serie = this.series[seriesIndex]; - var data = serie.data[dataIndex]; - var queryTarget = [ - data, - serie - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor; - var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor); - var xLB; - switch (align) { - case 'left': - xLB = xLT; - break; - case 'right': - xLB = xLT + (topWidth - bottomWidth); - break; - default: - xLB = xLT + (topWidth - bottomWidth) / 2; - break; - } - var polygon = { - zlevel: serie.zlevel, - z: serie.z, - clickable: this.deepQuery(queryTarget, 'clickable'), - style: { - pointList: [ - [ - xLT, - y - ], - [ - xLT + topWidth, - y - ], - [ - xLB + bottomWidth, - y + height - ], - [ - xLB, - y + height - ] - ], - brushType: 'both', - color: normalColor, - lineWidth: normal.borderWidth, - strokeColor: normal.borderColor - }, - highlightStyle: { - color: emphasisColor, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor - } - }; - if (this.deepQuery([ - data, - serie, - this.option - ], 'calculable')) { - this.setCalculable(polygon); - polygon.draggable = true; - } - return new PolygonShape(polygon); - }, - getLabel: function (seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align) { - var serie = this.series[seriesIndex]; - var data = serie.data[dataIndex]; - var location = this._paramsMap[seriesIndex].location; - var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle); - var status = 'normal'; - var labelControl = itemStyle[status].label; - var textStyle = labelControl.textStyle || {}; - var lineLength = itemStyle[status].labelLine.length; - var text = this.getLabelText(seriesIndex, dataIndex, status); - var textFont = this.getFont(textStyle); - var textAlign; - var textColor = defaultColor; - labelControl.position = labelControl.position || itemStyle.normal.label.position; - if (labelControl.position === 'inner' || labelControl.position === 'inside' || labelControl.position === 'center') { - textAlign = align; - textColor = Math.max(topWidth, bottomWidth) / 2 > zrArea.getTextWidth(text, textFont) ? '#fff' : zrColor.reverse(defaultColor); - } else if (labelControl.position === 'left') { - textAlign = 'right'; - } else { - textAlign = 'left'; - } - var textShape = { - zlevel: serie.zlevel, - z: serie.z + 1, - style: { - x: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align), - y: y + height / 2, - color: textStyle.color || textColor, - text: text, - textAlign: textStyle.align || textAlign, - textBaseline: textStyle.baseline || 'middle', - textFont: textFont - } - }; - status = 'emphasis'; - labelControl = itemStyle[status].label || labelControl; - textStyle = labelControl.textStyle || textStyle; - lineLength = itemStyle[status].labelLine.length || lineLength; - labelControl.position = labelControl.position || itemStyle.normal.label.position; - text = this.getLabelText(seriesIndex, dataIndex, status); - textFont = this.getFont(textStyle); - textColor = defaultColor; - if (labelControl.position === 'inner' || labelControl.position === 'inside' || labelControl.position === 'center') { - textAlign = align; - textColor = Math.max(topWidth, bottomWidth) / 2 > zrArea.getTextWidth(text, textFont) ? '#fff' : zrColor.reverse(defaultColor); - } else if (labelControl.position === 'left') { - textAlign = 'right'; - } else { - textAlign = 'left'; - } - textShape.highlightStyle = { - x: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align), - color: textStyle.color || textColor, - text: text, - textAlign: textStyle.align || textAlign, - textFont: textFont, - brushType: 'fill' - }; - return new TextShape(textShape); - }, - getLabelText: function (seriesIndex, dataIndex, status) { - var series = this.series; - var serie = series[seriesIndex]; - var data = serie.data[dataIndex]; - var formatter = this.deepQuery([ - data, - serie - ], 'itemStyle.' + status + '.label.formatter'); - if (formatter) { - if (typeof formatter === 'function') { - return formatter.call(this.myChart, { - seriesIndex: seriesIndex, - seriesName: serie.name || '', - series: serie, - dataIndex: dataIndex, - data: data, - name: data.name, - value: data.value - }); - } else if (typeof formatter === 'string') { - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{a0}', serie.name).replace('{b0}', data.name).replace('{c0}', data.value); - return formatter; - } - } else { - return data.name; - } - }, - getLabelLine: function (seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align) { - var serie = this.series[seriesIndex]; - var data = serie.data[dataIndex]; - var location = this._paramsMap[seriesIndex].location; - var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle); - var status = 'normal'; - var labelLineControl = itemStyle[status].labelLine; - var lineLength = itemStyle[status].labelLine.length; - var lineStyle = labelLineControl.lineStyle || {}; - var labelControl = itemStyle[status].label; - labelControl.position = labelControl.position || itemStyle.normal.label.position; - var lineShape = { - zlevel: serie.zlevel, - z: serie.z + 1, - hoverable: false, - style: { - xStart: this._getLabelLineStartPoint(x, location, topWidth, bottomWidth, align), - yStart: y + height / 2, - xEnd: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align), - yEnd: y + height / 2, - strokeColor: lineStyle.color || defaultColor, - lineType: lineStyle.type, - lineWidth: lineStyle.width - } - }; - status = 'emphasis'; - labelLineControl = itemStyle[status].labelLine || labelLineControl; - lineLength = itemStyle[status].labelLine.length || lineLength; - lineStyle = labelLineControl.lineStyle || lineStyle; - labelControl = itemStyle[status].label || labelControl; - labelControl.position = labelControl.position; - lineShape.highlightStyle = { - xEnd: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align), - strokeColor: lineStyle.color || defaultColor, - lineType: lineStyle.type, - lineWidth: lineStyle.width - }; - return new LineShape(lineShape); - }, - _getLabelPoint: function (position, x, location, topWidth, bottomWidth, lineLength, align) { - position = position === 'inner' || position === 'inside' ? 'center' : position; - switch (position) { - case 'center': - return align == 'center' ? x + topWidth / 2 : align == 'left' ? x + 10 : x + topWidth - 10; - case 'left': - if (lineLength === 'auto') { - return location.x - 10; - } else { - return align == 'center' ? location.centerX - Math.max(topWidth, bottomWidth) / 2 - lineLength : align == 'right' ? x - (topWidth < bottomWidth ? bottomWidth - topWidth : 0) - lineLength : location.x - lineLength; - } - break; - default: - if (lineLength === 'auto') { - return location.x + location.width + 10; - } else { - return align == 'center' ? location.centerX + Math.max(topWidth, bottomWidth) / 2 + lineLength : align == 'right' ? location.x + location.width + lineLength : x + Math.max(topWidth, bottomWidth) + lineLength; - } - } - }, - _getLabelLineStartPoint: function (x, location, topWidth, bottomWidth, align) { - return align == 'center' ? location.centerX : topWidth < bottomWidth ? x + Math.min(topWidth, bottomWidth) / 2 : x + Math.max(topWidth, bottomWidth) / 2; - }, - _needLabel: function (serie, data, isEmphasis) { - return this.deepQuery([ - data, - serie - ], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.label.show'); - }, - _needLabelLine: function (serie, data, isEmphasis) { - return this.deepQuery([ - data, - serie - ], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.labelLine.show'); - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - } - }; - zrUtil.inherits(Funnel, ChartBase); - require('../chart').define('funnel', Funnel); - return Funnel; -});define('echarts/chart/eventRiver', [ - 'require', - './base', - '../layout/eventRiver', - 'zrender/shape/Polygon', - '../component/axis', - '../component/grid', - '../component/dataZoom', - '../config', - '../util/ecData', - '../util/date', - 'zrender/tool/util', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var eventRiverLayout = require('../layout/eventRiver'); - var PolygonShape = require('zrender/shape/Polygon'); - require('../component/axis'); - require('../component/grid'); - require('../component/dataZoom'); - var ecConfig = require('../config'); - ecConfig.eventRiver = { - zlevel: 0, - z: 2, - clickable: true, - legendHoverLink: true, - itemStyle: { - normal: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - label: { - show: true, - position: 'inside', - formatter: '{b}' - } - }, - emphasis: { - borderColor: 'rgba(0,0,0,0)', - borderWidth: 1, - label: { show: true } - } - } - }; - var ecData = require('../util/ecData'); - var ecDate = require('../util/date'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function EventRiver(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._ondragend = function () { - self.isDragend = true; - }; - this.refresh(option); - } - EventRiver.prototype = { - type: ecConfig.CHART_TYPE_EVENTRIVER, - _buildShape: function () { - var series = this.series; - this.selectedMap = {}; - this._dataPreprocessing(); - var legend = this.component.legend; - var eventRiverSeries = []; - for (var i = 0; i < series.length; i++) { - if (series[i].type === this.type) { - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - var serieName = series[i].name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (!this.selectedMap[serieName]) { - continue; - } - this.buildMark(i); - eventRiverSeries.push(this.series[i]); - } - } - eventRiverLayout(eventRiverSeries, this._intervalX, this.component.grid.getArea()); - this._drawEventRiver(); - this.addShapeList(); - }, - _dataPreprocessing: function () { - var series = this.series; - var xAxis; - var evolutionList; - for (var i = 0, iLen = series.length; i < iLen; i++) { - if (series[i].type === this.type) { - xAxis = this.component.xAxis.getAxis(series[i].xAxisIndex || 0); - for (var j = 0, jLen = series[i].data.length; j < jLen; j++) { - evolutionList = series[i].data[j].evolution; - for (var k = 0, kLen = evolutionList.length; k < kLen; k++) { - evolutionList[k].timeScale = xAxis.getCoord(ecDate.getNewDate(evolutionList[k].time) - 0); - evolutionList[k].valueScale = Math.pow(evolutionList[k].value, 0.8); - } - } - } - } - this._intervalX = Math.round(this.component.grid.getWidth() / 40); - }, - _drawEventRiver: function () { - var series = this.series; - for (var i = 0; i < series.length; i++) { - var serieName = series[i].name || ''; - if (series[i].type === this.type && this.selectedMap[serieName]) { - for (var j = 0; j < series[i].data.length; j++) { - this._drawEventBubble(series[i].data[j], i, j); - } - } - } - }, - _drawEventBubble: function (oneEvent, seriesIndex, dataIndex) { - var series = this.series; - var serie = series[seriesIndex]; - var serieName = serie.name || ''; - var data = serie.data[dataIndex]; - var queryTarget = [ - data, - serie - ]; - var legend = this.component.legend; - var defaultColor = legend ? legend.getColor(serieName) : this.zr.getColor(seriesIndex); - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor; - var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor); - var pts = this._calculateControlPoints(oneEvent); - var eventBubbleShape = { - zlevel: serie.zlevel, - z: serie.z, - clickable: this.deepQuery(queryTarget, 'clickable'), - style: { - pointList: pts, - smooth: 'spline', - brushType: 'both', - lineJoin: 'round', - color: normalColor, - lineWidth: normal.borderWidth, - strokeColor: normal.borderColor - }, - highlightStyle: { - color: emphasisColor, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor - }, - draggable: 'vertical', - ondragend: this._ondragend - }; - eventBubbleShape = new PolygonShape(eventBubbleShape); - this.addLabel(eventBubbleShape, serie, data, oneEvent.name); - ecData.pack(eventBubbleShape, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name); - this.shapeList.push(eventBubbleShape); - }, - _calculateControlPoints: function (oneEvent) { - var intervalX = this._intervalX; - var posY = oneEvent.y; - var evolution = oneEvent.evolution; - var n = evolution.length; - if (n < 1) { - return; - } - var time = []; - var value = []; - for (var i = 0; i < n; i++) { - time.push(evolution[i].timeScale); - value.push(evolution[i].valueScale); - } - var pts = []; - pts.push([ - time[0], - posY - ]); - var i = 0; - for (i = 0; i < n - 1; i++) { - pts.push([ - (time[i] + time[i + 1]) / 2, - value[i] / -2 + posY - ]); - } - pts.push([ - (time[i] + (time[i] + intervalX)) / 2, - value[i] / -2 + posY - ]); - pts.push([ - time[i] + intervalX, - posY - ]); - pts.push([ - (time[i] + (time[i] + intervalX)) / 2, - value[i] / 2 + posY - ]); - for (i = n - 1; i > 0; i--) { - pts.push([ - (time[i] + time[i - 1]) / 2, - value[i - 1] / 2 + posY - ]); - } - return pts; - }, - ondragend: function (param, status) { - if (!this.isDragend || !param.target) { - return; - } - status.dragOut = true; - status.dragIn = true; - status.needRefresh = false; - this.isDragend = false; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this.backupShapeList(); - this._buildShape(); - } - }; - zrUtil.inherits(EventRiver, ChartBase); - require('../chart').define('eventRiver', EventRiver); - return EventRiver; -});define('echarts/layout/eventRiver', ['require'], function (require) { - function eventRiverLayout(series, intervalX, area) { - var space = 4; - var scale = intervalX; - function importanceSort(a, b) { - var x = a.importance; - var y = b.importance; - return x > y ? -1 : x < y ? 1 : 0; - } - function indexOf(array, value) { - if (array.indexOf) { - return array.indexOf(value); - } - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] === value) { - return i; - } - } - return -1; - } - for (var i = 0; i < series.length; i++) { - for (var j = 0; j < series[i].data.length; j++) { - if (series[i].data[j].weight == null) { - series[i].data[j].weight = 1; - } - var importance = 0; - for (var k = 0; k < series[i].data[j].evolution.length; k++) { - importance += series[i].data[j].evolution[k].valueScale; - } - series[i].data[j].importance = importance * series[i].data[j].weight; - } - series[i].data.sort(importanceSort); - } - for (var i = 0; i < series.length; i++) { - if (series[i].weight == null) { - series[i].weight = 1; - } - var importance = 0; - for (var j = 0; j < series[i].data.length; j++) { - importance += series[i].data[j].weight; - } - series[i].importance = importance * series[i].weight; - } - series.sort(importanceSort); - var minTime = Number.MAX_VALUE; - var maxTime = 0; - for (var i = 0; i < series.length; i++) { - for (var j = 0; j < series[i].data.length; j++) { - for (var k = 0; k < series[i].data[j].evolution.length; k++) { - var time = series[i].data[j].evolution[k].timeScale; - minTime = Math.min(minTime, time); - maxTime = Math.max(maxTime, time); - } - } - } - minTime = ~~minTime; - maxTime = ~~maxTime; - var flagForOffset = function () { - var length = maxTime - minTime + 1 + ~~intervalX; - if (length <= 0) { - return [0]; - } - var result = []; - while (length--) { - result.push(0); - } - return result; - }(); - var flagForPos = flagForOffset.slice(0); - var bubbleData = []; - var totalMaxy = 0; - var totalOffset = 0; - for (var i = 0; i < series.length; i++) { - for (var j = 0; j < series[i].data.length; j++) { - var e = series[i].data[j]; - e.time = []; - e.value = []; - var tmp; - var maxy = 0; - for (var k = 0; k < series[i].data[j].evolution.length; k++) { - tmp = series[i].data[j].evolution[k]; - e.time.push(tmp.timeScale); - e.value.push(tmp.valueScale); - maxy = Math.max(maxy, tmp.valueScale); - } - bubbleBound(e, intervalX, minTime); - e.y = findLocation(flagForPos, e, function (e, index) { - return e.ypx[index]; - }); - e._offset = findLocation(flagForOffset, e, function () { - return space; - }); - totalMaxy = Math.max(totalMaxy, e.y + maxy); - totalOffset = Math.max(totalOffset, e._offset); - bubbleData.push(e); - } - } - scaleY(bubbleData, area, totalMaxy, totalOffset); - } - function scaleY(bubbleData, area, maxY, offset) { - var height = area.height; - var offsetScale = offset / height > 0.5 ? 0.5 : 1; - var yBase = area.y; - var yScale = (area.height - offset) / maxY; - for (var i = 0, length = bubbleData.length; i < length; i++) { - var e = bubbleData[i]; - e.y = yBase + yScale * e.y + e._offset * offsetScale; - delete e.time; - delete e.value; - delete e.xpx; - delete e.ypx; - delete e._offset; - var evolutionList = e.evolution; - for (var k = 0, klen = evolutionList.length; k < klen; k++) { - evolutionList[k].valueScale *= yScale; - } - } - } - function line(x0, y0, x1, y1) { - if (x0 === x1) { - throw new Error('x0 is equal with x1!!!'); - } - if (y0 === y1) { - return function () { - return y0; - }; - } - var k = (y0 - y1) / (x0 - x1); - var b = (y1 * x0 - y0 * x1) / (x0 - x1); - return function (x) { - return k * x + b; - }; - } - function bubbleBound(e, intervalX, minX) { - var space = ~~intervalX; - var length = e.time.length; - e.xpx = []; - e.ypx = []; - var i = 0; - var x0 = 0; - var x1 = 0; - var y0 = 0; - var y1 = 0; - var newline; - for (; i < length; i++) { - x0 = ~~e.time[i]; - y0 = e.value[i] / 2; - if (i === length - 1) { - x1 = x0 + space; - y1 = 0; - } else { - x1 = ~~e.time[i + 1]; - y1 = e.value[i + 1] / 2; - } - newline = line(x0, y0, x1, y1); - for (var x = x0; x < x1; x++) { - e.xpx.push(x - minX); - e.ypx.push(newline(x)); - } - } - e.xpx.push(x1 - minX); - e.ypx.push(y1); - } - function findLocation(flags, e, yvalue) { - var pos = 0; - var length = e.xpx.length; - var i = 0; - var y; - for (; i < length; i++) { - y = yvalue(e, i); - pos = Math.max(pos, y + flags[e.xpx[i]]); - } - for (i = 0; i < length; i++) { - y = yvalue(e, i); - flags[e.xpx[i]] = pos + y; - } - return pos; - } - return eventRiverLayout; -});define('echarts/chart/venn', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Circle', - 'zrender/shape/Path', - '../config', - '../util/ecData', - 'zrender/tool/util', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var TextShape = require('zrender/shape/Text'); - var CircleShape = require('zrender/shape/Circle'); - var PathShape = require('zrender/shape/Path'); - var ecConfig = require('../config'); - ecConfig.venn = { - zlevel: 0, - z: 1, - calculable: false - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - function Venn(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Venn.prototype = { - type: ecConfig.CHART_TYPE_VENN, - _buildShape: function () { - this.selectedMap = {}; - this._symbol = this.option.symbolList; - this._queryTarget; - this._dropBoxList = []; - this._vennDataCounter = 0; - var series = this.series; - var legend = this.component.legend; - for (var i = 0; i < series.length; i++) { - if (series[i].type === ecConfig.CHART_TYPE_VENN) { - series[i] = this.reformOption(series[i]); - var serieName = series[i].name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (!this.selectedMap[serieName]) { - continue; - } - this._buildVenn(i); - } - } - this.addShapeList(); - }, - _buildVenn: function (seriesIndex) { - var r0; - var r1; - var serie = this.series[seriesIndex]; - var data = serie.data; - if (data[0].value > data[1].value) { - r0 = this.zr.getHeight() / 3; - r1 = r0 * Math.sqrt(data[1].value) / Math.sqrt(data[0].value); - } else { - r1 = this.zr.getHeight() / 3; - r0 = r1 * Math.sqrt(data[0].value) / Math.sqrt(data[1].value); - } - var x0 = this.zr.getWidth() / 2 - r0; - var coincideLengthAnchor = (r0 + r1) / 2 * Math.sqrt(data[2].value) / Math.sqrt((data[0].value + data[1].value) / 2); - var coincideLength = r0 + r1; - if (data[2].value !== 0) { - coincideLength = this._getCoincideLength(data[0].value, data[1].value, data[2].value, r0, r1, coincideLengthAnchor, Math.abs(r0 - r1), r0 + r1); - } - var x1 = x0 + coincideLength; - var y = this.zr.getHeight() / 2; - this._buildItem(seriesIndex, 0, data[0], x0, y, r0); - this._buildItem(seriesIndex, 1, data[1], x1, y, r1); - if (data[2].value !== 0 && data[2].value !== data[0].value && data[2].value !== data[1].value) { - var xLeft = (r0 * r0 - r1 * r1) / (2 * coincideLength) + coincideLength / 2; - var xRight = coincideLength / 2 - (r0 * r0 - r1 * r1) / (2 * coincideLength); - var h = Math.sqrt(r0 * r0 - xLeft * xLeft); - var rightLargeArcFlag = 0; - var leftLargeArcFlag = 0; - if (data[0].value > data[1].value && x1 < x0 + xLeft) { - leftLargeArcFlag = 1; - } - if (data[0].value < data[1].value && x1 < x0 + xRight) { - rightLargeArcFlag = 1; - } - this._buildCoincideItem(seriesIndex, 2, data[2], x0 + xLeft, y - h, y + h, r0, r1, rightLargeArcFlag, leftLargeArcFlag); - } - }, - _getCoincideLength: function (value0, value1, value2, r0, r1, coincideLengthAnchor, coincideLengthAnchorMin, coincideLengthAnchorMax) { - var x = (r0 * r0 - r1 * r1) / (2 * coincideLengthAnchor) + coincideLengthAnchor / 2; - var y = coincideLengthAnchor / 2 - (r0 * r0 - r1 * r1) / (2 * coincideLengthAnchor); - var alfa = Math.acos(x / r0); - var beta = Math.acos(y / r1); - var area0 = r0 * r0 * Math.PI; - var area2 = alfa * r0 * r0 - x * r0 * Math.sin(alfa) + beta * r1 * r1 - y * r1 * Math.sin(beta); - var scaleAnchor = area2 / area0; - var scale = value2 / value0; - var approximateValue = Math.abs(scaleAnchor / scale); - if (approximateValue > 0.999 && approximateValue < 1.001) { - return coincideLengthAnchor; - } else if (approximateValue <= 0.999) { - coincideLengthAnchorMax = coincideLengthAnchor; - coincideLengthAnchor = (coincideLengthAnchor + coincideLengthAnchorMin) / 2; - return this._getCoincideLength(value0, value1, value2, r0, r1, coincideLengthAnchor, coincideLengthAnchorMin, coincideLengthAnchorMax); - } else { - coincideLengthAnchorMin = coincideLengthAnchor; - coincideLengthAnchor = (coincideLengthAnchor + coincideLengthAnchorMax) / 2; - return this._getCoincideLength(value0, value1, value2, r0, r1, coincideLengthAnchor, coincideLengthAnchorMin, coincideLengthAnchorMax); - } - }, - _buildItem: function (seriesIndex, dataIndex, dataItem, x, y, r) { - var series = this.series; - var serie = series[seriesIndex]; - var circle = this.getCircle(seriesIndex, dataIndex, dataItem, x, y, r); - ecData.pack(circle, serie, seriesIndex, dataItem, dataIndex, dataItem.name); - this.shapeList.push(circle); - if (serie.itemStyle.normal.label.show) { - var label = this.getLabel(seriesIndex, dataIndex, dataItem, x, y, r); - ecData.pack(label, serie, seriesIndex, serie.data[dataIndex], dataIndex, serie.data[dataIndex].name); - this.shapeList.push(label); - } - }, - _buildCoincideItem: function (seriesIndex, dataIndex, dataItem, x, y0, y1, r0, r1, rightLargeArcFlag, leftLargeArcFlag) { - var series = this.series; - var serie = series[seriesIndex]; - var queryTarget = [ - dataItem, - serie - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = normal.color || this.zr.getColor(dataIndex); - var emphasisColor = emphasis.color || this.zr.getColor(dataIndex); - var path = 'M' + x + ',' + y0 + 'A' + r0 + ',' + r0 + ',0,' + rightLargeArcFlag + ',1,' + x + ',' + y1 + 'A' + r1 + ',' + r1 + ',0,' + leftLargeArcFlag + ',1,' + x + ',' + y0; - var style = { - color: normalColor, - path: path - }; - var shape = { - zlevel: serie.zlevel, - z: serie.z, - style: style, - highlightStyle: { - color: emphasisColor, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor - } - }; - shape = new PathShape(shape); - if (shape.buildPathArray) { - shape.style.pathArray = shape.buildPathArray(style.path); - } - ecData.pack(shape, series[seriesIndex], 0, dataItem, dataIndex, dataItem.name); - this.shapeList.push(shape); - }, - getCircle: function (seriesIndex, dataIndex, dataItem, x, y, r) { - var serie = this.series[seriesIndex]; - var queryTarget = [ - dataItem, - serie - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = normal.color || this.zr.getColor(dataIndex); - var emphasisColor = emphasis.color || this.zr.getColor(dataIndex); - var circle = { - zlevel: serie.zlevel, - z: serie.z, - clickable: true, - style: { - x: x, - y: y, - r: r, - brushType: 'fill', - opacity: 1, - color: normalColor - }, - highlightStyle: { - color: emphasisColor, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor - } - }; - if (this.deepQuery([ - dataItem, - serie, - this.option - ], 'calculable')) { - this.setCalculable(circle); - circle.draggable = true; - } - return new CircleShape(circle); - }, - getLabel: function (seriesIndex, dataIndex, dataItem, x, y, r) { - var serie = this.series[seriesIndex]; - var itemStyle = serie.itemStyle; - var queryTarget = [ - dataItem, - serie - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var status = 'normal'; - var labelControl = itemStyle[status].label; - var textStyle = labelControl.textStyle || {}; - var text = this.getLabelText(dataIndex, dataItem, status); - var textFont = this.getFont(textStyle); - var textColor = normal.color || this.zr.getColor(dataIndex); - var textSize = textStyle.fontSize || 12; - var textShape = { - zlevel: serie.zlevel, - z: serie.z, - style: { - x: x, - y: y - r - textSize, - color: textStyle.color || textColor, - text: text, - textFont: textFont, - textAlign: 'center' - } - }; - return new TextShape(textShape); - }, - getLabelText: function (dataIndex, dataItem, status) { - var series = this.series; - var serie = series[0]; - var formatter = this.deepQuery([ - dataItem, - serie - ], 'itemStyle.' + status + '.label.formatter'); - if (formatter) { - if (typeof formatter == 'function') { - return formatter(serie.name, dataItem.name, dataItem.value); - } else if (typeof formatter == 'string') { - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}'); - formatter = formatter.replace('{a0}', serie.name).replace('{b0}', dataItem.name).replace('{c0}', dataItem.value); - return formatter; - } - } else { - return dataItem.name; - } - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this._buildShape(); - } - }; - zrUtil.inherits(Venn, ChartBase); - require('../chart').define('venn', Venn); - return Venn; -});define('echarts/chart/treemap', [ - 'require', - './base', - 'zrender/tool/area', - 'zrender/shape/Rectangle', - 'zrender/shape/Text', - 'zrender/shape/Line', - '../layout/TreeMap', - '../data/Tree', - '../config', - '../util/ecData', - 'zrender/config', - 'zrender/tool/event', - 'zrender/tool/util', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var toolArea = require('zrender/tool/area'); - var RectangleShape = require('zrender/shape/Rectangle'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var TreeMapLayout = require('../layout/TreeMap'); - var Tree = require('../data/Tree'); - var ecConfig = require('../config'); - ecConfig.treemap = { - zlevel: 0, - z: 1, - calculable: false, - clickable: true, - center: [ - '50%', - '50%' - ], - size: [ - '80%', - '80%' - ], - root: '', - itemStyle: { - normal: { - label: { - show: true, - x: 5, - y: 12, - textStyle: { - align: 'left', - color: '#000', - fontFamily: 'Arial', - fontSize: 13, - fontStyle: 'normal', - fontWeight: 'normal' - } - }, - breadcrumb: { - show: true, - textStyle: {} - }, - borderWidth: 1, - borderColor: '#ccc', - childBorderWidth: 1, - childBorderColor: '#ccc' - }, - emphasis: {} - } - }; - var ecData = require('../util/ecData'); - var zrConfig = require('zrender/config'); - var zrEvent = require('zrender/tool/event'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function Treemap(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - var self = this; - self._onclick = function (params) { - return self.__onclick(params); - }; - self.zr.on(zrConfig.EVENT.CLICK, self._onclick); - } - Treemap.prototype = { - type: ecConfig.CHART_TYPE_TREEMAP, - refresh: function (newOption) { - this.clear(); - if (newOption) { - this.option = newOption; - this.series = this.option.series; - } - this._treesMap = {}; - var series = this.series; - var legend = this.component.legend; - for (var i = 0; i < series.length; i++) { - if (series[i].type === ecConfig.CHART_TYPE_TREEMAP) { - series[i] = this.reformOption(series[i]); - var seriesName = series[i].name || ''; - this.selectedMap[seriesName] = legend ? legend.isSelected(seriesName) : true; - if (!this.selectedMap[seriesName]) { - continue; - } - this._buildSeries(series[i], i); - } - } - }, - _buildSeries: function (series, seriesIndex) { - var tree = Tree.fromOptionData(series.name, series.data); - this._treesMap[seriesIndex] = tree; - var treeRoot = series.root && tree.getNodeById(series.root) || tree.root; - this._buildTreemap(treeRoot, seriesIndex); - }, - _buildTreemap: function (treeRoot, seriesIndex) { - var shapeList = this.shapeList; - for (var i = 0; i < shapeList.length;) { - var shape = shapeList[i]; - if (ecData.get(shape, 'seriesIndex') === seriesIndex) { - this.zr.delShape(shapeList[i]); - shapeList.splice(i, 1); - } else { - i++; - } - } - var currentShapeLen = shapeList.length; - var series = this.series[seriesIndex]; - var itemStyle = series.itemStyle; - var treemapWidth = this.parsePercent(series.size[0], this.zr.getWidth()) || 400; - var treemapHeight = this.parsePercent(series.size[1], this.zr.getHeight()) || 500; - var center = this.parseCenter(this.zr, series.center); - var treemapX = center[0] - treemapWidth * 0.5; - var treemapY = center[1] - treemapHeight * 0.5; - var treemapArea = treemapWidth * treemapHeight; - var sum = 0; - var areaArr = []; - var children = treeRoot.children; - for (var i = 0; i < children.length; i++) { - sum += children[i].data.value; - } - for (var j = 0; j < children.length; j++) { - areaArr.push(children[j].data.value * treemapArea / sum); - } - var treeMapLayout = new TreeMapLayout({ - x: treemapX, - y: treemapY, - width: treemapWidth, - height: treemapHeight - }); - var locationArr = treeMapLayout.run(areaArr); - for (var k = 0; k < locationArr.length; k++) { - var dataItem = children[k].data; - var rect = locationArr[k]; - var queryTarget = [ - dataItem.itemStyle, - itemStyle - ]; - var itemStyleMerged = this.deepMerge(queryTarget); - if (!itemStyleMerged.normal.color) { - itemStyleMerged.normal.color = this.zr.getColor(k); - } - if (!itemStyleMerged.emphasis.color) { - itemStyleMerged.emphasis.color = itemStyleMerged.normal.color; - } - this._buildItem(dataItem, itemStyleMerged, rect, seriesIndex, k); - if (dataItem.children) { - this._buildChildrenTreemap(dataItem.children, itemStyleMerged, rect, seriesIndex); - } - } - if (this.query(series, 'itemStyle.normal.breadcrumb.show')) { - this._buildBreadcrumb(treeRoot, seriesIndex, treemapX, treemapY + treemapHeight); - } - for (var i = currentShapeLen; i < shapeList.length; i++) { - this.zr.addShape(shapeList[i]); - } - }, - _buildItem: function (dataItem, itemStyle, rect, seriesIndex, dataIndex) { - var series = this.series; - var rectangle = this.getRectangle(dataItem, itemStyle, rect); - ecData.pack(rectangle, series[seriesIndex], seriesIndex, dataItem, dataIndex, dataItem.name); - this.shapeList.push(rectangle); - }, - getRectangle: function (dataItem, itemStyle, rect) { - var emphasis = itemStyle.emphasis; - var normal = itemStyle.normal; - var textShape = this.getLabel(itemStyle, rect, dataItem.name, dataItem.value); - var hoverable = this.option.hoverable; - var rectangleShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: hoverable, - clickable: true, - style: zrUtil.merge({ - x: rect.x, - y: rect.y, - width: rect.width, - height: rect.height, - brushType: 'both', - color: normal.color, - lineWidth: normal.borderWidth, - strokeColor: normal.borderColor - }, textShape.style, true), - highlightStyle: zrUtil.merge({ - color: emphasis.color, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor - }, textShape.highlightStyle, true) - }; - return new RectangleShape(rectangleShape); - }, - getLabel: function (itemStyle, rect, name, value) { - var normalTextStyle = itemStyle.normal.label.textStyle; - var queryTarget = [ - itemStyle.emphasis.label.textStyle, - normalTextStyle - ]; - var emphasisTextStyle = this.deepMerge(queryTarget); - var formatter = itemStyle.normal.label.formatter; - var text = this.getLabelText(name, value, formatter); - var textFont = this.getFont(normalTextStyle); - var textWidth = toolArea.getTextWidth(text, textFont); - var textHeight = toolArea.getTextHeight(text, textFont); - var emphasisFormatter = this.deepQuery([ - itemStyle.emphasis, - itemStyle.normal - ], 'label.formatter'); - var emphasisText = this.getLabelText(name, value, emphasisFormatter); - var emphasisTextFont = this.getFont(emphasisTextStyle); - var emphasisTextWidth = toolArea.getTextWidth(text, emphasisTextFont); - var emphasisTextHeight = toolArea.getTextHeight(text, emphasisTextFont); - if (!itemStyle.normal.label.show) { - text = ''; - } else if (itemStyle.normal.label.x + textWidth > rect.width || itemStyle.normal.label.y + textHeight > rect.height) { - text = ''; - } - if (!itemStyle.emphasis.label.show) { - emphasisText = ''; - } else if (emphasisTextStyle.x + emphasisTextWidth > rect.width || emphasisTextStyle.y + emphasisTextHeight > rect.height) { - emphasisText = ''; - } - var textShape = { - style: { - textX: rect.x + itemStyle.normal.label.x, - textY: rect.y + itemStyle.normal.label.y, - text: text, - textPosition: 'specific', - textColor: normalTextStyle.color, - textFont: textFont - }, - highlightStyle: { - textX: rect.x + itemStyle.emphasis.label.x, - textY: rect.y + itemStyle.emphasis.label.y, - text: emphasisText, - textColor: emphasisTextStyle.color, - textPosition: 'specific' - } - }; - return textShape; - }, - getLabelText: function (name, value, formatter) { - if (formatter) { - if (typeof formatter === 'function') { - return formatter.call(this.myChart, name, value); - } else if (typeof formatter === 'string') { - formatter = formatter.replace('{b}', '{b0}').replace('{c}', '{c0}'); - formatter = formatter.replace('{b0}', name).replace('{c0}', value); - return formatter; - } - } else { - return name; - } - }, - _buildChildrenTreemap: function (data, itemStyle, rect, seriesIndex) { - var treemapArea = rect.width * rect.height; - var sum = 0; - var areaArr = []; - for (var i = 0; i < data.length; i++) { - sum += data[i].value; - } - for (var j = 0; j < data.length; j++) { - areaArr.push(data[j].value * treemapArea / sum); - } - var treeMapLayout = new TreeMapLayout({ - x: rect.x, - y: rect.y, - width: rect.width, - height: rect.height - }); - var locationArr = treeMapLayout.run(areaArr); - var lineWidth = itemStyle.normal.childBorderWidth; - var lineColor = itemStyle.normal.childBorderColor; - for (var k = 0; k < locationArr.length; k++) { - var item = locationArr[k]; - var lines = []; - if (rect.y.toFixed(2) !== item.y.toFixed(2)) { - lines.push(this._getLine(item.x, item.y, item.x + item.width, item.y, lineWidth, lineColor)); - } - if (rect.x.toFixed(2) !== item.x.toFixed(2)) { - lines.push(this._getLine(item.x, item.y, item.x, item.y + item.height, lineWidth, lineColor)); - } - if ((rect.y + rect.height).toFixed(2) !== (item.y + item.height).toFixed(2)) { - lines.push(this._getLine(item.x, item.y + item.height, item.x + item.width, item.y + item.height, lineWidth, lineColor)); - } - if ((rect.x + rect.width).toFixed(2) !== (item.x + item.width).toFixed(2)) { - lines.push(this._getLine(item.x + item.width, item.y, item.x + item.width, item.y + item.height, lineWidth, lineColor)); - } - for (var l = 0; l < lines.length; l++) { - ecData.set(lines[l], 'seriesIndex', seriesIndex); - this.shapeList.push(lines[l]); - } - } - }, - _getLine: function (xStart, yStart, xEnd, yEnd, lineWidth, lineColor) { - var lineShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: xStart, - yStart: yStart, - xEnd: xEnd, - yEnd: yEnd, - lineWidth: lineWidth, - strokeColor: lineColor - } - }; - return new LineShape(lineShape); - }, - _buildBreadcrumb: function (treeRoot, seriesIndex, x, y) { - var stack = []; - var current = treeRoot; - while (current) { - stack.unshift(current.data.name); - current = current.parent; - } - var series = this.series[seriesIndex]; - var textStyle = this.query(series, 'itemStyle.normal.breadcrumb.textStyle') || {}; - var textEmphasisStyle = this.query(series, 'itemStyle.emphasis.breadcrumb.textStyle') || {}; - var commonStyle = { - y: y + 10, - textBaseline: 'top', - textAlign: 'left', - color: textStyle.color, - textFont: this.getFont(textStyle) - }; - var commonHighlightStyle = { - brushType: 'fill', - color: textEmphasisStyle.color || zrColor.lift(textStyle.color, -0.3), - textFont: this.getFont(textEmphasisStyle) - }; - for (var i = 0; i < stack.length; i++) { - var textShape = new TextShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: zrUtil.merge({ - x: x, - text: stack[i] + (stack.length - 1 - i ? ' > ' : '') - }, commonStyle), - clickable: true, - highlightStyle: commonHighlightStyle - }); - ecData.set(textShape, 'seriesIndex', seriesIndex); - ecData.set(textShape, 'name', stack[i]); - x += textShape.getRect(textShape.style).width; - this.shapeList.push(textShape); - } - }, - __onclick: function (params) { - var target = params.target; - if (target) { - var seriesIndex = ecData.get(target, 'seriesIndex'); - var name = ecData.get(target, 'name'); - var tree = this._treesMap[seriesIndex]; - var root = tree.getNodeById(name); - if (root && root.children.length) { - this._buildTreemap(root, seriesIndex); - } - } - } - }; - zrUtil.inherits(Treemap, ChartBase); - require('../chart').define('treemap', Treemap); - return Treemap; -});define('echarts/layout/TreeMap', ['require'], function (require) { - function TreeMapLayout(opts) { - var row = { - x: opts.x, - y: opts.y, - width: opts.width, - height: opts.height - }; - this.x = opts.x; - this.y = opts.y; - this.width = opts.width; - this.height = opts.height; - } - TreeMapLayout.prototype.run = function (areas) { - var out = []; - this._squarify(areas, { - x: this.x, - y: this.y, - width: this.width, - height: this.height - }, out); - return out; - }; - TreeMapLayout.prototype._squarify = function (areas, row, out) { - var layoutDirection = 'VERTICAL'; - var width = row.width; - var height = row.height; - if (row.width < row.height) { - layoutDirection = 'HORIZONTAL'; - width = row.height; - height = row.width; - } - var shapeArr = this._getShapeListInAbstractRow(areas, width, height); - for (var i = 0; i < shapeArr.length; i++) { - shapeArr[i].x = 0; - shapeArr[i].y = 0; - for (var j = 0; j < i; j++) { - shapeArr[i].y += shapeArr[j].height; - } - } - var nextRow = {}; - if (layoutDirection == 'VERTICAL') { - for (var k = 0; k < shapeArr.length; k++) { - out.push({ - x: shapeArr[k].x + row.x, - y: shapeArr[k].y + row.y, - width: shapeArr[k].width, - height: shapeArr[k].height - }); - } - nextRow = { - x: shapeArr[0].width + row.x, - y: row.y, - width: row.width - shapeArr[0].width, - height: row.height - }; - } else { - for (var l = 0; l < shapeArr.length; l++) { - out.push({ - x: shapeArr[l].y + row.x, - y: shapeArr[l].x + row.y, - width: shapeArr[l].height, - height: shapeArr[l].width - }); - } - nextRow = { - x: row.x, - y: row.y + shapeArr[0].width, - width: row.width, - height: row.height - shapeArr[0].width - }; - } - var nextAreaArr = areas.slice(shapeArr.length); - if (nextAreaArr.length === 0) { - return; - } else { - this._squarify(nextAreaArr, nextRow, out); - } - }; - TreeMapLayout.prototype._getShapeListInAbstractRow = function (areas, width, height) { - if (areas.length === 1) { - return [{ - width: width, - height: height - }]; - } - for (var count = 1; count < areas.length; count++) { - var shapeArr0 = this._placeFixedNumberRectangles(areas.slice(0, count), width, height); - var shapeArr1 = this._placeFixedNumberRectangles(areas.slice(0, count + 1), width, height); - if (this._isFirstBetter(shapeArr0, shapeArr1)) { - return shapeArr0; - } - } - }; - TreeMapLayout.prototype._placeFixedNumberRectangles = function (areaSubArr, width, height) { - var count = areaSubArr.length; - var shapeArr = []; - var sum = 0; - for (var i = 0; i < areaSubArr.length; i++) { - sum += areaSubArr[i]; - } - var cellWidth = sum / height; - for (var j = 0; j < count; j++) { - var cellHeight = height * areaSubArr[j] / sum; - shapeArr.push({ - width: cellWidth, - height: cellHeight - }); - } - return shapeArr; - }; - TreeMapLayout.prototype._isFirstBetter = function (shapeArr0, shapeArr1) { - var ratio0 = shapeArr0[0].height / shapeArr0[0].width; - ratio0 = ratio0 > 1 ? 1 / ratio0 : ratio0; - var ratio1 = shapeArr1[0].height / shapeArr1[0].width; - ratio1 = ratio1 > 1 ? 1 / ratio1 : ratio1; - if (Math.abs(ratio0 - 1) <= Math.abs(ratio1 - 1)) { - return true; - } - return false; - }; - return TreeMapLayout; -});define('echarts/data/Tree', [ - 'require', - 'zrender/tool/util' -], function (require) { - var zrUtil = require('zrender/tool/util'); - function TreeNode(id, data) { - this.id = id; - this.depth = 0; - this.height = 0; - this.children = []; - this.parent = null; - this.data = data || null; - } - TreeNode.prototype.add = function (child) { - var children = this.children; - if (child.parent === this) { - return; - } - children.push(child); - child.parent = this; - }; - TreeNode.prototype.remove = function (child) { - var children = this.children; - var idx = zrUtil.indexOf(children, child); - if (idx >= 0) { - children.splice(idx, 1); - child.parent = null; - } - }; - TreeNode.prototype.traverse = function (cb, context) { - cb.call(context, this); - for (var i = 0; i < this.children.length; i++) { - this.children[i].traverse(cb, context); - } - }; - TreeNode.prototype.updateDepthAndHeight = function (depth) { - var height = 0; - this.depth = depth; - for (var i = 0; i < this.children.length; i++) { - var child = this.children[i]; - child.updateDepthAndHeight(depth + 1); - if (child.height > height) { - height = child.height; - } - } - this.height = height + 1; - }; - TreeNode.prototype.getNodeById = function (id) { - if (this.id === id) { - return this; - } - for (var i = 0; i < this.children.length; i++) { - var res = this.children[i].getNodeById(id); - if (res) { - return res; - } - } - }; - function Tree(id) { - this.root = new TreeNode(id); - } - Tree.prototype.traverse = function (cb, context) { - this.root.traverse(cb, context); - }; - Tree.prototype.getSubTree = function (id) { - var root = this.getNodeById(id); - if (root) { - var tree = new Tree(root.id); - tree.root = root; - return tree; - } - }; - Tree.prototype.getNodeById = function (id) { - return this.root.getNodeById(id); - }; - Tree.fromOptionData = function (id, data) { - var tree = new Tree(id); - var rootNode = tree.root; - rootNode.data = { - name: id, - children: data - }; - function buildHierarchy(dataNode, parentNode) { - var node = new TreeNode(dataNode.name, dataNode); - parentNode.add(node); - var children = dataNode.children; - if (children) { - for (var i = 0; i < children.length; i++) { - buildHierarchy(children[i], node); - } - } - } - for (var i = 0; i < data.length; i++) { - buildHierarchy(data[i], rootNode); - } - tree.root.updateDepthAndHeight(0); - return tree; - }; - Tree.fromGraph = function (graph) { - function buildHierarchy(root) { - var graphNode = graph.getNodeById(root.id); - for (var i = 0; i < graphNode.outEdges.length; i++) { - var edge = graphNode.outEdges[i]; - var childTreeNode = treeNodesMap[edge.node2.id]; - root.children.push(childTreeNode); - buildHierarchy(childTreeNode); - } - } - var treeMap = {}; - var treeNodesMap = {}; - for (var i = 0; i < graph.nodes.length; i++) { - var node = graph.nodes[i]; - var treeNode; - if (node.inDegree() === 0) { - treeMap[node.id] = new Tree(node.id); - treeNode = treeMap[node.id].root; - } else { - treeNode = new TreeNode(node.id); - } - treeNode.data = node.data; - treeNodesMap[node.id] = treeNode; - } - var treeList = []; - for (var id in treeMap) { - buildHierarchy(treeMap[id].root); - treeMap[id].root.updateDepthAndHeight(0); - treeList.push(treeMap[id]); - } - return treeList; - }; - return Tree; -});define('echarts/chart/tree', [ - 'require', - './base', - '../util/shape/Icon', - 'zrender/shape/Image', - 'zrender/shape/Line', - 'zrender/shape/BezierCurve', - '../layout/Tree', - '../data/Tree', - '../config', - '../util/ecData', - 'zrender/config', - 'zrender/tool/event', - 'zrender/tool/util', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var GOLDEN_SECTION = 0.618; - var IconShape = require('../util/shape/Icon'); - var ImageShape = require('zrender/shape/Image'); - var LineShape = require('zrender/shape/Line'); - var BezierCurveShape = require('zrender/shape/BezierCurve'); - var TreeLayout = require('../layout/Tree'); - var TreeData = require('../data/Tree'); - var ecConfig = require('../config'); - ecConfig.tree = { - zlevel: 1, - z: 2, - calculable: false, - clickable: true, - rootLocation: {}, - orient: 'vertical', - symbol: 'circle', - symbolSize: 20, - nodePadding: 30, - layerPadding: 100, - itemStyle: { - normal: { - label: { show: true }, - lineStyle: { - width: 1, - color: '#777', - type: 'curve' - } - }, - emphasis: {} - } - }; - var ecData = require('../util/ecData'); - var zrConfig = require('zrender/config'); - var zrEvent = require('zrender/tool/event'); - var zrUtil = require('zrender/tool/util'); - function Tree(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Tree.prototype = { - type: ecConfig.CHART_TYPE_TREE, - _buildShape: function (series, seriesIndex) { - var data = series.data[0]; - this.tree = TreeData.fromOptionData(data.name, data.children); - this.tree.root.data = data; - this._setTreeShape(series); - this.tree.traverse(function (treeNode) { - this._buildItem(treeNode, series, seriesIndex); - if (treeNode.children.length > 0) { - this._buildLink(treeNode, series); - } - }, this); - var panable = series.roam === true || series.roam === 'move'; - var zoomable = series.roam === true || series.roam === 'scale'; - this.zr.modLayer(this.getZlevelBase(), { - panable: panable, - zoomable: zoomable - }); - if (this.query('markPoint.effect.show') || this.query('markLine.effect.show')) { - this.zr.modLayer(ecConfig.EFFECT_ZLEVEL, { - panable: panable, - zoomable: zoomable - }); - } - this.addShapeList(); - }, - _buildItem: function (treeNode, serie, seriesIndex) { - var queryTarget = [ - treeNode.data, - serie - ]; - var symbol = this.deepQuery(queryTarget, 'symbol'); - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = normal.color || this.zr.getColor(); - var emphasisColor = emphasis.color || this.zr.getColor(); - var angle = -treeNode.layout.angle || 0; - if (treeNode.id === this.tree.root.id) { - angle = 0; - } - var textPosition = 'right'; - if (Math.abs(angle) >= Math.PI / 2 && Math.abs(angle) < Math.PI * 3 / 2) { - angle += Math.PI; - textPosition = 'left'; - } - var rotation = [ - angle, - treeNode.layout.position[0], - treeNode.layout.position[1] - ]; - var shape = new IconShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - rotation: rotation, - clickable: this.deepQuery(queryTarget, 'clickable'), - style: { - x: treeNode.layout.position[0] - treeNode.layout.width * 0.5, - y: treeNode.layout.position[1] - treeNode.layout.height * 0.5, - width: treeNode.layout.width, - height: treeNode.layout.height, - iconType: symbol, - color: normalColor, - brushType: 'both', - lineWidth: normal.borderWidth, - strokeColor: normal.borderColor - }, - highlightStyle: { - color: emphasisColor, - lineWidth: emphasis.borderWidth, - strokeColor: emphasis.borderColor - } - }); - if (shape.style.iconType.match('image')) { - shape.style.image = shape.style.iconType.replace(new RegExp('^image:\\/\\/'), ''); - shape = new ImageShape({ - rotation: rotation, - style: shape.style, - highlightStyle: shape.highlightStyle, - clickable: shape.clickable, - zlevel: this.getZlevelBase(), - z: this.getZBase() - }); - } - if (this.deepQuery(queryTarget, 'itemStyle.normal.label.show')) { - shape.style.text = treeNode.data.label == null ? treeNode.id : treeNode.data.label; - shape.style.textPosition = this.deepQuery(queryTarget, 'itemStyle.normal.label.position'); - if (serie.orient === 'radial' && shape.style.textPosition !== 'inside') { - shape.style.textPosition = textPosition; - } - shape.style.textColor = this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle.color'); - shape.style.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle') || {}); - } - if (this.deepQuery(queryTarget, 'itemStyle.emphasis.label.show')) { - shape.highlightStyle.textPosition = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.position'); - shape.highlightStyle.textColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle.color'); - shape.highlightStyle.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle') || {}); - } - ecData.pack(shape, serie, seriesIndex, treeNode.data, 0, treeNode.id); - this.shapeList.push(shape); - }, - _buildLink: function (parentNode, serie) { - var lineStyle = serie.itemStyle.normal.lineStyle; - if (lineStyle.type === 'broken') { - this._buildBrokenLine(parentNode, lineStyle, serie); - return; - } - for (var i = 0; i < parentNode.children.length; i++) { - var xStart = parentNode.layout.position[0]; - var yStart = parentNode.layout.position[1]; - var xEnd = parentNode.children[i].layout.position[0]; - var yEnd = parentNode.children[i].layout.position[1]; - switch (lineStyle.type) { - case 'curve': - this._buildBezierCurve(parentNode, parentNode.children[i], lineStyle, serie); - break; - case 'broken': - break; - default: - var shape = this._getLine(xStart, yStart, xEnd, yEnd, lineStyle); - this.shapeList.push(shape); - } - } - }, - _buildBrokenLine: function (parentNode, lineStyle, serie) { - var solidLineStyle = zrUtil.clone(lineStyle); - solidLineStyle.type = 'solid'; - var shapes = []; - var xStart = parentNode.layout.position[0]; - var yStart = parentNode.layout.position[1]; - var orient = serie.orient; - var yEnd = parentNode.children[0].layout.position[1]; - var xMiddle = xStart; - var yMiddle = yStart + (yEnd - yStart) * (1 - GOLDEN_SECTION); - var xMiddleStart = parentNode.children[0].layout.position[0]; - var yMiddleStart = yMiddle; - var xMiddleEnd = parentNode.children[parentNode.children.length - 1].layout.position[0]; - var yMiddleEnd = yMiddle; - if (orient === 'horizontal') { - var xEnd = parentNode.children[0].layout.position[0]; - xMiddle = xStart + (xEnd - xStart) * (1 - GOLDEN_SECTION); - yMiddle = yStart; - xMiddleStart = xMiddle; - yMiddleStart = parentNode.children[0].layout.position[1]; - xMiddleEnd = xMiddle; - yMiddleEnd = parentNode.children[parentNode.children.length - 1].layout.position[1]; - } - shapes.push(this._getLine(xStart, yStart, xMiddle, yMiddle, solidLineStyle)); - shapes.push(this._getLine(xMiddleStart, yMiddleStart, xMiddleEnd, yMiddleEnd, solidLineStyle)); - for (var i = 0; i < parentNode.children.length; i++) { - xEnd = parentNode.children[i].layout.position[0]; - yEnd = parentNode.children[i].layout.position[1]; - if (orient === 'horizontal') { - yMiddleStart = yEnd; - } else { - xMiddleStart = xEnd; - } - shapes.push(this._getLine(xMiddleStart, yMiddleStart, xEnd, yEnd, solidLineStyle)); - } - this.shapeList = this.shapeList.concat(shapes); - }, - _getLine: function (xStart, yStart, xEnd, yEnd, lineStyle) { - if (xStart === xEnd) { - xStart = xEnd = this.subPixelOptimize(xStart, lineStyle.width); - } - if (yStart === yEnd) { - yStart = yEnd = this.subPixelOptimize(yStart, lineStyle.width); - } - return new LineShape({ - zlevel: this.getZlevelBase(), - hoverable: false, - style: zrUtil.merge({ - xStart: xStart, - yStart: yStart, - xEnd: xEnd, - yEnd: yEnd, - lineType: lineStyle.type, - strokeColor: lineStyle.color, - lineWidth: lineStyle.width - }, lineStyle, true) - }); - }, - _buildBezierCurve: function (parentNode, treeNode, lineStyle, serie) { - var offsetRatio = GOLDEN_SECTION; - var orient = serie.orient; - var xStart = parentNode.layout.position[0]; - var yStart = parentNode.layout.position[1]; - var xEnd = treeNode.layout.position[0]; - var yEnd = treeNode.layout.position[1]; - var cpX1 = xStart; - var cpY1 = (yEnd - yStart) * offsetRatio + yStart; - var cpX2 = xEnd; - var cpY2 = (yEnd - yStart) * (1 - offsetRatio) + yStart; - if (orient === 'horizontal') { - cpX1 = (xEnd - xStart) * offsetRatio + xStart; - cpY1 = yStart; - cpX2 = (xEnd - xStart) * (1 - offsetRatio) + xStart; - cpY2 = yEnd; - } else if (orient === 'radial') { - if (parentNode.id === this.tree.root.id) { - cpX1 = (xEnd - xStart) * offsetRatio + xStart; - cpY1 = (yEnd - yStart) * offsetRatio + yStart; - cpX2 = (xEnd - xStart) * (1 - offsetRatio) + xStart; - cpY2 = (yEnd - yStart) * (1 - offsetRatio) + yStart; - } else { - var xStartOrigin = parentNode.layout.originPosition[0]; - var yStartOrigin = parentNode.layout.originPosition[1]; - var xEndOrigin = treeNode.layout.originPosition[0]; - var yEndOrigin = treeNode.layout.originPosition[1]; - var rootX = this.tree.root.layout.position[0]; - var rootY = this.tree.root.layout.position[1]; - cpX1 = xStartOrigin; - cpY1 = (yEndOrigin - yStartOrigin) * offsetRatio + yStartOrigin; - cpX2 = xEndOrigin; - cpY2 = (yEndOrigin - yStartOrigin) * (1 - offsetRatio) + yStartOrigin; - var rad = (cpX1 - this.minX) / this.width * Math.PI * 2; - cpX1 = cpY1 * Math.cos(rad) + rootX; - cpY1 = cpY1 * Math.sin(rad) + rootY; - rad = (cpX2 - this.minX) / this.width * Math.PI * 2; - cpX2 = cpY2 * Math.cos(rad) + rootX; - cpY2 = cpY2 * Math.sin(rad) + rootY; - } - } - var shape = new BezierCurveShape({ - zlevel: this.getZlevelBase(), - hoverable: false, - style: zrUtil.merge({ - xStart: xStart, - yStart: yStart, - cpX1: cpX1, - cpY1: cpY1, - cpX2: cpX2, - cpY2: cpY2, - xEnd: xEnd, - yEnd: yEnd, - strokeColor: lineStyle.color, - lineWidth: lineStyle.width - }, lineStyle, true) - }); - this.shapeList.push(shape); - }, - _setTreeShape: function (serie) { - var treeLayout = new TreeLayout({ - nodePadding: serie.nodePadding, - layerPadding: serie.layerPadding - }); - this.tree.traverse(function (treeNode) { - var queryTarget = [ - treeNode.data, - serie - ]; - var symbolSize = this.deepQuery(queryTarget, 'symbolSize'); - if (typeof symbolSize === 'number') { - symbolSize = [ - symbolSize, - symbolSize - ]; - } - treeNode.layout = { - width: symbolSize[0], - height: symbolSize[1] - }; - }, this); - treeLayout.run(this.tree); - var orient = serie.orient; - var rootX = serie.rootLocation.x; - var rootY = serie.rootLocation.y; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - if (rootX === 'center') { - rootX = zrWidth * 0.5; - } else { - rootX = this.parsePercent(rootX, zrWidth); - } - if (rootY === 'center') { - rootY = zrHeight * 0.5; - } else { - rootY = this.parsePercent(rootY, zrHeight); - } - rootY = this.parsePercent(rootY, zrHeight); - if (orient === 'horizontal') { - rootX = isNaN(rootX) ? 10 : rootX; - rootY = isNaN(rootY) ? zrHeight * 0.5 : rootY; - } - if (orient === 'radial') { - rootX = isNaN(rootX) ? zrWidth * 0.5 : rootX; - rootY = isNaN(rootY) ? zrHeight * 0.5 : rootY; - } else { - rootX = isNaN(rootX) ? zrWidth * 0.5 : rootX; - rootY = isNaN(rootY) ? 10 : rootY; - } - var originRootX = this.tree.root.layout.position[0]; - if (orient === 'radial') { - var minX = Infinity; - var maxX = 0; - var maxWidth = 0; - this.tree.traverse(function (treeNode) { - maxX = Math.max(maxX, treeNode.layout.position[0]); - minX = Math.min(minX, treeNode.layout.position[0]); - maxWidth = Math.max(maxWidth, treeNode.layout.width); - }); - this.width = maxX - minX + 2 * maxWidth; - this.minX = minX; - } - this.tree.traverse(function (treeNode) { - var x; - var y; - if (orient === 'vertical' && serie.direction === 'inverse') { - x = treeNode.layout.position[0] - originRootX + rootX; - y = rootY - treeNode.layout.position[1]; - } else if (orient === 'vertical') { - x = treeNode.layout.position[0] - originRootX + rootX; - y = treeNode.layout.position[1] + rootY; - } else if (orient === 'horizontal' && serie.direction === 'inverse') { - y = treeNode.layout.position[0] - originRootX + rootY; - x = rootX - treeNode.layout.position[1]; - } else if (orient === 'horizontal') { - y = treeNode.layout.position[0] - originRootX + rootY; - x = treeNode.layout.position[1] + rootX; - } else { - x = treeNode.layout.position[0]; - y = treeNode.layout.position[1]; - treeNode.layout.originPosition = [ - x, - y - ]; - var r = y; - var angle = (x - minX) / this.width * Math.PI * 2; - x = r * Math.cos(angle) + rootX; - y = r * Math.sin(angle) + rootY; - treeNode.layout.angle = angle; - } - treeNode.layout.position[0] = x; - treeNode.layout.position[1] = y; - }, this); - }, - refresh: function (newOption) { - this.clear(); - if (newOption) { - this.option = newOption; - this.series = this.option.series; - } - var series = this.series; - var legend = this.component.legend; - for (var i = 0; i < series.length; i++) { - if (series[i].type === ecConfig.CHART_TYPE_TREE) { - series[i] = this.reformOption(series[i]); - var seriesName = series[i].name || ''; - this.selectedMap[seriesName] = legend ? legend.isSelected(seriesName) : true; - if (!this.selectedMap[seriesName]) { - continue; - } - this._buildSeries(series[i], i); - } - } - }, - _buildSeries: function (series, seriesIndex) { - this._buildShape(series, seriesIndex); - } - }; - zrUtil.inherits(Tree, ChartBase); - require('../chart').define('tree', Tree); - return Tree; -});define('echarts/layout/Tree', [ - 'require', - 'zrender/tool/vector' -], function (require) { - var vec2 = require('zrender/tool/vector'); - function TreeLayout(opts) { - opts = opts || {}; - this.nodePadding = opts.nodePadding || 30; - this.layerPadding = opts.layerPadding || 100; - this._layerOffsets = []; - this._layers = []; - } - TreeLayout.prototype.run = function (tree) { - this._layerOffsets.length = 0; - for (var i = 0; i < tree.root.height + 1; i++) { - this._layerOffsets[i] = 0; - this._layers[i] = []; - } - this._updateNodeXPosition(tree.root); - var root = tree.root; - this._updateNodeYPosition(root, 0, root.layout.height); - }; - TreeLayout.prototype._updateNodeXPosition = function (node) { - var minX = Infinity; - var maxX = -Infinity; - node.layout.position = node.layout.position || vec2.create(); - for (var i = 0; i < node.children.length; i++) { - var child = node.children[i]; - this._updateNodeXPosition(child); - var x = child.layout.position[0]; - if (x < minX) { - minX = x; - } - if (x > maxX) { - maxX = x; - } - } - if (node.children.length > 0) { - node.layout.position[0] = (minX + maxX) / 2; - } else { - node.layout.position[0] = 0; - } - var off = this._layerOffsets[node.depth] || 0; - if (off > node.layout.position[0]) { - var shift = off - node.layout.position[0]; - this._shiftSubtree(node, shift); - for (var i = node.depth + 1; i < node.height + node.depth; i++) { - this._layerOffsets[i] += shift; - } - } - this._layerOffsets[node.depth] = node.layout.position[0] + node.layout.width + this.nodePadding; - this._layers[node.depth].push(node); - }; - TreeLayout.prototype._shiftSubtree = function (root, offset) { - root.layout.position[0] += offset; - for (var i = 0; i < root.children.length; i++) { - this._shiftSubtree(root.children[i], offset); - } - }; - TreeLayout.prototype._updateNodeYPosition = function (node, y, prevLayerHeight) { - node.layout.position[1] = y; - var layerHeight = 0; - for (var i = 0; i < node.children.length; i++) { - layerHeight = Math.max(node.children[i].layout.height, layerHeight); - } - var layerPadding = this.layerPadding; - if (typeof layerPadding === 'function') { - layerPadding = layerPadding(node.depth); - } - for (var i = 0; i < node.children.length; i++) { - this._updateNodeYPosition(node.children[i], y + layerPadding + prevLayerHeight, layerHeight); - } - }; - return TreeLayout; -});define('echarts/chart/wordCloud', [ - 'require', - './base', - 'zrender/shape/Text', - '../layout/WordCloud', - '../component/grid', - '../component/dataRange', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/color', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var TextShape = require('zrender/shape/Text'); - var CloudLayout = require('../layout/WordCloud'); - require('../component/grid'); - require('../component/dataRange'); - var ecConfig = require('../config'); - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - ecConfig.wordCloud = { - zlevel: 0, - z: 2, - clickable: true, - center: [ - '50%', - '50%' - ], - size: [ - '40%', - '40%' - ], - textRotation: [ - 0, - 90 - ], - textPadding: 0, - autoSize: { - enable: true, - minSize: 12 - }, - itemStyle: { - normal: { - textStyle: { - fontSize: function (data) { - return data.value; - } - } - } - } - }; - function Cloud(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Cloud.prototype = { - type: ecConfig.CHART_TYPE_WORDCLOUD, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this._init(); - }, - _init: function () { - var series = this.series; - this.backupShapeList(); - var legend = this.component.legend; - for (var i = 0; i < series.length; i++) { - if (series[i].type === ecConfig.CHART_TYPE_WORDCLOUD) { - series[i] = this.reformOption(series[i]); - var serieName = series[i].name || ''; - this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true; - if (!this.selectedMap[serieName]) { - continue; - } - this.buildMark(i); - this._initSerie(series[i]); - } - } - }, - _initSerie: function (serie) { - var textStyle = serie.itemStyle.normal.textStyle; - var size = [ - this.parsePercent(serie.size[0], this.zr.getWidth()) || 200, - this.parsePercent(serie.size[1], this.zr.getHeight()) || 200 - ]; - var center = this.parseCenter(this.zr, serie.center); - var layoutConfig = { - size: size, - wordletype: { autoSizeCal: serie.autoSize }, - center: center, - rotate: serie.textRotation, - padding: serie.textPadding, - font: textStyle.fontFamily, - fontSize: textStyle.fontSize, - fontWeight: textStyle.fontWeight, - fontStyle: textStyle.fontStyle, - text: function (d) { - return d.name; - }, - data: serie.data - }; - var clouds = new CloudLayout(layoutConfig); - var self = this; - clouds.end(function (d) { - self._buildShapes(d); - }); - clouds.start(); - }, - _buildShapes: function (data) { - var len = data.length; - for (var i = 0; i < len; i++) { - this._buildTextShape(data[i], 0, i); - } - this.addShapeList(); - }, - _buildTextShape: function (oneText, seriesIndex, dataIndex) { - var series = this.series; - var serie = series[seriesIndex]; - var serieName = serie.name || ''; - var data = serie.data[dataIndex]; - var queryTarget = [ - data, - serie - ]; - var legend = this.component.legend; - var defaultColor = legend ? legend.getColor(serieName) : this.zr.getColor(seriesIndex); - var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {}; - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {}; - var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor; - var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor); - var textShape = new TextShape({ - zlevel: serie.zlevel, - z: serie.z, - hoverable: true, - clickable: this.deepQuery(queryTarget, 'clickable'), - style: { - x: 0, - y: 0, - text: oneText.text, - color: normalColor, - textFont: [ - oneText.style, - oneText.weight, - oneText.size + 'px', - oneText.font - ].join(' '), - textBaseline: 'alphabetic', - textAlign: 'center' - }, - highlightStyle: { - brushType: emphasis.borderWidth ? 'both' : 'fill', - color: emphasisColor, - lineWidth: emphasis.borderWidth || 0, - strokeColor: emphasis.borderColor - }, - position: [ - oneText.x, - oneText.y - ], - rotation: [ - -oneText.rotate / 180 * Math.PI, - 0, - 0 - ] - }); - ecData.pack(textShape, serie, seriesIndex, data, dataIndex, data.name); - this.shapeList.push(textShape); - } - }; - zrUtil.inherits(Cloud, ChartBase); - require('../chart').define('wordCloud', Cloud); - return Cloud; -});define('echarts/layout/WordCloud', [ - 'require', - '../layout/WordCloudRectZero', - 'zrender/tool/util' -], function (require) { - var ZeroArray = require('../layout/WordCloudRectZero'); - var zrUtil = require('zrender/tool/util'); - function CloudLayout(option) { - this._init(option); - } - CloudLayout.prototype = { - start: function () { - var board = null; - var maxWit = 0; - var maxHit = 0; - var maxArea = 0; - var i = -1; - var tags = []; - var maxBounds = null; - var data = this.wordsdata; - var dfop = this.defaultOption; - var wordletype = dfop.wordletype; - var size = dfop.size; - var that = this; - var zeroArrayObj = new ZeroArray({ - type: wordletype.type, - width: size[0], - height: size[1] - }); - zeroArrayObj.calculate(function (options) { - board = options.initarr; - maxWit = options.maxWit; - maxHit = options.maxHit; - maxArea = options.area; - maxBounds = options.imgboard; - startStep(); - }, this); - return this; - function startStep() { - that.totalArea = maxArea; - if (wordletype.autoSizeCal.enable) { - that._autoCalTextSize(data, maxArea, maxWit, maxHit, wordletype.autoSizeCal.minSize); - } - if (dfop.timer) { - clearInterval(dfop.timer); - } - dfop.timer = setInterval(step, 0); - step(); - } - function step() { - var start = +new Date(); - var n = data.length; - var d; - while (+new Date() - start < dfop.timeInterval && ++i < n && dfop.timer) { - d = data[i]; - d.x = size[0] >> 1; - d.y = size[1] >> 1; - that._cloudSprite(d, data, i); - if (d.hasText && that._place(board, d, maxBounds)) { - tags.push(d); - d.x -= size[0] >> 1; - d.y -= size[1] >> 1; - } - } - if (i >= n) { - that.stop(); - that._fixTagPosition(tags); - dfop.endcallback(tags); - } - } - }, - _fixTagPosition: function (tags) { - var center = this.defaultOption.center; - for (var i = 0, len = tags.length; i < len; i++) { - tags[i].x += center[0]; - tags[i].y += center[1]; - } - }, - stop: function () { - if (this.defaultOption.timer) { - clearInterval(this.defaultOption.timer); - this.defaultOption.timer = null; - } - return this; - }, - end: function (v) { - if (v) { - this.defaultOption.endcallback = v; - } - return this; - }, - _init: function (option) { - this.defaultOption = {}; - this._initProperty(option); - this._initMethod(option); - this._initCanvas(); - this._initData(option.data); - }, - _initData: function (datas) { - var that = this; - var thatop = that.defaultOption; - this.wordsdata = datas.map(function (d, i) { - d.text = thatop.text.call(that, d, i); - d.font = thatop.font.call(that, d, i); - d.style = thatop.fontStyle.call(that, d, i); - d.weight = thatop.fontWeight.call(that, d, i); - d.rotate = thatop.rotate.call(that, d, i); - d.size = ~~thatop.fontSize.call(that, d, i); - d.padding = thatop.padding.call(that, d, i); - return d; - }).sort(function (a, b) { - return b.value - a.value; - }); - }, - _initMethod: function (option) { - var dfop = this.defaultOption; - dfop.text = option.text ? functor(option.text) : cloudText; - dfop.font = option.font ? functor(option.font) : cloudFont; - dfop.fontSize = option.fontSize ? functor(option.fontSize) : cloudFontSize; - dfop.fontStyle = option.fontStyle ? functor(option.fontStyle) : cloudFontNormal; - dfop.fontWeight = option.fontWeight ? functor(option.fontWeight) : cloudFontNormal; - dfop.rotate = option.rotate ? newCloudRotate(option.rotate) : cloudRotate; - dfop.padding = option.padding ? functor(option.padding) : cloudPadding; - dfop.center = option.center; - dfop.spiral = archimedeanSpiral; - dfop.endcallback = function () { - }; - dfop.rectangularSpiral = rectangularSpiral; - dfop.archimedeanSpiral = archimedeanSpiral; - function cloudText(d) { - return d.name; - } - function cloudFont() { - return 'sans-serif'; - } - function cloudFontNormal() { - return 'normal'; - } - function cloudFontSize(d) { - return d.value; - } - function cloudRotate() { - return 0; - } - function newCloudRotate(rotate) { - return function () { - return rotate[Math.round(Math.random() * (rotate.length - 1))]; - }; - } - function cloudPadding() { - return 0; - } - function archimedeanSpiral(size) { - var e = size[0] / size[1]; - return function (t) { - return [ - e * (t *= 0.1) * Math.cos(t), - t * Math.sin(t) - ]; - }; - } - function rectangularSpiral(size) { - var dy = 4; - var dx = dy * size[0] / size[1]; - var x = 0; - var y = 0; - return function (t) { - var sign = t < 0 ? -1 : 1; - switch (Math.sqrt(1 + 4 * sign * t) - sign & 3) { - case 0: - x += dx; - break; - case 1: - y += dy; - break; - case 2: - x -= dx; - break; - default: - y -= dy; - break; - } - return [ - x, - y - ]; - }; - } - function functor(v) { - return typeof v === 'function' ? v : function () { - return v; - }; - } - }, - _initProperty: function (option) { - var dfop = this.defaultOption; - dfop.size = option.size || [ - 256, - 256 - ]; - dfop.wordletype = option.wordletype; - dfop.words = option.words || []; - dfop.timeInterval = Infinity; - dfop.timer = null; - dfop.spirals = { - archimedean: dfop.archimedeanSpiral, - rectangular: dfop.rectangularSpiral - }; - zrUtil.merge(dfop, { - size: [ - 256, - 256 - ], - wordletype: { - type: 'RECT', - areaPresent: 0.058, - autoSizeCal: { - enable: true, - minSize: 12 - } - } - }); - }, - _initCanvas: function () { - var cloudRadians = Math.PI / 180; - var cw = 1 << 11 >> 5; - var ch = 1 << 11; - var canvas; - var ratio = 1; - if (typeof document !== 'undefined') { - canvas = document.createElement('canvas'); - canvas.width = 1; - canvas.height = 1; - ratio = Math.sqrt(canvas.getContext('2d').getImageData(0, 0, 1, 1).data.length >> 2); - canvas.width = (cw << 5) / ratio; - canvas.height = ch / ratio; - } else { - canvas = new Canvas(cw << 5, ch); - } - var c = canvas.getContext('2d'); - c.fillStyle = c.strokeStyle = 'red'; - c.textAlign = 'center'; - this.defaultOption.c = c; - this.defaultOption.cw = cw; - this.defaultOption.ch = ch; - this.defaultOption.ratio = ratio; - this.defaultOption.cloudRadians = cloudRadians; - }, - _cloudSprite: function (d, data, di) { - if (d.sprite) { - return; - } - var cw = this.defaultOption.cw; - var ch = this.defaultOption.ch; - var c = this.defaultOption.c; - var ratio = this.defaultOption.ratio; - var cloudRadians = this.defaultOption.cloudRadians; - c.clearRect(0, 0, (cw << 5) / ratio, ch / ratio); - var x = 0; - var y = 0; - var maxh = 0; - var n = data.length; - --di; - while (++di < n) { - d = data[di]; - c.save(); - c.font = d.style + ' ' + d.weight + ' ' + ~~((d.size + 1) / ratio) + 'px ' + d.font; - var w = c.measureText(d.text + 'm').width * ratio; - var h = d.size << 1; - if (d.rotate) { - var sr = Math.sin(d.rotate * cloudRadians); - var cr = Math.cos(d.rotate * cloudRadians); - var wcr = w * cr; - var wsr = w * sr; - var hcr = h * cr; - var hsr = h * sr; - w = Math.max(Math.abs(wcr + hsr), Math.abs(wcr - hsr)) + 31 >> 5 << 5; - h = ~~Math.max(Math.abs(wsr + hcr), Math.abs(wsr - hcr)); - } else { - w = w + 31 >> 5 << 5; - } - if (h > maxh) { - maxh = h; - } - if (x + w >= cw << 5) { - x = 0; - y += maxh; - maxh = 0; - } - if (y + h >= ch) { - break; - } - c.translate((x + (w >> 1)) / ratio, (y + (h >> 1)) / ratio); - if (d.rotate) { - c.rotate(d.rotate * cloudRadians); - } - c.fillText(d.text, 0, 0); - if (d.padding) { - c.lineWidth = 2 * d.padding; - c.strokeText(d.text, 0, 0); - } - c.restore(); - d.width = w; - d.height = h; - d.xoff = x; - d.yoff = y; - d.x1 = w >> 1; - d.y1 = h >> 1; - d.x0 = -d.x1; - d.y0 = -d.y1; - d.hasText = true; - x += w; - } - var pixels = c.getImageData(0, 0, (cw << 5) / ratio, ch / ratio).data; - var sprite = []; - while (--di >= 0) { - d = data[di]; - if (!d.hasText) { - continue; - } - var w = d.width; - var w32 = w >> 5; - var h = d.y1 - d.y0; - for (var i = 0; i < h * w32; i++) { - sprite[i] = 0; - } - x = d.xoff; - if (x == null) { - return; - } - y = d.yoff; - var seen = 0; - var seenRow = -1; - for (var j = 0; j < h; j++) { - for (var i = 0; i < w; i++) { - var k = w32 * j + (i >> 5); - var m = pixels[(y + j) * (cw << 5) + (x + i) << 2] ? 1 << 31 - i % 32 : 0; - sprite[k] |= m; - seen |= m; - } - if (seen) { - seenRow = j; - } else { - d.y0++; - h--; - j--; - y++; - } - } - d.y1 = d.y0 + seenRow; - d.sprite = sprite.slice(0, (d.y1 - d.y0) * w32); - } - }, - _place: function (board, tag, maxBounds) { - var size = this.defaultOption.size; - var perimeter = [ - { - x: 0, - y: 0 - }, - { - x: size[0], - y: size[1] - } - ]; - var startX = tag.x; - var startY = tag.y; - var maxDelta = Math.sqrt(size[0] * size[0] + size[1] * size[1]); - var s = this.defaultOption.spiral(size); - var dt = Math.random() < 0.5 ? 1 : -1; - var t = -dt; - var dxdy; - var dx; - var dy; - while (dxdy = s(t += dt)) { - dx = ~~dxdy[0]; - dy = ~~dxdy[1]; - if (Math.min(dx, dy) > maxDelta) { - break; - } - tag.x = startX + dx; - tag.y = startY + dy; - if (tag.x + tag.x0 < 0 || tag.y + tag.y0 < 0 || tag.x + tag.x1 > size[0] || tag.y + tag.y1 > size[1]) { - continue; - } - if (!cloudCollide(tag, board, size[0])) { - if (collideRects(tag, maxBounds)) { - var sprite = tag.sprite; - var w = tag.width >> 5; - var sw = size[0] >> 5; - var lx = tag.x - (w << 4); - var sx = lx & 127; - var msx = 32 - sx; - var h = tag.y1 - tag.y0; - var x = (tag.y + tag.y0) * sw + (lx >> 5); - var last; - for (var j = 0; j < h; j++) { - last = 0; - for (var i = 0; i <= w; i++) { - board[x + i] |= last << msx | (i < w ? (last = sprite[j * w + i]) >>> sx : 0); - } - x += sw; - } - delete tag.sprite; - return true; - } - } - } - return false; - function cloudCollide(tag, board, sw) { - sw >>= 5; - var sprite = tag.sprite; - var w = tag.width >> 5; - var lx = tag.x - (w << 4); - var sx = lx & 127; - var msx = 32 - sx; - var h = tag.y1 - tag.y0; - var x = (tag.y + tag.y0) * sw + (lx >> 5); - var last; - for (var j = 0; j < h; j++) { - last = 0; - for (var i = 0; i <= w; i++) { - if ((last << msx | (i < w ? (last = sprite[j * w + i]) >>> sx : 0)) & board[x + i]) { - return true; - } - } - x += sw; - } - return false; - } - function collideRects(a, maxBounds) { - return maxBounds.row[a.y] && maxBounds.cloumn[a.x] && a.x >= maxBounds.row[a.y].start && a.x <= maxBounds.row[a.y].end && a.y >= maxBounds.cloumn[a.x].start && a.y <= maxBounds.cloumn[a.x].end; - } - }, - _autoCalTextSize: function (data, shapeArea, maxwidth, maxheight, minSize) { - var sizesum = sum(data, function (k) { - return k.size; - }); - var i = data.length; - var maxareapre = 0.25; - var minTextSize = minSize; - var cw = this.defaultOption.cw; - var ch = this.defaultOption.ch; - var c = this.defaultOption.c; - var ratio = this.defaultOption.ratio; - var cloudRadians = this.defaultOption.cloudRadians; - var d; - var dpre; - while (i--) { - d = data[i]; - dpre = d.size / sizesum; - if (maxareapre) { - d.areapre = dpre < maxareapre ? dpre : maxareapre; - } else { - d.areapre = dpre; - } - d.area = shapeArea * d.areapre; - d.totalarea = shapeArea; - measureTextWitHitByarea(d); - } - function measureTextWitHitByarea(d) { - c.clearRect(0, 0, (cw << 5) / ratio, ch / ratio); - c.save(); - c.font = d.style + ' ' + d.weight + ' ' + ~~((d.size + 1) / ratio) + 'px ' + d.font; - var w = c.measureText(d.text + 'm').width * ratio, h = d.size << 1; - w = w + 31 >> 5 << 5; - c.restore(); - d.aw = w; - d.ah = h; - var k, rw, rh; - if (d.rotate) { - var sr = Math.sin(d.rotate * cloudRadians); - var cr = Math.cos(d.rotate * cloudRadians); - var wcr = w * cr; - var wsr = w * sr; - var hcr = h * cr; - var hsr = h * sr; - rw = Math.max(Math.abs(wcr + hsr), Math.abs(wcr - hsr)) + 31 >> 5 << 5; - rh = ~~Math.max(Math.abs(wsr + hcr), Math.abs(wsr - hcr)); - } - if (d.size <= minTextSize || d.rotate && w * h <= d.area && rw <= maxwidth && rh <= maxheight || w * h <= d.area && w <= maxwidth && h <= maxheight) { - d.area = w * h; - return; - } - if (d.rotate && rw > maxwidth && rh > maxheight) { - k = Math.min(maxwidth / rw, maxheight / rh); - } else if (w > maxwidth || h > maxheight) { - k = Math.min(maxwidth / w, maxheight / h); - } else { - k = Math.sqrt(d.area / (d.aw * d.ah)); - } - d.size = ~~(k * d.size); - if (d.size < minSize) { - d.size = minSize; - return; - } - return measureTextWitHitByarea(d); - } - function sum(dts, callback) { - var j = dts.length; - var ressum = 0; - while (j--) { - ressum += callback(dts[j]); - } - return ressum; - } - } - }; - return CloudLayout; -});define('echarts/layout/WordCloudRectZero', ['require'], function (require) { - function ZeroArray(option) { - this.defaultOption = { type: 'RECT' }; - this._init(option); - } - ZeroArray.prototype = { - RECT: '_calculateRect', - _init: function (option) { - this._initOption(option); - this._initCanvas(); - }, - _initOption: function (option) { - for (k in option) { - this.defaultOption[k] = option[k]; - } - }, - _initCanvas: function () { - var canvas = document.createElement('canvas'); - canvas.width = 1; - canvas.height = 1; - var ratio = Math.sqrt(canvas.getContext('2d').getImageData(0, 0, 1, 1).data.length >> 2); - canvas.width = this.defaultOption.width; - canvas.height = this.defaultOption.height; - if (canvas.getContext) { - var ctx = canvas.getContext('2d'); - } - this.canvas = canvas; - this.ctx = ctx; - this.ratio = ratio; - }, - calculate: function (callback, callbackObj) { - var calType = this.defaultOption.type, calmethod = this[calType]; - this[calmethod].call(this, callback, callbackObj); - }, - _calculateReturn: function (result, callback, callbackObj) { - callback.call(callbackObj, result); - }, - _calculateRect: function (callback, callbackObj) { - var result = {}, width = this.defaultOption.width >> 5 << 5, height = this.defaultOption.height; - result.initarr = this._rectZeroArray(width * height); - result.area = width * height; - result.maxHit = height; - result.maxWit = width; - result.imgboard = this._rectBoard(width, height); - this._calculateReturn(result, callback, callbackObj); - }, - _rectBoard: function (width, height) { - var row = []; - for (var i = 0; i < height; i++) { - row.push({ - y: i, - start: 0, - end: width - }); - } - var cloumn = []; - for (var i = 0; i < width; i++) { - cloumn.push({ - x: i, - start: 0, - end: height - }); - } - return { - row: row, - cloumn: cloumn - }; - }, - _rectZeroArray: function (num) { - var a = [], n = num, i = -1; - while (++i < n) - a[i] = 0; - return a; - } - }; - return ZeroArray; -});define('echarts/chart/heatmap', [ - 'require', - './base', - '../layer/heatmap', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/color', - 'zrender/shape/Image', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var HeatmapLayer = require('../layer/heatmap'); - var ecConfig = require('../config'); - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - var zrImage = require('zrender/shape/Image'); - ecConfig.heatmap = { - zlevel: 0, - z: 2, - clickable: true - }; - function Heatmap(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Heatmap.prototype = { - type: ecConfig.CHART_TYPE_HEATMAP, - refresh: function (newOption) { - this.clear(); - if (newOption) { - this.option = newOption; - this.series = newOption.series; - } - this._init(); - }, - _init: function () { - var series = this.series; - this.backupShapeList(); - var len = series.length; - for (var i = 0; i < len; ++i) { - if (series[i].type === ecConfig.CHART_TYPE_HEATMAP) { - series[i] = this.reformOption(series[i]); - var layer = new HeatmapLayer(series[i]); - var canvas = layer.getCanvas(series[i].data, this.zr.getWidth(), this.zr.getHeight()); - var image = new zrImage({ - position: [ - 0, - 0 - ], - scale: [ - 1, - 1 - ], - hoverable: this.option.hoverable, - style: { - x: 0, - y: 0, - image: canvas, - width: canvas.width, - height: canvas.height - } - }); - this.shapeList.push(image); - } - } - this.addShapeList(); - } - }; - zrUtil.inherits(Heatmap, ChartBase); - require('../chart').define('heatmap', Heatmap); - return Heatmap; -}); -var zrender = require('zrender'); -zrender.tool = { - color : require('zrender/tool/color'), - math : require('zrender/tool/math'), - util : require('zrender/tool/util'), - vector : require('zrender/tool/vector'), - area : require('zrender/tool/area'), - event : require('zrender/tool/event') -} - -zrender.animation = { - Animation : require('zrender/animation/Animation'), - Cip : require('zrender/animation/Clip'), - easing : require('zrender/animation/easing') -} -var echarts = require('echarts'); -echarts.config = require('echarts/config'); - -echarts.util = { - mapData : { - params : require('echarts/util/mapData/params') - } -} - - -require("echarts/chart/line"); - -require("echarts/chart/bar"); - -require("echarts/chart/scatter"); - -require("echarts/chart/k"); - -require("echarts/chart/pie"); - -require("echarts/chart/radar"); - -require("echarts/chart/chord"); - -require("echarts/chart/force"); - -require("echarts/chart/map"); - -require("echarts/chart/gauge"); - -require("echarts/chart/funnel"); - -require("echarts/chart/eventRiver"); - -require("echarts/chart/venn"); - -require("echarts/chart/treemap"); - -require("echarts/chart/tree"); - -require("echarts/chart/wordCloud"); - -require("echarts/chart/heatmap"); - -_global['echarts'] = echarts; -_global['zrender'] = zrender; - -})(window); diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/echarts.js b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/echarts.js deleted file mode 100644 index 2d0c042..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/build/source/echarts.js +++ /dev/null @@ -1,23202 +0,0 @@ -/** - * ESL (Enterprise Standard Loader) - * Copyright 2013 Baidu Inc. All rights reserved. - * - * @file Browser端标准加载器,符合AMD规范 - * @author errorrik(errorrik@gmail.com) - * Firede(firede@firede.us) - */ - -/* jshint ignore:start */ -var define; -var require; -var esl; -/* jshint ignore:end */ - -/* eslint-disable guard-for-in */ -/* eslint-env amd:false */ - -(function (global) { - // "mod"开头的变量或函数为内部模块管理函数 - // 为提高压缩率,不使用function或object包装 - - /** - * 模块容器 - * - * @inner - * @type {Object} - */ - var modModules = {}; - - // 模块状态枚举量 - var MODULE_PRE_DEFINED = 1; - var MODULE_ANALYZED = 2; - var MODULE_PREPARED = 3; - var MODULE_DEFINED = 4; - - /** - * 自动定义的模块表 - * - * 模块define factory是用到时才执行,但是以下几种情况需要自动马上执行: - * 1. require([moduleId], callback) - * 2. plugin module and plugin resource: require('plugin!resource') - * 3. shim module - * - * @inner - * @type {Object} - */ - var modAutoDefineModules = {}; - - /** - * 标记模块自动进行定义 - * - * @inner - * @param {string} id 模块id - */ - function modFlagAutoDefine(id) { - if (!modIs(id, MODULE_DEFINED)) { - modAutoDefineModules[id] = 1; - } - } - - /** - * 内建module名称集合 - * - * @inner - * @type {Object} - */ - var BUILDIN_MODULE = { - require: globalRequire, - exports: 1, - module: 1 - }; - - /** - * 全局require函数 - * - * @inner - * @type {Function} - */ - var actualGlobalRequire = createLocalRequire(); - - // #begin-ignore - /** - * 超时提醒定时器 - * - * @inner - * @type {number} - */ - var waitTimeout; - // #end-ignore - - /* eslint-disable fecs-key-spacing */ - /* eslint-disable key-spacing */ - /** - * require配置 - * - * @inner - * @type {Object} - */ - var requireConf = { - baseUrl : './', - paths : {}, - config : {}, - map : {}, - packages : [], - shim : {}, - // #begin-ignore - waitSeconds: 0, - // #end-ignore - bundles : {}, - urlArgs : {} - }; - /* eslint-enable key-spacing */ - - /** - * 加载模块 - * - * @param {string|Array} requireId 模块id或模块id数组, - * @param {Function=} callback 加载完成的回调函数 - * @return {*} requireId为string时返回模块暴露对象 - */ - function globalRequire(requireId, callback) { - // #begin-ignore - // #begin assertNotContainRelativeId - // 确定require的模块id不包含相对id。用于global require,提前预防难以跟踪的错误出现 - var invalidIds = []; - - /** - * 监测模块id是否relative id - * - * @inner - * @param {string} id 模块id - */ - function monitor(id) { - if (id.indexOf('.') === 0) { - invalidIds.push(id); - } - } - - if (typeof requireId === 'string') { - monitor(requireId); - } - else { - each( - requireId, - function (id) { - monitor(id); - } - ); - } - - // 包含相对id时,直接抛出错误 - if (invalidIds.length > 0) { - throw new Error( - '[REQUIRE_FATAL]Relative ID is not allowed in global require: ' - + invalidIds.join(', ') - ); - } - // #end assertNotContainRelativeId - - // 超时提醒 - var timeout = requireConf.waitSeconds; - if (timeout && (requireId instanceof Array)) { - if (waitTimeout) { - clearTimeout(waitTimeout); - } - waitTimeout = setTimeout(waitTimeoutNotice, timeout * 1000); - } - // #end-ignore - - return actualGlobalRequire(requireId, callback); - } - - /** - * 版本号 - * - * @type {string} - */ - globalRequire.version = '2.0.2'; - - /** - * loader名称 - * - * @type {string} - */ - globalRequire.loader = 'esl'; - - /** - * 将模块标识转换成相对的url - * - * @param {string} id 模块标识 - * @return {string} - */ - globalRequire.toUrl = actualGlobalRequire.toUrl; - - // #begin-ignore - /** - * 超时提醒函数 - * - * @inner - */ - function waitTimeoutNotice() { - var hangModules = []; - var missModules = []; - var hangModulesMap = {}; - var missModulesMap = {}; - var visited = {}; - - /** - * 检查模块的加载错误 - * - * @inner - * @param {string} id 模块id - * @param {boolean} hard 是否装载时依赖 - */ - function checkError(id, hard) { - if (visited[id] || modIs(id, MODULE_DEFINED)) { - return; - } - - visited[id] = 1; - - if (!modIs(id, MODULE_PREPARED)) { - // HACK: 为gzip后体积优化,不做抽取 - if (!hangModulesMap[id]) { - hangModulesMap[id] = 1; - hangModules.push(id); - } - } - - var mod = modModules[id]; - if (!mod) { - if (!missModulesMap[id]) { - missModulesMap[id] = 1; - missModules.push(id); - } - } - else if (hard) { - if (!hangModulesMap[id]) { - hangModulesMap[id] = 1; - hangModules.push(id); - } - - each( - mod.depMs, - function (dep) { - checkError(dep.absId, dep.hard); - } - ); - } - } - - for (var id in modAutoDefineModules) { - checkError(id, 1); - } - - if (hangModules.length || missModules.length) { - throw new Error( - '[MODULE_TIMEOUT]Hang( ' - + (hangModules.join(', ') || 'none') - + ' ) Miss( ' - + (missModules.join(', ') || 'none') - + ' )' - ); - } - } - // #end-ignore - - /** - * 未预定义的模块集合 - * 主要存储匿名方式define的模块 - * - * @inner - * @type {Array} - */ - var wait4PreDefine = []; - - /** - * 完成模块预定义,此时处理的模块是匿名define的模块 - * - * @inner - * @param {string} currentId 匿名define的模块的id - */ - function modCompletePreDefine(currentId) { - // HACK: 这里在IE下有个性能陷阱,不能使用任何变量。 - // 否则貌似会形成变量引用和修改的读写锁,导致wait4PreDefine释放困难 - each(wait4PreDefine, function (mod) { - modPreDefine( - currentId, - mod.deps, - mod.factory - ); - }); - - wait4PreDefine.length = 0; - } - - /** - * 定义模块 - * - * @param {string=} id 模块标识 - * @param {Array=} dependencies 依赖模块列表 - * @param {Function=} factory 创建模块的工厂方法 - */ - function globalDefine(id, dependencies, factory) { - // define(factory) - // define(dependencies, factory) - // define(id, factory) - // define(id, dependencies, factory) - if (factory == null) { - if (dependencies == null) { - factory = id; - id = null; - } - else { - factory = dependencies; - dependencies = null; - if (id instanceof Array) { - dependencies = id; - id = null; - } - } - } - - if (factory == null) { - return; - } - - var opera = window.opera; - - // IE下通过current script的data-require-id获取当前id - if ( - !id - && document.attachEvent - && (!(opera && opera.toString() === '[object Opera]')) - ) { - var currentScript = getCurrentScript(); - id = currentScript && currentScript.getAttribute('data-require-id'); - } - - if (id) { - modPreDefine(id, dependencies, factory); - } - else { - // 纪录到共享变量中,在load或readystatechange中处理 - // 标准浏览器下,使用匿名define时,将进入这个分支 - wait4PreDefine[0] = { - deps: dependencies, - factory: factory - }; - } - } - - globalDefine.amd = {}; - - /** - * 模块配置获取函数 - * - * @inner - * @return {Object} 模块配置对象 - */ - function moduleConfigGetter() { - var conf = requireConf.config[this.id]; - if (conf && typeof conf === 'object') { - return conf; - } - - return {}; - } - - /** - * 预定义模块 - * - * @inner - * @param {string} id 模块标识 - * @param {Array.} dependencies 显式声明的依赖模块列表 - * @param {*} factory 模块定义函数或模块对象 - */ - function modPreDefine(id, dependencies, factory) { - // 将模块存入容器 - // - // 模块内部信息包括 - // ----------------------------------- - // id: module id - // depsDec: 模块定义时声明的依赖 - // deps: 模块依赖,默认为['require', 'exports', 'module'] - // factory: 初始化函数或对象 - // factoryDeps: 初始化函数的参数依赖 - // exports: 模块的实际暴露对象(AMD定义) - // config: 用于获取模块配置信息的函数(AMD定义) - // state: 模块当前状态 - // require: local require函数 - // depMs: 实际依赖的模块集合,数组形式 - // depMkv: 实际依赖的模块集合,表形式,便于查找 - // depRs: 实际依赖的资源集合 - // ------------------------------------ - if (!modModules[id]) { - /* eslint-disable key-spacing */ - modModules[id] = { - id : id, - depsDec : dependencies, - deps : dependencies || ['require', 'exports', 'module'], - factoryDeps : [], - factory : factory, - exports : {}, - config : moduleConfigGetter, - state : MODULE_PRE_DEFINED, - require : createLocalRequire(id), - depMs : [], - depMkv : {}, - depRs : [] - }; - /* eslint-enable key-spacing */ - } - } - - /** - * 开始执行模块定义前的准备工作 - * - * 首先,完成对factory中声明依赖的分析提取 - * 然后,尝试加载"资源加载所需模块" - * - * 需要先加载模块的原因是:如果模块不存在,无法进行resourceId normalize化 - * - * @inner - * @param {string} id 模块id - */ - function modPrepare(id) { - var mod = modModules[id]; - if (!mod || modIs(id, MODULE_ANALYZED)) { - return; - } - - var deps = mod.deps; - var factory = mod.factory; - var hardDependsCount = 0; - - // 分析function body中的require - // 如果包含显式依赖声明,根据AMD规定和性能考虑,可以不分析factoryBody - if (typeof factory === 'function') { - hardDependsCount = Math.min(factory.length, deps.length); - - // If the dependencies argument is present, the module loader - // SHOULD NOT scan for dependencies within the factory function. - !mod.depsDec && factory.toString() - .replace(/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg, '') - .replace(/require\(\s*(['"'])([^'"]+)\1\s*\)/g, - function ($0, $1, depId) { - deps.push(depId); - } - ); - } - - var requireModules = []; - var depResources = []; - each(deps, function (depId, index) { - var idInfo = parseId(depId); - var absId = normalize(idInfo.mod, id); - var moduleInfo; - var resInfo; - - if (absId && !BUILDIN_MODULE[absId]) { - // 如果依赖是一个资源,将其信息添加到module.depRs - // - // module.depRs中的项有可能是重复的。 - // 在这个阶段,加载resource的module可能还未defined, - // 导致此时resource id无法被normalize。 - // - // 比如对a/b/c而言,下面几个resource可能指的是同一个资源: - // - js!../name.js - // - js!a/name.js - // - ../../js!../name.js - // - // 所以加载资源的module ready时,需要遍历module.depRs进行处理 - if (idInfo.res) { - resInfo = { - id: depId, - mod: absId, - res: idInfo.res - }; - depResources.push(depId); - mod.depRs.push(resInfo); - } - - // 对依赖模块的id normalize能保证正确性,在此处进行去重 - moduleInfo = mod.depMkv[absId]; - if (!moduleInfo) { - moduleInfo = { - id: idInfo.mod, - absId: absId, - hard: index < hardDependsCount - }; - mod.depMs.push(moduleInfo); - mod.depMkv[absId] = moduleInfo; - requireModules.push(absId); - } - } - else { - moduleInfo = {absId: absId}; - } - - // 如果当前正在分析的依赖项是define中声明的, - // 则记录到module.factoryDeps中 - // 在factory invoke前将用于生成invoke arguments - if (index < hardDependsCount) { - mod.factoryDeps.push(resInfo || moduleInfo); - } - }); - - mod.state = MODULE_ANALYZED; - modInitFactoryInvoker(id); - nativeAsyncRequire(requireModules); - depResources.length && mod.require( - depResources, - function () { - each(mod.depRs, function (res) { - if (!res.absId) { - res.absId = normalize(res.id, id); - } - }); - modAutoDefine(); - } - ); - } - - /** - * 对一些需要自动定义的模块进行自动定义 - * - * @inner - */ - function modAutoDefine() { - for (var id in modAutoDefineModules) { - modPrepare(id); - modUpdatePreparedState(id); - modTryInvokeFactory(id); - } - } - - /** - * 更新模块的准备状态 - * - * @inner - * @param {string} id 模块id - */ - function modUpdatePreparedState(id) { - var visited = {}; - update(id); - - function update(id) { - modPrepare(id); - if (!modIs(id, MODULE_ANALYZED)) { - return false; - } - if (modIs(id, MODULE_PREPARED) || visited[id]) { - return true; - } - - visited[id] = 1; - var mod = modModules[id]; - var prepared = true; - - each( - mod.depMs, - function (dep) { - return (prepared = update(dep.absId)); - } - ); - - // 判断resource是否加载完成。如果resource未加载完成,则认为未准备好 - /* jshint ignore:start */ - prepared && each( - mod.depRs, - function (dep) { - prepared = !!dep.absId; - return prepared; - } - ); - /* jshint ignore:end */ - - if (prepared) { - mod.state = MODULE_PREPARED; - } - - return prepared; - } - } - - /** - * 初始化模块定义时所需的factory执行器 - * - * @inner - * @param {string} id 模块id - */ - function modInitFactoryInvoker(id) { - var mod = modModules[id]; - var invoking; - - mod.invokeFactory = invokeFactory; - - /** - * 初始化模块 - * - * @inner - */ - function invokeFactory() { - if (invoking || mod.state !== MODULE_PREPARED) { - return; - } - - invoking = 1; - - // 拼接factory invoke所需的arguments - var factoryReady = 1; - each( - mod.factoryDeps, - function (dep) { - var depId = dep.absId; - - if (!BUILDIN_MODULE[depId]) { - modTryInvokeFactory(depId); - return (factoryReady = modIs(depId, MODULE_DEFINED)); - } - } - ); - - if (factoryReady) { - try { - // 调用factory函数初始化module - var factory = mod.factory; - var exports = typeof factory === 'function' - ? factory.apply(global, modGetModulesExports( - mod.factoryDeps, - { - require: mod.require, - exports: mod.exports, - module: mod - } - )) - : factory; - - if (exports != null) { - mod.exports = exports; - } - - mod.invokeFactory = null; - } - catch (ex) { - if (/^\[MODULE_MISS\]"([^"]+)/.test(ex.message)) { - // 出错,则说明在factory的运行中,该require的模块是需要的 - // 所以把它加入强依赖中 - var hardCirclurDep = mod.depMkv[RegExp.$1]; - hardCirclurDep && (hardCirclurDep.hard = 1); - - // 如果是模块本身有问题导致的运行错误 - // 就不要把invoking置回去了,避免影响autoInvoke其他模块的初始化 - invoking = 0; - return; - } - - throw ex; - } - - // 完成define - // 不放在try里,避免后续的运行错误被这里吞掉 - modDefined(id); - } - } - } - - /** - * 判断模块是否完成相应的状态 - * - * @inner - * @param {string} id 模块标识 - * @param {number} state 状态码,使用时传入相应的枚举变量,比如`MODULE_DEFINED` - * @return {boolean} 是否完成相应的状态 - */ - function modIs(id, state) { - return modModules[id] && modModules[id].state >= state; - } - - /** - * 尝试执行模块factory函数,进行模块初始化 - * - * @inner - * @param {string} id 模块id - */ - function modTryInvokeFactory(id) { - var mod = modModules[id]; - - if (mod && mod.invokeFactory) { - mod.invokeFactory(); - } - } - - /** - * 根据模块id数组,获取其的exports数组 - * 用于模块初始化的factory参数或require的callback参数生成 - * - * @inner - * @param {Array} modules 模块id数组 - * @param {Object} buildinModules 内建模块对象 - * @return {Array} 模块exports数组 - */ - function modGetModulesExports(modules, buildinModules) { - var args = []; - each( - modules, - function (id, index) { - if (typeof id === 'object') { - id = id.absId; - } - args[index] = buildinModules[id] || modModules[id].exports; - } - ); - - return args; - } - - /** - * 模块定义完成事件监听器容器 - * - * @inner - * @type {Object} - */ - var modDefinedListeners = {}; - - /** - * 添加模块定义完成时间的监听器 - * - * @inner - * @param {string} id 模块标识 - * @param {Function} listener 监听函数 - */ - function modAddDefinedListener(id, listener) { - if (modIs(id, MODULE_DEFINED)) { - listener(); - return; - } - - var listeners = modDefinedListeners[id]; - if (!listeners) { - listeners = modDefinedListeners[id] = []; - } - - listeners.push(listener); - } - - /** - * 模块状态切换为定义完成 - * 因为需要触发事件,MODULE_DEFINED状态切换通过该函数 - * - * @inner - * @param {string} id 模块标识 - */ - function modDefined(id) { - var mod = modModules[id]; - mod.state = MODULE_DEFINED; - delete modAutoDefineModules[id]; - - var listeners = modDefinedListeners[id] || []; - var len = listeners.length; - while (len--) { - // 这里不做function类型的检测 - // 因为listener都是通过modOn传入的,modOn为内部调用 - listeners[len](); - } - - // 清理listeners - listeners.length = 0; - modDefinedListeners[id] = null; - } - - /** - * 异步加载模块 - * 内部使用,模块ID必须是经过normalize的Top-Level ID - * - * @inner - * @param {Array} ids 模块名称或模块名称列表 - * @param {Function=} callback 获取模块完成时的回调函数 - * @param {string} baseId 基础id,用于当ids是relative id时的normalize - */ - function nativeAsyncRequire(ids, callback, baseId) { - var isCallbackCalled = 0; - - each(ids, function (id) { - if (!(BUILDIN_MODULE[id] || modIs(id, MODULE_DEFINED))) { - modAddDefinedListener(id, tryFinishRequire); - (id.indexOf('!') > 0 - ? loadResource - : loadModule - )(id, baseId); - } - }); - tryFinishRequire(); - - /** - * 尝试完成require,调用callback - * 在模块与其依赖模块都加载完时调用 - * - * @inner - */ - function tryFinishRequire() { - if (typeof callback === 'function' && !isCallbackCalled) { - var isAllCompleted = 1; - each(ids, function (id) { - if (!BUILDIN_MODULE[id]) { - return (isAllCompleted = !!modIs(id, MODULE_DEFINED)); - } - }); - - // 检测并调用callback - if (isAllCompleted) { - isCallbackCalled = 1; - - callback.apply( - global, - modGetModulesExports(ids, BUILDIN_MODULE) - ); - } - } - } - } - - /** - * 正在加载的模块列表 - * - * @inner - * @type {Object} - */ - var loadingModules = {}; - - /** - * 加载模块 - * - * @inner - * @param {string} moduleId 模块标识 - */ - function loadModule(moduleId) { - // 加载过的模块,就不要再继续了 - if (loadingModules[moduleId] || modModules[moduleId]) { - return; - } - loadingModules[moduleId] = 1; - - // 初始化相关 shim 的配置 - var shimConf = requireConf.shim[moduleId]; - if (shimConf instanceof Array) { - requireConf.shim[moduleId] = shimConf = { - deps: shimConf - }; - } - - // shim依赖的模块需要自动标识为shim - // 无论是纯正的shim模块还是hybird模块 - var shimDeps = shimConf && (shimConf.deps || []); - if (shimDeps) { - each(shimDeps, function (dep) { - if (!requireConf.shim[dep]) { - requireConf.shim[dep] = {}; - } - }); - actualGlobalRequire(shimDeps, load); - } - else { - load(); - } - - /** - * 发送请求去加载模块 - * - * @inner - */ - function load() { - /* eslint-disable no-use-before-define */ - var bundleModuleId = bundlesIndex[moduleId]; - createScript(bundleModuleId || moduleId, loaded); - /* eslint-enable no-use-before-define */ - } - - /** - * script标签加载完成的事件处理函数 - * - * @inner - */ - function loaded() { - if (shimConf) { - var exports; - if (typeof shimConf.init === 'function') { - exports = shimConf.init.apply( - global, - modGetModulesExports(shimDeps, BUILDIN_MODULE) - ); - } - - if (exports == null && shimConf.exports) { - exports = global; - each( - shimConf.exports.split('.'), - function (prop) { - exports = exports[prop]; - return !!exports; - } - ); - } - - globalDefine(moduleId, shimDeps, exports || {}); - } - else { - modCompletePreDefine(moduleId); - } - - modAutoDefine(); - } - } - - /** - * 加载资源 - * - * @inner - * @param {string} pluginAndResource 插件与资源标识 - * @param {string} baseId 当前环境的模块标识 - */ - function loadResource(pluginAndResource, baseId) { - if (modModules[pluginAndResource]) { - return; - } - - /* eslint-disable no-use-before-define */ - var bundleModuleId = bundlesIndex[pluginAndResource]; - if (bundleModuleId) { - loadModule(bundleModuleId); - return; - } - /* eslint-enable no-use-before-define */ - - var idInfo = parseId(pluginAndResource); - var resource = { - id: pluginAndResource, - state: MODULE_ANALYZED - }; - modModules[pluginAndResource] = resource; - - /** - * plugin加载完成的回调函数 - * - * @inner - * @param {*} value resource的值 - */ - function pluginOnload(value) { - resource.exports = value || true; - modDefined(pluginAndResource); - } - - /* jshint ignore:start */ - /** - * 该方法允许plugin使用加载的资源声明模块 - * - * @param {string} id 模块id - * @param {string} text 模块声明字符串 - */ - pluginOnload.fromText = function (id, text) { - new Function(text)(); - modCompletePreDefine(id); - }; - /* jshint ignore:end */ - - /** - * 加载资源 - * - * @inner - * @param {Object} plugin 用于加载资源的插件模块 - */ - function load(plugin) { - var pluginRequire = baseId - ? modModules[baseId].require - : actualGlobalRequire; - - plugin.load( - idInfo.res, - pluginRequire, - pluginOnload, - moduleConfigGetter.call({id: pluginAndResource}) - ); - } - - load(actualGlobalRequire(idInfo.mod)); - } - - /** - * 配置require - * - * @param {Object} conf 配置对象 - */ - globalRequire.config = function (conf) { - if (conf) { - for (var key in requireConf) { - var newValue = conf[key]; - var oldValue = requireConf[key]; - - if (!newValue) { - continue; - } - - if (key === 'urlArgs' && typeof newValue === 'string') { - requireConf.urlArgs['*'] = newValue; - } - else { - // 简单的多处配置还是需要支持,所以配置实现为支持二级mix - if (oldValue instanceof Array) { - oldValue.push.apply(oldValue, newValue); - } - else if (typeof oldValue === 'object') { - for (var k in newValue) { - oldValue[k] = newValue[k]; - } - } - else { - requireConf[key] = newValue; - } - } - } - - createConfIndex(); - } - }; - - // 初始化时需要创建配置索引 - createConfIndex(); - - /** - * paths内部索引 - * - * @inner - * @type {Array} - */ - var pathsIndex; - - /** - * packages内部索引 - * - * @inner - * @type {Array} - */ - var packagesIndex; - - /** - * mapping内部索引 - * - * @inner - * @type {Array} - */ - var mappingIdIndex; - - /** - * bundles内部索引 - * - * @inner - * @type {Object} - */ - var bundlesIndex; - - /** - * urlArgs内部索引 - * - * @inner - * @type {Array} - */ - var urlArgsIndex; - - /** - * 将key为module id prefix的Object,生成数组形式的索引,并按照长度和字面排序 - * - * @inner - * @param {Object} value 源值 - * @param {boolean} allowAsterisk 是否允许*号表示匹配所有 - * @return {Array} 索引对象 - */ - function createKVSortedIndex(value, allowAsterisk) { - var index = kv2List(value, 1, allowAsterisk); - index.sort(descSorterByKOrName); - return index; - } - - /** - * 创建配置信息内部索引 - * - * @inner - */ - function createConfIndex() { - requireConf.baseUrl = requireConf.baseUrl.replace(/\/$/, '') + '/'; - - // create paths index - pathsIndex = createKVSortedIndex(requireConf.paths); - - // create mappingId index - mappingIdIndex = createKVSortedIndex(requireConf.map, 1); - each( - mappingIdIndex, - function (item) { - item.v = createKVSortedIndex(item.v); - } - ); - - // create packages index - packagesIndex = []; - each( - requireConf.packages, - function (packageConf) { - var pkg = packageConf; - if (typeof packageConf === 'string') { - pkg = { - name: packageConf.split('/')[0], - location: packageConf, - main: 'main' - }; - } - - pkg.location = pkg.location || pkg.name; - pkg.main = (pkg.main || 'main').replace(/\.js$/i, ''); - pkg.reg = createPrefixRegexp(pkg.name); - packagesIndex.push(pkg); - } - ); - packagesIndex.sort(descSorterByKOrName); - - // create urlArgs index - urlArgsIndex = createKVSortedIndex(requireConf.urlArgs, 1); - - // create bundles index - bundlesIndex = {}; - /* eslint-disable no-use-before-define */ - function bundlesIterator(id) { - bundlesIndex[id] = key; - } - /* eslint-enable no-use-before-define */ - for (var key in requireConf.bundles) { - each(requireConf.bundles[key], bundlesIterator); - } - } - - /** - * 对配置信息的索引进行检索 - * - * @inner - * @param {string} value 要检索的值 - * @param {Array} index 索引对象 - * @param {Function} hitBehavior 索引命中的行为函数 - */ - function indexRetrieve(value, index, hitBehavior) { - each(index, function (item) { - if (item.reg.test(value)) { - hitBehavior(item.v, item.k, item); - return false; - } - }); - } - - /** - * 将`模块标识+'.extension'`形式的字符串转换成相对的url - * - * @inner - * @param {string} source 源字符串 - * @return {string} url - */ - function toUrl(source) { - // 分离 模块标识 和 .extension - var extReg = /(\.[a-z0-9]+)$/i; - var queryReg = /(\?[^#]*)$/; - var extname = ''; - var id = source; - var query = ''; - - if (queryReg.test(source)) { - query = RegExp.$1; - source = source.replace(queryReg, ''); - } - - if (extReg.test(source)) { - extname = RegExp.$1; - id = source.replace(extReg, ''); - } - - var url = id; - - // paths处理和匹配 - var isPathMap; - indexRetrieve(id, pathsIndex, function (value, key) { - url = url.replace(key, value); - isPathMap = 1; - }); - - // packages处理和匹配 - if (!isPathMap) { - indexRetrieve(id, packagesIndex, function (value, key, item) { - url = url.replace(item.name, item.location); - }); - } - - // 相对路径时,附加baseUrl - if (!/^([a-z]{2,10}:\/)?\//i.test(url)) { - url = requireConf.baseUrl + url; - } - - // 附加 .extension 和 query - url += extname + query; - - // urlArgs处理和匹配 - indexRetrieve(id, urlArgsIndex, function (value) { - url += (url.indexOf('?') > 0 ? '&' : '?') + value; - }); - - return url; - } - - /** - * 创建local require函数 - * - * @inner - * @param {number} baseId 当前module id - * @return {Function} local require函数 - */ - function createLocalRequire(baseId) { - var requiredCache = {}; - - function req(requireId, callback) { - if (typeof requireId === 'string') { - if (!requiredCache[requireId]) { - var topLevelId = normalize(requireId, baseId); - - // 根据 https://github.com/amdjs/amdjs-api/wiki/require - // It MUST throw an error if the module has not - // already been loaded and evaluated. - modTryInvokeFactory(topLevelId); - if (!modIs(topLevelId, MODULE_DEFINED)) { - throw new Error('[MODULE_MISS]"' + topLevelId + '" is not exists!'); - } - - requiredCache[requireId] = modModules[topLevelId].exports; - } - - return requiredCache[requireId]; - } - else if (requireId instanceof Array) { - // 分析是否有resource,取出pluginModule先 - var pureModules = []; - var normalizedIds = []; - - each( - requireId, - function (id, i) { - var idInfo = parseId(id); - var absId = normalize(idInfo.mod, baseId); - var resId = idInfo.res; - var normalizedId = absId; - - if (resId) { - var trueResId = absId + '!' + resId; - if (resId.indexOf('.') !== 0 && bundlesIndex[trueResId]) { - absId = normalizedId = trueResId; - } - else { - normalizedId = null; - } - } - - normalizedIds[i] = normalizedId; - modFlagAutoDefine(absId); - pureModules.push(absId); - } - ); - - // 加载模块 - nativeAsyncRequire( - pureModules, - function () { - /* jshint ignore:start */ - each(normalizedIds, function (id, i) { - if (id == null) { - id = normalizedIds[i] = normalize(requireId[i], baseId); - modFlagAutoDefine(id); - } - }); - /* jshint ignore:end */ - - // modAutoDefine中,factory invoke可能发生错误 - // 从而导致nativeAsyncRequire没有被调用,callback没挂上 - // 所以nativeAsyncRequire要先运行 - nativeAsyncRequire(normalizedIds, callback, baseId); - modAutoDefine(); - }, - baseId - ); - modAutoDefine(); - } - } - - /** - * 将[module ID] + '.extension'格式的字符串转换成url - * - * @inner - * @param {string} id 符合描述格式的源字符串 - * @return {string} url - */ - req.toUrl = function (id) { - return toUrl(normalize(id, baseId)); - }; - - return req; - } - - /** - * id normalize化 - * - * @inner - * @param {string} id 需要normalize的模块标识 - * @param {string} baseId 当前环境的模块标识 - * @return {string} normalize结果 - */ - function normalize(id, baseId) { - if (!id) { - return ''; - } - - baseId = baseId || ''; - var idInfo = parseId(id); - if (!idInfo) { - return id; - } - - var resourceId = idInfo.res; - var moduleId = relative2absolute(idInfo.mod, baseId); - - each( - packagesIndex, - function (packageConf) { - var name = packageConf.name; - if (name === moduleId) { - moduleId = name + '/' + packageConf.main; - return false; - } - } - ); - - // 根据config中的map配置进行module id mapping - indexRetrieve( - baseId, - mappingIdIndex, - function (value) { - indexRetrieve( - moduleId, - value, - function (mdValue, mdKey) { - moduleId = moduleId.replace(mdKey, mdValue); - } - ); - } - ); - - if (resourceId) { - var mod = modIs(moduleId, MODULE_DEFINED) && actualGlobalRequire(moduleId); - resourceId = mod && mod.normalize - ? mod.normalize( - resourceId, - function (resId) { - return normalize(resId, baseId); - } - ) - : normalize(resourceId, baseId); - - moduleId += '!' + resourceId; - } - - return moduleId; - } - - /** - * 相对id转换成绝对id - * - * @inner - * @param {string} id 要转换的相对id - * @param {string} baseId 当前所在环境id - * @return {string} 绝对id - */ - function relative2absolute(id, baseId) { - if (id.indexOf('.') === 0) { - var basePath = baseId.split('/'); - var namePath = id.split('/'); - var baseLen = basePath.length - 1; - var nameLen = namePath.length; - var cutBaseTerms = 0; - var cutNameTerms = 0; - - /* eslint-disable block-scoped-var */ - pathLoop: for (var i = 0; i < nameLen; i++) { - switch (namePath[i]) { - case '..': - if (cutBaseTerms < baseLen) { - cutBaseTerms++; - cutNameTerms++; - } - else { - break pathLoop; - } - break; - case '.': - cutNameTerms++; - break; - default: - break pathLoop; - } - } - /* eslint-enable block-scoped-var */ - - basePath.length = baseLen - cutBaseTerms; - namePath = namePath.slice(cutNameTerms); - - return basePath.concat(namePath).join('/'); - } - - return id; - } - - /** - * 解析id,返回带有module和resource属性的Object - * - * @inner - * @param {string} id 标识 - * @return {Object} id解析结果对象 - */ - function parseId(id) { - var segs = id.split('!'); - - if (segs[0]) { - return { - mod: segs[0], - res: segs[1] - }; - } - } - - /** - * 将对象数据转换成数组,数组每项是带有k和v的Object - * - * @inner - * @param {Object} source 对象数据 - * @param {boolean} keyMatchable key是否允许被前缀匹配 - * @param {boolean} allowAsterisk 是否支持*匹配所有 - * @return {Array.} 对象转换数组 - */ - function kv2List(source, keyMatchable, allowAsterisk) { - var list = []; - for (var key in source) { - if (source.hasOwnProperty(key)) { - var item = { - k: key, - v: source[key] - }; - list.push(item); - - if (keyMatchable) { - item.reg = key === '*' && allowAsterisk - ? /^/ - : createPrefixRegexp(key); - } - } - } - - return list; - } - - // 感谢requirejs,通过currentlyAddingScript兼容老旧ie - // - // For some cache cases in IE 6-8, the script executes before the end - // of the appendChild execution, so to tie an anonymous define - // call to the module name (which is stored on the node), hold on - // to a reference to this node, but clear after the DOM insertion. - var currentlyAddingScript; - var interactiveScript; - - /** - * 获取当前script标签 - * 用于ie下define未指定module id时获取id - * - * @inner - * @return {HTMLScriptElement} 当前script标签 - */ - function getCurrentScript() { - if (currentlyAddingScript) { - return currentlyAddingScript; - } - else if ( - interactiveScript - && interactiveScript.readyState === 'interactive' - ) { - return interactiveScript; - } - - var scripts = document.getElementsByTagName('script'); - var scriptLen = scripts.length; - while (scriptLen--) { - var script = scripts[scriptLen]; - if (script.readyState === 'interactive') { - interactiveScript = script; - return script; - } - } - } - - var headElement = document.getElementsByTagName('head')[0]; - var baseElement = document.getElementsByTagName('base')[0]; - if (baseElement) { - headElement = baseElement.parentNode; - } - - function createScript(moduleId, onload) { - // 创建script标签 - // - // 这里不挂接onerror的错误处理 - // 因为高级浏览器在devtool的console面板会报错 - // 再throw一个Error多此一举了 - var script = document.createElement('script'); - script.setAttribute('data-require-id', moduleId); - script.src = toUrl(moduleId + '.js'); - script.async = true; - if (script.readyState) { - script.onreadystatechange = innerOnload; - } - else { - script.onload = innerOnload; - } - - function innerOnload() { - var readyState = script.readyState; - if ( - typeof readyState === 'undefined' - || /^(loaded|complete)$/.test(readyState) - ) { - script.onload = script.onreadystatechange = null; - script = null; - - onload(); - } - } - currentlyAddingScript = script; - - // If BASE tag is in play, using appendChild is a problem for IE6. - // See: http://dev.jquery.com/ticket/2709 - baseElement - ? headElement.insertBefore(script, baseElement) - : headElement.appendChild(script); - - currentlyAddingScript = null; - } - - /** - * 创建id前缀匹配的正则对象 - * - * @inner - * @param {string} prefix id前缀 - * @return {RegExp} 前缀匹配的正则对象 - */ - function createPrefixRegexp(prefix) { - return new RegExp('^' + prefix + '(/|$)'); - } - - /** - * 循环遍历数组集合 - * - * @inner - * @param {Array} source 数组源 - * @param {function(Array,Number):boolean} iterator 遍历函数 - */ - function each(source, iterator) { - if (source instanceof Array) { - for (var i = 0, len = source.length; i < len; i++) { - if (iterator(source[i], i) === false) { - break; - } - } - } - } - - /** - * 根据元素的k或name项进行数组字符数逆序的排序函数 - * - * @inner - * @param {Object} a 要比较的对象a - * @param {Object} b 要比较的对象b - * @return {number} 比较结果 - */ - function descSorterByKOrName(a, b) { - var aValue = a.k || a.name; - var bValue = b.k || b.name; - - if (bValue === '*') { - return -1; - } - - if (aValue === '*') { - return 1; - } - - return bValue.length - aValue.length; - } - - // 暴露全局对象 - if (!define) { - define = globalDefine; - - // 可能碰到其他形式的loader,所以,不要覆盖人家 - if (!require) { - require = globalRequire; - } - - // 如果存在其他版本的esl,在define那里就判断过了,不会进入这个分支 - // 所以这里就不判断了,直接写 - esl = globalRequire; - } -})(this); -define('echarts', ['echarts/echarts'], function (main) {return main;}); -define('echarts/echarts', [ - 'require', - './config', - 'zrender/tool/util', - 'zrender/tool/event', - 'zrender/tool/env', - 'zrender', - 'zrender/config', - './chart/island', - './component/toolbox', - './component', - './component/title', - './component/tooltip', - './component/legend', - './util/ecData', - './chart', - 'zrender/tool/color', - './component/timeline', - 'zrender/shape/Image', - 'zrender/loadingEffect/Bar', - 'zrender/loadingEffect/Bubble', - 'zrender/loadingEffect/DynamicLine', - 'zrender/loadingEffect/Ring', - 'zrender/loadingEffect/Spin', - 'zrender/loadingEffect/Whirling', - './theme/macarons', - './theme/infographic' -], function (require) { - var ecConfig = require('./config'); - var zrUtil = require('zrender/tool/util'); - var zrEvent = require('zrender/tool/event'); - var self = {}; - var _canvasSupported = require('zrender/tool/env').canvasSupported; - var _idBase = new Date() - 0; - var _instances = {}; - var DOM_ATTRIBUTE_KEY = '_echarts_instance_'; - self.version = '2.2.7'; - self.dependencies = { zrender: '2.1.1' }; - self.init = function (dom, theme) { - var zrender = require('zrender'); - if (zrender.version.replace('.', '') - 0 < self.dependencies.zrender.replace('.', '') - 0) { - console.error('ZRender ' + zrender.version + ' is too old for ECharts ' + self.version + '. Current version need ZRender ' + self.dependencies.zrender + '+'); - } - dom = dom instanceof Array ? dom[0] : dom; - var key = dom.getAttribute(DOM_ATTRIBUTE_KEY); - if (!key) { - key = _idBase++; - dom.setAttribute(DOM_ATTRIBUTE_KEY, key); - } - if (_instances[key]) { - _instances[key].dispose(); - } - _instances[key] = new Echarts(dom); - _instances[key].id = key; - _instances[key].canvasSupported = _canvasSupported; - _instances[key].setTheme(theme); - return _instances[key]; - }; - self.getInstanceById = function (key) { - return _instances[key]; - }; - function MessageCenter() { - zrEvent.Dispatcher.call(this); - } - zrUtil.merge(MessageCenter.prototype, zrEvent.Dispatcher.prototype, true); - function Echarts(dom) { - dom.innerHTML = ''; - this._themeConfig = {}; - this.dom = dom; - this._connected = false; - this._status = { - dragIn: false, - dragOut: false, - needRefresh: false - }; - this._curEventType = false; - this._chartList = []; - this._messageCenter = new MessageCenter(); - this._messageCenterOutSide = new MessageCenter(); - this.resize = this.resize(); - this._init(); - } - var ZR_EVENT = require('zrender/config').EVENT; - var ZR_EVENT_LISTENS = [ - 'CLICK', - 'DBLCLICK', - 'MOUSEOVER', - 'MOUSEOUT', - 'DRAGSTART', - 'DRAGEND', - 'DRAGENTER', - 'DRAGOVER', - 'DRAGLEAVE', - 'DROP' - ]; - function callChartListMethodReverse(ecInstance, methodName, arg0, arg1, arg2) { - var chartList = ecInstance._chartList; - var len = chartList.length; - while (len--) { - var chart = chartList[len]; - if (typeof chart[methodName] === 'function') { - chart[methodName](arg0, arg1, arg2); - } - } - } - Echarts.prototype = { - _init: function () { - var self = this; - var _zr = require('zrender').init(this.dom); - this._zr = _zr; - this._messageCenter.dispatch = function (type, event, eventPackage, that) { - eventPackage = eventPackage || {}; - eventPackage.type = type; - eventPackage.event = event; - self._messageCenter.dispatchWithContext(type, eventPackage, that); - self._messageCenterOutSide.dispatchWithContext(type, eventPackage, that); - }; - this._onevent = function (param) { - return self.__onevent(param); - }; - for (var e in ecConfig.EVENT) { - if (e != 'CLICK' && e != 'DBLCLICK' && e != 'HOVER' && e != 'MOUSEOUT' && e != 'MAP_ROAM') { - this._messageCenter.bind(ecConfig.EVENT[e], this._onevent, this); - } - } - var eventBehaviors = {}; - this._onzrevent = function (param) { - return self[eventBehaviors[param.type]](param); - }; - for (var i = 0, len = ZR_EVENT_LISTENS.length; i < len; i++) { - var eventName = ZR_EVENT_LISTENS[i]; - var eventValue = ZR_EVENT[eventName]; - eventBehaviors[eventValue] = '_on' + eventName.toLowerCase(); - _zr.on(eventValue, this._onzrevent); - } - this.chart = {}; - this.component = {}; - var Island = require('./chart/island'); - this._island = new Island(this._themeConfig, this._messageCenter, _zr, {}, this); - this.chart.island = this._island; - var Toolbox = require('./component/toolbox'); - this._toolbox = new Toolbox(this._themeConfig, this._messageCenter, _zr, {}, this); - this.component.toolbox = this._toolbox; - var componentLibrary = require('./component'); - componentLibrary.define('title', require('./component/title')); - componentLibrary.define('tooltip', require('./component/tooltip')); - componentLibrary.define('legend', require('./component/legend')); - if (_zr.getWidth() === 0 || _zr.getHeight() === 0) { - console.error('Dom’s width & height should be ready before init.'); - } - }, - __onevent: function (param) { - param.__echartsId = param.__echartsId || this.id; - var fromMyself = param.__echartsId === this.id; - if (!this._curEventType) { - this._curEventType = param.type; - } - switch (param.type) { - case ecConfig.EVENT.LEGEND_SELECTED: - this._onlegendSelected(param); - break; - case ecConfig.EVENT.DATA_ZOOM: - if (!fromMyself) { - var dz = this.component.dataZoom; - if (dz) { - dz.silence(true); - dz.absoluteZoom(param.zoom); - dz.silence(false); - } - } - this._ondataZoom(param); - break; - case ecConfig.EVENT.DATA_RANGE: - fromMyself && this._ondataRange(param); - break; - case ecConfig.EVENT.MAGIC_TYPE_CHANGED: - if (!fromMyself) { - var tb = this.component.toolbox; - if (tb) { - tb.silence(true); - tb.setMagicType(param.magicType); - tb.silence(false); - } - } - this._onmagicTypeChanged(param); - break; - case ecConfig.EVENT.DATA_VIEW_CHANGED: - fromMyself && this._ondataViewChanged(param); - break; - case ecConfig.EVENT.TOOLTIP_HOVER: - fromMyself && this._tooltipHover(param); - break; - case ecConfig.EVENT.RESTORE: - this._onrestore(); - break; - case ecConfig.EVENT.REFRESH: - fromMyself && this._onrefresh(param); - break; - case ecConfig.EVENT.TOOLTIP_IN_GRID: - case ecConfig.EVENT.TOOLTIP_OUT_GRID: - if (!fromMyself) { - var grid = this.component.grid; - if (grid) { - this._zr.trigger('mousemove', { - connectTrigger: true, - zrenderX: grid.getX() + param.x * grid.getWidth(), - zrenderY: grid.getY() + param.y * grid.getHeight() - }); - } - } else if (this._connected) { - var grid = this.component.grid; - if (grid) { - param.x = (param.event.zrenderX - grid.getX()) / grid.getWidth(); - param.y = (param.event.zrenderY - grid.getY()) / grid.getHeight(); - } - } - break; - } - if (this._connected && fromMyself && this._curEventType === param.type) { - for (var c in this._connected) { - this._connected[c].connectedEventHandler(param); - } - this._curEventType = null; - } - if (!fromMyself || !this._connected && fromMyself) { - this._curEventType = null; - } - }, - _onclick: function (param) { - callChartListMethodReverse(this, 'onclick', param); - if (param.target) { - var ecData = this._eventPackage(param.target); - if (ecData && ecData.seriesIndex != null) { - this._messageCenter.dispatch(ecConfig.EVENT.CLICK, param.event, ecData, this); - } - } - }, - _ondblclick: function (param) { - callChartListMethodReverse(this, 'ondblclick', param); - if (param.target) { - var ecData = this._eventPackage(param.target); - if (ecData && ecData.seriesIndex != null) { - this._messageCenter.dispatch(ecConfig.EVENT.DBLCLICK, param.event, ecData, this); - } - } - }, - _onmouseover: function (param) { - if (param.target) { - var ecData = this._eventPackage(param.target); - if (ecData && ecData.seriesIndex != null) { - this._messageCenter.dispatch(ecConfig.EVENT.HOVER, param.event, ecData, this); - } - } - }, - _onmouseout: function (param) { - if (param.target) { - var ecData = this._eventPackage(param.target); - if (ecData && ecData.seriesIndex != null) { - this._messageCenter.dispatch(ecConfig.EVENT.MOUSEOUT, param.event, ecData, this); - } - } - }, - _ondragstart: function (param) { - this._status = { - dragIn: false, - dragOut: false, - needRefresh: false - }; - callChartListMethodReverse(this, 'ondragstart', param); - }, - _ondragenter: function (param) { - callChartListMethodReverse(this, 'ondragenter', param); - }, - _ondragover: function (param) { - callChartListMethodReverse(this, 'ondragover', param); - }, - _ondragleave: function (param) { - callChartListMethodReverse(this, 'ondragleave', param); - }, - _ondrop: function (param) { - callChartListMethodReverse(this, 'ondrop', param, this._status); - this._island.ondrop(param, this._status); - }, - _ondragend: function (param) { - callChartListMethodReverse(this, 'ondragend', param, this._status); - this._timeline && this._timeline.ondragend(param, this._status); - this._island.ondragend(param, this._status); - if (this._status.needRefresh) { - this._syncBackupData(this._option); - var messageCenter = this._messageCenter; - messageCenter.dispatch(ecConfig.EVENT.DATA_CHANGED, param.event, this._eventPackage(param.target), this); - messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); - } - }, - _onlegendSelected: function (param) { - this._status.needRefresh = false; - callChartListMethodReverse(this, 'onlegendSelected', param, this._status); - if (this._status.needRefresh) { - this._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); - } - }, - _ondataZoom: function (param) { - this._status.needRefresh = false; - callChartListMethodReverse(this, 'ondataZoom', param, this._status); - if (this._status.needRefresh) { - this._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); - } - }, - _ondataRange: function (param) { - this._clearEffect(); - this._status.needRefresh = false; - callChartListMethodReverse(this, 'ondataRange', param, this._status); - if (this._status.needRefresh) { - this._zr.refreshNextFrame(); - } - }, - _onmagicTypeChanged: function () { - this._clearEffect(); - this._render(this._toolbox.getMagicOption()); - }, - _ondataViewChanged: function (param) { - this._syncBackupData(param.option); - this._messageCenter.dispatch(ecConfig.EVENT.DATA_CHANGED, null, param, this); - this._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, null, this); - }, - _tooltipHover: function (param) { - var tipShape = []; - callChartListMethodReverse(this, 'ontooltipHover', param, tipShape); - }, - _onrestore: function () { - this.restore(); - }, - _onrefresh: function (param) { - this._refreshInside = true; - this.refresh(param); - this._refreshInside = false; - }, - _syncBackupData: function (curOption) { - this.component.dataZoom && this.component.dataZoom.syncBackupData(curOption); - }, - _eventPackage: function (target) { - if (target) { - var ecData = require('./util/ecData'); - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - dataIndex = seriesIndex != -1 && this.component.dataZoom ? this.component.dataZoom.getRealDataIndex(seriesIndex, dataIndex) : dataIndex; - return { - seriesIndex: seriesIndex, - seriesName: (ecData.get(target, 'series') || {}).name, - dataIndex: dataIndex, - data: ecData.get(target, 'data'), - name: ecData.get(target, 'name'), - value: ecData.get(target, 'value'), - special: ecData.get(target, 'special') - }; - } - return; - }, - _noDataCheck: function (magicOption) { - var series = magicOption.series; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type == ecConfig.CHART_TYPE_MAP || series[i].data && series[i].data.length > 0 || series[i].markPoint && series[i].markPoint.data && series[i].markPoint.data.length > 0 || series[i].markLine && series[i].markLine.data && series[i].markLine.data.length > 0 || series[i].nodes && series[i].nodes.length > 0 || series[i].links && series[i].links.length > 0 || series[i].matrix && series[i].matrix.length > 0 || series[i].eventList && series[i].eventList.length > 0) { - return false; - } - } - var loadOption = this._option && this._option.noDataLoadingOption || this._themeConfig.noDataLoadingOption || ecConfig.noDataLoadingOption || { - text: this._option && this._option.noDataText || this._themeConfig.noDataText || ecConfig.noDataText, - effect: this._option && this._option.noDataEffect || this._themeConfig.noDataEffect || ecConfig.noDataEffect - }; - this.clear(); - this.showLoading(loadOption); - return true; - }, - _render: function (magicOption) { - this._mergeGlobalConifg(magicOption); - if (this._noDataCheck(magicOption)) { - return; - } - var bgColor = magicOption.backgroundColor; - if (bgColor) { - if (!_canvasSupported && bgColor.indexOf('rgba') != -1) { - var cList = bgColor.split(','); - this.dom.style.filter = 'alpha(opacity=' + cList[3].substring(0, cList[3].lastIndexOf(')')) * 100 + ')'; - cList.length = 3; - cList[0] = cList[0].replace('a', ''); - this.dom.style.backgroundColor = cList.join(',') + ')'; - } else { - this.dom.style.backgroundColor = bgColor; - } - } - this._zr.clearAnimation(); - this._chartList = []; - var chartLibrary = require('./chart'); - var componentLibrary = require('./component'); - if (magicOption.xAxis || magicOption.yAxis) { - magicOption.grid = magicOption.grid || {}; - magicOption.dataZoom = magicOption.dataZoom || {}; - } - var componentList = [ - 'title', - 'legend', - 'tooltip', - 'dataRange', - 'roamController', - 'grid', - 'dataZoom', - 'xAxis', - 'yAxis', - 'polar' - ]; - var ComponentClass; - var componentType; - var component; - for (var i = 0, l = componentList.length; i < l; i++) { - componentType = componentList[i]; - component = this.component[componentType]; - if (magicOption[componentType]) { - if (component) { - component.refresh && component.refresh(magicOption); - } else { - ComponentClass = componentLibrary.get(/^[xy]Axis$/.test(componentType) ? 'axis' : componentType); - component = new ComponentClass(this._themeConfig, this._messageCenter, this._zr, magicOption, this, componentType); - this.component[componentType] = component; - } - this._chartList.push(component); - } else if (component) { - component.dispose(); - this.component[componentType] = null; - delete this.component[componentType]; - } - } - var ChartClass; - var chartType; - var chart; - var chartMap = {}; - for (var i = 0, l = magicOption.series.length; i < l; i++) { - chartType = magicOption.series[i].type; - if (!chartType) { - console.error('series[' + i + '] chart type has not been defined.'); - continue; - } - if (!chartMap[chartType]) { - chartMap[chartType] = true; - ChartClass = chartLibrary.get(chartType); - if (ChartClass) { - if (this.chart[chartType]) { - chart = this.chart[chartType]; - chart.refresh(magicOption); - } else { - chart = new ChartClass(this._themeConfig, this._messageCenter, this._zr, magicOption, this); - } - this._chartList.push(chart); - this.chart[chartType] = chart; - } else { - console.error(chartType + ' has not been required.'); - } - } - } - for (chartType in this.chart) { - if (chartType != ecConfig.CHART_TYPE_ISLAND && !chartMap[chartType]) { - this.chart[chartType].dispose(); - this.chart[chartType] = null; - delete this.chart[chartType]; - } - } - this.component.grid && this.component.grid.refixAxisShape(this.component); - this._island.refresh(magicOption); - this._toolbox.refresh(magicOption); - magicOption.animation && !magicOption.renderAsImage ? this._zr.refresh() : this._zr.render(); - var imgId = 'IMG' + this.id; - var img = document.getElementById(imgId); - if (magicOption.renderAsImage && _canvasSupported) { - if (img) { - img.src = this.getDataURL(magicOption.renderAsImage); - } else { - img = this.getImage(magicOption.renderAsImage); - img.id = imgId; - img.style.position = 'absolute'; - img.style.left = 0; - img.style.top = 0; - this.dom.firstChild.appendChild(img); - } - this.un(); - this._zr.un(); - this._disposeChartList(); - this._zr.clear(); - } else if (img) { - img.parentNode.removeChild(img); - } - img = null; - this._option = magicOption; - }, - restore: function () { - this._clearEffect(); - this._option = zrUtil.clone(this._optionRestore); - this._disposeChartList(); - this._island.clear(); - this._toolbox.reset(this._option, true); - this._render(this._option); - }, - refresh: function (param) { - this._clearEffect(); - param = param || {}; - var magicOption = param.option; - if (!this._refreshInside && magicOption) { - magicOption = this.getOption(); - zrUtil.merge(magicOption, param.option, true); - zrUtil.merge(this._optionRestore, param.option, true); - this._toolbox.reset(magicOption); - } - this._island.refresh(magicOption); - this._toolbox.refresh(magicOption); - this._zr.clearAnimation(); - for (var i = 0, l = this._chartList.length; i < l; i++) { - this._chartList[i].refresh && this._chartList[i].refresh(magicOption); - } - this.component.grid && this.component.grid.refixAxisShape(this.component); - this._zr.refresh(); - }, - _disposeChartList: function () { - this._clearEffect(); - this._zr.clearAnimation(); - var len = this._chartList.length; - while (len--) { - var chart = this._chartList[len]; - if (chart) { - var chartType = chart.type; - this.chart[chartType] && delete this.chart[chartType]; - this.component[chartType] && delete this.component[chartType]; - chart.dispose && chart.dispose(); - } - } - this._chartList = []; - }, - _mergeGlobalConifg: function (magicOption) { - var mergeList = [ - 'backgroundColor', - 'calculable', - 'calculableColor', - 'calculableHolderColor', - 'nameConnector', - 'valueConnector', - 'animation', - 'animationThreshold', - 'animationDuration', - 'animationDurationUpdate', - 'animationEasing', - 'addDataAnimation', - 'symbolList', - 'DRAG_ENABLE_TIME' - ]; - var len = mergeList.length; - while (len--) { - var mergeItem = mergeList[len]; - if (magicOption[mergeItem] == null) { - magicOption[mergeItem] = this._themeConfig[mergeItem] != null ? this._themeConfig[mergeItem] : ecConfig[mergeItem]; - } - } - var themeColor = magicOption.color; - if (!(themeColor && themeColor.length)) { - themeColor = this._themeConfig.color || ecConfig.color; - } - this._zr.getColor = function (idx) { - var zrColor = require('zrender/tool/color'); - return zrColor.getColor(idx, themeColor); - }; - if (!_canvasSupported) { - magicOption.animation = false; - magicOption.addDataAnimation = false; - } - }, - setOption: function (option, notMerge) { - if (!option.timeline) { - return this._setOption(option, notMerge); - } else { - return this._setTimelineOption(option); - } - }, - _setOption: function (option, notMerge, keepTimeLine) { - if (!notMerge && this._option) { - this._option = zrUtil.merge(this.getOption(), zrUtil.clone(option), true); - } else { - this._option = zrUtil.clone(option); - !keepTimeLine && this._timeline && this._timeline.dispose(); - } - this._optionRestore = zrUtil.clone(this._option); - if (!this._option.series || this._option.series.length === 0) { - this._zr.clear(); - return; - } - if (this.component.dataZoom && (this._option.dataZoom || this._option.toolbox && this._option.toolbox.feature && this._option.toolbox.feature.dataZoom && this._option.toolbox.feature.dataZoom.show)) { - this.component.dataZoom.syncOption(this._option); - } - this._toolbox.reset(this._option); - this._render(this._option); - return this; - }, - getOption: function () { - var magicOption = zrUtil.clone(this._option); - var self = this; - function restoreOption(prop) { - var restoreSource = self._optionRestore[prop]; - if (restoreSource) { - if (restoreSource instanceof Array) { - var len = restoreSource.length; - while (len--) { - magicOption[prop][len].data = zrUtil.clone(restoreSource[len].data); - } - } else { - magicOption[prop].data = zrUtil.clone(restoreSource.data); - } - } - } - restoreOption('xAxis'); - restoreOption('yAxis'); - restoreOption('series'); - return magicOption; - }, - setSeries: function (series, notMerge) { - if (!notMerge) { - this.setOption({ series: series }); - } else { - this._option.series = series; - this.setOption(this._option, notMerge); - } - return this; - }, - getSeries: function () { - return this.getOption().series; - }, - _setTimelineOption: function (option) { - this._timeline && this._timeline.dispose(); - var Timeline = require('./component/timeline'); - var timeline = new Timeline(this._themeConfig, this._messageCenter, this._zr, option, this); - this._timeline = timeline; - this.component.timeline = this._timeline; - return this; - }, - addData: function (seriesIdx, data, isHead, dataGrow, additionData) { - var params = seriesIdx instanceof Array ? seriesIdx : [[ - seriesIdx, - data, - isHead, - dataGrow, - additionData - ]]; - var magicOption = this.getOption(); - var optionRestore = this._optionRestore; - var self = this; - for (var i = 0, l = params.length; i < l; i++) { - seriesIdx = params[i][0]; - data = params[i][1]; - isHead = params[i][2]; - dataGrow = params[i][3]; - additionData = params[i][4]; - var seriesItem = optionRestore.series[seriesIdx]; - var inMethod = isHead ? 'unshift' : 'push'; - var outMethod = isHead ? 'pop' : 'shift'; - if (seriesItem) { - var seriesItemData = seriesItem.data; - var mSeriesItemData = magicOption.series[seriesIdx].data; - seriesItemData[inMethod](data); - mSeriesItemData[inMethod](data); - if (!dataGrow) { - seriesItemData[outMethod](); - data = mSeriesItemData[outMethod](); - } - if (additionData != null) { - var legend; - var legendData; - if (seriesItem.type === ecConfig.CHART_TYPE_PIE && (legend = optionRestore.legend) && (legendData = legend.data)) { - var mLegendData = magicOption.legend.data; - legendData[inMethod](additionData); - mLegendData[inMethod](additionData); - if (!dataGrow) { - var legendDataIdx = zrUtil.indexOf(legendData, data.name); - legendDataIdx != -1 && legendData.splice(legendDataIdx, 1); - legendDataIdx = zrUtil.indexOf(mLegendData, data.name); - legendDataIdx != -1 && mLegendData.splice(legendDataIdx, 1); - } - } else if (optionRestore.xAxis != null && optionRestore.yAxis != null) { - var axisData; - var mAxisData; - var axisIdx = seriesItem.xAxisIndex || 0; - if (optionRestore.xAxis[axisIdx].type == null || optionRestore.xAxis[axisIdx].type === 'category') { - axisData = optionRestore.xAxis[axisIdx].data; - mAxisData = magicOption.xAxis[axisIdx].data; - axisData[inMethod](additionData); - mAxisData[inMethod](additionData); - if (!dataGrow) { - axisData[outMethod](); - mAxisData[outMethod](); - } - } - axisIdx = seriesItem.yAxisIndex || 0; - if (optionRestore.yAxis[axisIdx].type === 'category') { - axisData = optionRestore.yAxis[axisIdx].data; - mAxisData = magicOption.yAxis[axisIdx].data; - axisData[inMethod](additionData); - mAxisData[inMethod](additionData); - if (!dataGrow) { - axisData[outMethod](); - mAxisData[outMethod](); - } - } - } - } - this._option.series[seriesIdx].data = magicOption.series[seriesIdx].data; - } - } - this._zr.clearAnimation(); - var chartList = this._chartList; - var chartAnimationCount = 0; - var chartAnimationDone = function () { - chartAnimationCount--; - if (chartAnimationCount === 0) { - animationDone(); - } - }; - for (var i = 0, l = chartList.length; i < l; i++) { - if (magicOption.addDataAnimation && chartList[i].addDataAnimation) { - chartAnimationCount++; - chartList[i].addDataAnimation(params, chartAnimationDone); - } - } - this.component.dataZoom && this.component.dataZoom.syncOption(magicOption); - this._option = magicOption; - function animationDone() { - if (!self._zr) { - return; - } - self._zr.clearAnimation(); - for (var i = 0, l = chartList.length; i < l; i++) { - chartList[i].motionlessOnce = magicOption.addDataAnimation && chartList[i].addDataAnimation; - } - self._messageCenter.dispatch(ecConfig.EVENT.REFRESH, null, { option: magicOption }, self); - } - if (!magicOption.addDataAnimation) { - setTimeout(animationDone, 0); - } - return this; - }, - addMarkPoint: function (seriesIdx, markData) { - return this._addMark(seriesIdx, markData, 'markPoint'); - }, - addMarkLine: function (seriesIdx, markData) { - return this._addMark(seriesIdx, markData, 'markLine'); - }, - _addMark: function (seriesIdx, markData, markType) { - var series = this._option.series; - var seriesItem; - if (series && (seriesItem = series[seriesIdx])) { - var seriesR = this._optionRestore.series; - var seriesRItem = seriesR[seriesIdx]; - var markOpt = seriesItem[markType]; - var markOptR = seriesRItem[markType]; - markOpt = seriesItem[markType] = markOpt || { data: [] }; - markOptR = seriesRItem[markType] = markOptR || { data: [] }; - for (var key in markData) { - if (key === 'data') { - markOpt.data = markOpt.data.concat(markData.data); - markOptR.data = markOptR.data.concat(markData.data); - } else if (typeof markData[key] != 'object' || markOpt[key] == null) { - markOpt[key] = markOptR[key] = markData[key]; - } else { - zrUtil.merge(markOpt[key], markData[key], true); - zrUtil.merge(markOptR[key], markData[key], true); - } - } - var chart = this.chart[seriesItem.type]; - chart && chart.addMark(seriesIdx, markData, markType); - } - return this; - }, - delMarkPoint: function (seriesIdx, markName) { - return this._delMark(seriesIdx, markName, 'markPoint'); - }, - delMarkLine: function (seriesIdx, markName) { - return this._delMark(seriesIdx, markName, 'markLine'); - }, - _delMark: function (seriesIdx, markName, markType) { - var series = this._option.series; - var seriesItem; - var mark; - var dataArray; - if (!(series && (seriesItem = series[seriesIdx]) && (mark = seriesItem[markType]) && (dataArray = mark.data))) { - return this; - } - markName = markName.split(' > '); - var targetIndex = -1; - for (var i = 0, l = dataArray.length; i < l; i++) { - var dataItem = dataArray[i]; - if (dataItem instanceof Array) { - if (dataItem[0].name === markName[0] && dataItem[1].name === markName[1]) { - targetIndex = i; - break; - } - } else if (dataItem.name === markName[0]) { - targetIndex = i; - break; - } - } - if (targetIndex > -1) { - dataArray.splice(targetIndex, 1); - this._optionRestore.series[seriesIdx][markType].data.splice(targetIndex, 1); - var chart = this.chart[seriesItem.type]; - chart && chart.delMark(seriesIdx, markName.join(' > '), markType); - } - return this; - }, - getDom: function () { - return this.dom; - }, - getZrender: function () { - return this._zr; - }, - getDataURL: function (imgType) { - if (!_canvasSupported) { - return ''; - } - if (this._chartList.length === 0) { - var imgId = 'IMG' + this.id; - var img = document.getElementById(imgId); - if (img) { - return img.src; - } - } - var tooltip = this.component.tooltip; - tooltip && tooltip.hideTip(); - switch (imgType) { - case 'jpeg': - break; - default: - imgType = 'png'; - } - var bgColor = this._option.backgroundColor; - if (bgColor && bgColor.replace(' ', '') === 'rgba(0,0,0,0)') { - bgColor = '#fff'; - } - return this._zr.toDataURL('image/' + imgType, bgColor); - }, - getImage: function (imgType) { - var title = this._optionRestore.title; - var imgDom = document.createElement('img'); - imgDom.src = this.getDataURL(imgType); - imgDom.title = title && title.text || 'ECharts'; - return imgDom; - }, - getConnectedDataURL: function (imgType) { - if (!this.isConnected()) { - return this.getDataURL(imgType); - } - var tempDom = this.dom; - var imgList = { - 'self': { - img: this.getDataURL(imgType), - left: tempDom.offsetLeft, - top: tempDom.offsetTop, - right: tempDom.offsetLeft + tempDom.offsetWidth, - bottom: tempDom.offsetTop + tempDom.offsetHeight - } - }; - var minLeft = imgList.self.left; - var minTop = imgList.self.top; - var maxRight = imgList.self.right; - var maxBottom = imgList.self.bottom; - for (var c in this._connected) { - tempDom = this._connected[c].getDom(); - imgList[c] = { - img: this._connected[c].getDataURL(imgType), - left: tempDom.offsetLeft, - top: tempDom.offsetTop, - right: tempDom.offsetLeft + tempDom.offsetWidth, - bottom: tempDom.offsetTop + tempDom.offsetHeight - }; - minLeft = Math.min(minLeft, imgList[c].left); - minTop = Math.min(minTop, imgList[c].top); - maxRight = Math.max(maxRight, imgList[c].right); - maxBottom = Math.max(maxBottom, imgList[c].bottom); - } - var zrDom = document.createElement('div'); - zrDom.style.position = 'absolute'; - zrDom.style.left = '-4000px'; - zrDom.style.width = maxRight - minLeft + 'px'; - zrDom.style.height = maxBottom - minTop + 'px'; - document.body.appendChild(zrDom); - var zrImg = require('zrender').init(zrDom); - var ImageShape = require('zrender/shape/Image'); - for (var c in imgList) { - zrImg.addShape(new ImageShape({ - style: { - x: imgList[c].left - minLeft, - y: imgList[c].top - minTop, - image: imgList[c].img - } - })); - } - zrImg.render(); - var bgColor = this._option.backgroundColor; - if (bgColor && bgColor.replace(/ /g, '') === 'rgba(0,0,0,0)') { - bgColor = '#fff'; - } - var image = zrImg.toDataURL('image/png', bgColor); - setTimeout(function () { - zrImg.dispose(); - zrDom.parentNode.removeChild(zrDom); - zrDom = null; - }, 100); - return image; - }, - getConnectedImage: function (imgType) { - var title = this._optionRestore.title; - var imgDom = document.createElement('img'); - imgDom.src = this.getConnectedDataURL(imgType); - imgDom.title = title && title.text || 'ECharts'; - return imgDom; - }, - on: function (eventName, eventListener) { - this._messageCenterOutSide.bind(eventName, eventListener, this); - return this; - }, - un: function (eventName, eventListener) { - this._messageCenterOutSide.unbind(eventName, eventListener); - return this; - }, - connect: function (connectTarget) { - if (!connectTarget) { - return this; - } - if (!this._connected) { - this._connected = {}; - } - if (connectTarget instanceof Array) { - for (var i = 0, l = connectTarget.length; i < l; i++) { - this._connected[connectTarget[i].id] = connectTarget[i]; - } - } else { - this._connected[connectTarget.id] = connectTarget; - } - return this; - }, - disConnect: function (connectTarget) { - if (!connectTarget || !this._connected) { - return this; - } - if (connectTarget instanceof Array) { - for (var i = 0, l = connectTarget.length; i < l; i++) { - delete this._connected[connectTarget[i].id]; - } - } else { - delete this._connected[connectTarget.id]; - } - for (var k in this._connected) { - return k, this; - } - this._connected = false; - return this; - }, - connectedEventHandler: function (param) { - if (param.__echartsId != this.id) { - this._onevent(param); - } - }, - isConnected: function () { - return !!this._connected; - }, - showLoading: function (loadingOption) { - var effectList = { - bar: require('zrender/loadingEffect/Bar'), - bubble: require('zrender/loadingEffect/Bubble'), - dynamicLine: require('zrender/loadingEffect/DynamicLine'), - ring: require('zrender/loadingEffect/Ring'), - spin: require('zrender/loadingEffect/Spin'), - whirling: require('zrender/loadingEffect/Whirling') - }; - this._toolbox.hideDataView(); - loadingOption = loadingOption || {}; - var textStyle = loadingOption.textStyle || {}; - loadingOption.textStyle = textStyle; - var finalTextStyle = zrUtil.merge(zrUtil.merge(zrUtil.clone(textStyle), this._themeConfig.textStyle), ecConfig.textStyle); - textStyle.textFont = finalTextStyle.fontStyle + ' ' + finalTextStyle.fontWeight + ' ' + finalTextStyle.fontSize + 'px ' + finalTextStyle.fontFamily; - textStyle.text = loadingOption.text || this._option && this._option.loadingText || this._themeConfig.loadingText || ecConfig.loadingText; - if (loadingOption.x != null) { - textStyle.x = loadingOption.x; - } - if (loadingOption.y != null) { - textStyle.y = loadingOption.y; - } - loadingOption.effectOption = loadingOption.effectOption || {}; - loadingOption.effectOption.textStyle = textStyle; - var Effect = loadingOption.effect; - if (typeof Effect === 'string' || Effect == null) { - Effect = effectList[loadingOption.effect || this._option && this._option.loadingEffect || this._themeConfig.loadingEffect || ecConfig.loadingEffect] || effectList.spin; - } - this._zr.showLoading(new Effect(loadingOption.effectOption)); - return this; - }, - hideLoading: function () { - this._zr.hideLoading(); - return this; - }, - setTheme: function (theme) { - if (theme) { - if (typeof theme === 'string') { - switch (theme) { - case 'macarons': - theme = require('./theme/macarons'); - break; - case 'infographic': - theme = require('./theme/infographic'); - break; - default: - theme = {}; - } - } else { - theme = theme || {}; - } - this._themeConfig = theme; - } - if (!_canvasSupported) { - var textStyle = this._themeConfig.textStyle; - textStyle && textStyle.fontFamily && textStyle.fontFamily2 && (textStyle.fontFamily = textStyle.fontFamily2); - textStyle = ecConfig.textStyle; - textStyle.fontFamily = textStyle.fontFamily2; - } - this._timeline && this._timeline.setTheme(true); - this._optionRestore && this.restore(); - }, - resize: function () { - var self = this; - return function () { - self._clearEffect(); - self._zr.resize(); - if (self._option && self._option.renderAsImage && _canvasSupported) { - self._render(self._option); - return self; - } - self._zr.clearAnimation(); - self._island.resize(); - self._toolbox.resize(); - self._timeline && self._timeline.resize(); - for (var i = 0, l = self._chartList.length; i < l; i++) { - self._chartList[i].resize && self._chartList[i].resize(); - } - self.component.grid && self.component.grid.refixAxisShape(self.component); - self._zr.refresh(); - self._messageCenter.dispatch(ecConfig.EVENT.RESIZE, null, null, self); - return self; - }; - }, - _clearEffect: function () { - this._zr.modLayer(ecConfig.EFFECT_ZLEVEL, { motionBlur: false }); - this._zr.painter.clearLayer(ecConfig.EFFECT_ZLEVEL); - }, - clear: function () { - this._disposeChartList(); - this._zr.clear(); - this._option = {}; - this._optionRestore = {}; - this.dom.style.backgroundColor = null; - return this; - }, - dispose: function () { - var key = this.dom.getAttribute(DOM_ATTRIBUTE_KEY); - key && delete _instances[key]; - this._island.dispose(); - this._toolbox.dispose(); - this._timeline && this._timeline.dispose(); - this._messageCenter.unbind(); - this.clear(); - this._zr.dispose(); - this._zr = null; - } - }; - return self; -});define('echarts/config', [], function () { - var config = { - CHART_TYPE_LINE: 'line', - CHART_TYPE_BAR: 'bar', - CHART_TYPE_SCATTER: 'scatter', - CHART_TYPE_PIE: 'pie', - CHART_TYPE_RADAR: 'radar', - CHART_TYPE_VENN: 'venn', - CHART_TYPE_TREEMAP: 'treemap', - CHART_TYPE_TREE: 'tree', - CHART_TYPE_MAP: 'map', - CHART_TYPE_K: 'k', - CHART_TYPE_ISLAND: 'island', - CHART_TYPE_FORCE: 'force', - CHART_TYPE_CHORD: 'chord', - CHART_TYPE_GAUGE: 'gauge', - CHART_TYPE_FUNNEL: 'funnel', - CHART_TYPE_EVENTRIVER: 'eventRiver', - CHART_TYPE_WORDCLOUD: 'wordCloud', - CHART_TYPE_HEATMAP: 'heatmap', - COMPONENT_TYPE_TITLE: 'title', - COMPONENT_TYPE_LEGEND: 'legend', - COMPONENT_TYPE_DATARANGE: 'dataRange', - COMPONENT_TYPE_DATAVIEW: 'dataView', - COMPONENT_TYPE_DATAZOOM: 'dataZoom', - COMPONENT_TYPE_TOOLBOX: 'toolbox', - COMPONENT_TYPE_TOOLTIP: 'tooltip', - COMPONENT_TYPE_GRID: 'grid', - COMPONENT_TYPE_AXIS: 'axis', - COMPONENT_TYPE_POLAR: 'polar', - COMPONENT_TYPE_X_AXIS: 'xAxis', - COMPONENT_TYPE_Y_AXIS: 'yAxis', - COMPONENT_TYPE_AXIS_CATEGORY: 'categoryAxis', - COMPONENT_TYPE_AXIS_VALUE: 'valueAxis', - COMPONENT_TYPE_TIMELINE: 'timeline', - COMPONENT_TYPE_ROAMCONTROLLER: 'roamController', - backgroundColor: 'rgba(0,0,0,0)', - color: [ - '#ff7f50', - '#87cefa', - '#da70d6', - '#32cd32', - '#6495ed', - '#ff69b4', - '#ba55d3', - '#cd5c5c', - '#ffa500', - '#40e0d0', - '#1e90ff', - '#ff6347', - '#7b68ee', - '#00fa9a', - '#ffd700', - '#6699FF', - '#ff6666', - '#3cb371', - '#b8860b', - '#30e0e0' - ], - markPoint: { - clickable: true, - symbol: 'pin', - symbolSize: 10, - large: false, - effect: { - show: false, - loop: true, - period: 15, - type: 'scale', - scaleSize: 2, - bounceDistance: 10 - }, - itemStyle: { - normal: { - borderWidth: 2, - label: { - show: true, - position: 'inside' - } - }, - emphasis: { label: { show: true } } - } - }, - markLine: { - clickable: true, - symbol: [ - 'circle', - 'arrow' - ], - symbolSize: [ - 2, - 4 - ], - smoothness: 0.2, - precision: 2, - effect: { - show: false, - loop: true, - period: 15, - scaleSize: 2 - }, - bundling: { - enable: false, - maxTurningAngle: 45 - }, - itemStyle: { - normal: { - borderWidth: 1.5, - label: { - show: true, - position: 'end' - }, - lineStyle: { type: 'dashed' } - }, - emphasis: { - label: { show: false }, - lineStyle: {} - } - } - }, - textStyle: { - decoration: 'none', - fontFamily: 'Arial, Verdana, sans-serif', - fontFamily2: '微软雅黑', - fontSize: 12, - fontStyle: 'normal', - fontWeight: 'normal' - }, - EVENT: { - REFRESH: 'refresh', - RESTORE: 'restore', - RESIZE: 'resize', - CLICK: 'click', - DBLCLICK: 'dblclick', - HOVER: 'hover', - MOUSEOUT: 'mouseout', - DATA_CHANGED: 'dataChanged', - DATA_ZOOM: 'dataZoom', - DATA_RANGE: 'dataRange', - DATA_RANGE_SELECTED: 'dataRangeSelected', - DATA_RANGE_HOVERLINK: 'dataRangeHoverLink', - LEGEND_SELECTED: 'legendSelected', - LEGEND_HOVERLINK: 'legendHoverLink', - MAP_SELECTED: 'mapSelected', - PIE_SELECTED: 'pieSelected', - MAGIC_TYPE_CHANGED: 'magicTypeChanged', - DATA_VIEW_CHANGED: 'dataViewChanged', - TIMELINE_CHANGED: 'timelineChanged', - MAP_ROAM: 'mapRoam', - FORCE_LAYOUT_END: 'forceLayoutEnd', - TOOLTIP_HOVER: 'tooltipHover', - TOOLTIP_IN_GRID: 'tooltipInGrid', - TOOLTIP_OUT_GRID: 'tooltipOutGrid', - ROAMCONTROLLER: 'roamController' - }, - DRAG_ENABLE_TIME: 120, - EFFECT_ZLEVEL: 10, - effectBlendAlpha: 0.95, - symbolList: [ - 'circle', - 'rectangle', - 'triangle', - 'diamond', - 'emptyCircle', - 'emptyRectangle', - 'emptyTriangle', - 'emptyDiamond' - ], - loadingEffect: 'spin', - loadingText: '数据读取中...', - noDataEffect: 'bubble', - noDataText: '暂无数据', - calculable: false, - calculableColor: 'rgba(255,165,0,0.6)', - calculableHolderColor: '#ccc', - nameConnector: ' & ', - valueConnector: ': ', - animation: true, - addDataAnimation: true, - animationThreshold: 2000, - animationDuration: 2000, - animationDurationUpdate: 500, - animationEasing: 'ExponentialOut' - }; - return config; -});define('zrender/tool/util', [ - 'require', - '../dep/excanvas' -], function (require) { - var ArrayProto = Array.prototype; - var nativeForEach = ArrayProto.forEach; - var nativeMap = ArrayProto.map; - var nativeFilter = ArrayProto.filter; - var BUILTIN_OBJECT = { - '[object Function]': 1, - '[object RegExp]': 1, - '[object Date]': 1, - '[object Error]': 1, - '[object CanvasGradient]': 1 - }; - var objToString = Object.prototype.toString; - function isDom(obj) { - return obj && obj.nodeType === 1 && typeof obj.nodeName == 'string'; - } - function clone(source) { - if (typeof source == 'object' && source !== null) { - var result = source; - if (source instanceof Array) { - result = []; - for (var i = 0, len = source.length; i < len; i++) { - result[i] = clone(source[i]); - } - } else if (!BUILTIN_OBJECT[objToString.call(source)] && !isDom(source)) { - result = {}; - for (var key in source) { - if (source.hasOwnProperty(key)) { - result[key] = clone(source[key]); - } - } - } - return result; - } - return source; - } - function mergeItem(target, source, key, overwrite) { - if (source.hasOwnProperty(key)) { - var targetProp = target[key]; - if (typeof targetProp == 'object' && !BUILTIN_OBJECT[objToString.call(targetProp)] && !isDom(targetProp)) { - merge(target[key], source[key], overwrite); - } else if (overwrite || !(key in target)) { - target[key] = source[key]; - } - } - } - function merge(target, source, overwrite) { - for (var i in source) { - mergeItem(target, source, i, overwrite); - } - return target; - } - var _ctx; - function getContext() { - if (!_ctx) { - require('../dep/excanvas'); - if (window['G_vmlCanvasManager']) { - var _div = document.createElement('div'); - _div.style.position = 'absolute'; - _div.style.top = '-1000px'; - document.body.appendChild(_div); - _ctx = G_vmlCanvasManager.initElement(_div).getContext('2d'); - } else { - _ctx = document.createElement('canvas').getContext('2d'); - } - } - return _ctx; - } - function indexOf(array, value) { - if (array.indexOf) { - return array.indexOf(value); - } - for (var i = 0, len = array.length; i < len; i++) { - if (array[i] === value) { - return i; - } - } - return -1; - } - function inherits(clazz, baseClazz) { - var clazzPrototype = clazz.prototype; - function F() { - } - F.prototype = baseClazz.prototype; - clazz.prototype = new F(); - for (var prop in clazzPrototype) { - clazz.prototype[prop] = clazzPrototype[prop]; - } - clazz.constructor = clazz; - } - function each(obj, cb, context) { - if (!(obj && cb)) { - return; - } - if (obj.forEach && obj.forEach === nativeForEach) { - obj.forEach(cb, context); - } else if (obj.length === +obj.length) { - for (var i = 0, len = obj.length; i < len; i++) { - cb.call(context, obj[i], i, obj); - } - } else { - for (var key in obj) { - if (obj.hasOwnProperty(key)) { - cb.call(context, obj[key], key, obj); - } - } - } - } - function map(obj, cb, context) { - if (!(obj && cb)) { - return; - } - if (obj.map && obj.map === nativeMap) { - return obj.map(cb, context); - } else { - var result = []; - for (var i = 0, len = obj.length; i < len; i++) { - result.push(cb.call(context, obj[i], i, obj)); - } - return result; - } - } - function filter(obj, cb, context) { - if (!(obj && cb)) { - return; - } - if (obj.filter && obj.filter === nativeFilter) { - return obj.filter(cb, context); - } else { - var result = []; - for (var i = 0, len = obj.length; i < len; i++) { - if (cb.call(context, obj[i], i, obj)) { - result.push(obj[i]); - } - } - return result; - } - } - function bind(func, context) { - return function () { - func.apply(context, arguments); - }; - } - return { - inherits: inherits, - clone: clone, - merge: merge, - getContext: getContext, - indexOf: indexOf, - each: each, - map: map, - filter: filter, - bind: bind - }; -});define('zrender/tool/event', [ - 'require', - '../mixin/Eventful' -], function (require) { - 'use strict'; - var Eventful = require('../mixin/Eventful'); - function getX(e) { - return typeof e.zrenderX != 'undefined' && e.zrenderX || typeof e.offsetX != 'undefined' && e.offsetX || typeof e.layerX != 'undefined' && e.layerX || typeof e.clientX != 'undefined' && e.clientX; - } - function getY(e) { - return typeof e.zrenderY != 'undefined' && e.zrenderY || typeof e.offsetY != 'undefined' && e.offsetY || typeof e.layerY != 'undefined' && e.layerY || typeof e.clientY != 'undefined' && e.clientY; - } - function getDelta(e) { - return typeof e.zrenderDelta != 'undefined' && e.zrenderDelta || typeof e.wheelDelta != 'undefined' && e.wheelDelta || typeof e.detail != 'undefined' && -e.detail; - } - var stop = typeof window.addEventListener === 'function' ? function (e) { - e.preventDefault(); - e.stopPropagation(); - e.cancelBubble = true; - } : function (e) { - e.returnValue = false; - e.cancelBubble = true; - }; - return { - getX: getX, - getY: getY, - getDelta: getDelta, - stop: stop, - Dispatcher: Eventful - }; -});define('zrender/tool/env', [], function () { - function detect(ua) { - var os = this.os = {}; - var browser = this.browser = {}; - var webkit = ua.match(/Web[kK]it[\/]{0,1}([\d.]+)/); - var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); - var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); - var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); - var iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/); - var webos = ua.match(/(webOS|hpwOS)[\s\/]([\d.]+)/); - var touchpad = webos && ua.match(/TouchPad/); - var kindle = ua.match(/Kindle\/([\d.]+)/); - var silk = ua.match(/Silk\/([\d._]+)/); - var blackberry = ua.match(/(BlackBerry).*Version\/([\d.]+)/); - var bb10 = ua.match(/(BB10).*Version\/([\d.]+)/); - var rimtabletos = ua.match(/(RIM\sTablet\sOS)\s([\d.]+)/); - var playbook = ua.match(/PlayBook/); - var chrome = ua.match(/Chrome\/([\d.]+)/) || ua.match(/CriOS\/([\d.]+)/); - var firefox = ua.match(/Firefox\/([\d.]+)/); - var ie = ua.match(/MSIE ([\d.]+)/); - var safari = webkit && ua.match(/Mobile\//) && !chrome; - var webview = ua.match(/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/) && !chrome; - var ie = ua.match(/MSIE\s([\d.]+)/); - if (browser.webkit = !!webkit) - browser.version = webkit[1]; - if (android) - os.android = true, os.version = android[2]; - if (iphone && !ipod) - os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.'); - if (ipad) - os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.'); - if (ipod) - os.ios = os.ipod = true, os.version = ipod[3] ? ipod[3].replace(/_/g, '.') : null; - if (webos) - os.webos = true, os.version = webos[2]; - if (touchpad) - os.touchpad = true; - if (blackberry) - os.blackberry = true, os.version = blackberry[2]; - if (bb10) - os.bb10 = true, os.version = bb10[2]; - if (rimtabletos) - os.rimtabletos = true, os.version = rimtabletos[2]; - if (playbook) - browser.playbook = true; - if (kindle) - os.kindle = true, os.version = kindle[1]; - if (silk) - browser.silk = true, browser.version = silk[1]; - if (!silk && os.android && ua.match(/Kindle Fire/)) - browser.silk = true; - if (chrome) - browser.chrome = true, browser.version = chrome[1]; - if (firefox) - browser.firefox = true, browser.version = firefox[1]; - if (ie) - browser.ie = true, browser.version = ie[1]; - if (safari && (ua.match(/Safari/) || !!os.ios)) - browser.safari = true; - if (webview) - browser.webview = true; - if (ie) - browser.ie = true, browser.version = ie[1]; - os.tablet = !!(ipad || playbook || android && !ua.match(/Mobile/) || firefox && ua.match(/Tablet/) || ie && !ua.match(/Phone/) && ua.match(/Touch/)); - os.phone = !!(!os.tablet && !os.ipod && (android || iphone || webos || blackberry || bb10 || chrome && ua.match(/Android/) || chrome && ua.match(/CriOS\/([\d.]+)/) || firefox && ua.match(/Mobile/) || ie && ua.match(/Touch/))); - return { - browser: browser, - os: os, - canvasSupported: document.createElement('canvas').getContext ? true : false - }; - } - return detect(navigator.userAgent); -});define('zrender', ['zrender/zrender'], function (main) {return main;}); -define('zrender/zrender', [ - 'require', - './dep/excanvas', - './tool/util', - './tool/log', - './tool/guid', - './Handler', - './Painter', - './Storage', - './animation/Animation', - './tool/env' -], function (require) { - require('./dep/excanvas'); - var util = require('./tool/util'); - var log = require('./tool/log'); - var guid = require('./tool/guid'); - var Handler = require('./Handler'); - var Painter = require('./Painter'); - var Storage = require('./Storage'); - var Animation = require('./animation/Animation'); - var _instances = {}; - var zrender = {}; - zrender.version = '2.1.1'; - zrender.init = function (dom) { - var zr = new ZRender(guid(), dom); - _instances[zr.id] = zr; - return zr; - }; - zrender.dispose = function (zr) { - if (zr) { - zr.dispose(); - } else { - for (var key in _instances) { - _instances[key].dispose(); - } - _instances = {}; - } - return zrender; - }; - zrender.getInstance = function (id) { - return _instances[id]; - }; - zrender.delInstance = function (id) { - delete _instances[id]; - return zrender; - }; - function getFrameCallback(zrInstance) { - return function () { - if (zrInstance._needsRefreshNextFrame) { - zrInstance.refresh(); - } - }; - } - var ZRender = function (id, dom) { - this.id = id; - this.env = require('./tool/env'); - this.storage = new Storage(); - this.painter = new Painter(dom, this.storage); - this.handler = new Handler(dom, this.storage, this.painter); - this.animation = new Animation({ stage: { update: getFrameCallback(this) } }); - this.animation.start(); - var self = this; - this.painter.refreshNextFrame = function () { - self.refreshNextFrame(); - }; - this._needsRefreshNextFrame = false; - var self = this; - var storage = this.storage; - var oldDelFromMap = storage.delFromMap; - storage.delFromMap = function (elId) { - var el = storage.get(elId); - self.stopAnimation(el); - oldDelFromMap.call(storage, elId); - }; - }; - ZRender.prototype.getId = function () { - return this.id; - }; - ZRender.prototype.addShape = function (shape) { - this.addElement(shape); - return this; - }; - ZRender.prototype.addGroup = function (group) { - this.addElement(group); - return this; - }; - ZRender.prototype.delShape = function (shapeId) { - this.delElement(shapeId); - return this; - }; - ZRender.prototype.delGroup = function (groupId) { - this.delElement(groupId); - return this; - }; - ZRender.prototype.modShape = function (shapeId, shape) { - this.modElement(shapeId, shape); - return this; - }; - ZRender.prototype.modGroup = function (groupId, group) { - this.modElement(groupId, group); - return this; - }; - ZRender.prototype.addElement = function (el) { - this.storage.addRoot(el); - this._needsRefreshNextFrame = true; - return this; - }; - ZRender.prototype.delElement = function (el) { - this.storage.delRoot(el); - this._needsRefreshNextFrame = true; - return this; - }; - ZRender.prototype.modElement = function (el, params) { - this.storage.mod(el, params); - this._needsRefreshNextFrame = true; - return this; - }; - ZRender.prototype.modLayer = function (zLevel, config) { - this.painter.modLayer(zLevel, config); - this._needsRefreshNextFrame = true; - return this; - }; - ZRender.prototype.addHoverShape = function (shape) { - this.storage.addHover(shape); - return this; - }; - ZRender.prototype.render = function (callback) { - this.painter.render(callback); - this._needsRefreshNextFrame = false; - return this; - }; - ZRender.prototype.refresh = function (callback) { - this.painter.refresh(callback); - this._needsRefreshNextFrame = false; - return this; - }; - ZRender.prototype.refreshNextFrame = function () { - this._needsRefreshNextFrame = true; - return this; - }; - ZRender.prototype.refreshHover = function (callback) { - this.painter.refreshHover(callback); - return this; - }; - ZRender.prototype.refreshShapes = function (shapeList, callback) { - this.painter.refreshShapes(shapeList, callback); - return this; - }; - ZRender.prototype.resize = function () { - this.painter.resize(); - return this; - }; - ZRender.prototype.animate = function (el, path, loop) { - var self = this; - if (typeof el === 'string') { - el = this.storage.get(el); - } - if (el) { - var target; - if (path) { - var pathSplitted = path.split('.'); - var prop = el; - for (var i = 0, l = pathSplitted.length; i < l; i++) { - if (!prop) { - continue; - } - prop = prop[pathSplitted[i]]; - } - if (prop) { - target = prop; - } - } else { - target = el; - } - if (!target) { - log('Property "' + path + '" is not existed in element ' + el.id); - return; - } - if (el.__animators == null) { - el.__animators = []; - } - var animators = el.__animators; - var animator = this.animation.animate(target, { loop: loop }).during(function () { - self.modShape(el); - }).done(function () { - var idx = util.indexOf(el.__animators, animator); - if (idx >= 0) { - animators.splice(idx, 1); - } - }); - animators.push(animator); - return animator; - } else { - log('Element not existed'); - } - }; - ZRender.prototype.stopAnimation = function (el) { - if (el.__animators) { - var animators = el.__animators; - var len = animators.length; - for (var i = 0; i < len; i++) { - animators[i].stop(); - } - animators.length = 0; - } - return this; - }; - ZRender.prototype.clearAnimation = function () { - this.animation.clear(); - return this; - }; - ZRender.prototype.showLoading = function (loadingEffect) { - this.painter.showLoading(loadingEffect); - return this; - }; - ZRender.prototype.hideLoading = function () { - this.painter.hideLoading(); - return this; - }; - ZRender.prototype.getWidth = function () { - return this.painter.getWidth(); - }; - ZRender.prototype.getHeight = function () { - return this.painter.getHeight(); - }; - ZRender.prototype.toDataURL = function (type, backgroundColor, args) { - return this.painter.toDataURL(type, backgroundColor, args); - }; - ZRender.prototype.shapeToImage = function (e, width, height) { - var id = guid(); - return this.painter.shapeToImage(id, e, width, height); - }; - ZRender.prototype.on = function (eventName, eventHandler, context) { - this.handler.on(eventName, eventHandler, context); - return this; - }; - ZRender.prototype.un = function (eventName, eventHandler) { - this.handler.un(eventName, eventHandler); - return this; - }; - ZRender.prototype.trigger = function (eventName, event) { - this.handler.trigger(eventName, event); - return this; - }; - ZRender.prototype.clear = function () { - this.storage.delRoot(); - this.painter.clear(); - return this; - }; - ZRender.prototype.dispose = function () { - this.animation.stop(); - this.clear(); - this.storage.dispose(); - this.painter.dispose(); - this.handler.dispose(); - this.animation = this.storage = this.painter = this.handler = null; - zrender.delInstance(this.id); - }; - return zrender; -});define('zrender/config', [], function () { - var config = { - EVENT: { - RESIZE: 'resize', - CLICK: 'click', - DBLCLICK: 'dblclick', - MOUSEWHEEL: 'mousewheel', - MOUSEMOVE: 'mousemove', - MOUSEOVER: 'mouseover', - MOUSEOUT: 'mouseout', - MOUSEDOWN: 'mousedown', - MOUSEUP: 'mouseup', - GLOBALOUT: 'globalout', - DRAGSTART: 'dragstart', - DRAGEND: 'dragend', - DRAGENTER: 'dragenter', - DRAGOVER: 'dragover', - DRAGLEAVE: 'dragleave', - DROP: 'drop', - touchClickDelay: 300 - }, - elementClassName: 'zr-element', - catchBrushException: false, - debugMode: 0, - devicePixelRatio: Math.max(window.devicePixelRatio || 1, 1) - }; - return config; -});define('echarts/chart/island', [ - 'require', - './base', - 'zrender/shape/Circle', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/event', - 'zrender/tool/color', - '../util/accMath', - '../chart' -], function (require) { - var ChartBase = require('./base'); - var CircleShape = require('zrender/shape/Circle'); - var ecConfig = require('../config'); - ecConfig.island = { - zlevel: 0, - z: 5, - r: 15, - calculateStep: 0.1 - }; - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrEvent = require('zrender/tool/event'); - function Island(ecTheme, messageCenter, zr, option, myChart) { - ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart); - this._nameConnector; - this._valueConnector; - this._zrHeight = this.zr.getHeight(); - this._zrWidth = this.zr.getWidth(); - var self = this; - self.shapeHandler.onmousewheel = function (param) { - var shape = param.target; - var event = param.event; - var delta = zrEvent.getDelta(event); - delta = delta > 0 ? -1 : 1; - shape.style.r -= delta; - shape.style.r = shape.style.r < 5 ? 5 : shape.style.r; - var value = ecData.get(shape, 'value'); - var dvalue = value * self.option.island.calculateStep; - value = dvalue > 1 ? Math.round(value - dvalue * delta) : +(value - dvalue * delta).toFixed(2); - var name = ecData.get(shape, 'name'); - shape.style.text = name + ':' + value; - ecData.set(shape, 'value', value); - ecData.set(shape, 'name', name); - self.zr.modShape(shape.id); - self.zr.refreshNextFrame(); - zrEvent.stop(event); - }; - } - Island.prototype = { - type: ecConfig.CHART_TYPE_ISLAND, - _combine: function (tarShape, srcShape) { - var zrColor = require('zrender/tool/color'); - var accMath = require('../util/accMath'); - var value = accMath.accAdd(ecData.get(tarShape, 'value'), ecData.get(srcShape, 'value')); - var name = ecData.get(tarShape, 'name') + this._nameConnector + ecData.get(srcShape, 'name'); - tarShape.style.text = name + this._valueConnector + value; - ecData.set(tarShape, 'value', value); - ecData.set(tarShape, 'name', name); - tarShape.style.r = this.option.island.r; - tarShape.style.color = zrColor.mix(tarShape.style.color, srcShape.style.color); - }, - refresh: function (newOption) { - if (newOption) { - newOption.island = this.reformOption(newOption.island); - this.option = newOption; - this._nameConnector = this.option.nameConnector; - this._valueConnector = this.option.valueConnector; - } - }, - getOption: function () { - return this.option; - }, - resize: function () { - var newWidth = this.zr.getWidth(); - var newHieght = this.zr.getHeight(); - var xScale = newWidth / (this._zrWidth || newWidth); - var yScale = newHieght / (this._zrHeight || newHieght); - if (xScale === 1 && yScale === 1) { - return; - } - this._zrWidth = newWidth; - this._zrHeight = newHieght; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.modShape(this.shapeList[i].id, { - style: { - x: Math.round(this.shapeList[i].style.x * xScale), - y: Math.round(this.shapeList[i].style.y * yScale) - } - }); - } - }, - add: function (shape) { - var name = ecData.get(shape, 'name'); - var value = ecData.get(shape, 'value'); - var seriesName = ecData.get(shape, 'series') != null ? ecData.get(shape, 'series').name : ''; - var font = this.getFont(this.option.island.textStyle); - var islandOption = this.option.island; - var islandShape = { - zlevel: islandOption.zlevel, - z: islandOption.z, - style: { - x: shape.style.x, - y: shape.style.y, - r: this.option.island.r, - color: shape.style.color || shape.style.strokeColor, - text: name + this._valueConnector + value, - textFont: font - }, - draggable: true, - hoverable: true, - onmousewheel: this.shapeHandler.onmousewheel, - _type: 'island' - }; - if (islandShape.style.color === '#fff') { - islandShape.style.color = shape.style.strokeColor; - } - this.setCalculable(islandShape); - islandShape.dragEnableTime = 0; - ecData.pack(islandShape, { name: seriesName }, -1, value, -1, name); - islandShape = new CircleShape(islandShape); - this.shapeList.push(islandShape); - this.zr.addShape(islandShape); - }, - del: function (shape) { - this.zr.delShape(shape.id); - var newShapeList = []; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i].id != shape.id) { - newShapeList.push(this.shapeList[i]); - } - } - this.shapeList = newShapeList; - }, - ondrop: function (param, status) { - if (!this.isDrop || !param.target) { - return; - } - var target = param.target; - var dragged = param.dragged; - this._combine(target, dragged); - this.zr.modShape(target.id); - status.dragIn = true; - this.isDrop = false; - return; - }, - ondragend: function (param, status) { - var target = param.target; - if (!this.isDragend) { - if (!status.dragIn) { - target.style.x = zrEvent.getX(param.event); - target.style.y = zrEvent.getY(param.event); - this.add(target); - status.needRefresh = true; - } - } else { - if (status.dragIn) { - this.del(target); - status.needRefresh = true; - } - } - this.isDragend = false; - return; - } - }; - zrUtil.inherits(Island, ChartBase); - require('../chart').define('island', Island); - return Island; -});define('echarts/component/toolbox', [ - 'require', - './base', - 'zrender/shape/Line', - 'zrender/shape/Image', - 'zrender/shape/Rectangle', - '../util/shape/Icon', - '../config', - 'zrender/tool/util', - 'zrender/config', - 'zrender/tool/event', - './dataView', - '../component' -], function (require) { - var Base = require('./base'); - var LineShape = require('zrender/shape/Line'); - var ImageShape = require('zrender/shape/Image'); - var RectangleShape = require('zrender/shape/Rectangle'); - var IconShape = require('../util/shape/Icon'); - var ecConfig = require('../config'); - ecConfig.toolbox = { - zlevel: 0, - z: 6, - show: false, - orient: 'horizontal', - x: 'right', - y: 'top', - color: [ - '#1e90ff', - '#22bb22', - '#4b0082', - '#d2691e' - ], - disableColor: '#ddd', - effectiveColor: 'red', - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - itemGap: 10, - itemSize: 16, - showTitle: true, - feature: { - mark: { - show: false, - title: { - mark: '辅助线开关', - markUndo: '删除辅助线', - markClear: '清空辅助线' - }, - lineStyle: { - width: 1, - color: '#1e90ff', - type: 'dashed' - } - }, - dataZoom: { - show: false, - title: { - dataZoom: '区域缩放', - dataZoomReset: '区域缩放后退' - } - }, - dataView: { - show: false, - title: '数据视图', - readOnly: false, - lang: [ - '数据视图', - '关闭', - '刷新' - ] - }, - magicType: { - show: false, - title: { - line: '折线图切换', - bar: '柱形图切换', - stack: '堆积', - tiled: '平铺', - force: '力导向布局图切换', - chord: '和弦图切换', - pie: '饼图切换', - funnel: '漏斗图切换' - }, - type: [] - }, - restore: { - show: false, - title: '还原' - }, - saveAsImage: { - show: false, - title: '保存为图片', - type: 'png', - lang: ['点击保存'] - } - } - }; - var zrUtil = require('zrender/tool/util'); - var zrConfig = require('zrender/config'); - var zrEvent = require('zrender/tool/event'); - var _MAGICTYPE_STACK = 'stack'; - var _MAGICTYPE_TILED = 'tiled'; - function Toolbox(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.dom = myChart.dom; - this._magicType = {}; - this._magicMap = {}; - this._isSilence = false; - this._iconList; - this._iconShapeMap = {}; - this._featureTitle = {}; - this._featureIcon = {}; - this._featureColor = {}; - this._featureOption = {}; - this._enableColor = 'red'; - this._disableColor = '#ccc'; - this._markShapeList = []; - var self = this; - self._onMark = function (param) { - self.__onMark(param); - }; - self._onMarkUndo = function (param) { - self.__onMarkUndo(param); - }; - self._onMarkClear = function (param) { - self.__onMarkClear(param); - }; - self._onDataZoom = function (param) { - self.__onDataZoom(param); - }; - self._onDataZoomReset = function (param) { - self.__onDataZoomReset(param); - }; - self._onDataView = function (param) { - self.__onDataView(param); - }; - self._onRestore = function (param) { - self.__onRestore(param); - }; - self._onSaveAsImage = function (param) { - self.__onSaveAsImage(param); - }; - self._onMagicType = function (param) { - self.__onMagicType(param); - }; - self._onCustomHandler = function (param) { - self.__onCustomHandler(param); - }; - self._onmousemove = function (param) { - return self.__onmousemove(param); - }; - self._onmousedown = function (param) { - return self.__onmousedown(param); - }; - self._onmouseup = function (param) { - return self.__onmouseup(param); - }; - self._onclick = function (param) { - return self.__onclick(param); - }; - } - Toolbox.prototype = { - type: ecConfig.COMPONENT_TYPE_TOOLBOX, - _buildShape: function () { - this._iconList = []; - var toolboxOption = this.option.toolbox; - this._enableColor = toolboxOption.effectiveColor; - this._disableColor = toolboxOption.disableColor; - var feature = toolboxOption.feature; - var iconName = []; - for (var key in feature) { - if (feature[key].show) { - switch (key) { - case 'mark': - iconName.push({ - key: key, - name: 'mark' - }); - iconName.push({ - key: key, - name: 'markUndo' - }); - iconName.push({ - key: key, - name: 'markClear' - }); - break; - case 'magicType': - for (var i = 0, l = feature[key].type.length; i < l; i++) { - feature[key].title[feature[key].type[i] + 'Chart'] = feature[key].title[feature[key].type[i]]; - if (feature[key].option) { - feature[key].option[feature[key].type[i] + 'Chart'] = feature[key].option[feature[key].type[i]]; - } - iconName.push({ - key: key, - name: feature[key].type[i] + 'Chart' - }); - } - break; - case 'dataZoom': - iconName.push({ - key: key, - name: 'dataZoom' - }); - iconName.push({ - key: key, - name: 'dataZoomReset' - }); - break; - case 'saveAsImage': - if (this.canvasSupported) { - iconName.push({ - key: key, - name: 'saveAsImage' - }); - } - break; - default: - iconName.push({ - key: key, - name: key - }); - break; - } - } - } - if (iconName.length > 0) { - var name; - var key; - for (var i = 0, l = iconName.length; i < l; i++) { - name = iconName[i].name; - key = iconName[i].key; - this._iconList.push(name); - this._featureTitle[name] = feature[key].title[name] || feature[key].title; - if (feature[key].icon) { - this._featureIcon[name] = feature[key].icon[name] || feature[key].icon; - } - if (feature[key].color) { - this._featureColor[name] = feature[key].color[name] || feature[key].color; - } - if (feature[key].option) { - this._featureOption[name] = feature[key].option[name] || feature[key].option; - } - } - this._itemGroupLocation = this._getItemGroupLocation(); - this._buildBackground(); - this._buildItem(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - if (this._iconShapeMap['mark']) { - this._iconDisable(this._iconShapeMap['markUndo']); - this._iconDisable(this._iconShapeMap['markClear']); - } - if (this._iconShapeMap['dataZoomReset'] && this._zoomQueue.length === 0) { - this._iconDisable(this._iconShapeMap['dataZoomReset']); - } - } - }, - _buildItem: function () { - var toolboxOption = this.option.toolbox; - var iconLength = this._iconList.length; - var lastX = this._itemGroupLocation.x; - var lastY = this._itemGroupLocation.y; - var itemSize = toolboxOption.itemSize; - var itemGap = toolboxOption.itemGap; - var itemShape; - var color = toolboxOption.color instanceof Array ? toolboxOption.color : [toolboxOption.color]; - var textFont = this.getFont(toolboxOption.textStyle); - var textPosition; - var textAlign; - var textBaseline; - if (toolboxOption.orient === 'horizontal') { - textPosition = this._itemGroupLocation.y / this.zr.getHeight() < 0.5 ? 'bottom' : 'top'; - textAlign = this._itemGroupLocation.x / this.zr.getWidth() < 0.5 ? 'left' : 'right'; - textBaseline = this._itemGroupLocation.y / this.zr.getHeight() < 0.5 ? 'top' : 'bottom'; - } else { - textPosition = this._itemGroupLocation.x / this.zr.getWidth() < 0.5 ? 'right' : 'left'; - } - this._iconShapeMap = {}; - var self = this; - for (var i = 0; i < iconLength; i++) { - itemShape = { - type: 'icon', - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX, - y: lastY, - width: itemSize, - height: itemSize, - iconType: this._iconList[i], - lineWidth: 1, - strokeColor: this._featureColor[this._iconList[i]] || color[i % color.length], - brushType: 'stroke' - }, - highlightStyle: { - lineWidth: 1, - text: toolboxOption.showTitle ? this._featureTitle[this._iconList[i]] : undefined, - textFont: textFont, - textPosition: textPosition, - strokeColor: this._featureColor[this._iconList[i]] || color[i % color.length] - }, - hoverable: true, - clickable: true - }; - if (this._featureIcon[this._iconList[i]]) { - itemShape.style.image = this._featureIcon[this._iconList[i]].replace(new RegExp('^image:\\/\\/'), ''); - itemShape.style.opacity = 0.8; - itemShape.highlightStyle.opacity = 1; - itemShape.type = 'image'; - } - if (toolboxOption.orient === 'horizontal') { - if (i === 0 && textAlign === 'left') { - itemShape.highlightStyle.textPosition = 'specific'; - itemShape.highlightStyle.textAlign = textAlign; - itemShape.highlightStyle.textBaseline = textBaseline; - itemShape.highlightStyle.textX = lastX; - itemShape.highlightStyle.textY = textBaseline === 'top' ? lastY + itemSize + 10 : lastY - 10; - } - if (i === iconLength - 1 && textAlign === 'right') { - itemShape.highlightStyle.textPosition = 'specific'; - itemShape.highlightStyle.textAlign = textAlign; - itemShape.highlightStyle.textBaseline = textBaseline; - itemShape.highlightStyle.textX = lastX + itemSize; - itemShape.highlightStyle.textY = textBaseline === 'top' ? lastY + itemSize + 10 : lastY - 10; - } - } - switch (this._iconList[i]) { - case 'mark': - itemShape.onclick = self._onMark; - break; - case 'markUndo': - itemShape.onclick = self._onMarkUndo; - break; - case 'markClear': - itemShape.onclick = self._onMarkClear; - break; - case 'dataZoom': - itemShape.onclick = self._onDataZoom; - break; - case 'dataZoomReset': - itemShape.onclick = self._onDataZoomReset; - break; - case 'dataView': - if (!this._dataView) { - var DataView = require('./dataView'); - this._dataView = new DataView(this.ecTheme, this.messageCenter, this.zr, this.option, this.myChart); - } - itemShape.onclick = self._onDataView; - break; - case 'restore': - itemShape.onclick = self._onRestore; - break; - case 'saveAsImage': - itemShape.onclick = self._onSaveAsImage; - break; - default: - if (this._iconList[i].match('Chart')) { - itemShape._name = this._iconList[i].replace('Chart', ''); - itemShape.onclick = self._onMagicType; - } else { - itemShape.onclick = self._onCustomHandler; - } - break; - } - if (itemShape.type === 'icon') { - itemShape = new IconShape(itemShape); - } else if (itemShape.type === 'image') { - itemShape = new ImageShape(itemShape); - } - this.shapeList.push(itemShape); - this._iconShapeMap[this._iconList[i]] = itemShape; - if (toolboxOption.orient === 'horizontal') { - lastX += itemSize + itemGap; - } else { - lastY += itemSize + itemGap; - } - } - }, - _buildBackground: function () { - var toolboxOption = this.option.toolbox; - var padding = this.reformCssArray(this.option.toolbox.padding); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._itemGroupLocation.x - padding[3], - y: this._itemGroupLocation.y - padding[0], - width: this._itemGroupLocation.width + padding[3] + padding[1], - height: this._itemGroupLocation.height + padding[0] + padding[2], - brushType: toolboxOption.borderWidth === 0 ? 'fill' : 'both', - color: toolboxOption.backgroundColor, - strokeColor: toolboxOption.borderColor, - lineWidth: toolboxOption.borderWidth - } - })); - }, - _getItemGroupLocation: function () { - var toolboxOption = this.option.toolbox; - var padding = this.reformCssArray(this.option.toolbox.padding); - var iconLength = this._iconList.length; - var itemGap = toolboxOption.itemGap; - var itemSize = toolboxOption.itemSize; - var totalWidth = 0; - var totalHeight = 0; - if (toolboxOption.orient === 'horizontal') { - totalWidth = (itemSize + itemGap) * iconLength - itemGap; - totalHeight = itemSize; - } else { - totalHeight = (itemSize + itemGap) * iconLength - itemGap; - totalWidth = itemSize; - } - var x; - var zrWidth = this.zr.getWidth(); - switch (toolboxOption.x) { - case 'center': - x = Math.floor((zrWidth - totalWidth) / 2); - break; - case 'left': - x = padding[3] + toolboxOption.borderWidth; - break; - case 'right': - x = zrWidth - totalWidth - padding[1] - toolboxOption.borderWidth; - break; - default: - x = toolboxOption.x - 0; - x = isNaN(x) ? 0 : x; - break; - } - var y; - var zrHeight = this.zr.getHeight(); - switch (toolboxOption.y) { - case 'top': - y = padding[0] + toolboxOption.borderWidth; - break; - case 'bottom': - y = zrHeight - totalHeight - padding[2] - toolboxOption.borderWidth; - break; - case 'center': - y = Math.floor((zrHeight - totalHeight) / 2); - break; - default: - y = toolboxOption.y - 0; - y = isNaN(y) ? 0 : y; - break; - } - return { - x: x, - y: y, - width: totalWidth, - height: totalHeight - }; - }, - __onmousemove: function (param) { - if (this._marking) { - this._markShape.style.xEnd = zrEvent.getX(param.event); - this._markShape.style.yEnd = zrEvent.getY(param.event); - this.zr.addHoverShape(this._markShape); - } - if (this._zooming) { - this._zoomShape.style.width = zrEvent.getX(param.event) - this._zoomShape.style.x; - this._zoomShape.style.height = zrEvent.getY(param.event) - this._zoomShape.style.y; - this.zr.addHoverShape(this._zoomShape); - this.dom.style.cursor = 'crosshair'; - zrEvent.stop(param.event); - } - if (this._zoomStart && (this.dom.style.cursor != 'pointer' && this.dom.style.cursor != 'move')) { - this.dom.style.cursor = 'crosshair'; - } - }, - __onmousedown: function (param) { - if (param.target) { - return; - } - this._zooming = true; - var x = zrEvent.getX(param.event); - var y = zrEvent.getY(param.event); - var zoomOption = this.option.dataZoom || {}; - this._zoomShape = new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: x, - y: y, - width: 1, - height: 1, - brushType: 'both' - }, - highlightStyle: { - lineWidth: 2, - color: zoomOption.fillerColor || ecConfig.dataZoom.fillerColor, - strokeColor: zoomOption.handleColor || ecConfig.dataZoom.handleColor, - brushType: 'both' - } - }); - this.zr.addHoverShape(this._zoomShape); - return true; - }, - __onmouseup: function () { - if (!this._zoomShape || Math.abs(this._zoomShape.style.width) < 10 || Math.abs(this._zoomShape.style.height) < 10) { - this._zooming = false; - return true; - } - if (this._zooming && this.component.dataZoom) { - this._zooming = false; - var zoom = this.component.dataZoom.rectZoom(this._zoomShape.style); - if (zoom) { - this._zoomQueue.push({ - start: zoom.start, - end: zoom.end, - start2: zoom.start2, - end2: zoom.end2 - }); - this._iconEnable(this._iconShapeMap['dataZoomReset']); - this.zr.refreshNextFrame(); - } - } - return true; - }, - __onclick: function (param) { - if (param.target) { - return; - } - if (this._marking) { - this._marking = false; - this._markShapeList.push(this._markShape); - this._iconEnable(this._iconShapeMap['markUndo']); - this._iconEnable(this._iconShapeMap['markClear']); - this.zr.addShape(this._markShape); - this.zr.refreshNextFrame(); - } else if (this._markStart) { - this._marking = true; - var x = zrEvent.getX(param.event); - var y = zrEvent.getY(param.event); - this._markShape = new LineShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - xStart: x, - yStart: y, - xEnd: x, - yEnd: y, - lineWidth: this.query(this.option, 'toolbox.feature.mark.lineStyle.width'), - strokeColor: this.query(this.option, 'toolbox.feature.mark.lineStyle.color'), - lineType: this.query(this.option, 'toolbox.feature.mark.lineStyle.type') - } - }); - this.zr.addHoverShape(this._markShape); - } - }, - __onMark: function (param) { - var target = param.target; - if (this._marking || this._markStart) { - this._resetMark(); - this.zr.refreshNextFrame(); - } else { - this._resetZoom(); - this.zr.modShape(target.id, { style: { strokeColor: this._enableColor } }); - this.zr.refreshNextFrame(); - this._markStart = true; - var self = this; - setTimeout(function () { - self.zr && self.zr.on(zrConfig.EVENT.CLICK, self._onclick) && self.zr.on(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); - }, 10); - } - return true; - }, - __onMarkUndo: function () { - if (this._marking) { - this._marking = false; - } else { - var len = this._markShapeList.length; - if (len >= 1) { - var target = this._markShapeList[len - 1]; - this.zr.delShape(target.id); - this.zr.refreshNextFrame(); - this._markShapeList.pop(); - if (len === 1) { - this._iconDisable(this._iconShapeMap['markUndo']); - this._iconDisable(this._iconShapeMap['markClear']); - } - } - } - return true; - }, - __onMarkClear: function () { - if (this._marking) { - this._marking = false; - } - var len = this._markShapeList.length; - if (len > 0) { - while (len--) { - this.zr.delShape(this._markShapeList.pop().id); - } - this._iconDisable(this._iconShapeMap['markUndo']); - this._iconDisable(this._iconShapeMap['markClear']); - this.zr.refreshNextFrame(); - } - return true; - }, - __onDataZoom: function (param) { - var target = param.target; - if (this._zooming || this._zoomStart) { - this._resetZoom(); - this.zr.refreshNextFrame(); - this.dom.style.cursor = 'default'; - } else { - this._resetMark(); - this.zr.modShape(target.id, { style: { strokeColor: this._enableColor } }); - this.zr.refreshNextFrame(); - this._zoomStart = true; - var self = this; - setTimeout(function () { - self.zr && self.zr.on(zrConfig.EVENT.MOUSEDOWN, self._onmousedown) && self.zr.on(zrConfig.EVENT.MOUSEUP, self._onmouseup) && self.zr.on(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); - }, 10); - this.dom.style.cursor = 'crosshair'; - } - return true; - }, - __onDataZoomReset: function () { - if (this._zooming) { - this._zooming = false; - } - this._zoomQueue.pop(); - if (this._zoomQueue.length > 0) { - this.component.dataZoom.absoluteZoom(this._zoomQueue[this._zoomQueue.length - 1]); - } else { - this.component.dataZoom.rectZoom(); - this._iconDisable(this._iconShapeMap['dataZoomReset']); - this.zr.refreshNextFrame(); - } - return true; - }, - _resetMark: function () { - this._marking = false; - if (this._markStart) { - this._markStart = false; - if (this._iconShapeMap['mark']) { - this.zr.modShape(this._iconShapeMap['mark'].id, { style: { strokeColor: this._iconShapeMap['mark'].highlightStyle.strokeColor } }); - } - this.zr.un(zrConfig.EVENT.CLICK, this._onclick); - this.zr.un(zrConfig.EVENT.MOUSEMOVE, this._onmousemove); - } - }, - _resetZoom: function () { - this._zooming = false; - if (this._zoomStart) { - this._zoomStart = false; - if (this._iconShapeMap['dataZoom']) { - this.zr.modShape(this._iconShapeMap['dataZoom'].id, { style: { strokeColor: this._iconShapeMap['dataZoom'].highlightStyle.strokeColor } }); - } - this.zr.un(zrConfig.EVENT.MOUSEDOWN, this._onmousedown); - this.zr.un(zrConfig.EVENT.MOUSEUP, this._onmouseup); - this.zr.un(zrConfig.EVENT.MOUSEMOVE, this._onmousemove); - } - }, - _iconDisable: function (target) { - if (target.type != 'image') { - this.zr.modShape(target.id, { - hoverable: false, - clickable: false, - style: { strokeColor: this._disableColor } - }); - } else { - this.zr.modShape(target.id, { - hoverable: false, - clickable: false, - style: { opacity: 0.3 } - }); - } - }, - _iconEnable: function (target) { - if (target.type != 'image') { - this.zr.modShape(target.id, { - hoverable: true, - clickable: true, - style: { strokeColor: target.highlightStyle.strokeColor } - }); - } else { - this.zr.modShape(target.id, { - hoverable: true, - clickable: true, - style: { opacity: 0.8 } - }); - } - }, - __onDataView: function () { - this._dataView.show(this.option); - return true; - }, - __onRestore: function () { - this._resetMark(); - this._resetZoom(); - this.messageCenter.dispatch(ecConfig.EVENT.RESTORE, null, null, this.myChart); - return true; - }, - __onSaveAsImage: function () { - var saveOption = this.option.toolbox.feature.saveAsImage; - var imgType = saveOption.type || 'png'; - if (imgType != 'png' && imgType != 'jpeg') { - imgType = 'png'; - } - var image; - if (!this.myChart.isConnected()) { - image = this.zr.toDataURL('image/' + imgType, this.option.backgroundColor && this.option.backgroundColor.replace(' ', '') === 'rgba(0,0,0,0)' ? '#fff' : this.option.backgroundColor); - } else { - image = this.myChart.getConnectedDataURL(imgType); - } - var downloadDiv = document.createElement('div'); - downloadDiv.id = '__echarts_download_wrap__'; - downloadDiv.style.cssText = 'position:fixed;' + 'z-index:99999;' + 'display:block;' + 'top:0;left:0;' + 'background-color:rgba(33,33,33,0.5);' + 'text-align:center;' + 'width:100%;' + 'height:100%;' + 'line-height:' + document.documentElement.clientHeight + 'px;'; - var downloadLink = document.createElement('a'); - downloadLink.href = image; - downloadLink.setAttribute('download', (saveOption.name ? saveOption.name : this.option.title && (this.option.title.text || this.option.title.subtext) ? this.option.title.text || this.option.title.subtext : 'ECharts') + '.' + imgType); - downloadLink.innerHTML = ''; - downloadDiv.appendChild(downloadLink); - document.body.appendChild(downloadDiv); - downloadLink = null; - downloadDiv = null; - setTimeout(function () { - var _d = document.getElementById('__echarts_download_wrap__'); - if (_d) { - _d.onclick = function () { - var d = document.getElementById('__echarts_download_wrap__'); - d.onclick = null; - d.innerHTML = ''; - document.body.removeChild(d); - d = null; - }; - _d = null; - } - }, 500); - return; - }, - __onMagicType: function (param) { - this._resetMark(); - var itemName = param.target._name; - if (!this._magicType[itemName]) { - this._magicType[itemName] = true; - if (itemName === ecConfig.CHART_TYPE_LINE) { - this._magicType[ecConfig.CHART_TYPE_BAR] = false; - } else if (itemName === ecConfig.CHART_TYPE_BAR) { - this._magicType[ecConfig.CHART_TYPE_LINE] = false; - } - if (itemName === ecConfig.CHART_TYPE_PIE) { - this._magicType[ecConfig.CHART_TYPE_FUNNEL] = false; - } else if (itemName === ecConfig.CHART_TYPE_FUNNEL) { - this._magicType[ecConfig.CHART_TYPE_PIE] = false; - } - if (itemName === ecConfig.CHART_TYPE_FORCE) { - this._magicType[ecConfig.CHART_TYPE_CHORD] = false; - } else if (itemName === ecConfig.CHART_TYPE_CHORD) { - this._magicType[ecConfig.CHART_TYPE_FORCE] = false; - } - if (itemName === _MAGICTYPE_STACK) { - this._magicType[_MAGICTYPE_TILED] = false; - } else if (itemName === _MAGICTYPE_TILED) { - this._magicType[_MAGICTYPE_STACK] = false; - } - this.messageCenter.dispatch(ecConfig.EVENT.MAGIC_TYPE_CHANGED, param.event, { magicType: this._magicType }, this.myChart); - } - return true; - }, - setMagicType: function (magicType) { - this._resetMark(); - this._magicType = magicType; - !this._isSilence && this.messageCenter.dispatch(ecConfig.EVENT.MAGIC_TYPE_CHANGED, null, { magicType: this._magicType }, this.myChart); - }, - __onCustomHandler: function (param) { - var target = param.target.style.iconType; - var featureHandler = this.option.toolbox.feature[target].onclick; - if (typeof featureHandler === 'function') { - featureHandler.call(this, this.option); - } - }, - reset: function (newOption, isRestore) { - isRestore && this.clear(); - if (this.query(newOption, 'toolbox.show') && this.query(newOption, 'toolbox.feature.magicType.show')) { - var magicType = newOption.toolbox.feature.magicType.type; - var len = magicType.length; - this._magicMap = {}; - while (len--) { - this._magicMap[magicType[len]] = true; - } - len = newOption.series.length; - var oriType; - var axis; - while (len--) { - oriType = newOption.series[len].type; - if (this._magicMap[oriType]) { - axis = newOption.xAxis instanceof Array ? newOption.xAxis[newOption.series[len].xAxisIndex || 0] : newOption.xAxis; - if (axis && (axis.type || 'category') === 'category') { - axis.__boundaryGap = axis.boundaryGap != null ? axis.boundaryGap : true; - } - axis = newOption.yAxis instanceof Array ? newOption.yAxis[newOption.series[len].yAxisIndex || 0] : newOption.yAxis; - if (axis && axis.type === 'category') { - axis.__boundaryGap = axis.boundaryGap != null ? axis.boundaryGap : true; - } - newOption.series[len].__type = oriType; - newOption.series[len].__itemStyle = zrUtil.clone(newOption.series[len].itemStyle || {}); - } - if (this._magicMap[_MAGICTYPE_STACK] || this._magicMap[_MAGICTYPE_TILED]) { - newOption.series[len].__stack = newOption.series[len].stack; - } - } - } - this._magicType = isRestore ? {} : this._magicType || {}; - for (var itemName in this._magicType) { - if (this._magicType[itemName]) { - this.option = newOption; - this.getMagicOption(); - break; - } - } - var zoomOption = newOption.dataZoom; - if (zoomOption && zoomOption.show) { - var start = zoomOption.start != null && zoomOption.start >= 0 && zoomOption.start <= 100 ? zoomOption.start : 0; - var end = zoomOption.end != null && zoomOption.end >= 0 && zoomOption.end <= 100 ? zoomOption.end : 100; - if (start > end) { - start = start + end; - end = start - end; - start = start - end; - } - this._zoomQueue = [{ - start: start, - end: end, - start2: 0, - end2: 100 - }]; - } else { - this._zoomQueue = []; - } - }, - getMagicOption: function () { - var axis; - var chartType; - if (this._magicType[ecConfig.CHART_TYPE_LINE] || this._magicType[ecConfig.CHART_TYPE_BAR]) { - var boundaryGap = this._magicType[ecConfig.CHART_TYPE_LINE] ? false : true; - for (var i = 0, l = this.option.series.length; i < l; i++) { - chartType = this.option.series[i].type; - if (chartType == ecConfig.CHART_TYPE_LINE || chartType == ecConfig.CHART_TYPE_BAR) { - axis = this.option.xAxis instanceof Array ? this.option.xAxis[this.option.series[i].xAxisIndex || 0] : this.option.xAxis; - if (axis && (axis.type || 'category') === 'category') { - axis.boundaryGap = boundaryGap ? true : axis.__boundaryGap; - } - axis = this.option.yAxis instanceof Array ? this.option.yAxis[this.option.series[i].yAxisIndex || 0] : this.option.yAxis; - if (axis && axis.type === 'category') { - axis.boundaryGap = boundaryGap ? true : axis.__boundaryGap; - } - } - } - this._defaultMagic(ecConfig.CHART_TYPE_LINE, ecConfig.CHART_TYPE_BAR); - } - this._defaultMagic(ecConfig.CHART_TYPE_CHORD, ecConfig.CHART_TYPE_FORCE); - this._defaultMagic(ecConfig.CHART_TYPE_PIE, ecConfig.CHART_TYPE_FUNNEL); - if (this._magicType[_MAGICTYPE_STACK] || this._magicType[_MAGICTYPE_TILED]) { - for (var i = 0, l = this.option.series.length; i < l; i++) { - if (this._magicType[_MAGICTYPE_STACK]) { - this.option.series[i].stack = '_ECHARTS_STACK_KENER_2014_'; - chartType = _MAGICTYPE_STACK; - } else if (this._magicType[_MAGICTYPE_TILED]) { - this.option.series[i].stack = null; - chartType = _MAGICTYPE_TILED; - } - if (this._featureOption[chartType + 'Chart']) { - zrUtil.merge(this.option.series[i], this._featureOption[chartType + 'Chart'] || {}, true); - } - } - } - return this.option; - }, - _defaultMagic: function (cType1, cType2) { - if (this._magicType[cType1] || this._magicType[cType2]) { - for (var i = 0, l = this.option.series.length; i < l; i++) { - var chartType = this.option.series[i].type; - if (chartType == cType1 || chartType == cType2) { - this.option.series[i].type = this._magicType[cType1] ? cType1 : cType2; - this.option.series[i].itemStyle = zrUtil.clone(this.option.series[i].__itemStyle); - chartType = this.option.series[i].type; - if (this._featureOption[chartType + 'Chart']) { - zrUtil.merge(this.option.series[i], this._featureOption[chartType + 'Chart'] || {}, true); - } - } - } - } - }, - silence: function (s) { - this._isSilence = s; - }, - resize: function () { - this._resetMark(); - this.clear(); - if (this.option && this.option.toolbox && this.option.toolbox.show) { - this._buildShape(); - } - if (this._dataView) { - this._dataView.resize(); - } - }, - hideDataView: function () { - if (this._dataView) { - this._dataView.hide(); - } - }, - clear: function (notMark) { - if (this.zr) { - this.zr.delShape(this.shapeList); - this.shapeList = []; - if (!notMark) { - this.zr.delShape(this._markShapeList); - this._markShapeList = []; - } - } - }, - onbeforDispose: function () { - if (this._dataView) { - this._dataView.dispose(); - this._dataView = null; - } - this._markShapeList = null; - }, - refresh: function (newOption) { - if (newOption) { - this._resetMark(); - this._resetZoom(); - newOption.toolbox = this.reformOption(newOption.toolbox); - this.option = newOption; - this.clear(true); - if (newOption.toolbox.show) { - this._buildShape(); - } - this.hideDataView(); - } - } - }; - zrUtil.inherits(Toolbox, Base); - require('../component').define('toolbox', Toolbox); - return Toolbox; -});define('echarts/component', [], function () { - var self = {}; - var _componentLibrary = {}; - self.define = function (name, clazz) { - _componentLibrary[name] = clazz; - return self; - }; - self.get = function (name) { - return _componentLibrary[name]; - }; - return self; -});define('echarts/component/title', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Rectangle', - '../config', - 'zrender/tool/util', - 'zrender/tool/area', - 'zrender/tool/color', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var RectangleShape = require('zrender/shape/Rectangle'); - var ecConfig = require('../config'); - ecConfig.title = { - zlevel: 0, - z: 6, - show: true, - text: '', - subtext: '', - x: 'left', - y: 'top', - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - itemGap: 5, - textStyle: { - fontSize: 18, - fontWeight: 'bolder', - color: '#333' - }, - subtextStyle: { color: '#aaa' } - }; - var zrUtil = require('zrender/tool/util'); - var zrArea = require('zrender/tool/area'); - var zrColor = require('zrender/tool/color'); - function Title(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Title.prototype = { - type: ecConfig.COMPONENT_TYPE_TITLE, - _buildShape: function () { - if (!this.titleOption.show) { - return; - } - this._itemGroupLocation = this._getItemGroupLocation(); - this._buildBackground(); - this._buildItem(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _buildItem: function () { - var text = this.titleOption.text; - var link = this.titleOption.link; - var target = this.titleOption.target; - var subtext = this.titleOption.subtext; - var sublink = this.titleOption.sublink; - var subtarget = this.titleOption.subtarget; - var font = this.getFont(this.titleOption.textStyle); - var subfont = this.getFont(this.titleOption.subtextStyle); - var x = this._itemGroupLocation.x; - var y = this._itemGroupLocation.y; - var width = this._itemGroupLocation.width; - var height = this._itemGroupLocation.height; - var textShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - y: y, - color: this.titleOption.textStyle.color, - text: text, - textFont: font, - textBaseline: 'top' - }, - highlightStyle: { - color: zrColor.lift(this.titleOption.textStyle.color, 1), - brushType: 'fill' - }, - hoverable: false - }; - if (link) { - textShape.hoverable = true; - textShape.clickable = true; - textShape.onclick = function () { - if (!target || target != 'self') { - window.open(link); - } else { - window.location = link; - } - }; - } - var subtextShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - y: y + height, - color: this.titleOption.subtextStyle.color, - text: subtext, - textFont: subfont, - textBaseline: 'bottom' - }, - highlightStyle: { - color: zrColor.lift(this.titleOption.subtextStyle.color, 1), - brushType: 'fill' - }, - hoverable: false - }; - if (sublink) { - subtextShape.hoverable = true; - subtextShape.clickable = true; - subtextShape.onclick = function () { - if (!subtarget || subtarget != 'self') { - window.open(sublink); - } else { - window.location = sublink; - } - }; - } - switch (this.titleOption.x) { - case 'center': - textShape.style.x = subtextShape.style.x = x + width / 2; - textShape.style.textAlign = subtextShape.style.textAlign = 'center'; - break; - case 'left': - textShape.style.x = subtextShape.style.x = x; - textShape.style.textAlign = subtextShape.style.textAlign = 'left'; - break; - case 'right': - textShape.style.x = subtextShape.style.x = x + width; - textShape.style.textAlign = subtextShape.style.textAlign = 'right'; - break; - default: - x = this.titleOption.x - 0; - x = isNaN(x) ? 0 : x; - textShape.style.x = subtextShape.style.x = x; - break; - } - if (this.titleOption.textAlign) { - textShape.style.textAlign = subtextShape.style.textAlign = this.titleOption.textAlign; - } - this.shapeList.push(new TextShape(textShape)); - subtext !== '' && this.shapeList.push(new TextShape(subtextShape)); - }, - _buildBackground: function () { - var padding = this.reformCssArray(this.titleOption.padding); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._itemGroupLocation.x - padding[3], - y: this._itemGroupLocation.y - padding[0], - width: this._itemGroupLocation.width + padding[3] + padding[1], - height: this._itemGroupLocation.height + padding[0] + padding[2], - brushType: this.titleOption.borderWidth === 0 ? 'fill' : 'both', - color: this.titleOption.backgroundColor, - strokeColor: this.titleOption.borderColor, - lineWidth: this.titleOption.borderWidth - } - })); - }, - _getItemGroupLocation: function () { - var padding = this.reformCssArray(this.titleOption.padding); - var text = this.titleOption.text; - var subtext = this.titleOption.subtext; - var font = this.getFont(this.titleOption.textStyle); - var subfont = this.getFont(this.titleOption.subtextStyle); - var totalWidth = Math.max(zrArea.getTextWidth(text, font), zrArea.getTextWidth(subtext, subfont)); - var totalHeight = zrArea.getTextHeight(text, font) + (subtext === '' ? 0 : this.titleOption.itemGap + zrArea.getTextHeight(subtext, subfont)); - var x; - var zrWidth = this.zr.getWidth(); - switch (this.titleOption.x) { - case 'center': - x = Math.floor((zrWidth - totalWidth) / 2); - break; - case 'left': - x = padding[3] + this.titleOption.borderWidth; - break; - case 'right': - x = zrWidth - totalWidth - padding[1] - this.titleOption.borderWidth; - break; - default: - x = this.titleOption.x - 0; - x = isNaN(x) ? 0 : x; - break; - } - var y; - var zrHeight = this.zr.getHeight(); - switch (this.titleOption.y) { - case 'top': - y = padding[0] + this.titleOption.borderWidth; - break; - case 'bottom': - y = zrHeight - totalHeight - padding[2] - this.titleOption.borderWidth; - break; - case 'center': - y = Math.floor((zrHeight - totalHeight) / 2); - break; - default: - y = this.titleOption.y - 0; - y = isNaN(y) ? 0 : y; - break; - } - return { - x: x, - y: y, - width: totalWidth, - height: totalHeight - }; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption; - this.option.title = this.reformOption(this.option.title); - this.titleOption = this.option.title; - this.titleOption.textStyle = this.getTextStyle(this.titleOption.textStyle); - this.titleOption.subtextStyle = this.getTextStyle(this.titleOption.subtextStyle); - } - this.clear(); - this._buildShape(); - } - }; - zrUtil.inherits(Title, Base); - require('../component').define('title', Title); - return Title; -});define('echarts/component/tooltip', [ - 'require', - './base', - '../util/shape/Cross', - 'zrender/shape/Line', - 'zrender/shape/Rectangle', - '../config', - '../util/ecData', - 'zrender/config', - 'zrender/tool/event', - 'zrender/tool/area', - 'zrender/tool/color', - 'zrender/tool/util', - 'zrender/shape/Base', - '../component' -], function (require) { - var Base = require('./base'); - var CrossShape = require('../util/shape/Cross'); - var LineShape = require('zrender/shape/Line'); - var RectangleShape = require('zrender/shape/Rectangle'); - var rectangleInstance = new RectangleShape({}); - var ecConfig = require('../config'); - ecConfig.tooltip = { - zlevel: 1, - z: 8, - show: true, - showContent: true, - trigger: 'item', - islandFormatter: '{a}
{b} : {c}', - showDelay: 20, - hideDelay: 100, - transitionDuration: 0.4, - enterable: false, - backgroundColor: 'rgba(0,0,0,0.7)', - borderColor: '#333', - borderRadius: 4, - borderWidth: 0, - padding: 5, - axisPointer: { - type: 'line', - lineStyle: { - color: '#48b', - width: 2, - type: 'solid' - }, - crossStyle: { - color: '#1e90ff', - width: 1, - type: 'dashed' - }, - shadowStyle: { - color: 'rgba(150,150,150,0.3)', - width: 'auto', - type: 'default' - } - }, - textStyle: { color: '#fff' } - }; - var ecData = require('../util/ecData'); - var zrConfig = require('zrender/config'); - var zrEvent = require('zrender/tool/event'); - var zrArea = require('zrender/tool/area'); - var zrColor = require('zrender/tool/color'); - var zrUtil = require('zrender/tool/util'); - var zrShapeBase = require('zrender/shape/Base'); - function Tooltip(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.dom = myChart.dom; - var self = this; - self._onmousemove = function (param) { - return self.__onmousemove(param); - }; - self._onglobalout = function (param) { - return self.__onglobalout(param); - }; - this.zr.on(zrConfig.EVENT.MOUSEMOVE, self._onmousemove); - this.zr.on(zrConfig.EVENT.GLOBALOUT, self._onglobalout); - self._hide = function (param) { - return self.__hide(param); - }; - self._tryShow = function (param) { - return self.__tryShow(param); - }; - self._refixed = function (param) { - return self.__refixed(param); - }; - self._setContent = function (ticket, res) { - return self.__setContent(ticket, res); - }; - this._tDom = this._tDom || document.createElement('div'); - this._tDom.onselectstart = function () { - return false; - }; - this._tDom.onmouseover = function () { - self._mousein = true; - }; - this._tDom.onmouseout = function () { - self._mousein = false; - }; - this._tDom.className = 'echarts-tooltip'; - this._tDom.style.position = 'absolute'; - this.hasAppend = false; - this._axisLineShape && this.zr.delShape(this._axisLineShape.id); - this._axisLineShape = new LineShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - invisible: true, - hoverable: false - }); - this.shapeList.push(this._axisLineShape); - this.zr.addShape(this._axisLineShape); - this._axisShadowShape && this.zr.delShape(this._axisShadowShape.id); - this._axisShadowShape = new LineShape({ - zlevel: this.getZlevelBase(), - z: 1, - invisible: true, - hoverable: false - }); - this.shapeList.push(this._axisShadowShape); - this.zr.addShape(this._axisShadowShape); - this._axisCrossShape && this.zr.delShape(this._axisCrossShape.id); - this._axisCrossShape = new CrossShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - invisible: true, - hoverable: false - }); - this.shapeList.push(this._axisCrossShape); - this.zr.addShape(this._axisCrossShape); - this.showing = false; - this.refresh(option); - } - Tooltip.prototype = { - type: ecConfig.COMPONENT_TYPE_TOOLTIP, - _gCssText: 'position:absolute;display:block;border-style:solid;white-space:nowrap;', - _style: function (opt) { - if (!opt) { - return ''; - } - var cssText = []; - if (opt.transitionDuration) { - var transitionText = 'left ' + opt.transitionDuration + 's,' + 'top ' + opt.transitionDuration + 's'; - cssText.push('transition:' + transitionText); - cssText.push('-moz-transition:' + transitionText); - cssText.push('-webkit-transition:' + transitionText); - cssText.push('-o-transition:' + transitionText); - } - if (opt.backgroundColor) { - cssText.push('background-Color:' + zrColor.toHex(opt.backgroundColor)); - cssText.push('filter:alpha(opacity=70)'); - cssText.push('background-Color:' + opt.backgroundColor); - } - if (opt.borderWidth != null) { - cssText.push('border-width:' + opt.borderWidth + 'px'); - } - if (opt.borderColor != null) { - cssText.push('border-color:' + opt.borderColor); - } - if (opt.borderRadius != null) { - cssText.push('border-radius:' + opt.borderRadius + 'px'); - cssText.push('-moz-border-radius:' + opt.borderRadius + 'px'); - cssText.push('-webkit-border-radius:' + opt.borderRadius + 'px'); - cssText.push('-o-border-radius:' + opt.borderRadius + 'px'); - } - var textStyle = opt.textStyle; - if (textStyle) { - textStyle.color && cssText.push('color:' + textStyle.color); - textStyle.decoration && cssText.push('text-decoration:' + textStyle.decoration); - textStyle.align && cssText.push('text-align:' + textStyle.align); - textStyle.fontFamily && cssText.push('font-family:' + textStyle.fontFamily); - textStyle.fontSize && cssText.push('font-size:' + textStyle.fontSize + 'px'); - textStyle.fontSize && cssText.push('line-height:' + Math.round(textStyle.fontSize * 3 / 2) + 'px'); - textStyle.fontStyle && cssText.push('font-style:' + textStyle.fontStyle); - textStyle.fontWeight && cssText.push('font-weight:' + textStyle.fontWeight); - } - var padding = opt.padding; - if (padding != null) { - padding = this.reformCssArray(padding); - cssText.push('padding:' + padding[0] + 'px ' + padding[1] + 'px ' + padding[2] + 'px ' + padding[3] + 'px'); - } - cssText = cssText.join(';') + ';'; - return cssText; - }, - __hide: function () { - this._lastDataIndex = -1; - this._lastSeriesIndex = -1; - this._lastItemTriggerId = -1; - if (this._tDom) { - this._tDom.style.display = 'none'; - } - var needRefresh = false; - if (!this._axisLineShape.invisible) { - this._axisLineShape.invisible = true; - this.zr.modShape(this._axisLineShape.id); - needRefresh = true; - } - if (!this._axisShadowShape.invisible) { - this._axisShadowShape.invisible = true; - this.zr.modShape(this._axisShadowShape.id); - needRefresh = true; - } - if (!this._axisCrossShape.invisible) { - this._axisCrossShape.invisible = true; - this.zr.modShape(this._axisCrossShape.id); - needRefresh = true; - } - if (this._lastTipShape && this._lastTipShape.tipShape.length > 0) { - this.zr.delShape(this._lastTipShape.tipShape); - this._lastTipShape = false; - this.shapeList.length = 2; - } - needRefresh && this.zr.refreshNextFrame(); - this.showing = false; - }, - _show: function (position, x, y, specialCssText) { - var domHeight = this._tDom.offsetHeight; - var domWidth = this._tDom.offsetWidth; - if (position) { - if (typeof position === 'function') { - position = position([ - x, - y - ]); - } - if (position instanceof Array) { - x = position[0]; - y = position[1]; - } - } - if (x + domWidth > this._zrWidth) { - x -= domWidth + 40; - } - if (y + domHeight > this._zrHeight) { - y -= domHeight - 20; - } - if (y < 20) { - y = 0; - } - this._tDom.style.cssText = this._gCssText + this._defaultCssText + (specialCssText ? specialCssText : '') + 'left:' + x + 'px;top:' + y + 'px;'; - if (domHeight < 10 || domWidth < 10) { - setTimeout(this._refixed, 20); - } - this.showing = true; - }, - __refixed: function () { - if (this._tDom) { - var cssText = ''; - var domHeight = this._tDom.offsetHeight; - var domWidth = this._tDom.offsetWidth; - if (this._tDom.offsetLeft + domWidth > this._zrWidth) { - cssText += 'left:' + (this._zrWidth - domWidth - 20) + 'px;'; - } - if (this._tDom.offsetTop + domHeight > this._zrHeight) { - cssText += 'top:' + (this._zrHeight - domHeight - 10) + 'px;'; - } - if (cssText !== '') { - this._tDom.style.cssText += cssText; - } - } - }, - __tryShow: function () { - var needShow; - var trigger; - if (!this._curTarget) { - this._findPolarTrigger() || this._findAxisTrigger(); - } else { - if (this._curTarget._type === 'island' && this.option.tooltip.show) { - this._showItemTrigger(); - return; - } - var serie = ecData.get(this._curTarget, 'series'); - var data = ecData.get(this._curTarget, 'data'); - needShow = this.deepQuery([ - data, - serie, - this.option - ], 'tooltip.show'); - if (serie == null || data == null || !needShow) { - clearTimeout(this._hidingTicket); - clearTimeout(this._showingTicket); - this._hidingTicket = setTimeout(this._hide, this._hideDelay); - } else { - trigger = this.deepQuery([ - data, - serie, - this.option - ], 'tooltip.trigger'); - trigger === 'axis' ? this._showAxisTrigger(serie.xAxisIndex, serie.yAxisIndex, ecData.get(this._curTarget, 'dataIndex')) : this._showItemTrigger(); - } - } - }, - _findAxisTrigger: function () { - if (!this.component.xAxis || !this.component.yAxis) { - this._hidingTicket = setTimeout(this._hide, this._hideDelay); - return; - } - var series = this.option.series; - var xAxisIndex; - var yAxisIndex; - for (var i = 0, l = series.length; i < l; i++) { - if (this.deepQuery([ - series[i], - this.option - ], 'tooltip.trigger') === 'axis') { - xAxisIndex = series[i].xAxisIndex || 0; - yAxisIndex = series[i].yAxisIndex || 0; - if (this.component.xAxis.getAxis(xAxisIndex) && this.component.xAxis.getAxis(xAxisIndex).type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { - this._showAxisTrigger(xAxisIndex, yAxisIndex, this._getNearestDataIndex('x', this.component.xAxis.getAxis(xAxisIndex))); - return; - } else if (this.component.yAxis.getAxis(yAxisIndex) && this.component.yAxis.getAxis(yAxisIndex).type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { - this._showAxisTrigger(xAxisIndex, yAxisIndex, this._getNearestDataIndex('y', this.component.yAxis.getAxis(yAxisIndex))); - return; - } else { - this._showAxisTrigger(xAxisIndex, yAxisIndex, -1); - return; - } - } - } - if (this.option.tooltip.axisPointer.type === 'cross') { - this._showAxisTrigger(-1, -1, -1); - } - }, - _findPolarTrigger: function () { - if (!this.component.polar) { - return false; - } - var x = zrEvent.getX(this._event); - var y = zrEvent.getY(this._event); - var polarIndex = this.component.polar.getNearestIndex([ - x, - y - ]); - var valueIndex; - if (polarIndex) { - valueIndex = polarIndex.valueIndex; - polarIndex = polarIndex.polarIndex; - } else { - polarIndex = -1; - } - if (polarIndex != -1) { - return this._showPolarTrigger(polarIndex, valueIndex); - } - return false; - }, - _getNearestDataIndex: function (direction, categoryAxis) { - var dataIndex = -1; - var x = zrEvent.getX(this._event); - var y = zrEvent.getY(this._event); - if (direction === 'x') { - var left; - var right; - var xEnd = this.component.grid.getXend(); - var curCoord = categoryAxis.getCoordByIndex(dataIndex); - while (curCoord < xEnd) { - right = curCoord; - if (curCoord <= x) { - left = curCoord; - } else { - break; - } - curCoord = categoryAxis.getCoordByIndex(++dataIndex); - } - if (dataIndex <= 0) { - dataIndex = 0; - } else if (x - left <= right - x) { - dataIndex -= 1; - } else { - if (categoryAxis.getNameByIndex(dataIndex) == null) { - dataIndex -= 1; - } - } - return dataIndex; - } else { - var top; - var bottom; - var yStart = this.component.grid.getY(); - var curCoord = categoryAxis.getCoordByIndex(dataIndex); - while (curCoord > yStart) { - top = curCoord; - if (curCoord >= y) { - bottom = curCoord; - } else { - break; - } - curCoord = categoryAxis.getCoordByIndex(++dataIndex); - } - if (dataIndex <= 0) { - dataIndex = 0; - } else if (y - top >= bottom - y) { - dataIndex -= 1; - } else { - if (categoryAxis.getNameByIndex(dataIndex) == null) { - dataIndex -= 1; - } - } - return dataIndex; - } - return -1; - }, - _showAxisTrigger: function (xAxisIndex, yAxisIndex, dataIndex) { - !this._event.connectTrigger && this.messageCenter.dispatch(ecConfig.EVENT.TOOLTIP_IN_GRID, this._event, null, this.myChart); - if (this.component.xAxis == null || this.component.yAxis == null || xAxisIndex == null || yAxisIndex == null) { - clearTimeout(this._hidingTicket); - clearTimeout(this._showingTicket); - this._hidingTicket = setTimeout(this._hide, this._hideDelay); - return; - } - var series = this.option.series; - var seriesArray = []; - var seriesIndex = []; - var categoryAxis; - var formatter; - var position; - var showContent; - var specialCssText = ''; - if (this.option.tooltip.trigger === 'axis') { - if (!this.option.tooltip.show) { - return; - } - formatter = this.option.tooltip.formatter; - position = this.option.tooltip.position; - } - var axisLayout = xAxisIndex != -1 && this.component.xAxis.getAxis(xAxisIndex).type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY ? 'xAxis' : yAxisIndex != -1 && this.component.yAxis.getAxis(yAxisIndex).type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY ? 'yAxis' : false; - var x; - var y; - if (axisLayout) { - var axisIndex = axisLayout == 'xAxis' ? xAxisIndex : yAxisIndex; - categoryAxis = this.component[axisLayout].getAxis(axisIndex); - for (var i = 0, l = series.length; i < l; i++) { - if (!this._isSelected(series[i].name)) { - continue; - } - if (series[i][axisLayout + 'Index'] === axisIndex && this.deepQuery([ - series[i], - this.option - ], 'tooltip.trigger') === 'axis') { - showContent = this.query(series[i], 'tooltip.showContent') || showContent; - formatter = this.query(series[i], 'tooltip.formatter') || formatter; - position = this.query(series[i], 'tooltip.position') || position; - specialCssText += this._style(this.query(series[i], 'tooltip')); - if (series[i].stack != null && axisLayout == 'xAxis') { - seriesArray.unshift(series[i]); - seriesIndex.unshift(i); - } else { - seriesArray.push(series[i]); - seriesIndex.push(i); - } - } - } - this.messageCenter.dispatch(ecConfig.EVENT.TOOLTIP_HOVER, this._event, { - seriesIndex: seriesIndex, - dataIndex: dataIndex - }, this.myChart); - var rect; - if (axisLayout == 'xAxis') { - x = this.subPixelOptimize(categoryAxis.getCoordByIndex(dataIndex), this._axisLineWidth); - y = zrEvent.getY(this._event); - rect = [ - x, - this.component.grid.getY(), - x, - this.component.grid.getYend() - ]; - } else { - x = zrEvent.getX(this._event); - y = this.subPixelOptimize(categoryAxis.getCoordByIndex(dataIndex), this._axisLineWidth); - rect = [ - this.component.grid.getX(), - y, - this.component.grid.getXend(), - y - ]; - } - this._styleAxisPointer(seriesArray, rect[0], rect[1], rect[2], rect[3], categoryAxis.getGap(), x, y); - } else { - x = zrEvent.getX(this._event); - y = zrEvent.getY(this._event); - this._styleAxisPointer(series, this.component.grid.getX(), y, this.component.grid.getXend(), y, 0, x, y); - if (dataIndex >= 0) { - this._showItemTrigger(true); - } else { - clearTimeout(this._hidingTicket); - clearTimeout(this._showingTicket); - this._tDom.style.display = 'none'; - } - } - if (seriesArray.length > 0) { - this._lastItemTriggerId = -1; - if (this._lastDataIndex != dataIndex || this._lastSeriesIndex != seriesIndex[0]) { - this._lastDataIndex = dataIndex; - this._lastSeriesIndex = seriesIndex[0]; - var data; - var value; - if (typeof formatter === 'function') { - var params = []; - for (var i = 0, l = seriesArray.length; i < l; i++) { - data = seriesArray[i].data[dataIndex]; - value = this.getDataFromOption(data, '-'); - params.push({ - seriesIndex: seriesIndex[i], - seriesName: seriesArray[i].name || '', - series: seriesArray[i], - dataIndex: dataIndex, - data: data, - name: categoryAxis.getNameByIndex(dataIndex), - value: value, - 0: seriesArray[i].name || '', - 1: categoryAxis.getNameByIndex(dataIndex), - 2: value, - 3: data - }); - } - this._curTicket = 'axis:' + dataIndex; - this._tDom.innerHTML = formatter.call(this.myChart, params, this._curTicket, this._setContent); - } else if (typeof formatter === 'string') { - this._curTicket = NaN; - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}'); - for (var i = 0, l = seriesArray.length; i < l; i++) { - formatter = formatter.replace('{a' + i + '}', this._encodeHTML(seriesArray[i].name || '')); - formatter = formatter.replace('{b' + i + '}', this._encodeHTML(categoryAxis.getNameByIndex(dataIndex))); - data = seriesArray[i].data[dataIndex]; - data = this.getDataFromOption(data, '-'); - formatter = formatter.replace('{c' + i + '}', data instanceof Array ? data : this.numAddCommas(data)); - } - this._tDom.innerHTML = formatter; - } else { - this._curTicket = NaN; - formatter = this._encodeHTML(categoryAxis.getNameByIndex(dataIndex)); - for (var i = 0, l = seriesArray.length; i < l; i++) { - formatter += '
' + this._encodeHTML(seriesArray[i].name || '') + ' : '; - data = seriesArray[i].data[dataIndex]; - data = this.getDataFromOption(data, '-'); - formatter += data instanceof Array ? data : this.numAddCommas(data); - } - this._tDom.innerHTML = formatter; - } - } - if (showContent === false || !this.option.tooltip.showContent) { - return; - } - if (!this.hasAppend) { - this._tDom.style.left = this._zrWidth / 2 + 'px'; - this._tDom.style.top = this._zrHeight / 2 + 'px'; - this.dom.firstChild.appendChild(this._tDom); - this.hasAppend = true; - } - this._show(position, x + 10, y + 10, specialCssText); - } - }, - _showPolarTrigger: function (polarIndex, dataIndex) { - if (this.component.polar == null || polarIndex == null || dataIndex == null || dataIndex < 0) { - return false; - } - var series = this.option.series; - var seriesArray = []; - var seriesIndex = []; - var formatter; - var position; - var showContent; - var specialCssText = ''; - if (this.option.tooltip.trigger === 'axis') { - if (!this.option.tooltip.show) { - return false; - } - formatter = this.option.tooltip.formatter; - position = this.option.tooltip.position; - } - var indicatorName = this.option.polar[polarIndex].indicator[dataIndex].text; - for (var i = 0, l = series.length; i < l; i++) { - if (!this._isSelected(series[i].name)) { - continue; - } - if (series[i].polarIndex === polarIndex && this.deepQuery([ - series[i], - this.option - ], 'tooltip.trigger') === 'axis') { - showContent = this.query(series[i], 'tooltip.showContent') || showContent; - formatter = this.query(series[i], 'tooltip.formatter') || formatter; - position = this.query(series[i], 'tooltip.position') || position; - specialCssText += this._style(this.query(series[i], 'tooltip')); - seriesArray.push(series[i]); - seriesIndex.push(i); - } - } - if (seriesArray.length > 0) { - var polarData; - var data; - var value; - var params = []; - for (var i = 0, l = seriesArray.length; i < l; i++) { - polarData = seriesArray[i].data; - for (var j = 0, k = polarData.length; j < k; j++) { - data = polarData[j]; - if (!this._isSelected(data.name)) { - continue; - } - data = data != null ? data : { - name: '', - value: { dataIndex: '-' } - }; - value = this.getDataFromOption(data.value[dataIndex]); - params.push({ - seriesIndex: seriesIndex[i], - seriesName: seriesArray[i].name || '', - series: seriesArray[i], - dataIndex: dataIndex, - data: data, - name: data.name, - indicator: indicatorName, - value: value, - 0: seriesArray[i].name || '', - 1: data.name, - 2: value, - 3: indicatorName - }); - } - } - if (params.length <= 0) { - return; - } - this._lastItemTriggerId = -1; - if (this._lastDataIndex != dataIndex || this._lastSeriesIndex != seriesIndex[0]) { - this._lastDataIndex = dataIndex; - this._lastSeriesIndex = seriesIndex[0]; - if (typeof formatter === 'function') { - this._curTicket = 'axis:' + dataIndex; - this._tDom.innerHTML = formatter.call(this.myChart, params, this._curTicket, this._setContent); - } else if (typeof formatter === 'string') { - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{d}', '{d0}'); - for (var i = 0, l = params.length; i < l; i++) { - formatter = formatter.replace('{a' + i + '}', this._encodeHTML(params[i].seriesName)); - formatter = formatter.replace('{b' + i + '}', this._encodeHTML(params[i].name)); - formatter = formatter.replace('{c' + i + '}', this.numAddCommas(params[i].value)); - formatter = formatter.replace('{d' + i + '}', this._encodeHTML(params[i].indicator)); - } - this._tDom.innerHTML = formatter; - } else { - formatter = this._encodeHTML(params[0].name) + '
' + this._encodeHTML(params[0].indicator) + ' : ' + this.numAddCommas(params[0].value); - for (var i = 1, l = params.length; i < l; i++) { - formatter += '
' + this._encodeHTML(params[i].name) + '
'; - formatter += this._encodeHTML(params[i].indicator) + ' : ' + this.numAddCommas(params[i].value); - } - this._tDom.innerHTML = formatter; - } - } - if (showContent === false || !this.option.tooltip.showContent) { - return; - } - if (!this.hasAppend) { - this._tDom.style.left = this._zrWidth / 2 + 'px'; - this._tDom.style.top = this._zrHeight / 2 + 'px'; - this.dom.firstChild.appendChild(this._tDom); - this.hasAppend = true; - } - this._show(position, zrEvent.getX(this._event), zrEvent.getY(this._event), specialCssText); - return true; - } - }, - _showItemTrigger: function (axisTrigger) { - if (!this._curTarget) { - return; - } - var serie = ecData.get(this._curTarget, 'series'); - var seriesIndex = ecData.get(this._curTarget, 'seriesIndex'); - var data = ecData.get(this._curTarget, 'data'); - var dataIndex = ecData.get(this._curTarget, 'dataIndex'); - var name = ecData.get(this._curTarget, 'name'); - var value = ecData.get(this._curTarget, 'value'); - var special = ecData.get(this._curTarget, 'special'); - var special2 = ecData.get(this._curTarget, 'special2'); - var queryTarget = [ - data, - serie, - this.option - ]; - var formatter; - var position; - var showContent; - var specialCssText = ''; - if (this._curTarget._type != 'island') { - var trigger = axisTrigger ? 'axis' : 'item'; - if (this.option.tooltip.trigger === trigger) { - formatter = this.option.tooltip.formatter; - position = this.option.tooltip.position; - } - if (this.query(serie, 'tooltip.trigger') === trigger) { - showContent = this.query(serie, 'tooltip.showContent') || showContent; - formatter = this.query(serie, 'tooltip.formatter') || formatter; - position = this.query(serie, 'tooltip.position') || position; - specialCssText += this._style(this.query(serie, 'tooltip')); - } - showContent = this.query(data, 'tooltip.showContent') || showContent; - formatter = this.query(data, 'tooltip.formatter') || formatter; - position = this.query(data, 'tooltip.position') || position; - specialCssText += this._style(this.query(data, 'tooltip')); - } else { - this._lastItemTriggerId = NaN; - showContent = this.deepQuery(queryTarget, 'tooltip.showContent'); - formatter = this.deepQuery(queryTarget, 'tooltip.islandFormatter'); - position = this.deepQuery(queryTarget, 'tooltip.islandPosition'); - } - this._lastDataIndex = -1; - this._lastSeriesIndex = -1; - if (this._lastItemTriggerId !== this._curTarget.id) { - this._lastItemTriggerId = this._curTarget.id; - if (typeof formatter === 'function') { - this._curTicket = (serie.name || '') + ':' + dataIndex; - this._tDom.innerHTML = formatter.call(this.myChart, { - seriesIndex: seriesIndex, - seriesName: serie.name || '', - series: serie, - dataIndex: dataIndex, - data: data, - name: name, - value: value, - percent: special, - indicator: special, - value2: special2, - indicator2: special2, - 0: serie.name || '', - 1: name, - 2: value, - 3: special, - 4: special2, - 5: data, - 6: seriesIndex, - 7: dataIndex - }, this._curTicket, this._setContent); - } else if (typeof formatter === 'string') { - this._curTicket = NaN; - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}'); - formatter = formatter.replace('{a0}', this._encodeHTML(serie.name || '')).replace('{b0}', this._encodeHTML(name)).replace('{c0}', value instanceof Array ? value : this.numAddCommas(value)); - formatter = formatter.replace('{d}', '{d0}').replace('{d0}', special || ''); - formatter = formatter.replace('{e}', '{e0}').replace('{e0}', ecData.get(this._curTarget, 'special2') || ''); - this._tDom.innerHTML = formatter; - } else { - this._curTicket = NaN; - if (serie.type === ecConfig.CHART_TYPE_RADAR && special) { - this._tDom.innerHTML = this._itemFormatter.radar.call(this, serie, name, value, special); - } else if (serie.type === ecConfig.CHART_TYPE_EVENTRIVER) { - this._tDom.innerHTML = this._itemFormatter.eventRiver.call(this, serie, name, value, data); - } else { - this._tDom.innerHTML = '' + (serie.name != null ? this._encodeHTML(serie.name) + '
' : '') + (name === '' ? '' : this._encodeHTML(name) + ' : ') + (value instanceof Array ? value : this.numAddCommas(value)); - } - } - } - var x = zrEvent.getX(this._event); - var y = zrEvent.getY(this._event); - if (this.deepQuery(queryTarget, 'tooltip.axisPointer.show') && this.component.grid) { - this._styleAxisPointer([serie], this.component.grid.getX(), y, this.component.grid.getXend(), y, 0, x, y); - } else { - this._hide(); - } - if (showContent === false || !this.option.tooltip.showContent) { - return; - } - if (!this.hasAppend) { - this._tDom.style.left = this._zrWidth / 2 + 'px'; - this._tDom.style.top = this._zrHeight / 2 + 'px'; - this.dom.firstChild.appendChild(this._tDom); - this.hasAppend = true; - } - this._show(position, x + 20, y - 20, specialCssText); - }, - _itemFormatter: { - radar: function (serie, name, value, indicator) { - var html = ''; - html += this._encodeHTML(name === '' ? serie.name || '' : name); - html += html === '' ? '' : '
'; - for (var i = 0; i < indicator.length; i++) { - html += this._encodeHTML(indicator[i].text) + ' : ' + this.numAddCommas(value[i]) + '
'; - } - return html; - }, - chord: function (serie, name, value, special, special2) { - if (special2 == null) { - return this._encodeHTML(name) + ' (' + this.numAddCommas(value) + ')'; - } else { - var name1 = this._encodeHTML(name); - var name2 = this._encodeHTML(special); - return '' + (serie.name != null ? this._encodeHTML(serie.name) + '
' : '') + name1 + ' -> ' + name2 + ' (' + this.numAddCommas(value) + ')' + '
' + name2 + ' -> ' + name1 + ' (' + this.numAddCommas(special2) + ')'; - } - }, - eventRiver: function (serie, name, value, data) { - var html = ''; - html += this._encodeHTML(serie.name === '' ? '' : serie.name + ' : '); - html += this._encodeHTML(name); - html += html === '' ? '' : '
'; - data = data.evolution; - for (var i = 0, l = data.length; i < l; i++) { - html += '
'; - if (!data[i].detail) { - continue; - } - if (data[i].detail.img) { - html += ''; - } - html += '
' + data[i].time + '
'; - html += ''; - html += data[i].detail.text + '
'; - html += '
'; - } - return html; - } - }, - _styleAxisPointer: function (seriesArray, xStart, yStart, xEnd, yEnd, gap, x, y) { - if (seriesArray.length > 0) { - var queryTarget; - var curType; - var axisPointer = this.option.tooltip.axisPointer; - var pointType = axisPointer.type; - var style = { - line: {}, - cross: {}, - shadow: {} - }; - for (var pType in style) { - style[pType].color = axisPointer[pType + 'Style'].color; - style[pType].width = axisPointer[pType + 'Style'].width; - style[pType].type = axisPointer[pType + 'Style'].type; - } - for (var i = 0, l = seriesArray.length; i < l; i++) { - queryTarget = seriesArray[i]; - curType = this.query(queryTarget, 'tooltip.axisPointer.type'); - pointType = curType || pointType; - if (curType) { - style[curType].color = this.query(queryTarget, 'tooltip.axisPointer.' + curType + 'Style.color') || style[curType].color; - style[curType].width = this.query(queryTarget, 'tooltip.axisPointer.' + curType + 'Style.width') || style[curType].width; - style[curType].type = this.query(queryTarget, 'tooltip.axisPointer.' + curType + 'Style.type') || style[curType].type; - } - } - if (pointType === 'line') { - var lineWidth = style.line.width; - var isVertical = xStart == xEnd; - this._axisLineShape.style = { - xStart: isVertical ? this.subPixelOptimize(xStart, lineWidth) : xStart, - yStart: isVertical ? yStart : this.subPixelOptimize(yStart, lineWidth), - xEnd: isVertical ? this.subPixelOptimize(xEnd, lineWidth) : xEnd, - yEnd: isVertical ? yEnd : this.subPixelOptimize(yEnd, lineWidth), - strokeColor: style.line.color, - lineWidth: lineWidth, - lineType: style.line.type - }; - this._axisLineShape.invisible = false; - this.zr.modShape(this._axisLineShape.id); - } else if (pointType === 'cross') { - var crossWidth = style.cross.width; - this._axisCrossShape.style = { - brushType: 'stroke', - rect: this.component.grid.getArea(), - x: this.subPixelOptimize(x, crossWidth), - y: this.subPixelOptimize(y, crossWidth), - text: ('( ' + this.component.xAxis.getAxis(0).getValueFromCoord(x) + ' , ' + this.component.yAxis.getAxis(0).getValueFromCoord(y) + ' )').replace(' , ', ' ').replace(' , ', ' '), - textPosition: 'specific', - strokeColor: style.cross.color, - lineWidth: crossWidth, - lineType: style.cross.type - }; - if (this.component.grid.getXend() - x > 100) { - this._axisCrossShape.style.textAlign = 'left'; - this._axisCrossShape.style.textX = x + 10; - } else { - this._axisCrossShape.style.textAlign = 'right'; - this._axisCrossShape.style.textX = x - 10; - } - if (y - this.component.grid.getY() > 50) { - this._axisCrossShape.style.textBaseline = 'bottom'; - this._axisCrossShape.style.textY = y - 10; - } else { - this._axisCrossShape.style.textBaseline = 'top'; - this._axisCrossShape.style.textY = y + 10; - } - this._axisCrossShape.invisible = false; - this.zr.modShape(this._axisCrossShape.id); - } else if (pointType === 'shadow') { - if (style.shadow.width == null || style.shadow.width === 'auto' || isNaN(style.shadow.width)) { - style.shadow.width = gap; - } - if (xStart === xEnd) { - if (Math.abs(this.component.grid.getX() - xStart) < 2) { - style.shadow.width /= 2; - xStart = xEnd = xEnd + style.shadow.width / 2; - } else if (Math.abs(this.component.grid.getXend() - xStart) < 2) { - style.shadow.width /= 2; - xStart = xEnd = xEnd - style.shadow.width / 2; - } - } else if (yStart === yEnd) { - if (Math.abs(this.component.grid.getY() - yStart) < 2) { - style.shadow.width /= 2; - yStart = yEnd = yEnd + style.shadow.width / 2; - } else if (Math.abs(this.component.grid.getYend() - yStart) < 2) { - style.shadow.width /= 2; - yStart = yEnd = yEnd - style.shadow.width / 2; - } - } - this._axisShadowShape.style = { - xStart: xStart, - yStart: yStart, - xEnd: xEnd, - yEnd: yEnd, - strokeColor: style.shadow.color, - lineWidth: style.shadow.width - }; - this._axisShadowShape.invisible = false; - this.zr.modShape(this._axisShadowShape.id); - } - this.zr.refreshNextFrame(); - } - }, - __onmousemove: function (param) { - clearTimeout(this._hidingTicket); - clearTimeout(this._showingTicket); - if (this._mousein && this._enterable) { - return; - } - var target = param.target; - var mx = zrEvent.getX(param.event); - var my = zrEvent.getY(param.event); - if (!target) { - this._curTarget = false; - this._event = param.event; - this._event.zrenderX = mx; - this._event.zrenderY = my; - if (this._needAxisTrigger && this.component.grid && zrArea.isInside(rectangleInstance, this.component.grid.getArea(), mx, my)) { - this._showingTicket = setTimeout(this._tryShow, this._showDelay); - } else if (this._needAxisTrigger && this.component.polar && this.component.polar.isInside([ - mx, - my - ]) != -1) { - this._showingTicket = setTimeout(this._tryShow, this._showDelay); - } else { - !this._event.connectTrigger && this.messageCenter.dispatch(ecConfig.EVENT.TOOLTIP_OUT_GRID, this._event, null, this.myChart); - this._hidingTicket = setTimeout(this._hide, this._hideDelay); - } - } else { - this._curTarget = target; - this._event = param.event; - this._event.zrenderX = mx; - this._event.zrenderY = my; - var polarIndex; - if (this._needAxisTrigger && this.component.polar && (polarIndex = this.component.polar.isInside([ - mx, - my - ])) != -1) { - var series = this.option.series; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].polarIndex === polarIndex && this.deepQuery([ - series[i], - this.option - ], 'tooltip.trigger') === 'axis') { - this._curTarget = null; - break; - } - } - } - this._showingTicket = setTimeout(this._tryShow, this._showDelay); - } - }, - __onglobalout: function () { - clearTimeout(this._hidingTicket); - clearTimeout(this._showingTicket); - this._hidingTicket = setTimeout(this._hide, this._hideDelay); - }, - __setContent: function (ticket, content) { - if (!this._tDom) { - return; - } - if (ticket === this._curTicket) { - this._tDom.innerHTML = content; - } - setTimeout(this._refixed, 20); - }, - ontooltipHover: function (param, tipShape) { - if (!this._lastTipShape || this._lastTipShape && this._lastTipShape.dataIndex != param.dataIndex) { - if (this._lastTipShape && this._lastTipShape.tipShape.length > 0) { - this.zr.delShape(this._lastTipShape.tipShape); - this.shapeList.length = 2; - } - for (var i = 0, l = tipShape.length; i < l; i++) { - tipShape[i].zlevel = this.getZlevelBase(); - tipShape[i].z = this.getZBase(); - tipShape[i].style = zrShapeBase.prototype.getHighlightStyle(tipShape[i].style, tipShape[i].highlightStyle); - tipShape[i].draggable = false; - tipShape[i].hoverable = false; - tipShape[i].clickable = false; - tipShape[i].ondragend = null; - tipShape[i].ondragover = null; - tipShape[i].ondrop = null; - this.shapeList.push(tipShape[i]); - this.zr.addShape(tipShape[i]); - } - this._lastTipShape = { - dataIndex: param.dataIndex, - tipShape: tipShape - }; - } - }, - ondragend: function () { - this._hide(); - }, - onlegendSelected: function (param) { - this._selectedMap = param.selected; - }, - _setSelectedMap: function () { - if (this.component.legend) { - this._selectedMap = zrUtil.clone(this.component.legend.getSelectedMap()); - } else { - this._selectedMap = {}; - } - }, - _isSelected: function (itemName) { - if (this._selectedMap[itemName] != null) { - return this._selectedMap[itemName]; - } else { - return true; - } - }, - showTip: function (params) { - if (!params) { - return; - } - var seriesIndex; - var series = this.option.series; - if (params.seriesIndex != null) { - seriesIndex = params.seriesIndex; - } else { - var seriesName = params.seriesName; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].name === seriesName) { - seriesIndex = i; - break; - } - } - } - var serie = series[seriesIndex]; - if (serie == null) { - return; - } - var chart = this.myChart.chart[serie.type]; - var isAxisTrigger = this.deepQuery([ - serie, - this.option - ], 'tooltip.trigger') === 'axis'; - if (!chart) { - return; - } - if (isAxisTrigger) { - var dataIndex = params.dataIndex; - switch (chart.type) { - case ecConfig.CHART_TYPE_LINE: - case ecConfig.CHART_TYPE_BAR: - case ecConfig.CHART_TYPE_K: - case ecConfig.CHART_TYPE_RADAR: - if (this.component.polar == null || serie.data[0].value.length <= dataIndex) { - return; - } - var polarIndex = serie.polarIndex || 0; - var vector = this.component.polar.getVector(polarIndex, dataIndex, 'max'); - this._event = { - zrenderX: vector[0], - zrenderY: vector[1] - }; - this._showPolarTrigger(polarIndex, dataIndex); - break; - } - } else { - var shapeList = chart.shapeList; - var x; - var y; - switch (chart.type) { - case ecConfig.CHART_TYPE_LINE: - case ecConfig.CHART_TYPE_BAR: - case ecConfig.CHART_TYPE_K: - case ecConfig.CHART_TYPE_TREEMAP: - case ecConfig.CHART_TYPE_SCATTER: - var dataIndex = params.dataIndex; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (shapeList[i]._mark == null && ecData.get(shapeList[i], 'seriesIndex') == seriesIndex && ecData.get(shapeList[i], 'dataIndex') == dataIndex) { - this._curTarget = shapeList[i]; - x = shapeList[i].style.x; - y = chart.type != ecConfig.CHART_TYPE_K ? shapeList[i].style.y : shapeList[i].style.y[0]; - break; - } - } - break; - case ecConfig.CHART_TYPE_RADAR: - var dataIndex = params.dataIndex; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (shapeList[i].type === 'polygon' && ecData.get(shapeList[i], 'seriesIndex') == seriesIndex && ecData.get(shapeList[i], 'dataIndex') == dataIndex) { - this._curTarget = shapeList[i]; - var vector = this.component.polar.getCenter(serie.polarIndex || 0); - x = vector[0]; - y = vector[1]; - break; - } - } - break; - case ecConfig.CHART_TYPE_PIE: - var name = params.name; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (shapeList[i].type === 'sector' && ecData.get(shapeList[i], 'seriesIndex') == seriesIndex && ecData.get(shapeList[i], 'name') == name) { - this._curTarget = shapeList[i]; - var style = this._curTarget.style; - var midAngle = (style.startAngle + style.endAngle) / 2 * Math.PI / 180; - x = this._curTarget.style.x + Math.cos(midAngle) * style.r / 1.5; - y = this._curTarget.style.y - Math.sin(midAngle) * style.r / 1.5; - break; - } - } - break; - case ecConfig.CHART_TYPE_MAP: - var name = params.name; - var mapType = serie.mapType; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (shapeList[i].type === 'text' && shapeList[i]._mapType === mapType && shapeList[i].style._name === name) { - this._curTarget = shapeList[i]; - x = this._curTarget.style.x + this._curTarget.position[0]; - y = this._curTarget.style.y + this._curTarget.position[1]; - break; - } - } - break; - case ecConfig.CHART_TYPE_CHORD: - var name = params.name; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (shapeList[i].type === 'sector' && ecData.get(shapeList[i], 'name') == name) { - this._curTarget = shapeList[i]; - var style = this._curTarget.style; - var midAngle = (style.startAngle + style.endAngle) / 2 * Math.PI / 180; - x = this._curTarget.style.x + Math.cos(midAngle) * (style.r - 2); - y = this._curTarget.style.y - Math.sin(midAngle) * (style.r - 2); - this.zr.trigger(zrConfig.EVENT.MOUSEMOVE, { - zrenderX: x, - zrenderY: y - }); - return; - } - } - break; - case ecConfig.CHART_TYPE_FORCE: - var name = params.name; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (shapeList[i].type === 'circle' && ecData.get(shapeList[i], 'name') == name) { - this._curTarget = shapeList[i]; - x = this._curTarget.position[0]; - y = this._curTarget.position[1]; - break; - } - } - break; - } - if (x != null && y != null) { - this._event = { - zrenderX: x, - zrenderY: y - }; - this.zr.addHoverShape(this._curTarget); - this.zr.refreshHover(); - this._showItemTrigger(); - } - } - }, - hideTip: function () { - this._hide(); - }, - refresh: function (newOption) { - this._zrHeight = this.zr.getHeight(); - this._zrWidth = this.zr.getWidth(); - if (this._lastTipShape && this._lastTipShape.tipShape.length > 0) { - this.zr.delShape(this._lastTipShape.tipShape); - } - this._lastTipShape = false; - this.shapeList.length = 2; - this._lastDataIndex = -1; - this._lastSeriesIndex = -1; - this._lastItemTriggerId = -1; - if (newOption) { - this.option = newOption; - this.option.tooltip = this.reformOption(this.option.tooltip); - this.option.tooltip.textStyle = zrUtil.merge(this.option.tooltip.textStyle, this.ecTheme.textStyle); - this._needAxisTrigger = false; - if (this.option.tooltip.trigger === 'axis') { - this._needAxisTrigger = true; - } - var series = this.option.series; - for (var i = 0, l = series.length; i < l; i++) { - if (this.query(series[i], 'tooltip.trigger') === 'axis') { - this._needAxisTrigger = true; - break; - } - } - this._showDelay = this.option.tooltip.showDelay; - this._hideDelay = this.option.tooltip.hideDelay; - this._defaultCssText = this._style(this.option.tooltip); - this._setSelectedMap(); - this._axisLineWidth = this.option.tooltip.axisPointer.lineStyle.width; - this._enterable = this.option.tooltip.enterable; - if (!this._enterable && this._tDom.className.indexOf(zrConfig.elementClassName) < 0) { - this._tDom.className += ' ' + zrConfig.elementClassName; - } - } - if (this.showing) { - var self = this; - setTimeout(function () { - self.zr.trigger(zrConfig.EVENT.MOUSEMOVE, self.zr.handler._event); - }, 50); - } - }, - onbeforDispose: function () { - if (this._lastTipShape && this._lastTipShape.tipShape.length > 0) { - this.zr.delShape(this._lastTipShape.tipShape); - } - clearTimeout(this._hidingTicket); - clearTimeout(this._showingTicket); - this.zr.un(zrConfig.EVENT.MOUSEMOVE, this._onmousemove); - this.zr.un(zrConfig.EVENT.GLOBALOUT, this._onglobalout); - if (this.hasAppend && !!this.dom.firstChild) { - this.dom.firstChild.removeChild(this._tDom); - } - this._tDom = null; - }, - _encodeHTML: function (source) { - return String(source).replace(/&/g, '&').replace(//g, '>').replace(/"/g, '"').replace(/'/g, '''); - } - }; - zrUtil.inherits(Tooltip, Base); - require('../component').define('tooltip', Tooltip); - return Tooltip; -});define('echarts/component/legend', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Rectangle', - 'zrender/shape/Sector', - '../util/shape/Icon', - '../util/shape/Candle', - '../config', - 'zrender/tool/util', - 'zrender/tool/area', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var RectangleShape = require('zrender/shape/Rectangle'); - var SectorShape = require('zrender/shape/Sector'); - var IconShape = require('../util/shape/Icon'); - var CandleShape = require('../util/shape/Candle'); - var ecConfig = require('../config'); - ecConfig.legend = { - zlevel: 0, - z: 4, - show: true, - orient: 'horizontal', - x: 'center', - y: 'top', - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - itemGap: 10, - itemWidth: 20, - itemHeight: 14, - textStyle: { color: '#333' }, - selectedMode: true - }; - var zrUtil = require('zrender/tool/util'); - var zrArea = require('zrender/tool/area'); - function Legend(ecTheme, messageCenter, zr, option, myChart) { - if (!this.query(option, 'legend.data')) { - console.error('option.legend.data has not been defined.'); - return; - } - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._legendSelected = function (param) { - self.__legendSelected(param); - }; - self._dispatchHoverLink = function (param) { - return self.__dispatchHoverLink(param); - }; - this._colorIndex = 0; - this._colorMap = {}; - this._selectedMap = {}; - this._hasDataMap = {}; - this.refresh(option); - } - Legend.prototype = { - type: ecConfig.COMPONENT_TYPE_LEGEND, - _buildShape: function () { - if (!this.legendOption.show) { - return; - } - this._itemGroupLocation = this._getItemGroupLocation(); - this._buildBackground(); - this._buildItem(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _buildItem: function () { - var data = this.legendOption.data; - var dataLength = data.length; - var itemName; - var itemType; - var itemShape; - var textShape; - var textStyle = this.legendOption.textStyle; - var dataTextStyle; - var dataFont; - var formattedName; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - var lastX = this._itemGroupLocation.x; - var lastY = this._itemGroupLocation.y; - var itemWidth = this.legendOption.itemWidth; - var itemHeight = this.legendOption.itemHeight; - var itemGap = this.legendOption.itemGap; - var color; - if (this.legendOption.orient === 'vertical' && this.legendOption.x === 'right') { - lastX = this._itemGroupLocation.x + this._itemGroupLocation.width - itemWidth; - } - for (var i = 0; i < dataLength; i++) { - dataTextStyle = zrUtil.merge(data[i].textStyle || {}, textStyle); - dataFont = this.getFont(dataTextStyle); - itemName = this._getName(data[i]); - formattedName = this._getFormatterName(itemName); - if (itemName === '') { - if (this.legendOption.orient === 'horizontal') { - lastX = this._itemGroupLocation.x; - lastY += itemHeight + itemGap; - } else { - this.legendOption.x === 'right' ? lastX -= this._itemGroupLocation.maxWidth + itemGap : lastX += this._itemGroupLocation.maxWidth + itemGap; - lastY = this._itemGroupLocation.y; - } - continue; - } - itemType = data[i].icon || this._getSomethingByName(itemName).type; - color = this.getColor(itemName); - if (this.legendOption.orient === 'horizontal') { - if (zrWidth - lastX < 200 && itemWidth + 5 + zrArea.getTextWidth(formattedName, dataFont) + (i === dataLength - 1 || data[i + 1] === '' ? 0 : itemGap) >= zrWidth - lastX) { - lastX = this._itemGroupLocation.x; - lastY += itemHeight + itemGap; - } - } else { - if (zrHeight - lastY < 200 && itemHeight + (i === dataLength - 1 || data[i + 1] === '' ? 0 : itemGap) >= zrHeight - lastY) { - this.legendOption.x === 'right' ? lastX -= this._itemGroupLocation.maxWidth + itemGap : lastX += this._itemGroupLocation.maxWidth + itemGap; - lastY = this._itemGroupLocation.y; - } - } - itemShape = this._getItemShapeByType(lastX, lastY, itemWidth, itemHeight, this._selectedMap[itemName] && this._hasDataMap[itemName] ? color : '#ccc', itemType, color); - itemShape._name = itemName; - itemShape = new IconShape(itemShape); - textShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: lastX + itemWidth + 5, - y: lastY + itemHeight / 2, - color: this._selectedMap[itemName] ? dataTextStyle.color === 'auto' ? color : dataTextStyle.color : '#ccc', - text: formattedName, - textFont: dataFont, - textBaseline: 'middle' - }, - highlightStyle: { - color: color, - brushType: 'fill' - }, - hoverable: !!this.legendOption.selectedMode, - clickable: !!this.legendOption.selectedMode - }; - if (this.legendOption.orient === 'vertical' && this.legendOption.x === 'right') { - textShape.style.x -= itemWidth + 10; - textShape.style.textAlign = 'right'; - } - textShape._name = itemName; - textShape = new TextShape(textShape); - if (this.legendOption.selectedMode) { - itemShape.onclick = textShape.onclick = this._legendSelected; - itemShape.onmouseover = textShape.onmouseover = this._dispatchHoverLink; - itemShape.hoverConnect = textShape.id; - textShape.hoverConnect = itemShape.id; - } - this.shapeList.push(itemShape); - this.shapeList.push(textShape); - if (this.legendOption.orient === 'horizontal') { - lastX += itemWidth + 5 + zrArea.getTextWidth(formattedName, dataFont) + itemGap; - } else { - lastY += itemHeight + itemGap; - } - } - if (this.legendOption.orient === 'horizontal' && this.legendOption.x === 'center' && lastY != this._itemGroupLocation.y) { - this._mLineOptimize(); - } - }, - _getName: function (data) { - return typeof data.name != 'undefined' ? data.name : data; - }, - _getFormatterName: function (itemName) { - var formatter = this.legendOption.formatter; - var formattedName; - if (typeof formatter === 'function') { - formattedName = formatter.call(this.myChart, itemName); - } else if (typeof formatter === 'string') { - formattedName = formatter.replace('{name}', itemName); - } else { - formattedName = itemName; - } - return formattedName; - }, - _getFormatterNameFromData: function (data) { - var itemName = this._getName(data); - return this._getFormatterName(itemName); - }, - _mLineOptimize: function () { - var lineOffsetArray = []; - var lastX = this._itemGroupLocation.x; - for (var i = 2, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i].style.x === lastX) { - lineOffsetArray.push((this._itemGroupLocation.width - (this.shapeList[i - 1].style.x + zrArea.getTextWidth(this.shapeList[i - 1].style.text, this.shapeList[i - 1].style.textFont) - lastX)) / 2); - } else if (i === l - 1) { - lineOffsetArray.push((this._itemGroupLocation.width - (this.shapeList[i].style.x + zrArea.getTextWidth(this.shapeList[i].style.text, this.shapeList[i].style.textFont) - lastX)) / 2); - } - } - var curLineIndex = -1; - for (var i = 1, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i].style.x === lastX) { - curLineIndex++; - } - if (lineOffsetArray[curLineIndex] === 0) { - continue; - } else { - this.shapeList[i].style.x += lineOffsetArray[curLineIndex]; - } - } - }, - _buildBackground: function () { - var padding = this.reformCssArray(this.legendOption.padding); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._itemGroupLocation.x - padding[3], - y: this._itemGroupLocation.y - padding[0], - width: this._itemGroupLocation.width + padding[3] + padding[1], - height: this._itemGroupLocation.height + padding[0] + padding[2], - brushType: this.legendOption.borderWidth === 0 ? 'fill' : 'both', - color: this.legendOption.backgroundColor, - strokeColor: this.legendOption.borderColor, - lineWidth: this.legendOption.borderWidth - } - })); - }, - _getItemGroupLocation: function () { - var data = this.legendOption.data; - var dataLength = data.length; - var itemGap = this.legendOption.itemGap; - var itemWidth = this.legendOption.itemWidth + 5; - var itemHeight = this.legendOption.itemHeight; - var textStyle = this.legendOption.textStyle; - var font = this.getFont(textStyle); - var totalWidth = 0; - var totalHeight = 0; - var padding = this.reformCssArray(this.legendOption.padding); - var zrWidth = this.zr.getWidth() - padding[1] - padding[3]; - var zrHeight = this.zr.getHeight() - padding[0] - padding[2]; - var temp = 0; - var maxWidth = 0; - if (this.legendOption.orient === 'horizontal') { - totalHeight = itemHeight; - for (var i = 0; i < dataLength; i++) { - if (this._getName(data[i]) === '') { - temp -= itemGap; - totalWidth = Math.max(totalWidth, temp); - totalHeight += itemHeight + itemGap; - temp = 0; - continue; - } - var tempTextWidth = zrArea.getTextWidth(this._getFormatterNameFromData(data[i]), data[i].textStyle ? this.getFont(zrUtil.merge(data[i].textStyle || {}, textStyle)) : font); - if (temp + itemWidth + tempTextWidth + itemGap > zrWidth) { - temp -= itemGap; - totalWidth = Math.max(totalWidth, temp); - totalHeight += itemHeight + itemGap; - temp = 0; - } else { - temp += itemWidth + tempTextWidth + itemGap; - totalWidth = Math.max(totalWidth, temp - itemGap); - } - } - } else { - for (var i = 0; i < dataLength; i++) { - maxWidth = Math.max(maxWidth, zrArea.getTextWidth(this._getFormatterNameFromData(data[i]), data[i].textStyle ? this.getFont(zrUtil.merge(data[i].textStyle || {}, textStyle)) : font)); - } - maxWidth += itemWidth; - totalWidth = maxWidth; - for (var i = 0; i < dataLength; i++) { - if (this._getName(data[i]) === '') { - totalWidth += maxWidth + itemGap; - temp -= itemGap; - totalHeight = Math.max(totalHeight, temp); - temp = 0; - continue; - } - if (temp + itemHeight + itemGap > zrHeight) { - totalWidth += maxWidth + itemGap; - temp -= itemGap; - totalHeight = Math.max(totalHeight, temp); - temp = 0; - } else { - temp += itemHeight + itemGap; - totalHeight = Math.max(totalHeight, temp - itemGap); - } - } - } - zrWidth = this.zr.getWidth(); - zrHeight = this.zr.getHeight(); - var x; - switch (this.legendOption.x) { - case 'center': - x = Math.floor((zrWidth - totalWidth) / 2); - break; - case 'left': - x = padding[3] + this.legendOption.borderWidth; - break; - case 'right': - x = zrWidth - totalWidth - padding[1] - padding[3] - this.legendOption.borderWidth * 2; - break; - default: - x = this.parsePercent(this.legendOption.x, zrWidth); - break; - } - var y; - switch (this.legendOption.y) { - case 'top': - y = padding[0] + this.legendOption.borderWidth; - break; - case 'bottom': - y = zrHeight - totalHeight - padding[0] - padding[2] - this.legendOption.borderWidth * 2; - break; - case 'center': - y = Math.floor((zrHeight - totalHeight) / 2); - break; - default: - y = this.parsePercent(this.legendOption.y, zrHeight); - break; - } - return { - x: x, - y: y, - width: totalWidth, - height: totalHeight, - maxWidth: maxWidth - }; - }, - _getSomethingByName: function (name) { - var series = this.option.series; - var data; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].name === name) { - return { - type: series[i].type, - series: series[i], - seriesIndex: i, - data: null, - dataIndex: -1 - }; - } - if (series[i].type === ecConfig.CHART_TYPE_PIE || series[i].type === ecConfig.CHART_TYPE_RADAR || series[i].type === ecConfig.CHART_TYPE_CHORD || series[i].type === ecConfig.CHART_TYPE_FORCE || series[i].type === ecConfig.CHART_TYPE_FUNNEL || series[i].type === ecConfig.CHART_TYPE_TREEMAP) { - data = series[i].categories || series[i].data || series[i].nodes; - for (var j = 0, k = data.length; j < k; j++) { - if (data[j].name === name) { - return { - type: series[i].type, - series: series[i], - seriesIndex: i, - data: data[j], - dataIndex: j - }; - } - } - } - } - return { - type: 'bar', - series: null, - seriesIndex: -1, - data: null, - dataIndex: -1 - }; - }, - _getItemShapeByType: function (x, y, width, height, color, itemType, defaultColor) { - var highlightColor = color === '#ccc' ? defaultColor : color; - var itemShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - iconType: 'legendicon' + itemType, - x: x, - y: y, - width: width, - height: height, - color: color, - strokeColor: color, - lineWidth: 2 - }, - highlightStyle: { - color: highlightColor, - strokeColor: highlightColor, - lineWidth: 1 - }, - hoverable: this.legendOption.selectedMode, - clickable: this.legendOption.selectedMode - }; - var imageLocation; - if (itemType.match('image')) { - var imageLocation = itemType.replace(new RegExp('^image:\\/\\/'), ''); - itemType = 'image'; - } - switch (itemType) { - case 'line': - itemShape.style.brushType = 'stroke'; - itemShape.highlightStyle.lineWidth = 3; - break; - case 'radar': - case 'venn': - case 'tree': - case 'treemap': - case 'scatter': - itemShape.highlightStyle.lineWidth = 3; - break; - case 'k': - itemShape.style.brushType = 'both'; - itemShape.highlightStyle.lineWidth = 3; - itemShape.highlightStyle.color = itemShape.style.color = this.deepQuery([ - this.ecTheme, - ecConfig - ], 'k.itemStyle.normal.color') || '#fff'; - itemShape.style.strokeColor = color != '#ccc' ? this.deepQuery([ - this.ecTheme, - ecConfig - ], 'k.itemStyle.normal.lineStyle.color') || '#ff3200' : color; - break; - case 'image': - itemShape.style.iconType = 'image'; - itemShape.style.image = imageLocation; - if (color === '#ccc') { - itemShape.style.opacity = 0.5; - } - break; - } - return itemShape; - }, - __legendSelected: function (param) { - var itemName = param.target._name; - if (this.legendOption.selectedMode === 'single') { - for (var k in this._selectedMap) { - this._selectedMap[k] = false; - } - } - this._selectedMap[itemName] = !this._selectedMap[itemName]; - this.messageCenter.dispatch(ecConfig.EVENT.LEGEND_SELECTED, param.event, { - selected: this._selectedMap, - target: itemName - }, this.myChart); - }, - __dispatchHoverLink: function (param) { - this.messageCenter.dispatch(ecConfig.EVENT.LEGEND_HOVERLINK, param.event, { target: param.target._name }, this.myChart); - return; - }, - refresh: function (newOption) { - if (newOption) { - this.option = newOption || this.option; - this.option.legend = this.reformOption(this.option.legend); - this.legendOption = this.option.legend; - var data = this.legendOption.data || []; - var itemName; - var something; - var color; - var queryTarget; - if (this.legendOption.selected) { - for (var k in this.legendOption.selected) { - this._selectedMap[k] = typeof this._selectedMap[k] != 'undefined' ? this._selectedMap[k] : this.legendOption.selected[k]; - } - } - for (var i = 0, dataLength = data.length; i < dataLength; i++) { - itemName = this._getName(data[i]); - if (itemName === '') { - continue; - } - something = this._getSomethingByName(itemName); - if (!something.series) { - this._hasDataMap[itemName] = false; - } else { - this._hasDataMap[itemName] = true; - if (something.data && (something.type === ecConfig.CHART_TYPE_PIE || something.type === ecConfig.CHART_TYPE_FORCE || something.type === ecConfig.CHART_TYPE_FUNNEL)) { - queryTarget = [ - something.data, - something.series - ]; - } else { - queryTarget = [something.series]; - } - color = this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color'), something.seriesIndex, something.dataIndex, something.data); - if (color && something.type != ecConfig.CHART_TYPE_K) { - this.setColor(itemName, color); - } - this._selectedMap[itemName] = this._selectedMap[itemName] != null ? this._selectedMap[itemName] : true; - } - } - } - this.clear(); - this._buildShape(); - }, - getRelatedAmount: function (name) { - var amount = 0; - var series = this.option.series; - var data; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].name === name) { - amount++; - } - if (series[i].type === ecConfig.CHART_TYPE_PIE || series[i].type === ecConfig.CHART_TYPE_RADAR || series[i].type === ecConfig.CHART_TYPE_CHORD || series[i].type === ecConfig.CHART_TYPE_FORCE || series[i].type === ecConfig.CHART_TYPE_FUNNEL) { - data = series[i].type != ecConfig.CHART_TYPE_FORCE ? series[i].data : series[i].categories; - for (var j = 0, k = data.length; j < k; j++) { - if (data[j].name === name && data[j].value != '-') { - amount++; - } - } - } - } - return amount; - }, - setColor: function (legendName, color) { - this._colorMap[legendName] = color; - }, - getColor: function (legendName) { - if (!this._colorMap[legendName]) { - this._colorMap[legendName] = this.zr.getColor(this._colorIndex++); - } - return this._colorMap[legendName]; - }, - hasColor: function (legendName) { - return this._colorMap[legendName] ? this._colorMap[legendName] : false; - }, - add: function (name, color) { - var data = this.legendOption.data; - for (var i = 0, dataLength = data.length; i < dataLength; i++) { - if (this._getName(data[i]) === name) { - return; - } - } - this.legendOption.data.push(name); - this.setColor(name, color); - this._selectedMap[name] = true; - this._hasDataMap[name] = true; - }, - del: function (name) { - var data = this.legendOption.data; - for (var i = 0, dataLength = data.length; i < dataLength; i++) { - if (this._getName(data[i]) === name) { - return this.legendOption.data.splice(i, 1); - } - } - }, - getItemShape: function (name) { - if (name == null) { - return; - } - var shape; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - shape = this.shapeList[i]; - if (shape._name === name && shape.type != 'text') { - return shape; - } - } - }, - setItemShape: function (name, itemShape) { - var shape; - for (var i = 0, l = this.shapeList.length; i < l; i++) { - shape = this.shapeList[i]; - if (shape._name === name && shape.type != 'text') { - if (!this._selectedMap[name]) { - itemShape.style.color = '#ccc'; - itemShape.style.strokeColor = '#ccc'; - } - this.zr.modShape(shape.id, itemShape); - } - } - }, - isSelected: function (itemName) { - if (typeof this._selectedMap[itemName] != 'undefined') { - return this._selectedMap[itemName]; - } else { - return true; - } - }, - getSelectedMap: function () { - return this._selectedMap; - }, - setSelected: function (itemName, selectStatus) { - if (this.legendOption.selectedMode === 'single') { - for (var k in this._selectedMap) { - this._selectedMap[k] = false; - } - } - this._selectedMap[itemName] = selectStatus; - this.messageCenter.dispatch(ecConfig.EVENT.LEGEND_SELECTED, null, { - selected: this._selectedMap, - target: itemName - }, this.myChart); - }, - onlegendSelected: function (param, status) { - var legendSelected = param.selected; - for (var itemName in legendSelected) { - if (this._selectedMap[itemName] != legendSelected[itemName]) { - status.needRefresh = true; - } - this._selectedMap[itemName] = legendSelected[itemName]; - } - return; - } - }; - var legendIcon = { - line: function (ctx, style) { - var dy = style.height / 2; - ctx.moveTo(style.x, style.y + dy); - ctx.lineTo(style.x + style.width, style.y + dy); - }, - pie: function (ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - SectorShape.prototype.buildPath(ctx, { - x: x + width / 2, - y: y + height + 2, - r: height, - r0: 6, - startAngle: 45, - endAngle: 135 - }); - }, - eventRiver: function (ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - ctx.moveTo(x, y + height); - ctx.bezierCurveTo(x + width, y + height, x, y + 4, x + width, y + 4); - ctx.lineTo(x + width, y); - ctx.bezierCurveTo(x, y, x + width, y + height - 4, x, y + height - 4); - ctx.lineTo(x, y + height); - }, - k: function (ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - CandleShape.prototype.buildPath(ctx, { - x: x + width / 2, - y: [ - y + 1, - y + 1, - y + height - 6, - y + height - ], - width: width - 6 - }); - }, - bar: function (ctx, style) { - var x = style.x; - var y = style.y + 1; - var width = style.width; - var height = style.height - 2; - var r = 3; - ctx.moveTo(x + r, y); - ctx.lineTo(x + width - r, y); - ctx.quadraticCurveTo(x + width, y, x + width, y + r); - ctx.lineTo(x + width, y + height - r); - ctx.quadraticCurveTo(x + width, y + height, x + width - r, y + height); - ctx.lineTo(x + r, y + height); - ctx.quadraticCurveTo(x, y + height, x, y + height - r); - ctx.lineTo(x, y + r); - ctx.quadraticCurveTo(x, y, x + r, y); - }, - force: function (ctx, style) { - IconShape.prototype.iconLibrary.circle(ctx, style); - }, - radar: function (ctx, style) { - var n = 6; - var x = style.x + style.width / 2; - var y = style.y + style.height / 2; - var r = style.height / 2; - var dStep = 2 * Math.PI / n; - var deg = -Math.PI / 2; - var xStart = x + r * Math.cos(deg); - var yStart = y + r * Math.sin(deg); - ctx.moveTo(xStart, yStart); - deg += dStep; - for (var i = 0, end = n - 1; i < end; i++) { - ctx.lineTo(x + r * Math.cos(deg), y + r * Math.sin(deg)); - deg += dStep; - } - ctx.lineTo(xStart, yStart); - } - }; - legendIcon.chord = legendIcon.pie; - legendIcon.map = legendIcon.bar; - for (var k in legendIcon) { - IconShape.prototype.iconLibrary['legendicon' + k] = legendIcon[k]; - } - zrUtil.inherits(Legend, Base); - require('../component').define('legend', Legend); - return Legend; -});define('echarts/util/ecData', [], function () { - function pack(shape, series, seriesIndex, data, dataIndex, name, special, special2) { - var value; - if (typeof data != 'undefined') { - value = data.value == null ? data : data.value; - } - shape._echartsData = { - '_series': series, - '_seriesIndex': seriesIndex, - '_data': data, - '_dataIndex': dataIndex, - '_name': name, - '_value': value, - '_special': special, - '_special2': special2 - }; - return shape._echartsData; - } - function get(shape, key) { - var data = shape._echartsData; - if (!key) { - return data; - } - switch (key) { - case 'series': - case 'seriesIndex': - case 'data': - case 'dataIndex': - case 'name': - case 'value': - case 'special': - case 'special2': - return data && data['_' + key]; - } - return null; - } - function set(shape, key, value) { - shape._echartsData = shape._echartsData || {}; - switch (key) { - case 'series': - case 'seriesIndex': - case 'data': - case 'dataIndex': - case 'name': - case 'value': - case 'special': - case 'special2': - shape._echartsData['_' + key] = value; - break; - } - } - function clone(source, target) { - target._echartsData = { - '_series': source._echartsData._series, - '_seriesIndex': source._echartsData._seriesIndex, - '_data': source._echartsData._data, - '_dataIndex': source._echartsData._dataIndex, - '_name': source._echartsData._name, - '_value': source._echartsData._value, - '_special': source._echartsData._special, - '_special2': source._echartsData._special2 - }; - } - return { - pack: pack, - set: set, - get: get, - clone: clone - }; -});define('echarts/chart', [], function () { - var self = {}; - var _chartLibrary = {}; - self.define = function (name, clazz) { - _chartLibrary[name] = clazz; - return self; - }; - self.get = function (name) { - return _chartLibrary[name]; - }; - return self; -});define('zrender/tool/color', [ - 'require', - '../tool/util' -], function (require) { - var util = require('../tool/util'); - var _ctx; - var palette = [ - '#ff9277', - ' #dddd00', - ' #ffc877', - ' #bbe3ff', - ' #d5ffbb', - '#bbbbff', - ' #ddb000', - ' #b0dd00', - ' #e2bbff', - ' #ffbbe3', - '#ff7777', - ' #ff9900', - ' #83dd00', - ' #77e3ff', - ' #778fff', - '#c877ff', - ' #ff77ab', - ' #ff6600', - ' #aa8800', - ' #77c7ff', - '#ad77ff', - ' #ff77ff', - ' #dd0083', - ' #777700', - ' #00aa00', - '#0088aa', - ' #8400dd', - ' #aa0088', - ' #dd0000', - ' #772e00' - ]; - var _palette = palette; - var highlightColor = 'rgba(255,255,0,0.5)'; - var _highlightColor = highlightColor; - var colorRegExp = /^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i; - var _nameColors = { - aliceblue: '#f0f8ff', - antiquewhite: '#faebd7', - aqua: '#0ff', - aquamarine: '#7fffd4', - azure: '#f0ffff', - beige: '#f5f5dc', - bisque: '#ffe4c4', - black: '#000', - blanchedalmond: '#ffebcd', - blue: '#00f', - blueviolet: '#8a2be2', - brown: '#a52a2a', - burlywood: '#deb887', - cadetblue: '#5f9ea0', - chartreuse: '#7fff00', - chocolate: '#d2691e', - coral: '#ff7f50', - cornflowerblue: '#6495ed', - cornsilk: '#fff8dc', - crimson: '#dc143c', - cyan: '#0ff', - darkblue: '#00008b', - darkcyan: '#008b8b', - darkgoldenrod: '#b8860b', - darkgray: '#a9a9a9', - darkgrey: '#a9a9a9', - darkgreen: '#006400', - darkkhaki: '#bdb76b', - darkmagenta: '#8b008b', - darkolivegreen: '#556b2f', - darkorange: '#ff8c00', - darkorchid: '#9932cc', - darkred: '#8b0000', - darksalmon: '#e9967a', - darkseagreen: '#8fbc8f', - darkslateblue: '#483d8b', - darkslategray: '#2f4f4f', - darkslategrey: '#2f4f4f', - darkturquoise: '#00ced1', - darkviolet: '#9400d3', - deeppink: '#ff1493', - deepskyblue: '#00bfff', - dimgray: '#696969', - dimgrey: '#696969', - dodgerblue: '#1e90ff', - firebrick: '#b22222', - floralwhite: '#fffaf0', - forestgreen: '#228b22', - fuchsia: '#f0f', - gainsboro: '#dcdcdc', - ghostwhite: '#f8f8ff', - gold: '#ffd700', - goldenrod: '#daa520', - gray: '#808080', - grey: '#808080', - green: '#008000', - greenyellow: '#adff2f', - honeydew: '#f0fff0', - hotpink: '#ff69b4', - indianred: '#cd5c5c', - indigo: '#4b0082', - ivory: '#fffff0', - khaki: '#f0e68c', - lavender: '#e6e6fa', - lavenderblush: '#fff0f5', - lawngreen: '#7cfc00', - lemonchiffon: '#fffacd', - lightblue: '#add8e6', - lightcoral: '#f08080', - lightcyan: '#e0ffff', - lightgoldenrodyellow: '#fafad2', - lightgray: '#d3d3d3', - lightgrey: '#d3d3d3', - lightgreen: '#90ee90', - lightpink: '#ffb6c1', - lightsalmon: '#ffa07a', - lightseagreen: '#20b2aa', - lightskyblue: '#87cefa', - lightslategray: '#789', - lightslategrey: '#789', - lightsteelblue: '#b0c4de', - lightyellow: '#ffffe0', - lime: '#0f0', - limegreen: '#32cd32', - linen: '#faf0e6', - magenta: '#f0f', - maroon: '#800000', - mediumaquamarine: '#66cdaa', - mediumblue: '#0000cd', - mediumorchid: '#ba55d3', - mediumpurple: '#9370d8', - mediumseagreen: '#3cb371', - mediumslateblue: '#7b68ee', - mediumspringgreen: '#00fa9a', - mediumturquoise: '#48d1cc', - mediumvioletred: '#c71585', - midnightblue: '#191970', - mintcream: '#f5fffa', - mistyrose: '#ffe4e1', - moccasin: '#ffe4b5', - navajowhite: '#ffdead', - navy: '#000080', - oldlace: '#fdf5e6', - olive: '#808000', - olivedrab: '#6b8e23', - orange: '#ffa500', - orangered: '#ff4500', - orchid: '#da70d6', - palegoldenrod: '#eee8aa', - palegreen: '#98fb98', - paleturquoise: '#afeeee', - palevioletred: '#d87093', - papayawhip: '#ffefd5', - peachpuff: '#ffdab9', - peru: '#cd853f', - pink: '#ffc0cb', - plum: '#dda0dd', - powderblue: '#b0e0e6', - purple: '#800080', - red: '#f00', - rosybrown: '#bc8f8f', - royalblue: '#4169e1', - saddlebrown: '#8b4513', - salmon: '#fa8072', - sandybrown: '#f4a460', - seagreen: '#2e8b57', - seashell: '#fff5ee', - sienna: '#a0522d', - silver: '#c0c0c0', - skyblue: '#87ceeb', - slateblue: '#6a5acd', - slategray: '#708090', - slategrey: '#708090', - snow: '#fffafa', - springgreen: '#00ff7f', - steelblue: '#4682b4', - tan: '#d2b48c', - teal: '#008080', - thistle: '#d8bfd8', - tomato: '#ff6347', - turquoise: '#40e0d0', - violet: '#ee82ee', - wheat: '#f5deb3', - white: '#fff', - whitesmoke: '#f5f5f5', - yellow: '#ff0', - yellowgreen: '#9acd32' - }; - function customPalette(userPalete) { - palette = userPalete; - } - function resetPalette() { - palette = _palette; - } - function getColor(idx, userPalete) { - idx = idx | 0; - userPalete = userPalete || palette; - return userPalete[idx % userPalete.length]; - } - function customHighlight(userHighlightColor) { - highlightColor = userHighlightColor; - } - function resetHighlight() { - _highlightColor = highlightColor; - } - function getHighlightColor() { - return highlightColor; - } - function getRadialGradient(x0, y0, r0, x1, y1, r1, colorList) { - if (!_ctx) { - _ctx = util.getContext(); - } - var gradient = _ctx.createRadialGradient(x0, y0, r0, x1, y1, r1); - for (var i = 0, l = colorList.length; i < l; i++) { - gradient.addColorStop(colorList[i][0], colorList[i][1]); - } - gradient.__nonRecursion = true; - return gradient; - } - function getLinearGradient(x0, y0, x1, y1, colorList) { - if (!_ctx) { - _ctx = util.getContext(); - } - var gradient = _ctx.createLinearGradient(x0, y0, x1, y1); - for (var i = 0, l = colorList.length; i < l; i++) { - gradient.addColorStop(colorList[i][0], colorList[i][1]); - } - gradient.__nonRecursion = true; - return gradient; - } - function getStepColors(start, end, step) { - start = toRGBA(start); - end = toRGBA(end); - start = getData(start); - end = getData(end); - var colors = []; - var stepR = (end[0] - start[0]) / step; - var stepG = (end[1] - start[1]) / step; - var stepB = (end[2] - start[2]) / step; - var stepA = (end[3] - start[3]) / step; - for (var i = 0, r = start[0], g = start[1], b = start[2], a = start[3]; i < step; i++) { - colors[i] = toColor([ - adjust(Math.floor(r), [ - 0, - 255 - ]), - adjust(Math.floor(g), [ - 0, - 255 - ]), - adjust(Math.floor(b), [ - 0, - 255 - ]), - a.toFixed(4) - 0 - ], 'rgba'); - r += stepR; - g += stepG; - b += stepB; - a += stepA; - } - r = end[0]; - g = end[1]; - b = end[2]; - a = end[3]; - colors[i] = toColor([ - r, - g, - b, - a - ], 'rgba'); - return colors; - } - function getGradientColors(colors, step) { - var ret = []; - var len = colors.length; - if (step === undefined) { - step = 20; - } - if (len === 1) { - ret = getStepColors(colors[0], colors[0], step); - } else if (len > 1) { - for (var i = 0, n = len - 1; i < n; i++) { - var steps = getStepColors(colors[i], colors[i + 1], step); - if (i < n - 1) { - steps.pop(); - } - ret = ret.concat(steps); - } - } - return ret; - } - function toColor(data, format) { - format = format || 'rgb'; - if (data && (data.length === 3 || data.length === 4)) { - data = map(data, function (c) { - return c > 1 ? Math.ceil(c) : c; - }); - if (format.indexOf('hex') > -1) { - return '#' + ((1 << 24) + (data[0] << 16) + (data[1] << 8) + +data[2]).toString(16).slice(1); - } else if (format.indexOf('hs') > -1) { - var sx = map(data.slice(1, 3), function (c) { - return c + '%'; - }); - data[1] = sx[0]; - data[2] = sx[1]; - } - if (format.indexOf('a') > -1) { - if (data.length === 3) { - data.push(1); - } - data[3] = adjust(data[3], [ - 0, - 1 - ]); - return format + '(' + data.slice(0, 4).join(',') + ')'; - } - return format + '(' + data.slice(0, 3).join(',') + ')'; - } - } - function toArray(color) { - color = trim(color); - if (color.indexOf('rgba') < 0) { - color = toRGBA(color); - } - var data = []; - var i = 0; - color.replace(/[\d.]+/g, function (n) { - if (i < 3) { - n = n | 0; - } else { - n = +n; - } - data[i++] = n; - }); - return data; - } - function convert(color, format) { - if (!isCalculableColor(color)) { - return color; - } - var data = getData(color); - var alpha = data[3]; - if (typeof alpha === 'undefined') { - alpha = 1; - } - if (color.indexOf('hsb') > -1) { - data = _HSV_2_RGB(data); - } else if (color.indexOf('hsl') > -1) { - data = _HSL_2_RGB(data); - } - if (format.indexOf('hsb') > -1 || format.indexOf('hsv') > -1) { - data = _RGB_2_HSB(data); - } else if (format.indexOf('hsl') > -1) { - data = _RGB_2_HSL(data); - } - data[3] = alpha; - return toColor(data, format); - } - function toRGBA(color) { - return convert(color, 'rgba'); - } - function toRGB(color) { - return convert(color, 'rgb'); - } - function toHex(color) { - return convert(color, 'hex'); - } - function toHSVA(color) { - return convert(color, 'hsva'); - } - function toHSV(color) { - return convert(color, 'hsv'); - } - function toHSBA(color) { - return convert(color, 'hsba'); - } - function toHSB(color) { - return convert(color, 'hsb'); - } - function toHSLA(color) { - return convert(color, 'hsla'); - } - function toHSL(color) { - return convert(color, 'hsl'); - } - function toName(color) { - for (var key in _nameColors) { - if (toHex(_nameColors[key]) === toHex(color)) { - return key; - } - } - return null; - } - function trim(color) { - return String(color).replace(/\s+/g, ''); - } - function normalize(color) { - if (_nameColors[color]) { - color = _nameColors[color]; - } - color = trim(color); - color = color.replace(/hsv/i, 'hsb'); - if (/^#[\da-f]{3}$/i.test(color)) { - color = parseInt(color.slice(1), 16); - var r = (color & 3840) << 8; - var g = (color & 240) << 4; - var b = color & 15; - color = '#' + ((1 << 24) + (r << 4) + r + (g << 4) + g + (b << 4) + b).toString(16).slice(1); - } - return color; - } - function lift(color, level) { - if (!isCalculableColor(color)) { - return color; - } - var direct = level > 0 ? 1 : -1; - if (typeof level === 'undefined') { - level = 0; - } - level = Math.abs(level) > 1 ? 1 : Math.abs(level); - color = toRGB(color); - var data = getData(color); - for (var i = 0; i < 3; i++) { - if (direct === 1) { - data[i] = data[i] * (1 - level) | 0; - } else { - data[i] = (255 - data[i]) * level + data[i] | 0; - } - } - return 'rgb(' + data.join(',') + ')'; - } - function reverse(color) { - if (!isCalculableColor(color)) { - return color; - } - var data = getData(toRGBA(color)); - data = map(data, function (c) { - return 255 - c; - }); - return toColor(data, 'rgb'); - } - function mix(color1, color2, weight) { - if (!isCalculableColor(color1) || !isCalculableColor(color2)) { - return color1; - } - if (typeof weight === 'undefined') { - weight = 0.5; - } - weight = 1 - adjust(weight, [ - 0, - 1 - ]); - var w = weight * 2 - 1; - var data1 = getData(toRGBA(color1)); - var data2 = getData(toRGBA(color2)); - var d = data1[3] - data2[3]; - var weight1 = ((w * d === -1 ? w : (w + d) / (1 + w * d)) + 1) / 2; - var weight2 = 1 - weight1; - var data = []; - for (var i = 0; i < 3; i++) { - data[i] = data1[i] * weight1 + data2[i] * weight2; - } - var alpha = data1[3] * weight + data2[3] * (1 - weight); - alpha = Math.max(0, Math.min(1, alpha)); - if (data1[3] === 1 && data2[3] === 1) { - return toColor(data, 'rgb'); - } - data[3] = alpha; - return toColor(data, 'rgba'); - } - function random() { - return '#' + (Math.random().toString(16) + '0000').slice(2, 8); - } - function getData(color) { - color = normalize(color); - var r = color.match(colorRegExp); - if (r === null) { - throw new Error('The color format error'); - } - var d; - var a; - var data = []; - var rgb; - if (r[2]) { - d = r[2].replace('#', '').split(''); - rgb = [ - d[0] + d[1], - d[2] + d[3], - d[4] + d[5] - ]; - data = map(rgb, function (c) { - return adjust(parseInt(c, 16), [ - 0, - 255 - ]); - }); - } else if (r[4]) { - var rgba = r[4].split(','); - a = rgba[3]; - rgb = rgba.slice(0, 3); - data = map(rgb, function (c) { - c = Math.floor(c.indexOf('%') > 0 ? parseInt(c, 0) * 2.55 : c); - return adjust(c, [ - 0, - 255 - ]); - }); - if (typeof a !== 'undefined') { - data.push(adjust(parseFloat(a), [ - 0, - 1 - ])); - } - } else if (r[5] || r[6]) { - var hsxa = (r[5] || r[6]).split(','); - var h = parseInt(hsxa[0], 0) / 360; - var s = hsxa[1]; - var x = hsxa[2]; - a = hsxa[3]; - data = map([ - s, - x - ], function (c) { - return adjust(parseFloat(c) / 100, [ - 0, - 1 - ]); - }); - data.unshift(h); - if (typeof a !== 'undefined') { - data.push(adjust(parseFloat(a), [ - 0, - 1 - ])); - } - } - return data; - } - function alpha(color, a) { - if (!isCalculableColor(color)) { - return color; - } - if (a === null) { - a = 1; - } - var data = getData(toRGBA(color)); - data[3] = adjust(Number(a).toFixed(4), [ - 0, - 1 - ]); - return toColor(data, 'rgba'); - } - function map(array, fun) { - if (typeof fun !== 'function') { - throw new TypeError(); - } - var len = array ? array.length : 0; - for (var i = 0; i < len; i++) { - array[i] = fun(array[i]); - } - return array; - } - function adjust(value, region) { - if (value <= region[0]) { - value = region[0]; - } else if (value >= region[1]) { - value = region[1]; - } - return value; - } - function isCalculableColor(color) { - return color instanceof Array || typeof color === 'string'; - } - function _HSV_2_RGB(data) { - var H = data[0]; - var S = data[1]; - var V = data[2]; - var R; - var G; - var B; - if (S === 0) { - R = V * 255; - G = V * 255; - B = V * 255; - } else { - var h = H * 6; - if (h === 6) { - h = 0; - } - var i = h | 0; - var v1 = V * (1 - S); - var v2 = V * (1 - S * (h - i)); - var v3 = V * (1 - S * (1 - (h - i))); - var r = 0; - var g = 0; - var b = 0; - if (i === 0) { - r = V; - g = v3; - b = v1; - } else if (i === 1) { - r = v2; - g = V; - b = v1; - } else if (i === 2) { - r = v1; - g = V; - b = v3; - } else if (i === 3) { - r = v1; - g = v2; - b = V; - } else if (i === 4) { - r = v3; - g = v1; - b = V; - } else { - r = V; - g = v1; - b = v2; - } - R = r * 255; - G = g * 255; - B = b * 255; - } - return [ - R, - G, - B - ]; - } - function _HSL_2_RGB(data) { - var H = data[0]; - var S = data[1]; - var L = data[2]; - var R; - var G; - var B; - if (S === 0) { - R = L * 255; - G = L * 255; - B = L * 255; - } else { - var v2; - if (L < 0.5) { - v2 = L * (1 + S); - } else { - v2 = L + S - S * L; - } - var v1 = 2 * L - v2; - R = 255 * _HUE_2_RGB(v1, v2, H + 1 / 3); - G = 255 * _HUE_2_RGB(v1, v2, H); - B = 255 * _HUE_2_RGB(v1, v2, H - 1 / 3); - } - return [ - R, - G, - B - ]; - } - function _HUE_2_RGB(v1, v2, vH) { - if (vH < 0) { - vH += 1; - } - if (vH > 1) { - vH -= 1; - } - if (6 * vH < 1) { - return v1 + (v2 - v1) * 6 * vH; - } - if (2 * vH < 1) { - return v2; - } - if (3 * vH < 2) { - return v1 + (v2 - v1) * (2 / 3 - vH) * 6; - } - return v1; - } - function _RGB_2_HSB(data) { - var R = data[0] / 255; - var G = data[1] / 255; - var B = data[2] / 255; - var vMin = Math.min(R, G, B); - var vMax = Math.max(R, G, B); - var delta = vMax - vMin; - var V = vMax; - var H; - var S; - if (delta === 0) { - H = 0; - S = 0; - } else { - S = delta / vMax; - var deltaR = ((vMax - R) / 6 + delta / 2) / delta; - var deltaG = ((vMax - G) / 6 + delta / 2) / delta; - var deltaB = ((vMax - B) / 6 + delta / 2) / delta; - if (R === vMax) { - H = deltaB - deltaG; - } else if (G === vMax) { - H = 1 / 3 + deltaR - deltaB; - } else if (B === vMax) { - H = 2 / 3 + deltaG - deltaR; - } - if (H < 0) { - H += 1; - } - if (H > 1) { - H -= 1; - } - } - H = H * 360; - S = S * 100; - V = V * 100; - return [ - H, - S, - V - ]; - } - function _RGB_2_HSL(data) { - var R = data[0] / 255; - var G = data[1] / 255; - var B = data[2] / 255; - var vMin = Math.min(R, G, B); - var vMax = Math.max(R, G, B); - var delta = vMax - vMin; - var L = (vMax + vMin) / 2; - var H; - var S; - if (delta === 0) { - H = 0; - S = 0; - } else { - if (L < 0.5) { - S = delta / (vMax + vMin); - } else { - S = delta / (2 - vMax - vMin); - } - var deltaR = ((vMax - R) / 6 + delta / 2) / delta; - var deltaG = ((vMax - G) / 6 + delta / 2) / delta; - var deltaB = ((vMax - B) / 6 + delta / 2) / delta; - if (R === vMax) { - H = deltaB - deltaG; - } else if (G === vMax) { - H = 1 / 3 + deltaR - deltaB; - } else if (B === vMax) { - H = 2 / 3 + deltaG - deltaR; - } - if (H < 0) { - H += 1; - } - if (H > 1) { - H -= 1; - } - } - H = H * 360; - S = S * 100; - L = L * 100; - return [ - H, - S, - L - ]; - } - return { - customPalette: customPalette, - resetPalette: resetPalette, - getColor: getColor, - getHighlightColor: getHighlightColor, - customHighlight: customHighlight, - resetHighlight: resetHighlight, - getRadialGradient: getRadialGradient, - getLinearGradient: getLinearGradient, - getGradientColors: getGradientColors, - getStepColors: getStepColors, - reverse: reverse, - mix: mix, - lift: lift, - trim: trim, - random: random, - toRGB: toRGB, - toRGBA: toRGBA, - toHex: toHex, - toHSL: toHSL, - toHSLA: toHSLA, - toHSB: toHSB, - toHSBA: toHSBA, - toHSV: toHSV, - toHSVA: toHSVA, - toName: toName, - toColor: toColor, - toArray: toArray, - alpha: alpha, - getData: getData - }; -});define('echarts/component/timeline', [ - 'require', - './base', - 'zrender/shape/Rectangle', - '../util/shape/Icon', - '../util/shape/Chain', - '../config', - 'zrender/tool/util', - 'zrender/tool/area', - 'zrender/tool/event', - '../component' -], function (require) { - var Base = require('./base'); - var RectangleShape = require('zrender/shape/Rectangle'); - var IconShape = require('../util/shape/Icon'); - var ChainShape = require('../util/shape/Chain'); - var ecConfig = require('../config'); - ecConfig.timeline = { - zlevel: 0, - z: 4, - show: true, - type: 'time', - notMerge: false, - realtime: true, - x: 80, - x2: 80, - y2: 0, - height: 50, - backgroundColor: 'rgba(0,0,0,0)', - borderColor: '#ccc', - borderWidth: 0, - padding: 5, - controlPosition: 'left', - autoPlay: false, - loop: true, - playInterval: 2000, - lineStyle: { - width: 1, - color: '#666', - type: 'dashed' - }, - label: { - show: true, - interval: 'auto', - rotate: 0, - textStyle: { color: '#333' } - }, - checkpointStyle: { - symbol: 'auto', - symbolSize: 'auto', - color: 'auto', - borderColor: 'auto', - borderWidth: 'auto', - label: { - show: false, - textStyle: { color: 'auto' } - } - }, - controlStyle: { - itemSize: 15, - itemGap: 5, - normal: { color: '#333' }, - emphasis: { color: '#1e90ff' } - }, - symbol: 'emptyDiamond', - symbolSize: 4, - currentIndex: 0 - }; - var zrUtil = require('zrender/tool/util'); - var zrArea = require('zrender/tool/area'); - var zrEvent = require('zrender/tool/event'); - function Timeline(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._onclick = function (param) { - return self.__onclick(param); - }; - self._ondrift = function (dx, dy) { - return self.__ondrift(this, dx, dy); - }; - self._ondragend = function () { - return self.__ondragend(); - }; - self._setCurrentOption = function () { - var timelineOption = self.timelineOption; - self.currentIndex %= timelineOption.data.length; - var curOption = self.options[self.currentIndex] || {}; - self.myChart._setOption(curOption, timelineOption.notMerge, true); - self.messageCenter.dispatch(ecConfig.EVENT.TIMELINE_CHANGED, null, { - currentIndex: self.currentIndex, - data: timelineOption.data[self.currentIndex].name != null ? timelineOption.data[self.currentIndex].name : timelineOption.data[self.currentIndex] - }, self.myChart); - }; - self._onFrame = function () { - self._setCurrentOption(); - self._syncHandleShape(); - if (self.timelineOption.autoPlay) { - self.playTicket = setTimeout(function () { - self.currentIndex += 1; - if (!self.timelineOption.loop && self.currentIndex >= self.timelineOption.data.length) { - self.currentIndex = self.timelineOption.data.length - 1; - self.stop(); - return; - } - self._onFrame(); - }, self.timelineOption.playInterval); - } - }; - this.setTheme(false); - this.options = this.option.options; - this.currentIndex = this.timelineOption.currentIndex % this.timelineOption.data.length; - if (!this.timelineOption.notMerge && this.currentIndex !== 0) { - this.options[this.currentIndex] = zrUtil.merge(this.options[this.currentIndex], this.options[0]); - } - if (this.timelineOption.show) { - this._buildShape(); - this._syncHandleShape(); - } - this._setCurrentOption(); - if (this.timelineOption.autoPlay) { - var self = this; - this.playTicket = setTimeout(function () { - self.play(); - }, this.ecTheme.animationDuration != null ? this.ecTheme.animationDuration : ecConfig.animationDuration); - } - } - Timeline.prototype = { - type: ecConfig.COMPONENT_TYPE_TIMELINE, - _buildShape: function () { - this._location = this._getLocation(); - this._buildBackground(); - this._buildControl(); - this._chainPoint = this._getChainPoint(); - if (this.timelineOption.label.show) { - var interval = this._getInterval(); - for (var i = 0, len = this._chainPoint.length; i < len; i += interval) { - this._chainPoint[i].showLabel = true; - } - } - this._buildChain(); - this._buildHandle(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _getLocation: function () { - var timelineOption = this.timelineOption; - var padding = this.reformCssArray(this.timelineOption.padding); - var zrWidth = this.zr.getWidth(); - var x = this.parsePercent(timelineOption.x, zrWidth); - var x2 = this.parsePercent(timelineOption.x2, zrWidth); - var width; - if (timelineOption.width == null) { - width = zrWidth - x - x2; - x2 = zrWidth - x2; - } else { - width = this.parsePercent(timelineOption.width, zrWidth); - x2 = x + width; - } - var zrHeight = this.zr.getHeight(); - var height = this.parsePercent(timelineOption.height, zrHeight); - var y; - var y2; - if (timelineOption.y != null) { - y = this.parsePercent(timelineOption.y, zrHeight); - y2 = y + height; - } else { - y2 = zrHeight - this.parsePercent(timelineOption.y2, zrHeight); - y = y2 - height; - } - return { - x: x + padding[3], - y: y + padding[0], - x2: x2 - padding[1], - y2: y2 - padding[2], - width: width - padding[1] - padding[3], - height: height - padding[0] - padding[2] - }; - }, - _getReformedLabel: function (idx) { - var timelineOption = this.timelineOption; - var data = timelineOption.data[idx].name != null ? timelineOption.data[idx].name : timelineOption.data[idx]; - var formatter = timelineOption.data[idx].formatter || timelineOption.label.formatter; - if (formatter) { - if (typeof formatter === 'function') { - data = formatter.call(this.myChart, data); - } else if (typeof formatter === 'string') { - data = formatter.replace('{value}', data); - } - } - return data; - }, - _getInterval: function () { - var chainPoint = this._chainPoint; - var timelineOption = this.timelineOption; - var interval = timelineOption.label.interval; - if (interval === 'auto') { - var fontSize = timelineOption.label.textStyle.fontSize; - var data = timelineOption.data; - var dataLength = timelineOption.data.length; - if (dataLength > 3) { - var isEnough = false; - var labelSpace; - var labelSize; - interval = 0; - while (!isEnough && interval < dataLength) { - interval++; - isEnough = true; - for (var i = interval; i < dataLength; i += interval) { - labelSpace = chainPoint[i].x - chainPoint[i - interval].x; - if (timelineOption.label.rotate !== 0) { - labelSize = fontSize; - } else if (data[i].textStyle) { - labelSize = zrArea.getTextWidth(chainPoint[i].name, chainPoint[i].textFont); - } else { - var label = chainPoint[i].name + ''; - var wLen = (label.match(/\w/g) || '').length; - var oLen = label.length - wLen; - labelSize = wLen * fontSize * 2 / 3 + oLen * fontSize; - } - if (labelSpace < labelSize) { - isEnough = false; - break; - } - } - } - } else { - interval = 1; - } - } else { - interval = interval - 0 + 1; - } - return interval; - }, - _getChainPoint: function () { - var timelineOption = this.timelineOption; - var symbol = timelineOption.symbol.toLowerCase(); - var symbolSize = timelineOption.symbolSize; - var rotate = timelineOption.label.rotate; - var textStyle = timelineOption.label.textStyle; - var textFont = this.getFont(textStyle); - var dataTextStyle; - var data = timelineOption.data; - var x = this._location.x; - var y = this._location.y + this._location.height / 4 * 3; - var width = this._location.x2 - this._location.x; - var len = data.length; - function _getName(i) { - return data[i].name != null ? data[i].name : data[i] + ''; - } - var xList = []; - if (len > 1) { - var boundaryGap = width / len; - boundaryGap = boundaryGap > 50 ? 50 : boundaryGap < 20 ? 5 : boundaryGap; - width -= boundaryGap * 2; - if (timelineOption.type === 'number') { - for (var i = 0; i < len; i++) { - xList.push(x + boundaryGap + width / (len - 1) * i); - } - } else { - xList[0] = new Date(_getName(0).replace(/-/g, '/')); - xList[len - 1] = new Date(_getName(len - 1).replace(/-/g, '/')) - xList[0]; - for (var i = 1; i < len; i++) { - xList[i] = x + boundaryGap + width * (new Date(_getName(i).replace(/-/g, '/')) - xList[0]) / xList[len - 1]; - } - xList[0] = x + boundaryGap; - } - } else { - xList.push(x + width / 2); - } - var list = []; - var curSymbol; - var n; - var isEmpty; - var textAlign; - var rotation; - for (var i = 0; i < len; i++) { - x = xList[i]; - curSymbol = data[i].symbol && data[i].symbol.toLowerCase() || symbol; - if (curSymbol.match('empty')) { - curSymbol = curSymbol.replace('empty', ''); - isEmpty = true; - } else { - isEmpty = false; - } - if (curSymbol.match('star')) { - n = curSymbol.replace('star', '') - 0 || 5; - curSymbol = 'star'; - } - dataTextStyle = data[i].textStyle ? zrUtil.merge(data[i].textStyle || {}, textStyle) : textStyle; - textAlign = dataTextStyle.align || 'center'; - if (rotate) { - textAlign = rotate > 0 ? 'right' : 'left'; - rotation = [ - rotate * Math.PI / 180, - x, - y - 5 - ]; - } else { - rotation = false; - } - list.push({ - x: x, - n: n, - isEmpty: isEmpty, - symbol: curSymbol, - symbolSize: data[i].symbolSize || symbolSize, - color: data[i].color, - borderColor: data[i].borderColor, - borderWidth: data[i].borderWidth, - name: this._getReformedLabel(i), - textColor: dataTextStyle.color, - textAlign: textAlign, - textBaseline: dataTextStyle.baseline || 'middle', - textX: x, - textY: y - (rotate ? 5 : 0), - textFont: data[i].textStyle ? this.getFont(dataTextStyle) : textFont, - rotation: rotation, - showLabel: false - }); - } - return list; - }, - _buildBackground: function () { - var timelineOption = this.timelineOption; - var padding = this.reformCssArray(this.timelineOption.padding); - var width = this._location.width; - var height = this._location.height; - if (timelineOption.borderWidth !== 0 || timelineOption.backgroundColor.replace(/\s/g, '') != 'rgba(0,0,0,0)') { - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._location.x - padding[3], - y: this._location.y - padding[0], - width: width + padding[1] + padding[3], - height: height + padding[0] + padding[2], - brushType: timelineOption.borderWidth === 0 ? 'fill' : 'both', - color: timelineOption.backgroundColor, - strokeColor: timelineOption.borderColor, - lineWidth: timelineOption.borderWidth - } - })); - } - }, - _buildControl: function () { - var self = this; - var timelineOption = this.timelineOption; - var lineStyle = timelineOption.lineStyle; - var controlStyle = timelineOption.controlStyle; - if (timelineOption.controlPosition === 'none') { - return; - } - var iconSize = controlStyle.itemSize; - var iconGap = controlStyle.itemGap; - var x; - if (timelineOption.controlPosition === 'left') { - x = this._location.x; - this._location.x += (iconSize + iconGap) * 3; - } else { - x = this._location.x2 - ((iconSize + iconGap) * 3 - iconGap); - this._location.x2 -= (iconSize + iconGap) * 3; - } - var y = this._location.y; - var iconStyle = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - style: { - iconType: 'timelineControl', - symbol: 'last', - x: x, - y: y, - width: iconSize, - height: iconSize, - brushType: 'stroke', - color: controlStyle.normal.color, - strokeColor: controlStyle.normal.color, - lineWidth: lineStyle.width - }, - highlightStyle: { - color: controlStyle.emphasis.color, - strokeColor: controlStyle.emphasis.color, - lineWidth: lineStyle.width + 1 - }, - clickable: true - }; - this._ctrLastShape = new IconShape(iconStyle); - this._ctrLastShape.onclick = function () { - self.last(); - }; - this.shapeList.push(this._ctrLastShape); - x += iconSize + iconGap; - this._ctrPlayShape = new IconShape(zrUtil.clone(iconStyle)); - this._ctrPlayShape.style.brushType = 'fill'; - this._ctrPlayShape.style.symbol = 'play'; - this._ctrPlayShape.style.status = this.timelineOption.autoPlay ? 'playing' : 'stop'; - this._ctrPlayShape.style.x = x; - this._ctrPlayShape.onclick = function () { - if (self._ctrPlayShape.style.status === 'stop') { - self.play(); - } else { - self.stop(); - } - }; - this.shapeList.push(this._ctrPlayShape); - x += iconSize + iconGap; - this._ctrNextShape = new IconShape(zrUtil.clone(iconStyle)); - this._ctrNextShape.style.symbol = 'next'; - this._ctrNextShape.style.x = x; - this._ctrNextShape.onclick = function () { - self.next(); - }; - this.shapeList.push(this._ctrNextShape); - }, - _buildChain: function () { - var timelineOption = this.timelineOption; - var lineStyle = timelineOption.lineStyle; - this._timelineShae = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - x: this._location.x, - y: this.subPixelOptimize(this._location.y, lineStyle.width), - width: this._location.x2 - this._location.x, - height: this._location.height, - chainPoint: this._chainPoint, - brushType: 'both', - strokeColor: lineStyle.color, - lineWidth: lineStyle.width, - lineType: lineStyle.type - }, - hoverable: false, - clickable: true, - onclick: this._onclick - }; - this._timelineShae = new ChainShape(this._timelineShae); - this.shapeList.push(this._timelineShae); - }, - _buildHandle: function () { - var curPoint = this._chainPoint[this.currentIndex]; - var symbolSize = curPoint.symbolSize + 1; - symbolSize = symbolSize < 5 ? 5 : symbolSize; - this._handleShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 1, - hoverable: false, - draggable: true, - style: { - iconType: 'diamond', - n: curPoint.n, - x: curPoint.x - symbolSize, - y: this._location.y + this._location.height / 4 - symbolSize, - width: symbolSize * 2, - height: symbolSize * 2, - brushType: 'both', - textPosition: 'specific', - textX: curPoint.x, - textY: this._location.y - this._location.height / 4, - textAlign: 'center', - textBaseline: 'middle' - }, - highlightStyle: {}, - ondrift: this._ondrift, - ondragend: this._ondragend - }; - this._handleShape = new IconShape(this._handleShape); - this.shapeList.push(this._handleShape); - }, - _syncHandleShape: function () { - if (!this.timelineOption.show) { - return; - } - var timelineOption = this.timelineOption; - var cpStyle = timelineOption.checkpointStyle; - var curPoint = this._chainPoint[this.currentIndex]; - this._handleShape.style.text = cpStyle.label.show ? curPoint.name : ''; - this._handleShape.style.textFont = curPoint.textFont; - this._handleShape.style.n = curPoint.n; - if (cpStyle.symbol === 'auto') { - this._handleShape.style.iconType = curPoint.symbol != 'none' ? curPoint.symbol : 'diamond'; - } else { - this._handleShape.style.iconType = cpStyle.symbol; - if (cpStyle.symbol.match('star')) { - this._handleShape.style.n = cpStyle.symbol.replace('star', '') - 0 || 5; - this._handleShape.style.iconType = 'star'; - } - } - var symbolSize; - if (cpStyle.symbolSize === 'auto') { - symbolSize = curPoint.symbolSize + 2; - symbolSize = symbolSize < 5 ? 5 : symbolSize; - } else { - symbolSize = cpStyle.symbolSize - 0; - } - this._handleShape.style.color = cpStyle.color === 'auto' ? curPoint.color ? curPoint.color : timelineOption.controlStyle.emphasis.color : cpStyle.color; - this._handleShape.style.textColor = cpStyle.label.textStyle.color === 'auto' ? this._handleShape.style.color : cpStyle.label.textStyle.color; - this._handleShape.highlightStyle.strokeColor = this._handleShape.style.strokeColor = cpStyle.borderColor === 'auto' ? curPoint.borderColor ? curPoint.borderColor : '#fff' : cpStyle.borderColor; - this._handleShape.style.lineWidth = cpStyle.borderWidth === 'auto' ? curPoint.borderWidth ? curPoint.borderWidth : 0 : cpStyle.borderWidth - 0; - this._handleShape.highlightStyle.lineWidth = this._handleShape.style.lineWidth + 1; - this.zr.animate(this._handleShape.id, 'style').when(500, { - x: curPoint.x - symbolSize, - textX: curPoint.x, - y: this._location.y + this._location.height / 4 - symbolSize, - width: symbolSize * 2, - height: symbolSize * 2 - }).start('ExponentialOut'); - }, - _findChainIndex: function (x) { - var chainPoint = this._chainPoint; - var len = chainPoint.length; - if (x <= chainPoint[0].x) { - return 0; - } else if (x >= chainPoint[len - 1].x) { - return len - 1; - } - for (var i = 0; i < len - 1; i++) { - if (x >= chainPoint[i].x && x <= chainPoint[i + 1].x) { - return Math.abs(x - chainPoint[i].x) < Math.abs(x - chainPoint[i + 1].x) ? i : i + 1; - } - } - }, - __onclick: function (param) { - var x = zrEvent.getX(param.event); - var newIndex = this._findChainIndex(x); - if (newIndex === this.currentIndex) { - return true; - } - this.currentIndex = newIndex; - this.timelineOption.autoPlay && this.stop(); - clearTimeout(this.playTicket); - this._onFrame(); - }, - __ondrift: function (shape, dx) { - this.timelineOption.autoPlay && this.stop(); - var chainPoint = this._chainPoint; - var len = chainPoint.length; - var newIndex; - if (shape.style.x + dx <= chainPoint[0].x - chainPoint[0].symbolSize) { - shape.style.x = chainPoint[0].x - chainPoint[0].symbolSize; - newIndex = 0; - } else if (shape.style.x + dx >= chainPoint[len - 1].x - chainPoint[len - 1].symbolSize) { - shape.style.x = chainPoint[len - 1].x - chainPoint[len - 1].symbolSize; - newIndex = len - 1; - } else { - shape.style.x += dx; - newIndex = this._findChainIndex(shape.style.x); - } - var curPoint = chainPoint[newIndex]; - var symbolSize = curPoint.symbolSize + 2; - shape.style.iconType = curPoint.symbol; - shape.style.n = curPoint.n; - shape.style.textX = shape.style.x + symbolSize / 2; - shape.style.y = this._location.y + this._location.height / 4 - symbolSize; - shape.style.width = symbolSize * 2; - shape.style.height = symbolSize * 2; - shape.style.text = curPoint.name; - if (newIndex === this.currentIndex) { - return true; - } - this.currentIndex = newIndex; - if (this.timelineOption.realtime) { - clearTimeout(this.playTicket); - var self = this; - this.playTicket = setTimeout(function () { - self._setCurrentOption(); - }, 200); - } - return true; - }, - __ondragend: function () { - this.isDragend = true; - }, - ondragend: function (param, status) { - if (!this.isDragend || !param.target) { - return; - } - !this.timelineOption.realtime && this._setCurrentOption(); - status.dragOut = true; - status.dragIn = true; - status.needRefresh = false; - this.isDragend = false; - this._syncHandleShape(); - return; - }, - last: function () { - this.timelineOption.autoPlay && this.stop(); - this.currentIndex -= 1; - if (this.currentIndex < 0) { - this.currentIndex = this.timelineOption.data.length - 1; - } - this._onFrame(); - return this.currentIndex; - }, - next: function () { - this.timelineOption.autoPlay && this.stop(); - this.currentIndex += 1; - if (this.currentIndex >= this.timelineOption.data.length) { - this.currentIndex = 0; - } - this._onFrame(); - return this.currentIndex; - }, - play: function (targetIndex, autoPlay) { - if (this._ctrPlayShape && this._ctrPlayShape.style.status != 'playing') { - this._ctrPlayShape.style.status = 'playing'; - this.zr.modShape(this._ctrPlayShape.id); - this.zr.refreshNextFrame(); - } - this.timelineOption.autoPlay = autoPlay != null ? autoPlay : true; - if (!this.timelineOption.autoPlay) { - clearTimeout(this.playTicket); - } - this.currentIndex = targetIndex != null ? targetIndex : this.currentIndex + 1; - if (this.currentIndex >= this.timelineOption.data.length) { - this.currentIndex = 0; - } - this._onFrame(); - return this.currentIndex; - }, - stop: function () { - if (this._ctrPlayShape && this._ctrPlayShape.style.status != 'stop') { - this._ctrPlayShape.style.status = 'stop'; - this.zr.modShape(this._ctrPlayShape.id); - this.zr.refreshNextFrame(); - } - this.timelineOption.autoPlay = false; - clearTimeout(this.playTicket); - return this.currentIndex; - }, - resize: function () { - if (this.timelineOption.show) { - this.clear(); - this._buildShape(); - this._syncHandleShape(); - } - }, - setTheme: function (needRefresh) { - this.timelineOption = this.reformOption(zrUtil.clone(this.option.timeline)); - this.timelineOption.label.textStyle = this.getTextStyle(this.timelineOption.label.textStyle); - this.timelineOption.checkpointStyle.label.textStyle = this.getTextStyle(this.timelineOption.checkpointStyle.label.textStyle); - if (!this.myChart.canvasSupported) { - this.timelineOption.realtime = false; - } - if (this.timelineOption.show && needRefresh) { - this.clear(); - this._buildShape(); - this._syncHandleShape(); - } - }, - onbeforDispose: function () { - clearTimeout(this.playTicket); - } - }; - function timelineControl(ctx, style) { - var lineWidth = 2; - var x = style.x + lineWidth; - var y = style.y + lineWidth + 2; - var width = style.width - lineWidth; - var height = style.height - lineWidth; - var symbol = style.symbol; - if (symbol === 'last') { - ctx.moveTo(x + width - 2, y + height / 3); - ctx.lineTo(x + width - 2, y); - ctx.lineTo(x + 2, y + height / 2); - ctx.lineTo(x + width - 2, y + height); - ctx.lineTo(x + width - 2, y + height / 3 * 2); - ctx.moveTo(x, y); - ctx.lineTo(x, y); - } else if (symbol === 'next') { - ctx.moveTo(x + 2, y + height / 3); - ctx.lineTo(x + 2, y); - ctx.lineTo(x + width - 2, y + height / 2); - ctx.lineTo(x + 2, y + height); - ctx.lineTo(x + 2, y + height / 3 * 2); - ctx.moveTo(x, y); - ctx.lineTo(x, y); - } else if (symbol === 'play') { - if (style.status === 'stop') { - ctx.moveTo(x + 2, y); - ctx.lineTo(x + width - 2, y + height / 2); - ctx.lineTo(x + 2, y + height); - ctx.lineTo(x + 2, y); - } else { - var delta = style.brushType === 'both' ? 2 : 3; - ctx.rect(x + 2, y, delta, height); - ctx.rect(x + width - delta - 2, y, delta, height); - } - } else if (symbol.match('image')) { - var imageLocation = ''; - imageLocation = symbol.replace(new RegExp('^image:\\/\\/'), ''); - symbol = IconShape.prototype.iconLibrary.image; - symbol(ctx, { - x: x, - y: y, - width: width, - height: height, - image: imageLocation - }); - } - } - IconShape.prototype.iconLibrary['timelineControl'] = timelineControl; - zrUtil.inherits(Timeline, Base); - require('../component').define('timeline', Timeline); - return Timeline; -});define('zrender/shape/Image', [ - 'require', - './Base', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var ZImage = function (options) { - Base.call(this, options); - }; - ZImage.prototype = { - type: 'image', - brush: function (ctx, isHighlight, refreshNextFrame) { - var style = this.style || {}; - if (isHighlight) { - style = this.getHighlightStyle(style, this.highlightStyle || {}); - } - var image = style.image; - var self = this; - if (!this._imageCache) { - this._imageCache = {}; - } - if (typeof image === 'string') { - var src = image; - if (this._imageCache[src]) { - image = this._imageCache[src]; - } else { - image = new Image(); - image.onload = function () { - image.onload = null; - self.modSelf(); - refreshNextFrame(); - }; - image.src = src; - this._imageCache[src] = image; - } - } - if (image) { - if (image.nodeName.toUpperCase() == 'IMG') { - if (window.ActiveXObject) { - if (image.readyState != 'complete') { - return; - } - } else { - if (!image.complete) { - return; - } - } - } - var width = style.width || image.width; - var height = style.height || image.height; - var x = style.x; - var y = style.y; - if (!image.width || !image.height) { - return; - } - ctx.save(); - this.doClip(ctx); - this.setContext(ctx, style); - this.setTransform(ctx); - if (style.sWidth && style.sHeight) { - var sx = style.sx || 0; - var sy = style.sy || 0; - ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height); - } else if (style.sx && style.sy) { - var sx = style.sx; - var sy = style.sy; - var sWidth = width - sx; - var sHeight = height - sy; - ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height); - } else { - ctx.drawImage(image, x, y, width, height); - } - if (!style.width) { - style.width = width; - } - if (!style.height) { - style.height = height; - } - if (!this.style.width) { - this.style.width = width; - } - if (!this.style.height) { - this.style.height = height; - } - this.drawText(ctx, style, this.style); - ctx.restore(); - } - }, - getRect: function (style) { - return { - x: style.x, - y: style.y, - width: style.width, - height: style.height - }; - }, - clearCache: function () { - this._imageCache = {}; - } - }; - require('../tool/util').inherits(ZImage, Base); - return ZImage; -});define('zrender/loadingEffect/Bar', [ - 'require', - './Base', - '../tool/util', - '../tool/color', - '../shape/Rectangle' -], function (require) { - var Base = require('./Base'); - var util = require('../tool/util'); - var zrColor = require('../tool/color'); - var RectangleShape = require('../shape/Rectangle'); - function Bar(options) { - Base.call(this, options); - } - util.inherits(Bar, Base); - Bar.prototype._start = function (addShapeHandle, refreshHandle) { - var options = util.merge(this.options, { - textStyle: { color: '#888' }, - backgroundColor: 'rgba(250, 250, 250, 0.8)', - effectOption: { - x: 0, - y: this.canvasHeight / 2 - 30, - width: this.canvasWidth, - height: 5, - brushType: 'fill', - timeInterval: 100 - } - }); - var textShape = this.createTextShape(options.textStyle); - var background = this.createBackgroundShape(options.backgroundColor); - var effectOption = options.effectOption; - var barShape = new RectangleShape({ highlightStyle: util.clone(effectOption) }); - barShape.highlightStyle.color = effectOption.color || zrColor.getLinearGradient(effectOption.x, effectOption.y, effectOption.x + effectOption.width, effectOption.y + effectOption.height, [ - [ - 0, - '#ff6400' - ], - [ - 0.5, - '#ffe100' - ], - [ - 1, - '#b1ff00' - ] - ]); - if (options.progress != null) { - addShapeHandle(background); - barShape.highlightStyle.width = this.adjust(options.progress, [ - 0, - 1 - ]) * options.effectOption.width; - addShapeHandle(barShape); - addShapeHandle(textShape); - refreshHandle(); - return; - } else { - barShape.highlightStyle.width = 0; - return setInterval(function () { - addShapeHandle(background); - if (barShape.highlightStyle.width < effectOption.width) { - barShape.highlightStyle.width += 8; - } else { - barShape.highlightStyle.width = 0; - } - addShapeHandle(barShape); - addShapeHandle(textShape); - refreshHandle(); - }, effectOption.timeInterval); - } - }; - return Bar; -});define('zrender/loadingEffect/Bubble', [ - 'require', - './Base', - '../tool/util', - '../tool/color', - '../shape/Circle' -], function (require) { - var Base = require('./Base'); - var util = require('../tool/util'); - var zrColor = require('../tool/color'); - var CircleShape = require('../shape/Circle'); - function Bubble(options) { - Base.call(this, options); - } - util.inherits(Bubble, Base); - Bubble.prototype._start = function (addShapeHandle, refreshHandle) { - var options = util.merge(this.options, { - textStyle: { color: '#888' }, - backgroundColor: 'rgba(250, 250, 250, 0.8)', - effect: { - n: 50, - lineWidth: 2, - brushType: 'stroke', - color: 'random', - timeInterval: 100 - } - }); - var textShape = this.createTextShape(options.textStyle); - var background = this.createBackgroundShape(options.backgroundColor); - var effectOption = options.effect; - var n = effectOption.n; - var brushType = effectOption.brushType; - var lineWidth = effectOption.lineWidth; - var shapeList = []; - var canvasWidth = this.canvasWidth; - var canvasHeight = this.canvasHeight; - for (var i = 0; i < n; i++) { - var color = effectOption.color == 'random' ? zrColor.alpha(zrColor.random(), 0.3) : effectOption.color; - shapeList[i] = new CircleShape({ - highlightStyle: { - x: Math.ceil(Math.random() * canvasWidth), - y: Math.ceil(Math.random() * canvasHeight), - r: Math.ceil(Math.random() * 40), - brushType: brushType, - color: color, - strokeColor: color, - lineWidth: lineWidth - }, - animationY: Math.ceil(Math.random() * 20) - }); - } - return setInterval(function () { - addShapeHandle(background); - for (var i = 0; i < n; i++) { - var style = shapeList[i].highlightStyle; - if (style.y - shapeList[i].animationY + style.r <= 0) { - shapeList[i].highlightStyle.y = canvasHeight + style.r; - shapeList[i].highlightStyle.x = Math.ceil(Math.random() * canvasWidth); - } - shapeList[i].highlightStyle.y -= shapeList[i].animationY; - addShapeHandle(shapeList[i]); - } - addShapeHandle(textShape); - refreshHandle(); - }, effectOption.timeInterval); - }; - return Bubble; -});define('zrender/loadingEffect/DynamicLine', [ - 'require', - './Base', - '../tool/util', - '../tool/color', - '../shape/Line' -], function (require) { - var Base = require('./Base'); - var util = require('../tool/util'); - var zrColor = require('../tool/color'); - var LineShape = require('../shape/Line'); - function DynamicLine(options) { - Base.call(this, options); - } - util.inherits(DynamicLine, Base); - DynamicLine.prototype._start = function (addShapeHandle, refreshHandle) { - var options = util.merge(this.options, { - textStyle: { color: '#fff' }, - backgroundColor: 'rgba(0, 0, 0, 0.8)', - effectOption: { - n: 30, - lineWidth: 1, - color: 'random', - timeInterval: 100 - } - }); - var textShape = this.createTextShape(options.textStyle); - var background = this.createBackgroundShape(options.backgroundColor); - var effectOption = options.effectOption; - var n = effectOption.n; - var lineWidth = effectOption.lineWidth; - var shapeList = []; - var canvasWidth = this.canvasWidth; - var canvasHeight = this.canvasHeight; - for (var i = 0; i < n; i++) { - var xStart = -Math.ceil(Math.random() * 1000); - var len = Math.ceil(Math.random() * 400); - var pos = Math.ceil(Math.random() * canvasHeight); - var color = effectOption.color == 'random' ? zrColor.random() : effectOption.color; - shapeList[i] = new LineShape({ - highlightStyle: { - xStart: xStart, - yStart: pos, - xEnd: xStart + len, - yEnd: pos, - strokeColor: color, - lineWidth: lineWidth - }, - animationX: Math.ceil(Math.random() * 100), - len: len - }); - } - return setInterval(function () { - addShapeHandle(background); - for (var i = 0; i < n; i++) { - var style = shapeList[i].highlightStyle; - if (style.xStart >= canvasWidth) { - shapeList[i].len = Math.ceil(Math.random() * 400); - style.xStart = -400; - style.xEnd = -400 + shapeList[i].len; - style.yStart = Math.ceil(Math.random() * canvasHeight); - style.yEnd = style.yStart; - } - style.xStart += shapeList[i].animationX; - style.xEnd += shapeList[i].animationX; - addShapeHandle(shapeList[i]); - } - addShapeHandle(textShape); - refreshHandle(); - }, effectOption.timeInterval); - }; - return DynamicLine; -});define('zrender/loadingEffect/Ring', [ - 'require', - './Base', - '../tool/util', - '../tool/color', - '../shape/Ring', - '../shape/Sector' -], function (require) { - var Base = require('./Base'); - var util = require('../tool/util'); - var zrColor = require('../tool/color'); - var RingShape = require('../shape/Ring'); - var SectorShape = require('../shape/Sector'); - function Ring(options) { - Base.call(this, options); - } - util.inherits(Ring, Base); - Ring.prototype._start = function (addShapeHandle, refreshHandle) { - var options = util.merge(this.options, { - textStyle: { color: '#07a' }, - backgroundColor: 'rgba(250, 250, 250, 0.8)', - effect: { - x: this.canvasWidth / 2, - y: this.canvasHeight / 2, - r0: 60, - r: 100, - color: '#bbdcff', - brushType: 'fill', - textPosition: 'inside', - textFont: 'normal 30px verdana', - textColor: 'rgba(30, 144, 255, 0.6)', - timeInterval: 100 - } - }); - var effectOption = options.effect; - var textStyle = options.textStyle; - if (textStyle.x == null) { - textStyle.x = effectOption.x; - } - if (textStyle.y == null) { - textStyle.y = effectOption.y + (effectOption.r0 + effectOption.r) / 2 - 5; - } - var textShape = this.createTextShape(options.textStyle); - var background = this.createBackgroundShape(options.backgroundColor); - var x = effectOption.x; - var y = effectOption.y; - var r0 = effectOption.r0 + 6; - var r = effectOption.r - 6; - var color = effectOption.color; - var darkColor = zrColor.lift(color, 0.1); - var shapeRing = new RingShape({ highlightStyle: util.clone(effectOption) }); - var shapeList = []; - var clolrList = zrColor.getGradientColors([ - '#ff6400', - '#ffe100', - '#97ff00' - ], 25); - var preAngle = 15; - var endAngle = 240; - for (var i = 0; i < 16; i++) { - shapeList.push(new SectorShape({ - highlightStyle: { - x: x, - y: y, - r0: r0, - r: r, - startAngle: endAngle - preAngle, - endAngle: endAngle, - brushType: 'fill', - color: darkColor - }, - _color: zrColor.getLinearGradient(x + r0 * Math.cos(endAngle, true), y - r0 * Math.sin(endAngle, true), x + r0 * Math.cos(endAngle - preAngle, true), y - r0 * Math.sin(endAngle - preAngle, true), [ - [ - 0, - clolrList[i * 2] - ], - [ - 1, - clolrList[i * 2 + 1] - ] - ]) - })); - endAngle -= preAngle; - } - endAngle = 360; - for (var i = 0; i < 4; i++) { - shapeList.push(new SectorShape({ - highlightStyle: { - x: x, - y: y, - r0: r0, - r: r, - startAngle: endAngle - preAngle, - endAngle: endAngle, - brushType: 'fill', - color: darkColor - }, - _color: zrColor.getLinearGradient(x + r0 * Math.cos(endAngle, true), y - r0 * Math.sin(endAngle, true), x + r0 * Math.cos(endAngle - preAngle, true), y - r0 * Math.sin(endAngle - preAngle, true), [ - [ - 0, - clolrList[i * 2 + 32] - ], - [ - 1, - clolrList[i * 2 + 33] - ] - ]) - })); - endAngle -= preAngle; - } - var n = 0; - if (options.progress != null) { - addShapeHandle(background); - n = this.adjust(options.progress, [ - 0, - 1 - ]).toFixed(2) * 100 / 5; - shapeRing.highlightStyle.text = n * 5 + '%'; - addShapeHandle(shapeRing); - for (var i = 0; i < 20; i++) { - shapeList[i].highlightStyle.color = i < n ? shapeList[i]._color : darkColor; - addShapeHandle(shapeList[i]); - } - addShapeHandle(textShape); - refreshHandle(); - return; - } - return setInterval(function () { - addShapeHandle(background); - n += n >= 20 ? -20 : 1; - addShapeHandle(shapeRing); - for (var i = 0; i < 20; i++) { - shapeList[i].highlightStyle.color = i < n ? shapeList[i]._color : darkColor; - addShapeHandle(shapeList[i]); - } - addShapeHandle(textShape); - refreshHandle(); - }, effectOption.timeInterval); - }; - return Ring; -});define('zrender/loadingEffect/Spin', [ - 'require', - './Base', - '../tool/util', - '../tool/color', - '../tool/area', - '../shape/Sector' -], function (require) { - var Base = require('./Base'); - var util = require('../tool/util'); - var zrColor = require('../tool/color'); - var zrArea = require('../tool/area'); - var SectorShape = require('../shape/Sector'); - function Spin(options) { - Base.call(this, options); - } - util.inherits(Spin, Base); - Spin.prototype._start = function (addShapeHandle, refreshHandle) { - var options = util.merge(this.options, { - textStyle: { - color: '#fff', - textAlign: 'start' - }, - backgroundColor: 'rgba(0, 0, 0, 0.8)' - }); - var textShape = this.createTextShape(options.textStyle); - var textGap = 10; - var textWidth = zrArea.getTextWidth(textShape.highlightStyle.text, textShape.highlightStyle.textFont); - var textHeight = zrArea.getTextHeight(textShape.highlightStyle.text, textShape.highlightStyle.textFont); - var effectOption = util.merge(this.options.effect || {}, { - r0: 9, - r: 15, - n: 18, - color: '#fff', - timeInterval: 100 - }); - var location = this.getLocation(this.options.textStyle, textWidth + textGap + effectOption.r * 2, Math.max(effectOption.r * 2, textHeight)); - effectOption.x = location.x + effectOption.r; - effectOption.y = textShape.highlightStyle.y = location.y + location.height / 2; - textShape.highlightStyle.x = effectOption.x + effectOption.r + textGap; - var background = this.createBackgroundShape(options.backgroundColor); - var n = effectOption.n; - var x = effectOption.x; - var y = effectOption.y; - var r0 = effectOption.r0; - var r = effectOption.r; - var color = effectOption.color; - var shapeList = []; - var preAngle = Math.round(180 / n); - for (var i = 0; i < n; i++) { - shapeList[i] = new SectorShape({ - highlightStyle: { - x: x, - y: y, - r0: r0, - r: r, - startAngle: preAngle * i * 2, - endAngle: preAngle * i * 2 + preAngle, - color: zrColor.alpha(color, (i + 1) / n), - brushType: 'fill' - } - }); - } - var pos = [ - 0, - x, - y - ]; - return setInterval(function () { - addShapeHandle(background); - pos[0] -= 0.3; - for (var i = 0; i < n; i++) { - shapeList[i].rotation = pos; - addShapeHandle(shapeList[i]); - } - addShapeHandle(textShape); - refreshHandle(); - }, effectOption.timeInterval); - }; - return Spin; -});define('zrender/loadingEffect/Whirling', [ - 'require', - './Base', - '../tool/util', - '../tool/area', - '../shape/Ring', - '../shape/Droplet', - '../shape/Circle' -], function (require) { - var Base = require('./Base'); - var util = require('../tool/util'); - var zrArea = require('../tool/area'); - var RingShape = require('../shape/Ring'); - var DropletShape = require('../shape/Droplet'); - var CircleShape = require('../shape/Circle'); - function Whirling(options) { - Base.call(this, options); - } - util.inherits(Whirling, Base); - Whirling.prototype._start = function (addShapeHandle, refreshHandle) { - var options = util.merge(this.options, { - textStyle: { - color: '#888', - textAlign: 'start' - }, - backgroundColor: 'rgba(250, 250, 250, 0.8)' - }); - var textShape = this.createTextShape(options.textStyle); - var textGap = 10; - var textWidth = zrArea.getTextWidth(textShape.highlightStyle.text, textShape.highlightStyle.textFont); - var textHeight = zrArea.getTextHeight(textShape.highlightStyle.text, textShape.highlightStyle.textFont); - var effectOption = util.merge(this.options.effect || {}, { - r: 18, - colorIn: '#fff', - colorOut: '#555', - colorWhirl: '#6cf', - timeInterval: 50 - }); - var location = this.getLocation(this.options.textStyle, textWidth + textGap + effectOption.r * 2, Math.max(effectOption.r * 2, textHeight)); - effectOption.x = location.x + effectOption.r; - effectOption.y = textShape.highlightStyle.y = location.y + location.height / 2; - textShape.highlightStyle.x = effectOption.x + effectOption.r + textGap; - var background = this.createBackgroundShape(options.backgroundColor); - var droplet = new DropletShape({ - highlightStyle: { - a: Math.round(effectOption.r / 2), - b: Math.round(effectOption.r - effectOption.r / 6), - brushType: 'fill', - color: effectOption.colorWhirl - } - }); - var circleIn = new CircleShape({ - highlightStyle: { - r: Math.round(effectOption.r / 6), - brushType: 'fill', - color: effectOption.colorIn - } - }); - var circleOut = new RingShape({ - highlightStyle: { - r0: Math.round(effectOption.r - effectOption.r / 3), - r: effectOption.r, - brushType: 'fill', - color: effectOption.colorOut - } - }); - var pos = [ - 0, - effectOption.x, - effectOption.y - ]; - droplet.highlightStyle.x = circleIn.highlightStyle.x = circleOut.highlightStyle.x = pos[1]; - droplet.highlightStyle.y = circleIn.highlightStyle.y = circleOut.highlightStyle.y = pos[2]; - return setInterval(function () { - addShapeHandle(background); - addShapeHandle(circleOut); - pos[0] -= 0.3; - droplet.rotation = pos; - addShapeHandle(droplet); - addShapeHandle(circleIn); - addShapeHandle(textShape); - refreshHandle(); - }, effectOption.timeInterval); - }; - return Whirling; -});define('echarts/theme/macarons', [], function () { - var theme = { - color: [ - '#2ec7c9', - '#b6a2de', - '#5ab1ef', - '#ffb980', - '#d87a80', - '#8d98b3', - '#e5cf0d', - '#97b552', - '#95706d', - '#dc69aa', - '#07a2a4', - '#9a7fd1', - '#588dd5', - '#f5994e', - '#c05050', - '#59678c', - '#c9ab00', - '#7eb00a', - '#6f5553', - '#c14089' - ], - title: { - textStyle: { - fontWeight: 'normal', - color: '#008acd' - } - }, - dataRange: { - itemWidth: 15, - color: [ - '#5ab1ef', - '#e0ffff' - ] - }, - toolbox: { - color: [ - '#1e90ff', - '#1e90ff', - '#1e90ff', - '#1e90ff' - ], - effectiveColor: '#ff4500' - }, - tooltip: { - backgroundColor: 'rgba(50,50,50,0.5)', - axisPointer: { - type: 'line', - lineStyle: { color: '#008acd' }, - crossStyle: { color: '#008acd' }, - shadowStyle: { color: 'rgba(200,200,200,0.2)' } - } - }, - dataZoom: { - dataBackgroundColor: '#efefff', - fillerColor: 'rgba(182,162,222,0.2)', - handleColor: '#008acd' - }, - grid: { borderColor: '#eee' }, - categoryAxis: { - axisLine: { lineStyle: { color: '#008acd' } }, - splitLine: { lineStyle: { color: ['#eee'] } } - }, - valueAxis: { - axisLine: { lineStyle: { color: '#008acd' } }, - splitArea: { - show: true, - areaStyle: { - color: [ - 'rgba(250,250,250,0.1)', - 'rgba(200,200,200,0.1)' - ] - } - }, - splitLine: { lineStyle: { color: ['#eee'] } } - }, - polar: { - axisLine: { lineStyle: { color: '#ddd' } }, - splitArea: { - show: true, - areaStyle: { - color: [ - 'rgba(250,250,250,0.2)', - 'rgba(200,200,200,0.2)' - ] - } - }, - splitLine: { lineStyle: { color: '#ddd' } } - }, - timeline: { - lineStyle: { color: '#008acd' }, - controlStyle: { - normal: { color: '#008acd' }, - emphasis: { color: '#008acd' } - }, - symbol: 'emptyCircle', - symbolSize: 3 - }, - bar: { - itemStyle: { - normal: { barBorderRadius: 5 }, - emphasis: { barBorderRadius: 5 } - } - }, - line: { - smooth: true, - symbol: 'emptyCircle', - symbolSize: 3 - }, - k: { - itemStyle: { - normal: { - color: '#d87a80', - color0: '#2ec7c9', - lineStyle: { - color: '#d87a80', - color0: '#2ec7c9' - } - } - } - }, - scatter: { - symbol: 'circle', - symbolSize: 4 - }, - radar: { - symbol: 'emptyCircle', - symbolSize: 3 - }, - map: { - itemStyle: { - normal: { - areaStyle: { color: '#ddd' }, - label: { textStyle: { color: '#d87a80' } } - }, - emphasis: { areaStyle: { color: '#fe994e' } } - } - }, - force: { itemStyle: { normal: { linkStyle: { color: '#1e90ff' } } } }, - chord: { - itemStyle: { - normal: { - borderWidth: 1, - borderColor: 'rgba(128, 128, 128, 0.5)', - chordStyle: { lineStyle: { color: 'rgba(128, 128, 128, 0.5)' } } - }, - emphasis: { - borderWidth: 1, - borderColor: 'rgba(128, 128, 128, 0.5)', - chordStyle: { lineStyle: { color: 'rgba(128, 128, 128, 0.5)' } } - } - } - }, - gauge: { - axisLine: { - lineStyle: { - color: [ - [ - 0.2, - '#2ec7c9' - ], - [ - 0.8, - '#5ab1ef' - ], - [ - 1, - '#d87a80' - ] - ], - width: 10 - } - }, - axisTick: { - splitNumber: 10, - length: 15, - lineStyle: { color: 'auto' } - }, - splitLine: { - length: 22, - lineStyle: { color: 'auto' } - }, - pointer: { width: 5 } - }, - textStyle: { fontFamily: '微软雅黑, Arial, Verdana, sans-serif' } - }; - return theme; -});define('echarts/theme/infographic', [], function () { - var theme = { - color: [ - '#C1232B', - '#B5C334', - '#FCCE10', - '#E87C25', - '#27727B', - '#FE8463', - '#9BCA63', - '#FAD860', - '#F3A43B', - '#60C0DD', - '#D7504B', - '#C6E579', - '#F4E001', - '#F0805A', - '#26C0C0' - ], - title: { - textStyle: { - fontWeight: 'normal', - color: '#27727B' - } - }, - dataRange: { - x: 'right', - y: 'center', - itemWidth: 5, - itemHeight: 25, - color: [ - '#C1232B', - '#FCCE10' - ] - }, - toolbox: { - color: [ - '#C1232B', - '#B5C334', - '#FCCE10', - '#E87C25', - '#27727B', - '#FE8463', - '#9BCA63', - '#FAD860', - '#F3A43B', - '#60C0DD' - ], - effectiveColor: '#ff4500' - }, - tooltip: { - backgroundColor: 'rgba(50,50,50,0.5)', - axisPointer: { - type: 'line', - lineStyle: { - color: '#27727B', - type: 'dashed' - }, - crossStyle: { color: '#27727B' }, - shadowStyle: { color: 'rgba(200,200,200,0.3)' } - } - }, - dataZoom: { - dataBackgroundColor: 'rgba(181,195,52,0.3)', - fillerColor: 'rgba(181,195,52,0.2)', - handleColor: '#27727B' - }, - grid: { borderWidth: 0 }, - categoryAxis: { - axisLine: { lineStyle: { color: '#27727B' } }, - splitLine: { show: false } - }, - valueAxis: { - axisLine: { show: false }, - splitArea: { show: false }, - splitLine: { - lineStyle: { - color: ['#ccc'], - type: 'dashed' - } - } - }, - polar: { - axisLine: { lineStyle: { color: '#ddd' } }, - splitArea: { - show: true, - areaStyle: { - color: [ - 'rgba(250,250,250,0.2)', - 'rgba(200,200,200,0.2)' - ] - } - }, - splitLine: { lineStyle: { color: '#ddd' } } - }, - timeline: { - lineStyle: { color: '#27727B' }, - controlStyle: { - normal: { color: '#27727B' }, - emphasis: { color: '#27727B' } - }, - symbol: 'emptyCircle', - symbolSize: 3 - }, - line: { - itemStyle: { - normal: { - borderWidth: 2, - borderColor: '#fff', - lineStyle: { width: 3 } - }, - emphasis: { borderWidth: 0 } - }, - symbol: 'circle', - symbolSize: 3.5 - }, - k: { - itemStyle: { - normal: { - color: '#C1232B', - color0: '#B5C334', - lineStyle: { - width: 1, - color: '#C1232B', - color0: '#B5C334' - } - } - } - }, - scatter: { - itemStyle: { - normal: { - borderWidth: 1, - borderColor: 'rgba(200,200,200,0.5)' - }, - emphasis: { borderWidth: 0 } - }, - symbol: 'star4', - symbolSize: 4 - }, - radar: { - symbol: 'emptyCircle', - symbolSize: 3 - }, - map: { - itemStyle: { - normal: { - areaStyle: { color: '#ddd' }, - label: { textStyle: { color: '#C1232B' } } - }, - emphasis: { - areaStyle: { color: '#fe994e' }, - label: { textStyle: { color: 'rgb(100,0,0)' } } - } - } - }, - force: { itemStyle: { normal: { linkStyle: { color: '#27727B' } } } }, - chord: { - itemStyle: { - normal: { - borderWidth: 1, - borderColor: 'rgba(128, 128, 128, 0.5)', - chordStyle: { lineStyle: { color: 'rgba(128, 128, 128, 0.5)' } } - }, - emphasis: { - borderWidth: 1, - borderColor: 'rgba(128, 128, 128, 0.5)', - chordStyle: { lineStyle: { color: 'rgba(128, 128, 128, 0.5)' } } - } - } - }, - gauge: { - center: [ - '50%', - '80%' - ], - radius: '100%', - startAngle: 180, - endAngle: 0, - axisLine: { - show: true, - lineStyle: { - color: [ - [ - 0.2, - '#B5C334' - ], - [ - 0.8, - '#27727B' - ], - [ - 1, - '#C1232B' - ] - ], - width: '40%' - } - }, - axisTick: { - splitNumber: 2, - length: 5, - lineStyle: { color: '#fff' } - }, - axisLabel: { - textStyle: { - color: '#fff', - fontWeight: 'bolder' - } - }, - splitLine: { - length: '5%', - lineStyle: { color: '#fff' } - }, - pointer: { - width: '40%', - length: '80%', - color: '#fff' - }, - title: { - offsetCenter: [ - 0, - -20 - ], - textStyle: { - color: 'auto', - fontSize: 20 - } - }, - detail: { - offsetCenter: [ - 0, - 0 - ], - textStyle: { - color: 'auto', - fontSize: 40 - } - } - }, - textStyle: { fontFamily: '微软雅黑, Arial, Verdana, sans-serif' } - }; - return theme; -});define('zrender/dep/excanvas', ['require'], function (require) { - if (!document.createElement('canvas').getContext) { - (function () { - var m = Math; - var mr = m.round; - var ms = m.sin; - var mc = m.cos; - var abs = m.abs; - var sqrt = m.sqrt; - var Z = 10; - var Z2 = Z / 2; - var IE_VERSION = +navigator.userAgent.match(/MSIE ([\d.]+)?/)[1]; - function getContext() { - return this.context_ || (this.context_ = new CanvasRenderingContext2D_(this)); - } - var slice = Array.prototype.slice; - function bind(f, obj, var_args) { - var a = slice.call(arguments, 2); - return function () { - return f.apply(obj, a.concat(slice.call(arguments))); - }; - } - function encodeHtmlAttribute(s) { - return String(s).replace(/&/g, '&').replace(/"/g, '"'); - } - function addNamespace(doc, prefix, urn) { - if (!doc.namespaces[prefix]) { - doc.namespaces.add(prefix, urn, '#default#VML'); - } - } - function addNamespacesAndStylesheet(doc) { - addNamespace(doc, 'g_vml_', 'urn:schemas-microsoft-com:vml'); - addNamespace(doc, 'g_o_', 'urn:schemas-microsoft-com:office:office'); - if (!doc.styleSheets['ex_canvas_']) { - var ss = doc.createStyleSheet(); - ss.owningElement.id = 'ex_canvas_'; - ss.cssText = 'canvas{display:inline-block;overflow:hidden;' + 'text-align:left;width:300px;height:150px}'; - } - } - addNamespacesAndStylesheet(document); - var G_vmlCanvasManager_ = { - init: function (opt_doc) { - var doc = opt_doc || document; - doc.createElement('canvas'); - doc.attachEvent('onreadystatechange', bind(this.init_, this, doc)); - }, - init_: function (doc) { - var els = doc.getElementsByTagName('canvas'); - for (var i = 0; i < els.length; i++) { - this.initElement(els[i]); - } - }, - initElement: function (el) { - if (!el.getContext) { - el.getContext = getContext; - addNamespacesAndStylesheet(el.ownerDocument); - el.innerHTML = ''; - el.attachEvent('onpropertychange', onPropertyChange); - el.attachEvent('onresize', onResize); - var attrs = el.attributes; - if (attrs.width && attrs.width.specified) { - el.style.width = attrs.width.nodeValue + 'px'; - } else { - el.width = el.clientWidth; - } - if (attrs.height && attrs.height.specified) { - el.style.height = attrs.height.nodeValue + 'px'; - } else { - el.height = el.clientHeight; - } - } - return el; - } - }; - function onPropertyChange(e) { - var el = e.srcElement; - switch (e.propertyName) { - case 'width': - el.getContext().clearRect(); - el.style.width = el.attributes.width.nodeValue + 'px'; - el.firstChild.style.width = el.clientWidth + 'px'; - break; - case 'height': - el.getContext().clearRect(); - el.style.height = el.attributes.height.nodeValue + 'px'; - el.firstChild.style.height = el.clientHeight + 'px'; - break; - } - } - function onResize(e) { - var el = e.srcElement; - if (el.firstChild) { - el.firstChild.style.width = el.clientWidth + 'px'; - el.firstChild.style.height = el.clientHeight + 'px'; - } - } - G_vmlCanvasManager_.init(); - var decToHex = []; - for (var i = 0; i < 16; i++) { - for (var j = 0; j < 16; j++) { - decToHex[i * 16 + j] = i.toString(16) + j.toString(16); - } - } - function createMatrixIdentity() { - return [ - [ - 1, - 0, - 0 - ], - [ - 0, - 1, - 0 - ], - [ - 0, - 0, - 1 - ] - ]; - } - function matrixMultiply(m1, m2) { - var result = createMatrixIdentity(); - for (var x = 0; x < 3; x++) { - for (var y = 0; y < 3; y++) { - var sum = 0; - for (var z = 0; z < 3; z++) { - sum += m1[x][z] * m2[z][y]; - } - result[x][y] = sum; - } - } - return result; - } - function copyState(o1, o2) { - o2.fillStyle = o1.fillStyle; - o2.lineCap = o1.lineCap; - o2.lineJoin = o1.lineJoin; - o2.lineWidth = o1.lineWidth; - o2.miterLimit = o1.miterLimit; - o2.shadowBlur = o1.shadowBlur; - o2.shadowColor = o1.shadowColor; - o2.shadowOffsetX = o1.shadowOffsetX; - o2.shadowOffsetY = o1.shadowOffsetY; - o2.strokeStyle = o1.strokeStyle; - o2.globalAlpha = o1.globalAlpha; - o2.font = o1.font; - o2.textAlign = o1.textAlign; - o2.textBaseline = o1.textBaseline; - o2.scaleX_ = o1.scaleX_; - o2.scaleY_ = o1.scaleY_; - o2.lineScale_ = o1.lineScale_; - } - var colorData = { - aliceblue: '#F0F8FF', - antiquewhite: '#FAEBD7', - aquamarine: '#7FFFD4', - azure: '#F0FFFF', - beige: '#F5F5DC', - bisque: '#FFE4C4', - black: '#000000', - blanchedalmond: '#FFEBCD', - blueviolet: '#8A2BE2', - brown: '#A52A2A', - burlywood: '#DEB887', - cadetblue: '#5F9EA0', - chartreuse: '#7FFF00', - chocolate: '#D2691E', - coral: '#FF7F50', - cornflowerblue: '#6495ED', - cornsilk: '#FFF8DC', - crimson: '#DC143C', - cyan: '#00FFFF', - darkblue: '#00008B', - darkcyan: '#008B8B', - darkgoldenrod: '#B8860B', - darkgray: '#A9A9A9', - darkgreen: '#006400', - darkgrey: '#A9A9A9', - darkkhaki: '#BDB76B', - darkmagenta: '#8B008B', - darkolivegreen: '#556B2F', - darkorange: '#FF8C00', - darkorchid: '#9932CC', - darkred: '#8B0000', - darksalmon: '#E9967A', - darkseagreen: '#8FBC8F', - darkslateblue: '#483D8B', - darkslategray: '#2F4F4F', - darkslategrey: '#2F4F4F', - darkturquoise: '#00CED1', - darkviolet: '#9400D3', - deeppink: '#FF1493', - deepskyblue: '#00BFFF', - dimgray: '#696969', - dimgrey: '#696969', - dodgerblue: '#1E90FF', - firebrick: '#B22222', - floralwhite: '#FFFAF0', - forestgreen: '#228B22', - gainsboro: '#DCDCDC', - ghostwhite: '#F8F8FF', - gold: '#FFD700', - goldenrod: '#DAA520', - grey: '#808080', - greenyellow: '#ADFF2F', - honeydew: '#F0FFF0', - hotpink: '#FF69B4', - indianred: '#CD5C5C', - indigo: '#4B0082', - ivory: '#FFFFF0', - khaki: '#F0E68C', - lavender: '#E6E6FA', - lavenderblush: '#FFF0F5', - lawngreen: '#7CFC00', - lemonchiffon: '#FFFACD', - lightblue: '#ADD8E6', - lightcoral: '#F08080', - lightcyan: '#E0FFFF', - lightgoldenrodyellow: '#FAFAD2', - lightgreen: '#90EE90', - lightgrey: '#D3D3D3', - lightpink: '#FFB6C1', - lightsalmon: '#FFA07A', - lightseagreen: '#20B2AA', - lightskyblue: '#87CEFA', - lightslategray: '#778899', - lightslategrey: '#778899', - lightsteelblue: '#B0C4DE', - lightyellow: '#FFFFE0', - limegreen: '#32CD32', - linen: '#FAF0E6', - magenta: '#FF00FF', - mediumaquamarine: '#66CDAA', - mediumblue: '#0000CD', - mediumorchid: '#BA55D3', - mediumpurple: '#9370DB', - mediumseagreen: '#3CB371', - mediumslateblue: '#7B68EE', - mediumspringgreen: '#00FA9A', - mediumturquoise: '#48D1CC', - mediumvioletred: '#C71585', - midnightblue: '#191970', - mintcream: '#F5FFFA', - mistyrose: '#FFE4E1', - moccasin: '#FFE4B5', - navajowhite: '#FFDEAD', - oldlace: '#FDF5E6', - olivedrab: '#6B8E23', - orange: '#FFA500', - orangered: '#FF4500', - orchid: '#DA70D6', - palegoldenrod: '#EEE8AA', - palegreen: '#98FB98', - paleturquoise: '#AFEEEE', - palevioletred: '#DB7093', - papayawhip: '#FFEFD5', - peachpuff: '#FFDAB9', - peru: '#CD853F', - pink: '#FFC0CB', - plum: '#DDA0DD', - powderblue: '#B0E0E6', - rosybrown: '#BC8F8F', - royalblue: '#4169E1', - saddlebrown: '#8B4513', - salmon: '#FA8072', - sandybrown: '#F4A460', - seagreen: '#2E8B57', - seashell: '#FFF5EE', - sienna: '#A0522D', - skyblue: '#87CEEB', - slateblue: '#6A5ACD', - slategray: '#708090', - slategrey: '#708090', - snow: '#FFFAFA', - springgreen: '#00FF7F', - steelblue: '#4682B4', - tan: '#D2B48C', - thistle: '#D8BFD8', - tomato: '#FF6347', - turquoise: '#40E0D0', - violet: '#EE82EE', - wheat: '#F5DEB3', - whitesmoke: '#F5F5F5', - yellowgreen: '#9ACD32' - }; - function getRgbHslContent(styleString) { - var start = styleString.indexOf('(', 3); - var end = styleString.indexOf(')', start + 1); - var parts = styleString.substring(start + 1, end).split(','); - if (parts.length != 4 || styleString.charAt(3) != 'a') { - parts[3] = 1; - } - return parts; - } - function percent(s) { - return parseFloat(s) / 100; - } - function clamp(v, min, max) { - return Math.min(max, Math.max(min, v)); - } - function hslToRgb(parts) { - var r, g, b, h, s, l; - h = parseFloat(parts[0]) / 360 % 360; - if (h < 0) - h++; - s = clamp(percent(parts[1]), 0, 1); - l = clamp(percent(parts[2]), 0, 1); - if (s == 0) { - r = g = b = l; - } else { - var q = l < 0.5 ? l * (1 + s) : l + s - l * s; - var p = 2 * l - q; - r = hueToRgb(p, q, h + 1 / 3); - g = hueToRgb(p, q, h); - b = hueToRgb(p, q, h - 1 / 3); - } - return '#' + decToHex[Math.floor(r * 255)] + decToHex[Math.floor(g * 255)] + decToHex[Math.floor(b * 255)]; - } - function hueToRgb(m1, m2, h) { - if (h < 0) - h++; - if (h > 1) - h--; - if (6 * h < 1) - return m1 + (m2 - m1) * 6 * h; - else if (2 * h < 1) - return m2; - else if (3 * h < 2) - return m1 + (m2 - m1) * (2 / 3 - h) * 6; - else - return m1; - } - var processStyleCache = {}; - function processStyle(styleString) { - if (styleString in processStyleCache) { - return processStyleCache[styleString]; - } - var str, alpha = 1; - styleString = String(styleString); - if (styleString.charAt(0) == '#') { - str = styleString; - } else if (/^rgb/.test(styleString)) { - var parts = getRgbHslContent(styleString); - var str = '#', n; - for (var i = 0; i < 3; i++) { - if (parts[i].indexOf('%') != -1) { - n = Math.floor(percent(parts[i]) * 255); - } else { - n = +parts[i]; - } - str += decToHex[clamp(n, 0, 255)]; - } - alpha = +parts[3]; - } else if (/^hsl/.test(styleString)) { - var parts = getRgbHslContent(styleString); - str = hslToRgb(parts); - alpha = parts[3]; - } else { - str = colorData[styleString] || styleString; - } - return processStyleCache[styleString] = { - color: str, - alpha: alpha - }; - } - var DEFAULT_STYLE = { - style: 'normal', - variant: 'normal', - weight: 'normal', - size: 12, - family: '微软雅黑' - }; - var fontStyleCache = {}; - function processFontStyle(styleString) { - if (fontStyleCache[styleString]) { - return fontStyleCache[styleString]; - } - var el = document.createElement('div'); - var style = el.style; - var fontFamily; - try { - style.font = styleString; - fontFamily = style.fontFamily.split(',')[0]; - } catch (ex) { - } - return fontStyleCache[styleString] = { - style: style.fontStyle || DEFAULT_STYLE.style, - variant: style.fontVariant || DEFAULT_STYLE.variant, - weight: style.fontWeight || DEFAULT_STYLE.weight, - size: style.fontSize || DEFAULT_STYLE.size, - family: fontFamily || DEFAULT_STYLE.family - }; - } - function getComputedStyle(style, element) { - var computedStyle = {}; - for (var p in style) { - computedStyle[p] = style[p]; - } - var canvasFontSize = parseFloat(element.currentStyle.fontSize), fontSize = parseFloat(style.size); - if (typeof style.size == 'number') { - computedStyle.size = style.size; - } else if (style.size.indexOf('px') != -1) { - computedStyle.size = fontSize; - } else if (style.size.indexOf('em') != -1) { - computedStyle.size = canvasFontSize * fontSize; - } else if (style.size.indexOf('%') != -1) { - computedStyle.size = canvasFontSize / 100 * fontSize; - } else if (style.size.indexOf('pt') != -1) { - computedStyle.size = fontSize / 0.75; - } else { - computedStyle.size = canvasFontSize; - } - return computedStyle; - } - function buildStyle(style) { - return style.style + ' ' + style.variant + ' ' + style.weight + ' ' + style.size + 'px \'' + style.family + '\''; - } - var lineCapMap = { - 'butt': 'flat', - 'round': 'round' - }; - function processLineCap(lineCap) { - return lineCapMap[lineCap] || 'square'; - } - function CanvasRenderingContext2D_(canvasElement) { - this.m_ = createMatrixIdentity(); - this.mStack_ = []; - this.aStack_ = []; - this.currentPath_ = []; - this.strokeStyle = '#000'; - this.fillStyle = '#000'; - this.lineWidth = 1; - this.lineJoin = 'miter'; - this.lineCap = 'butt'; - this.miterLimit = Z * 1; - this.globalAlpha = 1; - this.font = '12px 微软雅黑'; - this.textAlign = 'left'; - this.textBaseline = 'alphabetic'; - this.canvas = canvasElement; - var cssText = 'width:' + canvasElement.clientWidth + 'px;height:' + canvasElement.clientHeight + 'px;overflow:hidden;position:absolute'; - var el = canvasElement.ownerDocument.createElement('div'); - el.style.cssText = cssText; - canvasElement.appendChild(el); - var overlayEl = el.cloneNode(false); - overlayEl.style.backgroundColor = '#fff'; - overlayEl.style.filter = 'alpha(opacity=0)'; - canvasElement.appendChild(overlayEl); - this.element_ = el; - this.scaleX_ = 1; - this.scaleY_ = 1; - this.lineScale_ = 1; - } - var contextPrototype = CanvasRenderingContext2D_.prototype; - contextPrototype.clearRect = function () { - if (this.textMeasureEl_) { - this.textMeasureEl_.removeNode(true); - this.textMeasureEl_ = null; - } - this.element_.innerHTML = ''; - }; - contextPrototype.beginPath = function () { - this.currentPath_ = []; - }; - contextPrototype.moveTo = function (aX, aY) { - var p = getCoords(this, aX, aY); - this.currentPath_.push({ - type: 'moveTo', - x: p.x, - y: p.y - }); - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - contextPrototype.lineTo = function (aX, aY) { - var p = getCoords(this, aX, aY); - this.currentPath_.push({ - type: 'lineTo', - x: p.x, - y: p.y - }); - this.currentX_ = p.x; - this.currentY_ = p.y; - }; - contextPrototype.bezierCurveTo = function (aCP1x, aCP1y, aCP2x, aCP2y, aX, aY) { - var p = getCoords(this, aX, aY); - var cp1 = getCoords(this, aCP1x, aCP1y); - var cp2 = getCoords(this, aCP2x, aCP2y); - bezierCurveTo(this, cp1, cp2, p); - }; - function bezierCurveTo(self, cp1, cp2, p) { - self.currentPath_.push({ - type: 'bezierCurveTo', - cp1x: cp1.x, - cp1y: cp1.y, - cp2x: cp2.x, - cp2y: cp2.y, - x: p.x, - y: p.y - }); - self.currentX_ = p.x; - self.currentY_ = p.y; - } - contextPrototype.quadraticCurveTo = function (aCPx, aCPy, aX, aY) { - var cp = getCoords(this, aCPx, aCPy); - var p = getCoords(this, aX, aY); - var cp1 = { - x: this.currentX_ + 2 / 3 * (cp.x - this.currentX_), - y: this.currentY_ + 2 / 3 * (cp.y - this.currentY_) - }; - var cp2 = { - x: cp1.x + (p.x - this.currentX_) / 3, - y: cp1.y + (p.y - this.currentY_) / 3 - }; - bezierCurveTo(this, cp1, cp2, p); - }; - contextPrototype.arc = function (aX, aY, aRadius, aStartAngle, aEndAngle, aClockwise) { - aRadius *= Z; - var arcType = aClockwise ? 'at' : 'wa'; - var xStart = aX + mc(aStartAngle) * aRadius - Z2; - var yStart = aY + ms(aStartAngle) * aRadius - Z2; - var xEnd = aX + mc(aEndAngle) * aRadius - Z2; - var yEnd = aY + ms(aEndAngle) * aRadius - Z2; - if (xStart == xEnd && !aClockwise) { - xStart += 0.125; - } - var p = getCoords(this, aX, aY); - var pStart = getCoords(this, xStart, yStart); - var pEnd = getCoords(this, xEnd, yEnd); - this.currentPath_.push({ - type: arcType, - x: p.x, - y: p.y, - radius: aRadius, - xStart: pStart.x, - yStart: pStart.y, - xEnd: pEnd.x, - yEnd: pEnd.y - }); - }; - contextPrototype.rect = function (aX, aY, aWidth, aHeight) { - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - }; - contextPrototype.strokeRect = function (aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.stroke(); - this.currentPath_ = oldPath; - }; - contextPrototype.fillRect = function (aX, aY, aWidth, aHeight) { - var oldPath = this.currentPath_; - this.beginPath(); - this.moveTo(aX, aY); - this.lineTo(aX + aWidth, aY); - this.lineTo(aX + aWidth, aY + aHeight); - this.lineTo(aX, aY + aHeight); - this.closePath(); - this.fill(); - this.currentPath_ = oldPath; - }; - contextPrototype.createLinearGradient = function (aX0, aY0, aX1, aY1) { - var gradient = new CanvasGradient_('gradient'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - return gradient; - }; - contextPrototype.createRadialGradient = function (aX0, aY0, aR0, aX1, aY1, aR1) { - var gradient = new CanvasGradient_('gradientradial'); - gradient.x0_ = aX0; - gradient.y0_ = aY0; - gradient.r0_ = aR0; - gradient.x1_ = aX1; - gradient.y1_ = aY1; - gradient.r1_ = aR1; - return gradient; - }; - contextPrototype.drawImage = function (image, var_args) { - var dx, dy, dw, dh, sx, sy, sw, sh; - var oldRuntimeWidth = image.runtimeStyle.width; - var oldRuntimeHeight = image.runtimeStyle.height; - image.runtimeStyle.width = 'auto'; - image.runtimeStyle.height = 'auto'; - var w = image.width; - var h = image.height; - image.runtimeStyle.width = oldRuntimeWidth; - image.runtimeStyle.height = oldRuntimeHeight; - if (arguments.length == 3) { - dx = arguments[1]; - dy = arguments[2]; - sx = sy = 0; - sw = dw = w; - sh = dh = h; - } else if (arguments.length == 5) { - dx = arguments[1]; - dy = arguments[2]; - dw = arguments[3]; - dh = arguments[4]; - sx = sy = 0; - sw = w; - sh = h; - } else if (arguments.length == 9) { - sx = arguments[1]; - sy = arguments[2]; - sw = arguments[3]; - sh = arguments[4]; - dx = arguments[5]; - dy = arguments[6]; - dw = arguments[7]; - dh = arguments[8]; - } else { - throw Error('Invalid number of arguments'); - } - var d = getCoords(this, dx, dy); - var w2 = sw / 2; - var h2 = sh / 2; - var vmlStr = []; - var W = 10; - var H = 10; - var scaleX = scaleY = 1; - vmlStr.push(' '); - if (sx || sy) { - vmlStr.push('
'); - } - vmlStr.push('
'); - if (sx || sy) - vmlStr.push('
'); - vmlStr.push('
'); - this.element_.insertAdjacentHTML('BeforeEnd', vmlStr.join('')); - }; - contextPrototype.stroke = function (aFill) { - var lineStr = []; - var lineOpen = false; - var W = 10; - var H = 10; - lineStr.push(''); - if (!aFill) { - appendStroke(this, lineStr); - } else { - appendFill(this, lineStr, min, max); - } - lineStr.push(''); - this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); - }; - function appendStroke(ctx, lineStr) { - var a = processStyle(ctx.strokeStyle); - var color = a.color; - var opacity = a.alpha * ctx.globalAlpha; - var lineWidth = ctx.lineScale_ * ctx.lineWidth; - if (lineWidth < 1) { - opacity *= lineWidth; - } - lineStr.push(''); - } - function appendFill(ctx, lineStr, min, max) { - var fillStyle = ctx.fillStyle; - var arcScaleX = ctx.scaleX_; - var arcScaleY = ctx.scaleY_; - var width = max.x - min.x; - var height = max.y - min.y; - if (fillStyle instanceof CanvasGradient_) { - var angle = 0; - var focus = { - x: 0, - y: 0 - }; - var shift = 0; - var expansion = 1; - if (fillStyle.type_ == 'gradient') { - var x0 = fillStyle.x0_ / arcScaleX; - var y0 = fillStyle.y0_ / arcScaleY; - var x1 = fillStyle.x1_ / arcScaleX; - var y1 = fillStyle.y1_ / arcScaleY; - var p0 = getCoords(ctx, x0, y0); - var p1 = getCoords(ctx, x1, y1); - var dx = p1.x - p0.x; - var dy = p1.y - p0.y; - angle = Math.atan2(dx, dy) * 180 / Math.PI; - if (angle < 0) { - angle += 360; - } - if (angle < 0.000001) { - angle = 0; - } - } else { - var p0 = getCoords(ctx, fillStyle.x0_, fillStyle.y0_); - focus = { - x: (p0.x - min.x) / width, - y: (p0.y - min.y) / height - }; - width /= arcScaleX * Z; - height /= arcScaleY * Z; - var dimension = m.max(width, height); - shift = 2 * fillStyle.r0_ / dimension; - expansion = 2 * fillStyle.r1_ / dimension - shift; - } - var stops = fillStyle.colors_; - stops.sort(function (cs1, cs2) { - return cs1.offset - cs2.offset; - }); - var length = stops.length; - var color1 = stops[0].color; - var color2 = stops[length - 1].color; - var opacity1 = stops[0].alpha * ctx.globalAlpha; - var opacity2 = stops[length - 1].alpha * ctx.globalAlpha; - var colors = []; - for (var i = 0; i < length; i++) { - var stop = stops[i]; - colors.push(stop.offset * expansion + shift + ' ' + stop.color); - } - lineStr.push(''); - } else if (fillStyle instanceof CanvasPattern_) { - if (width && height) { - var deltaLeft = -min.x; - var deltaTop = -min.y; - lineStr.push(''); - } - } else { - var a = processStyle(ctx.fillStyle); - var color = a.color; - var opacity = a.alpha * ctx.globalAlpha; - lineStr.push(''); - } - } - contextPrototype.fill = function () { - this.stroke(true); - }; - contextPrototype.closePath = function () { - this.currentPath_.push({ type: 'close' }); - }; - function getCoords(ctx, aX, aY) { - var m = ctx.m_; - return { - x: Z * (aX * m[0][0] + aY * m[1][0] + m[2][0]) - Z2, - y: Z * (aX * m[0][1] + aY * m[1][1] + m[2][1]) - Z2 - }; - } - ; - contextPrototype.save = function () { - var o = {}; - copyState(this, o); - this.aStack_.push(o); - this.mStack_.push(this.m_); - this.m_ = matrixMultiply(createMatrixIdentity(), this.m_); - }; - contextPrototype.restore = function () { - if (this.aStack_.length) { - copyState(this.aStack_.pop(), this); - this.m_ = this.mStack_.pop(); - } - }; - function matrixIsFinite(m) { - return isFinite(m[0][0]) && isFinite(m[0][1]) && isFinite(m[1][0]) && isFinite(m[1][1]) && isFinite(m[2][0]) && isFinite(m[2][1]); - } - function setM(ctx, m, updateLineScale) { - if (!matrixIsFinite(m)) { - return; - } - ctx.m_ = m; - ctx.scaleX_ = Math.sqrt(m[0][0] * m[0][0] + m[0][1] * m[0][1]); - ctx.scaleY_ = Math.sqrt(m[1][0] * m[1][0] + m[1][1] * m[1][1]); - if (updateLineScale) { - var det = m[0][0] * m[1][1] - m[0][1] * m[1][0]; - ctx.lineScale_ = sqrt(abs(det)); - } - } - contextPrototype.translate = function (aX, aY) { - var m1 = [ - [ - 1, - 0, - 0 - ], - [ - 0, - 1, - 0 - ], - [ - aX, - aY, - 1 - ] - ]; - setM(this, matrixMultiply(m1, this.m_), false); - }; - contextPrototype.rotate = function (aRot) { - var c = mc(aRot); - var s = ms(aRot); - var m1 = [ - [ - c, - s, - 0 - ], - [ - -s, - c, - 0 - ], - [ - 0, - 0, - 1 - ] - ]; - setM(this, matrixMultiply(m1, this.m_), false); - }; - contextPrototype.scale = function (aX, aY) { - var m1 = [ - [ - aX, - 0, - 0 - ], - [ - 0, - aY, - 0 - ], - [ - 0, - 0, - 1 - ] - ]; - setM(this, matrixMultiply(m1, this.m_), true); - }; - contextPrototype.transform = function (m11, m12, m21, m22, dx, dy) { - var m1 = [ - [ - m11, - m12, - 0 - ], - [ - m21, - m22, - 0 - ], - [ - dx, - dy, - 1 - ] - ]; - setM(this, matrixMultiply(m1, this.m_), true); - }; - contextPrototype.setTransform = function (m11, m12, m21, m22, dx, dy) { - var m = [ - [ - m11, - m12, - 0 - ], - [ - m21, - m22, - 0 - ], - [ - dx, - dy, - 1 - ] - ]; - setM(this, m, true); - }; - contextPrototype.drawText_ = function (text, x, y, maxWidth, stroke) { - var m = this.m_, delta = 1000, left = 0, right = delta, offset = { - x: 0, - y: 0 - }, lineStr = []; - var fontStyle = getComputedStyle(processFontStyle(this.font), this.element_); - var fontStyleString = buildStyle(fontStyle); - var elementStyle = this.element_.currentStyle; - var textAlign = this.textAlign.toLowerCase(); - switch (textAlign) { - case 'left': - case 'center': - case 'right': - break; - case 'end': - textAlign = elementStyle.direction == 'ltr' ? 'right' : 'left'; - break; - case 'start': - textAlign = elementStyle.direction == 'rtl' ? 'right' : 'left'; - break; - default: - textAlign = 'left'; - } - switch (this.textBaseline) { - case 'hanging': - case 'top': - offset.y = fontStyle.size / 1.75; - break; - case 'middle': - break; - default: - case null: - case 'alphabetic': - case 'ideographic': - case 'bottom': - offset.y = -fontStyle.size / 2.25; - break; - } - switch (textAlign) { - case 'right': - left = delta; - right = 0.05; - break; - case 'center': - left = right = delta / 2; - break; - } - var d = getCoords(this, x + offset.x, y + offset.y); - lineStr.push(''); - if (stroke) { - appendStroke(this, lineStr); - } else { - appendFill(this, lineStr, { - x: -left, - y: 0 - }, { - x: right, - y: fontStyle.size - }); - } - var skewM = m[0][0].toFixed(3) + ',' + m[1][0].toFixed(3) + ',' + m[0][1].toFixed(3) + ',' + m[1][1].toFixed(3) + ',0,0'; - var skewOffset = mr(d.x / Z) + ',' + mr(d.y / Z); - lineStr.push('', '', ''); - this.element_.insertAdjacentHTML('beforeEnd', lineStr.join('')); - }; - contextPrototype.fillText = function (text, x, y, maxWidth) { - this.drawText_(text, x, y, maxWidth, false); - }; - contextPrototype.strokeText = function (text, x, y, maxWidth) { - this.drawText_(text, x, y, maxWidth, true); - }; - contextPrototype.measureText = function (text) { - if (!this.textMeasureEl_) { - var s = ''; - this.element_.insertAdjacentHTML('beforeEnd', s); - this.textMeasureEl_ = this.element_.lastChild; - } - var doc = this.element_.ownerDocument; - this.textMeasureEl_.innerHTML = ''; - try { - this.textMeasureEl_.style.font = this.font; - } catch (ex) { - } - this.textMeasureEl_.appendChild(doc.createTextNode(text)); - return { width: this.textMeasureEl_.offsetWidth }; - }; - contextPrototype.clip = function () { - }; - contextPrototype.arcTo = function () { - }; - contextPrototype.createPattern = function (image, repetition) { - return new CanvasPattern_(image, repetition); - }; - function CanvasGradient_(aType) { - this.type_ = aType; - this.x0_ = 0; - this.y0_ = 0; - this.r0_ = 0; - this.x1_ = 0; - this.y1_ = 0; - this.r1_ = 0; - this.colors_ = []; - } - CanvasGradient_.prototype.addColorStop = function (aOffset, aColor) { - aColor = processStyle(aColor); - this.colors_.push({ - offset: aOffset, - color: aColor.color, - alpha: aColor.alpha - }); - }; - function CanvasPattern_(image, repetition) { - assertImageIsValid(image); - switch (repetition) { - case 'repeat': - case null: - case '': - this.repetition_ = 'repeat'; - break; - case 'repeat-x': - case 'repeat-y': - case 'no-repeat': - this.repetition_ = repetition; - break; - default: - throwException('SYNTAX_ERR'); - } - this.src_ = image.src; - this.width_ = image.width; - this.height_ = image.height; - } - function throwException(s) { - throw new DOMException_(s); - } - function assertImageIsValid(img) { - if (!img || img.nodeType != 1 || img.tagName != 'IMG') { - throwException('TYPE_MISMATCH_ERR'); - } - if (img.readyState != 'complete') { - throwException('INVALID_STATE_ERR'); - } - } - function DOMException_(s) { - this.code = this[s]; - this.message = s + ': DOM Exception ' + this.code; - } - var p = DOMException_.prototype = new Error(); - p.INDEX_SIZE_ERR = 1; - p.DOMSTRING_SIZE_ERR = 2; - p.HIERARCHY_REQUEST_ERR = 3; - p.WRONG_DOCUMENT_ERR = 4; - p.INVALID_CHARACTER_ERR = 5; - p.NO_DATA_ALLOWED_ERR = 6; - p.NO_MODIFICATION_ALLOWED_ERR = 7; - p.NOT_FOUND_ERR = 8; - p.NOT_SUPPORTED_ERR = 9; - p.INUSE_ATTRIBUTE_ERR = 10; - p.INVALID_STATE_ERR = 11; - p.SYNTAX_ERR = 12; - p.INVALID_MODIFICATION_ERR = 13; - p.NAMESPACE_ERR = 14; - p.INVALID_ACCESS_ERR = 15; - p.VALIDATION_ERR = 16; - p.TYPE_MISMATCH_ERR = 17; - G_vmlCanvasManager = G_vmlCanvasManager_; - CanvasRenderingContext2D = CanvasRenderingContext2D_; - CanvasGradient = CanvasGradient_; - CanvasPattern = CanvasPattern_; - DOMException = DOMException_; - }()); - } else { - G_vmlCanvasManager = false; - } - return G_vmlCanvasManager; -});define('zrender/mixin/Eventful', ['require'], function (require) { - var Eventful = function () { - this._handlers = {}; - }; - Eventful.prototype.one = function (event, handler, context) { - var _h = this._handlers; - if (!handler || !event) { - return this; - } - if (!_h[event]) { - _h[event] = []; - } - _h[event].push({ - h: handler, - one: true, - ctx: context || this - }); - return this; - }; - Eventful.prototype.bind = function (event, handler, context) { - var _h = this._handlers; - if (!handler || !event) { - return this; - } - if (!_h[event]) { - _h[event] = []; - } - _h[event].push({ - h: handler, - one: false, - ctx: context || this - }); - return this; - }; - Eventful.prototype.unbind = function (event, handler) { - var _h = this._handlers; - if (!event) { - this._handlers = {}; - return this; - } - if (handler) { - if (_h[event]) { - var newList = []; - for (var i = 0, l = _h[event].length; i < l; i++) { - if (_h[event][i]['h'] != handler) { - newList.push(_h[event][i]); - } - } - _h[event] = newList; - } - if (_h[event] && _h[event].length === 0) { - delete _h[event]; - } - } else { - delete _h[event]; - } - return this; - }; - Eventful.prototype.dispatch = function (type) { - if (this._handlers[type]) { - var args = arguments; - var argLen = args.length; - if (argLen > 3) { - args = Array.prototype.slice.call(args, 1); - } - var _h = this._handlers[type]; - var len = _h.length; - for (var i = 0; i < len;) { - switch (argLen) { - case 1: - _h[i]['h'].call(_h[i]['ctx']); - break; - case 2: - _h[i]['h'].call(_h[i]['ctx'], args[1]); - break; - case 3: - _h[i]['h'].call(_h[i]['ctx'], args[1], args[2]); - break; - default: - _h[i]['h'].apply(_h[i]['ctx'], args); - break; - } - if (_h[i]['one']) { - _h.splice(i, 1); - len--; - } else { - i++; - } - } - } - return this; - }; - Eventful.prototype.dispatchWithContext = function (type) { - if (this._handlers[type]) { - var args = arguments; - var argLen = args.length; - if (argLen > 4) { - args = Array.prototype.slice.call(args, 1, args.length - 1); - } - var ctx = args[args.length - 1]; - var _h = this._handlers[type]; - var len = _h.length; - for (var i = 0; i < len;) { - switch (argLen) { - case 1: - _h[i]['h'].call(ctx); - break; - case 2: - _h[i]['h'].call(ctx, args[1]); - break; - case 3: - _h[i]['h'].call(ctx, args[1], args[2]); - break; - default: - _h[i]['h'].apply(ctx, args); - break; - } - if (_h[i]['one']) { - _h.splice(i, 1); - len--; - } else { - i++; - } - } - } - return this; - }; - return Eventful; -});define('zrender/tool/log', [ - 'require', - '../config' -], function (require) { - var config = require('../config'); - return function () { - if (config.debugMode === 0) { - return; - } else if (config.debugMode == 1) { - for (var k in arguments) { - throw new Error(arguments[k]); - } - } else if (config.debugMode > 1) { - for (var k in arguments) { - console.log(arguments[k]); - } - } - }; -});define('zrender/tool/guid', [], function () { - var idStart = 2311; - return function () { - return 'zrender__' + idStart++; - }; -});define('zrender/Handler', [ - 'require', - './config', - './tool/env', - './tool/event', - './tool/util', - './tool/vector', - './tool/matrix', - './mixin/Eventful' -], function (require) { - 'use strict'; - var config = require('./config'); - var env = require('./tool/env'); - var eventTool = require('./tool/event'); - var util = require('./tool/util'); - var vec2 = require('./tool/vector'); - var mat2d = require('./tool/matrix'); - var EVENT = config.EVENT; - var Eventful = require('./mixin/Eventful'); - var domHandlerNames = [ - 'resize', - 'click', - 'dblclick', - 'mousewheel', - 'mousemove', - 'mouseout', - 'mouseup', - 'mousedown', - 'touchstart', - 'touchend', - 'touchmove' - ]; - var isZRenderElement = function (event) { - if (window.G_vmlCanvasManager) { - return true; - } - event = event || window.event; - var target = event.toElement || event.relatedTarget || event.srcElement || event.target; - return target && target.className.match(config.elementClassName); - }; - var domHandlers = { - resize: function (event) { - event = event || window.event; - this._lastHover = null; - this._isMouseDown = 0; - this.dispatch(EVENT.RESIZE, event); - }, - click: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event); - var _lastHover = this._lastHover; - if (_lastHover && _lastHover.clickable || !_lastHover) { - if (this._clickThreshold < 5) { - this._dispatchAgency(_lastHover, EVENT.CLICK, event); - } - } - this._mousemoveHandler(event); - }, - dblclick: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = event || window.event; - event = this._zrenderEventFixed(event); - var _lastHover = this._lastHover; - if (_lastHover && _lastHover.clickable || !_lastHover) { - if (this._clickThreshold < 5) { - this._dispatchAgency(_lastHover, EVENT.DBLCLICK, event); - } - } - this._mousemoveHandler(event); - }, - mousewheel: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event); - var delta = event.wheelDelta || -event.detail; - var scale = delta > 0 ? 1.1 : 1 / 1.1; - var needsRefresh = false; - var mouseX = this._mouseX; - var mouseY = this._mouseY; - this.painter.eachBuildinLayer(function (layer) { - var pos = layer.position; - if (layer.zoomable) { - layer.__zoom = layer.__zoom || 1; - var newZoom = layer.__zoom; - newZoom *= scale; - newZoom = Math.max(Math.min(layer.maxZoom, newZoom), layer.minZoom); - scale = newZoom / layer.__zoom; - layer.__zoom = newZoom; - pos[0] -= (mouseX - pos[0]) * (scale - 1); - pos[1] -= (mouseY - pos[1]) * (scale - 1); - layer.scale[0] *= scale; - layer.scale[1] *= scale; - layer.dirty = true; - needsRefresh = true; - eventTool.stop(event); - } - }); - if (needsRefresh) { - this.painter.refresh(); - } - this._dispatchAgency(this._lastHover, EVENT.MOUSEWHEEL, event); - this._mousemoveHandler(event); - }, - mousemove: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - if (this.painter.isLoading()) { - return; - } - event = this._zrenderEventFixed(event); - this._lastX = this._mouseX; - this._lastY = this._mouseY; - this._mouseX = eventTool.getX(event); - this._mouseY = eventTool.getY(event); - var dx = this._mouseX - this._lastX; - var dy = this._mouseY - this._lastY; - this._processDragStart(event); - this._hasfound = 0; - this._event = event; - this._iterateAndFindHover(); - if (!this._hasfound) { - if (!this._draggingTarget || this._lastHover && this._lastHover != this._draggingTarget) { - this._processOutShape(event); - this._processDragLeave(event); - } - this._lastHover = null; - this.storage.delHover(); - this.painter.clearHover(); - } - var cursor = 'default'; - if (this._draggingTarget) { - this.storage.drift(this._draggingTarget.id, dx, dy); - this._draggingTarget.modSelf(); - this.storage.addHover(this._draggingTarget); - this._clickThreshold++; - } else if (this._isMouseDown) { - var needsRefresh = false; - this.painter.eachBuildinLayer(function (layer) { - if (layer.panable) { - cursor = 'move'; - layer.position[0] += dx; - layer.position[1] += dy; - needsRefresh = true; - layer.dirty = true; - } - }); - if (needsRefresh) { - this.painter.refresh(); - } - } - if (this._draggingTarget || this._hasfound && this._lastHover.draggable) { - cursor = 'move'; - } else if (this._hasfound && this._lastHover.clickable) { - cursor = 'pointer'; - } - this.root.style.cursor = cursor; - this._dispatchAgency(this._lastHover, EVENT.MOUSEMOVE, event); - if (this._draggingTarget || this._hasfound || this.storage.hasHoverShape()) { - this.painter.refreshHover(); - } - }, - mouseout: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event); - var element = event.toElement || event.relatedTarget; - if (element != this.root) { - while (element && element.nodeType != 9) { - if (element == this.root) { - this._mousemoveHandler(event); - return; - } - element = element.parentNode; - } - } - event.zrenderX = this._lastX; - event.zrenderY = this._lastY; - this.root.style.cursor = 'default'; - this._isMouseDown = 0; - this._processOutShape(event); - this._processDrop(event); - this._processDragEnd(event); - if (!this.painter.isLoading()) { - this.painter.refreshHover(); - } - this.dispatch(EVENT.GLOBALOUT, event); - }, - mousedown: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - this._clickThreshold = 0; - if (this._lastDownButton == 2) { - this._lastDownButton = event.button; - this._mouseDownTarget = null; - return; - } - this._lastMouseDownMoment = new Date(); - event = this._zrenderEventFixed(event); - this._isMouseDown = 1; - this._mouseDownTarget = this._lastHover; - this._dispatchAgency(this._lastHover, EVENT.MOUSEDOWN, event); - this._lastDownButton = event.button; - }, - mouseup: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event); - this.root.style.cursor = 'default'; - this._isMouseDown = 0; - this._mouseDownTarget = null; - this._dispatchAgency(this._lastHover, EVENT.MOUSEUP, event); - this._processDrop(event); - this._processDragEnd(event); - }, - touchstart: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event, true); - this._lastTouchMoment = new Date(); - this._mobileFindFixed(event); - this._mousedownHandler(event); - }, - touchmove: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event, true); - this._mousemoveHandler(event); - if (this._isDragging) { - eventTool.stop(event); - } - }, - touchend: function (event, manually) { - if (!isZRenderElement(event) && !manually) { - return; - } - event = this._zrenderEventFixed(event, true); - this._mouseupHandler(event); - var now = new Date(); - if (now - this._lastTouchMoment < EVENT.touchClickDelay) { - this._mobileFindFixed(event); - this._clickHandler(event); - if (now - this._lastClickMoment < EVENT.touchClickDelay / 2) { - this._dblclickHandler(event); - if (this._lastHover && this._lastHover.clickable) { - eventTool.stop(event); - } - } - this._lastClickMoment = now; - } - this.painter.clearHover(); - } - }; - function bind2Arg(handler, context) { - return function (arg1, arg2) { - return handler.call(context, arg1, arg2); - }; - } - function bind3Arg(handler, context) { - return function (arg1, arg2, arg3) { - return handler.call(context, arg1, arg2, arg3); - }; - } - function initDomHandler(instance) { - var len = domHandlerNames.length; - while (len--) { - var name = domHandlerNames[len]; - instance['_' + name + 'Handler'] = bind2Arg(domHandlers[name], instance); - } - } - var Handler = function (root, storage, painter) { - Eventful.call(this); - this.root = root; - this.storage = storage; - this.painter = painter; - this._lastX = this._lastY = this._mouseX = this._mouseY = 0; - this._findHover = bind3Arg(findHover, this); - this._domHover = painter.getDomHover(); - initDomHandler(this); - if (window.addEventListener) { - window.addEventListener('resize', this._resizeHandler); - if (env.os.tablet || env.os.phone) { - root.addEventListener('touchstart', this._touchstartHandler); - root.addEventListener('touchmove', this._touchmoveHandler); - root.addEventListener('touchend', this._touchendHandler); - } else { - root.addEventListener('click', this._clickHandler); - root.addEventListener('dblclick', this._dblclickHandler); - root.addEventListener('mousewheel', this._mousewheelHandler); - root.addEventListener('mousemove', this._mousemoveHandler); - root.addEventListener('mousedown', this._mousedownHandler); - root.addEventListener('mouseup', this._mouseupHandler); - } - root.addEventListener('DOMMouseScroll', this._mousewheelHandler); - root.addEventListener('mouseout', this._mouseoutHandler); - } else { - window.attachEvent('onresize', this._resizeHandler); - root.attachEvent('onclick', this._clickHandler); - root.ondblclick = this._dblclickHandler; - root.attachEvent('onmousewheel', this._mousewheelHandler); - root.attachEvent('onmousemove', this._mousemoveHandler); - root.attachEvent('onmouseout', this._mouseoutHandler); - root.attachEvent('onmousedown', this._mousedownHandler); - root.attachEvent('onmouseup', this._mouseupHandler); - } - }; - Handler.prototype.on = function (eventName, handler, context) { - this.bind(eventName, handler, context); - return this; - }; - Handler.prototype.un = function (eventName, handler) { - this.unbind(eventName, handler); - return this; - }; - Handler.prototype.trigger = function (eventName, eventArgs) { - switch (eventName) { - case EVENT.RESIZE: - case EVENT.CLICK: - case EVENT.DBLCLICK: - case EVENT.MOUSEWHEEL: - case EVENT.MOUSEMOVE: - case EVENT.MOUSEDOWN: - case EVENT.MOUSEUP: - case EVENT.MOUSEOUT: - this['_' + eventName + 'Handler'](eventArgs, true); - break; - } - }; - Handler.prototype.dispose = function () { - var root = this.root; - if (window.removeEventListener) { - window.removeEventListener('resize', this._resizeHandler); - if (env.os.tablet || env.os.phone) { - root.removeEventListener('touchstart', this._touchstartHandler); - root.removeEventListener('touchmove', this._touchmoveHandler); - root.removeEventListener('touchend', this._touchendHandler); - } else { - root.removeEventListener('click', this._clickHandler); - root.removeEventListener('dblclick', this._dblclickHandler); - root.removeEventListener('mousewheel', this._mousewheelHandler); - root.removeEventListener('mousemove', this._mousemoveHandler); - root.removeEventListener('mousedown', this._mousedownHandler); - root.removeEventListener('mouseup', this._mouseupHandler); - } - root.removeEventListener('DOMMouseScroll', this._mousewheelHandler); - root.removeEventListener('mouseout', this._mouseoutHandler); - } else { - window.detachEvent('onresize', this._resizeHandler); - root.detachEvent('onclick', this._clickHandler); - root.detachEvent('dblclick', this._dblclickHandler); - root.detachEvent('onmousewheel', this._mousewheelHandler); - root.detachEvent('onmousemove', this._mousemoveHandler); - root.detachEvent('onmouseout', this._mouseoutHandler); - root.detachEvent('onmousedown', this._mousedownHandler); - root.detachEvent('onmouseup', this._mouseupHandler); - } - this.root = this._domHover = this.storage = this.painter = null; - this.un(); - }; - Handler.prototype._processDragStart = function (event) { - var _lastHover = this._lastHover; - if (this._isMouseDown && _lastHover && _lastHover.draggable && !this._draggingTarget && this._mouseDownTarget == _lastHover) { - if (_lastHover.dragEnableTime && new Date() - this._lastMouseDownMoment < _lastHover.dragEnableTime) { - return; - } - var _draggingTarget = _lastHover; - this._draggingTarget = _draggingTarget; - this._isDragging = 1; - _draggingTarget.invisible = true; - this.storage.mod(_draggingTarget.id); - this._dispatchAgency(_draggingTarget, EVENT.DRAGSTART, event); - this.painter.refresh(); - } - }; - Handler.prototype._processDragEnter = function (event) { - if (this._draggingTarget) { - this._dispatchAgency(this._lastHover, EVENT.DRAGENTER, event, this._draggingTarget); - } - }; - Handler.prototype._processDragOver = function (event) { - if (this._draggingTarget) { - this._dispatchAgency(this._lastHover, EVENT.DRAGOVER, event, this._draggingTarget); - } - }; - Handler.prototype._processDragLeave = function (event) { - if (this._draggingTarget) { - this._dispatchAgency(this._lastHover, EVENT.DRAGLEAVE, event, this._draggingTarget); - } - }; - Handler.prototype._processDrop = function (event) { - if (this._draggingTarget) { - this._draggingTarget.invisible = false; - this.storage.mod(this._draggingTarget.id); - this.painter.refresh(); - this._dispatchAgency(this._lastHover, EVENT.DROP, event, this._draggingTarget); - } - }; - Handler.prototype._processDragEnd = function (event) { - if (this._draggingTarget) { - this._dispatchAgency(this._draggingTarget, EVENT.DRAGEND, event); - this._lastHover = null; - } - this._isDragging = 0; - this._draggingTarget = null; - }; - Handler.prototype._processOverShape = function (event) { - this._dispatchAgency(this._lastHover, EVENT.MOUSEOVER, event); - }; - Handler.prototype._processOutShape = function (event) { - this._dispatchAgency(this._lastHover, EVENT.MOUSEOUT, event); - }; - Handler.prototype._dispatchAgency = function (targetShape, eventName, event, draggedShape) { - var eventHandler = 'on' + eventName; - var eventPacket = { - type: eventName, - event: event, - target: targetShape, - cancelBubble: false - }; - var el = targetShape; - if (draggedShape) { - eventPacket.dragged = draggedShape; - } - while (el) { - el[eventHandler] && (eventPacket.cancelBubble = el[eventHandler](eventPacket)); - el.dispatch(eventName, eventPacket); - el = el.parent; - if (eventPacket.cancelBubble) { - break; - } - } - if (targetShape) { - if (!eventPacket.cancelBubble) { - this.dispatch(eventName, eventPacket); - } - } else if (!draggedShape) { - var eveObj = { - type: eventName, - event: event - }; - this.dispatch(eventName, eveObj); - this.painter.eachOtherLayer(function (layer) { - if (typeof layer[eventHandler] == 'function') { - layer[eventHandler](eveObj); - } - if (layer.dispatch) { - layer.dispatch(eventName, eveObj); - } - }); - } - }; - Handler.prototype._iterateAndFindHover = function () { - var invTransform = mat2d.create(); - return function () { - var list = this.storage.getShapeList(); - var currentZLevel; - var currentLayer; - var tmp = [ - 0, - 0 - ]; - for (var i = list.length - 1; i >= 0; i--) { - var shape = list[i]; - if (currentZLevel !== shape.zlevel) { - currentLayer = this.painter.getLayer(shape.zlevel, currentLayer); - tmp[0] = this._mouseX; - tmp[1] = this._mouseY; - if (currentLayer.needTransform) { - mat2d.invert(invTransform, currentLayer.transform); - vec2.applyTransform(tmp, tmp, invTransform); - } - } - if (this._findHover(shape, tmp[0], tmp[1])) { - break; - } - } - }; - }(); - var MOBILE_TOUCH_OFFSETS = [ - { x: 10 }, - { x: -20 }, - { - x: 10, - y: 10 - }, - { y: -20 } - ]; - Handler.prototype._mobileFindFixed = function (event) { - this._lastHover = null; - this._mouseX = event.zrenderX; - this._mouseY = event.zrenderY; - this._event = event; - this._iterateAndFindHover(); - for (var i = 0; !this._lastHover && i < MOBILE_TOUCH_OFFSETS.length; i++) { - var offset = MOBILE_TOUCH_OFFSETS[i]; - offset.x && (this._mouseX += offset.x); - offset.y && (this._mouseY += offset.y); - this._iterateAndFindHover(); - } - if (this._lastHover) { - event.zrenderX = this._mouseX; - event.zrenderY = this._mouseY; - } - }; - function findHover(shape, x, y) { - if (this._draggingTarget && this._draggingTarget.id == shape.id || shape.isSilent()) { - return false; - } - var event = this._event; - if (shape.isCover(x, y)) { - if (shape.hoverable) { - this.storage.addHover(shape); - } - var p = shape.parent; - while (p) { - if (p.clipShape && !p.clipShape.isCover(this._mouseX, this._mouseY)) { - return false; - } - p = p.parent; - } - if (this._lastHover != shape) { - this._processOutShape(event); - this._processDragLeave(event); - this._lastHover = shape; - this._processDragEnter(event); - } - this._processOverShape(event); - this._processDragOver(event); - this._hasfound = 1; - return true; - } - return false; - } - Handler.prototype._zrenderEventFixed = function (event, isTouch) { - if (event.zrenderFixed) { - return event; - } - if (!isTouch) { - event = event || window.event; - var target = event.toElement || event.relatedTarget || event.srcElement || event.target; - if (target && target != this._domHover) { - event.zrenderX = (typeof event.offsetX != 'undefined' ? event.offsetX : event.layerX) + target.offsetLeft; - event.zrenderY = (typeof event.offsetY != 'undefined' ? event.offsetY : event.layerY) + target.offsetTop; - } - } else { - var touch = event.type != 'touchend' ? event.targetTouches[0] : event.changedTouches[0]; - if (touch) { - var rBounding = this.painter._domRoot.getBoundingClientRect(); - event.zrenderX = touch.clientX - rBounding.left; - event.zrenderY = touch.clientY - rBounding.top; - } - } - event.zrenderFixed = 1; - return event; - }; - util.merge(Handler.prototype, Eventful.prototype, true); - return Handler; -});define('zrender/Painter', [ - 'require', - './config', - './tool/util', - './tool/log', - './loadingEffect/Base', - './Layer', - './shape/Image' -], function (require) { - 'use strict'; - var config = require('./config'); - var util = require('./tool/util'); - var log = require('./tool/log'); - var BaseLoadingEffect = require('./loadingEffect/Base'); - var Layer = require('./Layer'); - function returnFalse() { - return false; - } - function doNothing() { - } - function isLayerValid(layer) { - if (!layer) { - return false; - } - if (layer.isBuildin) { - return true; - } - if (typeof layer.resize !== 'function' || typeof layer.refresh !== 'function') { - return false; - } - return true; - } - var Painter = function (root, storage) { - this.root = root; - root.style['-webkit-tap-highlight-color'] = 'transparent'; - root.style['-webkit-user-select'] = 'none'; - root.style['user-select'] = 'none'; - root.style['-webkit-touch-callout'] = 'none'; - this.storage = storage; - root.innerHTML = ''; - this._width = this._getWidth(); - this._height = this._getHeight(); - var domRoot = document.createElement('div'); - this._domRoot = domRoot; - domRoot.style.position = 'relative'; - domRoot.style.overflow = 'hidden'; - domRoot.style.width = this._width + 'px'; - domRoot.style.height = this._height + 'px'; - root.appendChild(domRoot); - this._layers = {}; - this._zlevelList = []; - this._layerConfig = {}; - this._loadingEffect = new BaseLoadingEffect({}); - this.shapeToImage = this._createShapeToImageProcessor(); - this._bgDom = document.createElement('div'); - this._bgDom.style.cssText = [ - 'position:absolute;left:0px;top:0px;width:', - this._width, - 'px;height:', - this._height + 'px;', - '-webkit-user-select:none;user-select;none;', - '-webkit-touch-callout:none;' - ].join(''); - this._bgDom.setAttribute('data-zr-dom-id', 'bg'); - this._bgDom.className = config.elementClassName; - domRoot.appendChild(this._bgDom); - this._bgDom.onselectstart = returnFalse; - var hoverLayer = new Layer('_zrender_hover_', this); - this._layers['hover'] = hoverLayer; - domRoot.appendChild(hoverLayer.dom); - hoverLayer.initContext(); - hoverLayer.dom.onselectstart = returnFalse; - hoverLayer.dom.style['-webkit-user-select'] = 'none'; - hoverLayer.dom.style['user-select'] = 'none'; - hoverLayer.dom.style['-webkit-touch-callout'] = 'none'; - this.refreshNextFrame = null; - }; - Painter.prototype.render = function (callback) { - if (this.isLoading()) { - this.hideLoading(); - } - this.refresh(callback, true); - return this; - }; - Painter.prototype.refresh = function (callback, paintAll) { - var list = this.storage.getShapeList(true); - this._paintList(list, paintAll); - for (var i = 0; i < this._zlevelList.length; i++) { - var z = this._zlevelList[i]; - var layer = this._layers[z]; - if (!layer.isBuildin && layer.refresh) { - layer.refresh(); - } - } - if (typeof callback == 'function') { - callback(); - } - return this; - }; - Painter.prototype._preProcessLayer = function (layer) { - layer.unusedCount++; - layer.updateTransform(); - }; - Painter.prototype._postProcessLayer = function (layer) { - layer.dirty = false; - if (layer.unusedCount == 1) { - layer.clear(); - } - }; - Painter.prototype._paintList = function (list, paintAll) { - if (typeof paintAll == 'undefined') { - paintAll = false; - } - this._updateLayerStatus(list); - var currentLayer; - var currentZLevel; - var ctx; - this.eachBuildinLayer(this._preProcessLayer); - for (var i = 0, l = list.length; i < l; i++) { - var shape = list[i]; - if (currentZLevel !== shape.zlevel) { - if (currentLayer) { - if (currentLayer.needTransform) { - ctx.restore(); - } - ctx.flush && ctx.flush(); - } - currentZLevel = shape.zlevel; - currentLayer = this.getLayer(currentZLevel); - if (!currentLayer.isBuildin) { - log('ZLevel ' + currentZLevel + ' has been used by unkown layer ' + currentLayer.id); - } - ctx = currentLayer.ctx; - currentLayer.unusedCount = 0; - if (currentLayer.dirty || paintAll) { - currentLayer.clear(); - } - if (currentLayer.needTransform) { - ctx.save(); - currentLayer.setTransform(ctx); - } - } - if ((currentLayer.dirty || paintAll) && !shape.invisible) { - if (!shape.onbrush || shape.onbrush && !shape.onbrush(ctx, false)) { - if (config.catchBrushException) { - try { - shape.brush(ctx, false, this.refreshNextFrame); - } catch (error) { - log(error, 'brush error of ' + shape.type, shape); - } - } else { - shape.brush(ctx, false, this.refreshNextFrame); - } - } - } - shape.__dirty = false; - } - if (currentLayer) { - if (currentLayer.needTransform) { - ctx.restore(); - } - ctx.flush && ctx.flush(); - } - this.eachBuildinLayer(this._postProcessLayer); - }; - Painter.prototype.getLayer = function (zlevel) { - var layer = this._layers[zlevel]; - if (!layer) { - layer = new Layer(zlevel, this); - layer.isBuildin = true; - if (this._layerConfig[zlevel]) { - util.merge(layer, this._layerConfig[zlevel], true); - } - layer.updateTransform(); - this.insertLayer(zlevel, layer); - layer.initContext(); - } - return layer; - }; - Painter.prototype.insertLayer = function (zlevel, layer) { - if (this._layers[zlevel]) { - log('ZLevel ' + zlevel + ' has been used already'); - return; - } - if (!isLayerValid(layer)) { - log('Layer of zlevel ' + zlevel + ' is not valid'); - return; - } - var len = this._zlevelList.length; - var prevLayer = null; - var i = -1; - if (len > 0 && zlevel > this._zlevelList[0]) { - for (i = 0; i < len - 1; i++) { - if (this._zlevelList[i] < zlevel && this._zlevelList[i + 1] > zlevel) { - break; - } - } - prevLayer = this._layers[this._zlevelList[i]]; - } - this._zlevelList.splice(i + 1, 0, zlevel); - var prevDom = prevLayer ? prevLayer.dom : this._bgDom; - if (prevDom.nextSibling) { - prevDom.parentNode.insertBefore(layer.dom, prevDom.nextSibling); - } else { - prevDom.parentNode.appendChild(layer.dom); - } - this._layers[zlevel] = layer; - }; - Painter.prototype.eachLayer = function (cb, context) { - for (var i = 0; i < this._zlevelList.length; i++) { - var z = this._zlevelList[i]; - cb.call(context, this._layers[z], z); - } - }; - Painter.prototype.eachBuildinLayer = function (cb, context) { - for (var i = 0; i < this._zlevelList.length; i++) { - var z = this._zlevelList[i]; - var layer = this._layers[z]; - if (layer.isBuildin) { - cb.call(context, layer, z); - } - } - }; - Painter.prototype.eachOtherLayer = function (cb, context) { - for (var i = 0; i < this._zlevelList.length; i++) { - var z = this._zlevelList[i]; - var layer = this._layers[z]; - if (!layer.isBuildin) { - cb.call(context, layer, z); - } - } - }; - Painter.prototype.getLayers = function () { - return this._layers; - }; - Painter.prototype._updateLayerStatus = function (list) { - var layers = this._layers; - var elCounts = {}; - this.eachBuildinLayer(function (layer, z) { - elCounts[z] = layer.elCount; - layer.elCount = 0; - }); - for (var i = 0, l = list.length; i < l; i++) { - var shape = list[i]; - var zlevel = shape.zlevel; - var layer = layers[zlevel]; - if (layer) { - layer.elCount++; - if (layer.dirty) { - continue; - } - layer.dirty = shape.__dirty; - } - } - this.eachBuildinLayer(function (layer, z) { - if (elCounts[z] !== layer.elCount) { - layer.dirty = true; - } - }); - }; - Painter.prototype.refreshShapes = function (shapeList, callback) { - for (var i = 0, l = shapeList.length; i < l; i++) { - var shape = shapeList[i]; - shape.modSelf(); - } - this.refresh(callback); - return this; - }; - Painter.prototype.setLoadingEffect = function (loadingEffect) { - this._loadingEffect = loadingEffect; - return this; - }; - Painter.prototype.clear = function () { - this.eachBuildinLayer(this._clearLayer); - return this; - }; - Painter.prototype._clearLayer = function (layer) { - layer.clear(); - }; - Painter.prototype.modLayer = function (zlevel, config) { - if (config) { - if (!this._layerConfig[zlevel]) { - this._layerConfig[zlevel] = config; - } else { - util.merge(this._layerConfig[zlevel], config, true); - } - var layer = this._layers[zlevel]; - if (layer) { - util.merge(layer, this._layerConfig[zlevel], true); - } - } - }; - Painter.prototype.delLayer = function (zlevel) { - var layer = this._layers[zlevel]; - if (!layer) { - return; - } - this.modLayer(zlevel, { - position: layer.position, - rotation: layer.rotation, - scale: layer.scale - }); - layer.dom.parentNode.removeChild(layer.dom); - delete this._layers[zlevel]; - this._zlevelList.splice(util.indexOf(this._zlevelList, zlevel), 1); - }; - Painter.prototype.refreshHover = function () { - this.clearHover(); - var list = this.storage.getHoverShapes(true); - for (var i = 0, l = list.length; i < l; i++) { - this._brushHover(list[i]); - } - var ctx = this._layers.hover.ctx; - ctx.flush && ctx.flush(); - this.storage.delHover(); - return this; - }; - Painter.prototype.clearHover = function () { - var hover = this._layers.hover; - hover && hover.clear(); - return this; - }; - Painter.prototype.showLoading = function (loadingEffect) { - this._loadingEffect && this._loadingEffect.stop(); - loadingEffect && this.setLoadingEffect(loadingEffect); - this._loadingEffect.start(this); - this.loading = true; - return this; - }; - Painter.prototype.hideLoading = function () { - this._loadingEffect.stop(); - this.clearHover(); - this.loading = false; - return this; - }; - Painter.prototype.isLoading = function () { - return this.loading; - }; - Painter.prototype.resize = function () { - var domRoot = this._domRoot; - domRoot.style.display = 'none'; - var width = this._getWidth(); - var height = this._getHeight(); - domRoot.style.display = ''; - if (this._width != width || height != this._height) { - this._width = width; - this._height = height; - domRoot.style.width = width + 'px'; - domRoot.style.height = height + 'px'; - for (var id in this._layers) { - this._layers[id].resize(width, height); - } - this.refresh(null, true); - } - return this; - }; - Painter.prototype.clearLayer = function (zLevel) { - var layer = this._layers[zLevel]; - if (layer) { - layer.clear(); - } - }; - Painter.prototype.dispose = function () { - if (this.isLoading()) { - this.hideLoading(); - } - this.root.innerHTML = ''; - this.root = this.storage = this._domRoot = this._layers = null; - }; - Painter.prototype.getDomHover = function () { - return this._layers.hover.dom; - }; - Painter.prototype.toDataURL = function (type, backgroundColor, args) { - if (window['G_vmlCanvasManager']) { - return null; - } - var imageLayer = new Layer('image', this); - this._bgDom.appendChild(imageLayer.dom); - imageLayer.initContext(); - var ctx = imageLayer.ctx; - imageLayer.clearColor = backgroundColor || '#fff'; - imageLayer.clear(); - var self = this; - this.storage.iterShape(function (shape) { - if (!shape.invisible) { - if (!shape.onbrush || shape.onbrush && !shape.onbrush(ctx, false)) { - if (config.catchBrushException) { - try { - shape.brush(ctx, false, self.refreshNextFrame); - } catch (error) { - log(error, 'brush error of ' + shape.type, shape); - } - } else { - shape.brush(ctx, false, self.refreshNextFrame); - } - } - } - }, { - normal: 'up', - update: true - }); - var image = imageLayer.dom.toDataURL(type, args); - ctx = null; - this._bgDom.removeChild(imageLayer.dom); - return image; - }; - Painter.prototype.getWidth = function () { - return this._width; - }; - Painter.prototype.getHeight = function () { - return this._height; - }; - Painter.prototype._getWidth = function () { - var root = this.root; - var stl = root.currentStyle || document.defaultView.getComputedStyle(root); - return ((root.clientWidth || parseInt(stl.width, 10)) - parseInt(stl.paddingLeft, 10) - parseInt(stl.paddingRight, 10)).toFixed(0) - 0; - }; - Painter.prototype._getHeight = function () { - var root = this.root; - var stl = root.currentStyle || document.defaultView.getComputedStyle(root); - return ((root.clientHeight || parseInt(stl.height, 10)) - parseInt(stl.paddingTop, 10) - parseInt(stl.paddingBottom, 10)).toFixed(0) - 0; - }; - Painter.prototype._brushHover = function (shape) { - var ctx = this._layers.hover.ctx; - if (!shape.onbrush || shape.onbrush && !shape.onbrush(ctx, true)) { - var layer = this.getLayer(shape.zlevel); - if (layer.needTransform) { - ctx.save(); - layer.setTransform(ctx); - } - if (config.catchBrushException) { - try { - shape.brush(ctx, true, this.refreshNextFrame); - } catch (error) { - log(error, 'hoverBrush error of ' + shape.type, shape); - } - } else { - shape.brush(ctx, true, this.refreshNextFrame); - } - if (layer.needTransform) { - ctx.restore(); - } - } - }; - Painter.prototype._shapeToImage = function (id, shape, width, height, devicePixelRatio) { - var canvas = document.createElement('canvas'); - var ctx = canvas.getContext('2d'); - canvas.style.width = width + 'px'; - canvas.style.height = height + 'px'; - canvas.setAttribute('width', width * devicePixelRatio); - canvas.setAttribute('height', height * devicePixelRatio); - ctx.clearRect(0, 0, width * devicePixelRatio, height * devicePixelRatio); - var shapeTransform = { - position: shape.position, - rotation: shape.rotation, - scale: shape.scale - }; - shape.position = [ - 0, - 0, - 0 - ]; - shape.rotation = 0; - shape.scale = [ - 1, - 1 - ]; - if (shape) { - shape.brush(ctx, false); - } - var ImageShape = require('./shape/Image'); - var imgShape = new ImageShape({ - id: id, - style: { - x: 0, - y: 0, - image: canvas - } - }); - if (shapeTransform.position != null) { - imgShape.position = shape.position = shapeTransform.position; - } - if (shapeTransform.rotation != null) { - imgShape.rotation = shape.rotation = shapeTransform.rotation; - } - if (shapeTransform.scale != null) { - imgShape.scale = shape.scale = shapeTransform.scale; - } - return imgShape; - }; - Painter.prototype._createShapeToImageProcessor = function () { - if (window['G_vmlCanvasManager']) { - return doNothing; - } - var me = this; - return function (id, e, width, height) { - return me._shapeToImage(id, e, width, height, config.devicePixelRatio); - }; - }; - return Painter; -});define('zrender/Storage', [ - 'require', - './tool/util', - './Group' -], function (require) { - 'use strict'; - var util = require('./tool/util'); - var Group = require('./Group'); - var defaultIterateOption = { - hover: false, - normal: 'down', - update: false - }; - function shapeCompareFunc(a, b) { - if (a.zlevel == b.zlevel) { - if (a.z == b.z) { - return a.__renderidx - b.__renderidx; - } - return a.z - b.z; - } - return a.zlevel - b.zlevel; - } - var Storage = function () { - this._elements = {}; - this._hoverElements = []; - this._roots = []; - this._shapeList = []; - this._shapeListOffset = 0; - }; - Storage.prototype.iterShape = function (fun, option) { - if (!option) { - option = defaultIterateOption; - } - if (option.hover) { - for (var i = 0, l = this._hoverElements.length; i < l; i++) { - var el = this._hoverElements[i]; - el.updateTransform(); - if (fun(el)) { - return this; - } - } - } - if (option.update) { - this.updateShapeList(); - } - switch (option.normal) { - case 'down': - var l = this._shapeList.length; - while (l--) { - if (fun(this._shapeList[l])) { - return this; - } - } - break; - default: - for (var i = 0, l = this._shapeList.length; i < l; i++) { - if (fun(this._shapeList[i])) { - return this; - } - } - break; - } - return this; - }; - Storage.prototype.getHoverShapes = function (update) { - var hoverElements = []; - for (var i = 0, l = this._hoverElements.length; i < l; i++) { - hoverElements.push(this._hoverElements[i]); - var target = this._hoverElements[i].hoverConnect; - if (target) { - var shape; - target = target instanceof Array ? target : [target]; - for (var j = 0, k = target.length; j < k; j++) { - shape = target[j].id ? target[j] : this.get(target[j]); - if (shape) { - hoverElements.push(shape); - } - } - } - } - hoverElements.sort(shapeCompareFunc); - if (update) { - for (var i = 0, l = hoverElements.length; i < l; i++) { - hoverElements[i].updateTransform(); - } - } - return hoverElements; - }; - Storage.prototype.getShapeList = function (update) { - if (update) { - this.updateShapeList(); - } - return this._shapeList; - }; - Storage.prototype.updateShapeList = function () { - this._shapeListOffset = 0; - for (var i = 0, len = this._roots.length; i < len; i++) { - var root = this._roots[i]; - this._updateAndAddShape(root); - } - this._shapeList.length = this._shapeListOffset; - for (var i = 0, len = this._shapeList.length; i < len; i++) { - this._shapeList[i].__renderidx = i; - } - this._shapeList.sort(shapeCompareFunc); - }; - Storage.prototype._updateAndAddShape = function (el, clipShapes) { - if (el.ignore) { - return; - } - el.updateTransform(); - if (el.clipShape) { - el.clipShape.parent = el; - el.clipShape.updateTransform(); - if (clipShapes) { - clipShapes = clipShapes.slice(); - clipShapes.push(el.clipShape); - } else { - clipShapes = [el.clipShape]; - } - } - if (el.type == 'group') { - for (var i = 0; i < el._children.length; i++) { - var child = el._children[i]; - child.__dirty = el.__dirty || child.__dirty; - this._updateAndAddShape(child, clipShapes); - } - el.__dirty = false; - } else { - el.__clipShapes = clipShapes; - this._shapeList[this._shapeListOffset++] = el; - } - }; - Storage.prototype.mod = function (el, params) { - if (typeof el === 'string') { - el = this._elements[el]; - } - if (el) { - el.modSelf(); - if (params) { - if (params.parent || params._storage || params.__clipShapes) { - var target = {}; - for (var name in params) { - if (name === 'parent' || name === '_storage' || name === '__clipShapes') { - continue; - } - if (params.hasOwnProperty(name)) { - target[name] = params[name]; - } - } - util.merge(el, target, true); - } else { - util.merge(el, params, true); - } - } - } - return this; - }; - Storage.prototype.drift = function (shapeId, dx, dy) { - var shape = this._elements[shapeId]; - if (shape) { - shape.needTransform = true; - if (shape.draggable === 'horizontal') { - dy = 0; - } else if (shape.draggable === 'vertical') { - dx = 0; - } - if (!shape.ondrift || shape.ondrift && !shape.ondrift(dx, dy)) { - shape.drift(dx, dy); - } - } - return this; - }; - Storage.prototype.addHover = function (shape) { - shape.updateNeedTransform(); - this._hoverElements.push(shape); - return this; - }; - Storage.prototype.delHover = function () { - this._hoverElements = []; - return this; - }; - Storage.prototype.hasHoverShape = function () { - return this._hoverElements.length > 0; - }; - Storage.prototype.addRoot = function (el) { - if (this._elements[el.id]) { - return; - } - if (el instanceof Group) { - el.addChildrenToStorage(this); - } - this.addToMap(el); - this._roots.push(el); - }; - Storage.prototype.delRoot = function (elId) { - if (typeof elId == 'undefined') { - for (var i = 0; i < this._roots.length; i++) { - var root = this._roots[i]; - if (root instanceof Group) { - root.delChildrenFromStorage(this); - } - } - this._elements = {}; - this._hoverElements = []; - this._roots = []; - this._shapeList = []; - this._shapeListOffset = 0; - return; - } - if (elId instanceof Array) { - for (var i = 0, l = elId.length; i < l; i++) { - this.delRoot(elId[i]); - } - return; - } - var el; - if (typeof elId == 'string') { - el = this._elements[elId]; - } else { - el = elId; - } - var idx = util.indexOf(this._roots, el); - if (idx >= 0) { - this.delFromMap(el.id); - this._roots.splice(idx, 1); - if (el instanceof Group) { - el.delChildrenFromStorage(this); - } - } - }; - Storage.prototype.addToMap = function (el) { - if (el instanceof Group) { - el._storage = this; - } - el.modSelf(); - this._elements[el.id] = el; - return this; - }; - Storage.prototype.get = function (elId) { - return this._elements[elId]; - }; - Storage.prototype.delFromMap = function (elId) { - var el = this._elements[elId]; - if (el) { - delete this._elements[elId]; - if (el instanceof Group) { - el._storage = null; - } - } - return this; - }; - Storage.prototype.dispose = function () { - this._elements = this._renderList = this._roots = this._hoverElements = null; - }; - return Storage; -});define('zrender/animation/Animation', [ - 'require', - './Clip', - '../tool/color', - '../tool/util', - '../tool/event' -], function (require) { - 'use strict'; - var Clip = require('./Clip'); - var color = require('../tool/color'); - var util = require('../tool/util'); - var Dispatcher = require('../tool/event').Dispatcher; - var requestAnimationFrame = window.requestAnimationFrame || window.msRequestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (func) { - setTimeout(func, 16); - }; - var arraySlice = Array.prototype.slice; - var Animation = function (options) { - options = options || {}; - this.stage = options.stage || {}; - this.onframe = options.onframe || function () { - }; - this._clips = []; - this._running = false; - this._time = 0; - Dispatcher.call(this); - }; - Animation.prototype = { - add: function (clip) { - this._clips.push(clip); - }, - remove: function (clip) { - if (clip.__inStep) { - clip.__needsRemove = true; - } else { - var idx = util.indexOf(this._clips, clip); - if (idx >= 0) { - this._clips.splice(idx, 1); - } - } - }, - _update: function () { - var time = new Date().getTime(); - var delta = time - this._time; - var clips = this._clips; - var len = clips.length; - var deferredEvents = []; - var deferredClips = []; - for (var i = 0; i < len; i++) { - var clip = clips[i]; - clip.__inStep = true; - var e = clip.step(time); - clip.__inStep = false; - if (e) { - deferredEvents.push(e); - deferredClips.push(clip); - } - } - for (var i = 0; i < len;) { - if (clips[i].__needsRemove) { - clips[i] = clips[len - 1]; - clips.pop(); - len--; - } else { - i++; - } - } - len = deferredEvents.length; - for (var i = 0; i < len; i++) { - deferredClips[i].fire(deferredEvents[i]); - } - this._time = time; - this.onframe(delta); - this.dispatch('frame', delta); - if (this.stage.update) { - this.stage.update(); - } - }, - start: function () { - var self = this; - this._running = true; - function step() { - if (self._running) { - requestAnimationFrame(step); - self._update(); - } - } - this._time = new Date().getTime(); - requestAnimationFrame(step); - }, - stop: function () { - this._running = false; - }, - clear: function () { - this._clips = []; - }, - animate: function (target, options) { - options = options || {}; - var deferred = new Animator(target, options.loop, options.getter, options.setter); - deferred.animation = this; - return deferred; - }, - constructor: Animation - }; - util.merge(Animation.prototype, Dispatcher.prototype, true); - function _defaultGetter(target, key) { - return target[key]; - } - function _defaultSetter(target, key, value) { - target[key] = value; - } - function _interpolateNumber(p0, p1, percent) { - return (p1 - p0) * percent + p0; - } - function _interpolateArray(p0, p1, percent, out, arrDim) { - var len = p0.length; - if (arrDim == 1) { - for (var i = 0; i < len; i++) { - out[i] = _interpolateNumber(p0[i], p1[i], percent); - } - } else { - var len2 = p0[0].length; - for (var i = 0; i < len; i++) { - for (var j = 0; j < len2; j++) { - out[i][j] = _interpolateNumber(p0[i][j], p1[i][j], percent); - } - } - } - } - function _isArrayLike(data) { - switch (typeof data) { - case 'undefined': - case 'string': - return false; - } - return typeof data.length !== 'undefined'; - } - function _catmullRomInterpolateArray(p0, p1, p2, p3, t, t2, t3, out, arrDim) { - var len = p0.length; - if (arrDim == 1) { - for (var i = 0; i < len; i++) { - out[i] = _catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3); - } - } else { - var len2 = p0[0].length; - for (var i = 0; i < len; i++) { - for (var j = 0; j < len2; j++) { - out[i][j] = _catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3); - } - } - } - } - function _catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) { - var v0 = (p2 - p0) * 0.5; - var v1 = (p3 - p1) * 0.5; - return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1; - } - function _cloneValue(value) { - if (_isArrayLike(value)) { - var len = value.length; - if (_isArrayLike(value[0])) { - var ret = []; - for (var i = 0; i < len; i++) { - ret.push(arraySlice.call(value[i])); - } - return ret; - } else { - return arraySlice.call(value); - } - } else { - return value; - } - } - function rgba2String(rgba) { - rgba[0] = Math.floor(rgba[0]); - rgba[1] = Math.floor(rgba[1]); - rgba[2] = Math.floor(rgba[2]); - return 'rgba(' + rgba.join(',') + ')'; - } - var Animator = function (target, loop, getter, setter) { - this._tracks = {}; - this._target = target; - this._loop = loop || false; - this._getter = getter || _defaultGetter; - this._setter = setter || _defaultSetter; - this._clipCount = 0; - this._delay = 0; - this._doneList = []; - this._onframeList = []; - this._clipList = []; - }; - Animator.prototype = { - when: function (time, props) { - for (var propName in props) { - if (!this._tracks[propName]) { - this._tracks[propName] = []; - if (time !== 0) { - this._tracks[propName].push({ - time: 0, - value: _cloneValue(this._getter(this._target, propName)) - }); - } - } - this._tracks[propName].push({ - time: parseInt(time, 10), - value: props[propName] - }); - } - return this; - }, - during: function (callback) { - this._onframeList.push(callback); - return this; - }, - start: function (easing) { - var self = this; - var setter = this._setter; - var getter = this._getter; - var useSpline = easing === 'spline'; - var ondestroy = function () { - self._clipCount--; - if (self._clipCount === 0) { - self._tracks = {}; - var len = self._doneList.length; - for (var i = 0; i < len; i++) { - self._doneList[i].call(self); - } - } - }; - var createTrackClip = function (keyframes, propName) { - var trackLen = keyframes.length; - if (!trackLen) { - return; - } - var firstVal = keyframes[0].value; - var isValueArray = _isArrayLike(firstVal); - var isValueColor = false; - var arrDim = isValueArray && _isArrayLike(firstVal[0]) ? 2 : 1; - keyframes.sort(function (a, b) { - return a.time - b.time; - }); - var trackMaxTime; - if (trackLen) { - trackMaxTime = keyframes[trackLen - 1].time; - } else { - return; - } - var kfPercents = []; - var kfValues = []; - for (var i = 0; i < trackLen; i++) { - kfPercents.push(keyframes[i].time / trackMaxTime); - var value = keyframes[i].value; - if (typeof value == 'string') { - value = color.toArray(value); - if (value.length === 0) { - value[0] = value[1] = value[2] = 0; - value[3] = 1; - } - isValueColor = true; - } - kfValues.push(value); - } - var cacheKey = 0; - var cachePercent = 0; - var start; - var i; - var w; - var p0; - var p1; - var p2; - var p3; - if (isValueColor) { - var rgba = [ - 0, - 0, - 0, - 0 - ]; - } - var onframe = function (target, percent) { - if (percent < cachePercent) { - start = Math.min(cacheKey + 1, trackLen - 1); - for (i = start; i >= 0; i--) { - if (kfPercents[i] <= percent) { - break; - } - } - i = Math.min(i, trackLen - 2); - } else { - for (i = cacheKey; i < trackLen; i++) { - if (kfPercents[i] > percent) { - break; - } - } - i = Math.min(i - 1, trackLen - 2); - } - cacheKey = i; - cachePercent = percent; - var range = kfPercents[i + 1] - kfPercents[i]; - if (range === 0) { - return; - } else { - w = (percent - kfPercents[i]) / range; - } - if (useSpline) { - p1 = kfValues[i]; - p0 = kfValues[i === 0 ? i : i - 1]; - p2 = kfValues[i > trackLen - 2 ? trackLen - 1 : i + 1]; - p3 = kfValues[i > trackLen - 3 ? trackLen - 1 : i + 2]; - if (isValueArray) { - _catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, getter(target, propName), arrDim); - } else { - var value; - if (isValueColor) { - value = _catmullRomInterpolateArray(p0, p1, p2, p3, w, w * w, w * w * w, rgba, 1); - value = rgba2String(rgba); - } else { - value = _catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w); - } - setter(target, propName, value); - } - } else { - if (isValueArray) { - _interpolateArray(kfValues[i], kfValues[i + 1], w, getter(target, propName), arrDim); - } else { - var value; - if (isValueColor) { - _interpolateArray(kfValues[i], kfValues[i + 1], w, rgba, 1); - value = rgba2String(rgba); - } else { - value = _interpolateNumber(kfValues[i], kfValues[i + 1], w); - } - setter(target, propName, value); - } - } - for (i = 0; i < self._onframeList.length; i++) { - self._onframeList[i](target, percent); - } - }; - var clip = new Clip({ - target: self._target, - life: trackMaxTime, - loop: self._loop, - delay: self._delay, - onframe: onframe, - ondestroy: ondestroy - }); - if (easing && easing !== 'spline') { - clip.easing = easing; - } - self._clipList.push(clip); - self._clipCount++; - self.animation.add(clip); - }; - for (var propName in this._tracks) { - createTrackClip(this._tracks[propName], propName); - } - return this; - }, - stop: function () { - for (var i = 0; i < this._clipList.length; i++) { - var clip = this._clipList[i]; - this.animation.remove(clip); - } - this._clipList = []; - }, - delay: function (time) { - this._delay = time; - return this; - }, - done: function (cb) { - if (cb) { - this._doneList.push(cb); - } - return this; - } - }; - return Animation; -});define('zrender/tool/vector', [], function () { - var ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array; - var vector = { - create: function (x, y) { - var out = new ArrayCtor(2); - out[0] = x || 0; - out[1] = y || 0; - return out; - }, - copy: function (out, v) { - out[0] = v[0]; - out[1] = v[1]; - return out; - }, - clone: function (v) { - var out = new ArrayCtor(2); - out[0] = v[0]; - out[1] = v[1]; - return out; - }, - set: function (out, a, b) { - out[0] = a; - out[1] = b; - return out; - }, - add: function (out, v1, v2) { - out[0] = v1[0] + v2[0]; - out[1] = v1[1] + v2[1]; - return out; - }, - scaleAndAdd: function (out, v1, v2, a) { - out[0] = v1[0] + v2[0] * a; - out[1] = v1[1] + v2[1] * a; - return out; - }, - sub: function (out, v1, v2) { - out[0] = v1[0] - v2[0]; - out[1] = v1[1] - v2[1]; - return out; - }, - len: function (v) { - return Math.sqrt(this.lenSquare(v)); - }, - lenSquare: function (v) { - return v[0] * v[0] + v[1] * v[1]; - }, - mul: function (out, v1, v2) { - out[0] = v1[0] * v2[0]; - out[1] = v1[1] * v2[1]; - return out; - }, - div: function (out, v1, v2) { - out[0] = v1[0] / v2[0]; - out[1] = v1[1] / v2[1]; - return out; - }, - dot: function (v1, v2) { - return v1[0] * v2[0] + v1[1] * v2[1]; - }, - scale: function (out, v, s) { - out[0] = v[0] * s; - out[1] = v[1] * s; - return out; - }, - normalize: function (out, v) { - var d = vector.len(v); - if (d === 0) { - out[0] = 0; - out[1] = 0; - } else { - out[0] = v[0] / d; - out[1] = v[1] / d; - } - return out; - }, - distance: function (v1, v2) { - return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1])); - }, - distanceSquare: function (v1, v2) { - return (v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1]); - }, - negate: function (out, v) { - out[0] = -v[0]; - out[1] = -v[1]; - return out; - }, - lerp: function (out, v1, v2, t) { - out[0] = v1[0] + t * (v2[0] - v1[0]); - out[1] = v1[1] + t * (v2[1] - v1[1]); - return out; - }, - applyTransform: function (out, v, m) { - var x = v[0]; - var y = v[1]; - out[0] = m[0] * x + m[2] * y + m[4]; - out[1] = m[1] * x + m[3] * y + m[5]; - return out; - }, - min: function (out, v1, v2) { - out[0] = Math.min(v1[0], v2[0]); - out[1] = Math.min(v1[1], v2[1]); - return out; - }, - max: function (out, v1, v2) { - out[0] = Math.max(v1[0], v2[0]); - out[1] = Math.max(v1[1], v2[1]); - return out; - } - }; - vector.length = vector.len; - vector.lengthSquare = vector.lenSquare; - vector.dist = vector.distance; - vector.distSquare = vector.distanceSquare; - return vector; -});define('zrender/tool/matrix', [], function () { - var ArrayCtor = typeof Float32Array === 'undefined' ? Array : Float32Array; - var matrix = { - create: function () { - var out = new ArrayCtor(6); - matrix.identity(out); - return out; - }, - identity: function (out) { - out[0] = 1; - out[1] = 0; - out[2] = 0; - out[3] = 1; - out[4] = 0; - out[5] = 0; - return out; - }, - copy: function (out, m) { - out[0] = m[0]; - out[1] = m[1]; - out[2] = m[2]; - out[3] = m[3]; - out[4] = m[4]; - out[5] = m[5]; - return out; - }, - mul: function (out, m1, m2) { - out[0] = m1[0] * m2[0] + m1[2] * m2[1]; - out[1] = m1[1] * m2[0] + m1[3] * m2[1]; - out[2] = m1[0] * m2[2] + m1[2] * m2[3]; - out[3] = m1[1] * m2[2] + m1[3] * m2[3]; - out[4] = m1[0] * m2[4] + m1[2] * m2[5] + m1[4]; - out[5] = m1[1] * m2[4] + m1[3] * m2[5] + m1[5]; - return out; - }, - translate: function (out, a, v) { - out[0] = a[0]; - out[1] = a[1]; - out[2] = a[2]; - out[3] = a[3]; - out[4] = a[4] + v[0]; - out[5] = a[5] + v[1]; - return out; - }, - rotate: function (out, a, rad) { - var aa = a[0]; - var ac = a[2]; - var atx = a[4]; - var ab = a[1]; - var ad = a[3]; - var aty = a[5]; - var st = Math.sin(rad); - var ct = Math.cos(rad); - out[0] = aa * ct + ab * st; - out[1] = -aa * st + ab * ct; - out[2] = ac * ct + ad * st; - out[3] = -ac * st + ct * ad; - out[4] = ct * atx + st * aty; - out[5] = ct * aty - st * atx; - return out; - }, - scale: function (out, a, v) { - var vx = v[0]; - var vy = v[1]; - out[0] = a[0] * vx; - out[1] = a[1] * vy; - out[2] = a[2] * vx; - out[3] = a[3] * vy; - out[4] = a[4] * vx; - out[5] = a[5] * vy; - return out; - }, - invert: function (out, a) { - var aa = a[0]; - var ac = a[2]; - var atx = a[4]; - var ab = a[1]; - var ad = a[3]; - var aty = a[5]; - var det = aa * ad - ab * ac; - if (!det) { - return null; - } - det = 1 / det; - out[0] = ad * det; - out[1] = -ab * det; - out[2] = -ac * det; - out[3] = aa * det; - out[4] = (ac * aty - ad * atx) * det; - out[5] = (ab * atx - aa * aty) * det; - return out; - } - }; - return matrix; -});define('zrender/loadingEffect/Base', [ - 'require', - '../tool/util', - '../shape/Text', - '../shape/Rectangle' -], function (require) { - var util = require('../tool/util'); - var TextShape = require('../shape/Text'); - var RectangleShape = require('../shape/Rectangle'); - var DEFAULT_TEXT = 'Loading...'; - var DEFAULT_TEXT_FONT = 'normal 16px Arial'; - function Base(options) { - this.setOptions(options); - } - Base.prototype.createTextShape = function (textStyle) { - return new TextShape({ - highlightStyle: util.merge({ - x: this.canvasWidth / 2, - y: this.canvasHeight / 2, - text: DEFAULT_TEXT, - textAlign: 'center', - textBaseline: 'middle', - textFont: DEFAULT_TEXT_FONT, - color: '#333', - brushType: 'fill' - }, textStyle, true) - }); - }; - Base.prototype.createBackgroundShape = function (color) { - return new RectangleShape({ - highlightStyle: { - x: 0, - y: 0, - width: this.canvasWidth, - height: this.canvasHeight, - brushType: 'fill', - color: color - } - }); - }; - Base.prototype.start = function (painter) { - this.canvasWidth = painter._width; - this.canvasHeight = painter._height; - function addShapeHandle(param) { - painter.storage.addHover(param); - } - function refreshHandle() { - painter.refreshHover(); - } - this.loadingTimer = this._start(addShapeHandle, refreshHandle); - }; - Base.prototype._start = function () { - return setInterval(function () { - }, 10000); - }; - Base.prototype.stop = function () { - clearInterval(this.loadingTimer); - }; - Base.prototype.setOptions = function (options) { - this.options = options || {}; - }; - Base.prototype.adjust = function (value, region) { - if (value <= region[0]) { - value = region[0]; - } else if (value >= region[1]) { - value = region[1]; - } - return value; - }; - Base.prototype.getLocation = function (loc, totalWidth, totalHeight) { - var x = loc.x != null ? loc.x : 'center'; - switch (x) { - case 'center': - x = Math.floor((this.canvasWidth - totalWidth) / 2); - break; - case 'left': - x = 0; - break; - case 'right': - x = this.canvasWidth - totalWidth; - break; - } - var y = loc.y != null ? loc.y : 'center'; - switch (y) { - case 'center': - y = Math.floor((this.canvasHeight - totalHeight) / 2); - break; - case 'top': - y = 0; - break; - case 'bottom': - y = this.canvasHeight - totalHeight; - break; - } - return { - x: x, - y: y, - width: totalWidth, - height: totalHeight - }; - }; - return Base; -});define('zrender/Layer', [ - 'require', - './mixin/Transformable', - './tool/util', - './config' -], function (require) { - var Transformable = require('./mixin/Transformable'); - var util = require('./tool/util'); - var vmlCanvasManager = window['G_vmlCanvasManager']; - var config = require('./config'); - function returnFalse() { - return false; - } - function createDom(id, type, painter) { - var newDom = document.createElement(type); - var width = painter.getWidth(); - var height = painter.getHeight(); - newDom.style.position = 'absolute'; - newDom.style.left = 0; - newDom.style.top = 0; - newDom.style.width = width + 'px'; - newDom.style.height = height + 'px'; - newDom.width = width * config.devicePixelRatio; - newDom.height = height * config.devicePixelRatio; - newDom.setAttribute('data-zr-dom-id', id); - return newDom; - } - var Layer = function (id, painter) { - this.id = id; - this.dom = createDom(id, 'canvas', painter); - this.dom.onselectstart = returnFalse; - this.dom.style['-webkit-user-select'] = 'none'; - this.dom.style['user-select'] = 'none'; - this.dom.style['-webkit-touch-callout'] = 'none'; - this.dom.style['-webkit-tap-highlight-color'] = 'rgba(0,0,0,0)'; - this.dom.className = config.elementClassName; - vmlCanvasManager && vmlCanvasManager.initElement(this.dom); - this.domBack = null; - this.ctxBack = null; - this.painter = painter; - this.unusedCount = 0; - this.config = null; - this.dirty = true; - this.elCount = 0; - this.clearColor = 0; - this.motionBlur = false; - this.lastFrameAlpha = 0.7; - this.zoomable = false; - this.panable = false; - this.maxZoom = Infinity; - this.minZoom = 0; - Transformable.call(this); - }; - Layer.prototype.initContext = function () { - this.ctx = this.dom.getContext('2d'); - var dpr = config.devicePixelRatio; - if (dpr != 1) { - this.ctx.scale(dpr, dpr); - } - }; - Layer.prototype.createBackBuffer = function () { - if (vmlCanvasManager) { - return; - } - this.domBack = createDom('back-' + this.id, 'canvas', this.painter); - this.ctxBack = this.domBack.getContext('2d'); - var dpr = config.devicePixelRatio; - if (dpr != 1) { - this.ctxBack.scale(dpr, dpr); - } - }; - Layer.prototype.resize = function (width, height) { - var dpr = config.devicePixelRatio; - this.dom.style.width = width + 'px'; - this.dom.style.height = height + 'px'; - this.dom.setAttribute('width', width * dpr); - this.dom.setAttribute('height', height * dpr); - if (dpr != 1) { - this.ctx.scale(dpr, dpr); - } - if (this.domBack) { - this.domBack.setAttribute('width', width * dpr); - this.domBack.setAttribute('height', height * dpr); - if (dpr != 1) { - this.ctxBack.scale(dpr, dpr); - } - } - }; - Layer.prototype.clear = function () { - var dom = this.dom; - var ctx = this.ctx; - var width = dom.width; - var height = dom.height; - var haveClearColor = this.clearColor && !vmlCanvasManager; - var haveMotionBLur = this.motionBlur && !vmlCanvasManager; - var lastFrameAlpha = this.lastFrameAlpha; - var dpr = config.devicePixelRatio; - if (haveMotionBLur) { - if (!this.domBack) { - this.createBackBuffer(); - } - this.ctxBack.globalCompositeOperation = 'copy'; - this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr); - } - ctx.clearRect(0, 0, width / dpr, height / dpr); - if (haveClearColor) { - ctx.save(); - ctx.fillStyle = this.clearColor; - ctx.fillRect(0, 0, width / dpr, height / dpr); - ctx.restore(); - } - if (haveMotionBLur) { - var domBack = this.domBack; - ctx.save(); - ctx.globalAlpha = lastFrameAlpha; - ctx.drawImage(domBack, 0, 0, width / dpr, height / dpr); - ctx.restore(); - } - }; - util.merge(Layer.prototype, Transformable.prototype); - return Layer; -});define('zrender/shape/Text', [ - 'require', - '../tool/area', - './Base', - '../tool/util' -], function (require) { - var area = require('../tool/area'); - var Base = require('./Base'); - var Text = function (options) { - Base.call(this, options); - }; - Text.prototype = { - type: 'text', - brush: function (ctx, isHighlight) { - var style = this.style; - if (isHighlight) { - style = this.getHighlightStyle(style, this.highlightStyle || {}); - } - if (typeof style.text == 'undefined' || style.text === false) { - return; - } - ctx.save(); - this.doClip(ctx); - this.setContext(ctx, style); - this.setTransform(ctx); - if (style.textFont) { - ctx.font = style.textFont; - } - ctx.textAlign = style.textAlign || 'start'; - ctx.textBaseline = style.textBaseline || 'middle'; - var text = (style.text + '').split('\n'); - var lineHeight = area.getTextHeight('国', style.textFont); - var rect = this.getRect(style); - var x = style.x; - var y; - if (style.textBaseline == 'top') { - y = rect.y; - } else if (style.textBaseline == 'bottom') { - y = rect.y + lineHeight; - } else { - y = rect.y + lineHeight / 2; - } - for (var i = 0, l = text.length; i < l; i++) { - if (style.maxWidth) { - switch (style.brushType) { - case 'fill': - ctx.fillText(text[i], x, y, style.maxWidth); - break; - case 'stroke': - ctx.strokeText(text[i], x, y, style.maxWidth); - break; - case 'both': - ctx.fillText(text[i], x, y, style.maxWidth); - ctx.strokeText(text[i], x, y, style.maxWidth); - break; - default: - ctx.fillText(text[i], x, y, style.maxWidth); - } - } else { - switch (style.brushType) { - case 'fill': - ctx.fillText(text[i], x, y); - break; - case 'stroke': - ctx.strokeText(text[i], x, y); - break; - case 'both': - ctx.fillText(text[i], x, y); - ctx.strokeText(text[i], x, y); - break; - default: - ctx.fillText(text[i], x, y); - } - } - y += lineHeight; - } - ctx.restore(); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var width = area.getTextWidth(style.text, style.textFont); - var height = area.getTextHeight(style.text, style.textFont); - var textX = style.x; - if (style.textAlign == 'end' || style.textAlign == 'right') { - textX -= width; - } else if (style.textAlign == 'center') { - textX -= width / 2; - } - var textY; - if (style.textBaseline == 'top') { - textY = style.y; - } else if (style.textBaseline == 'bottom') { - textY = style.y - height; - } else { - textY = style.y - height / 2; - } - style.__rect = { - x: textX, - y: textY, - width: width, - height: height - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Text, Base); - return Text; -});define('zrender/shape/Rectangle', [ - 'require', - './Base', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var Rectangle = function (options) { - Base.call(this, options); - }; - Rectangle.prototype = { - type: 'rectangle', - _buildRadiusPath: function (ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - var r = style.radius; - var r1; - var r2; - var r3; - var r4; - if (typeof r === 'number') { - r1 = r2 = r3 = r4 = r; - } else if (r instanceof Array) { - if (r.length === 1) { - r1 = r2 = r3 = r4 = r[0]; - } else if (r.length === 2) { - r1 = r3 = r[0]; - r2 = r4 = r[1]; - } else if (r.length === 3) { - r1 = r[0]; - r2 = r4 = r[1]; - r3 = r[2]; - } else { - r1 = r[0]; - r2 = r[1]; - r3 = r[2]; - r4 = r[3]; - } - } else { - r1 = r2 = r3 = r4 = 0; - } - var total; - if (r1 + r2 > width) { - total = r1 + r2; - r1 *= width / total; - r2 *= width / total; - } - if (r3 + r4 > width) { - total = r3 + r4; - r3 *= width / total; - r4 *= width / total; - } - if (r2 + r3 > height) { - total = r2 + r3; - r2 *= height / total; - r3 *= height / total; - } - if (r1 + r4 > height) { - total = r1 + r4; - r1 *= height / total; - r4 *= height / total; - } - ctx.moveTo(x + r1, y); - ctx.lineTo(x + width - r2, y); - r2 !== 0 && ctx.quadraticCurveTo(x + width, y, x + width, y + r2); - ctx.lineTo(x + width, y + height - r3); - r3 !== 0 && ctx.quadraticCurveTo(x + width, y + height, x + width - r3, y + height); - ctx.lineTo(x + r4, y + height); - r4 !== 0 && ctx.quadraticCurveTo(x, y + height, x, y + height - r4); - ctx.lineTo(x, y + r1); - r1 !== 0 && ctx.quadraticCurveTo(x, y, x + r1, y); - }, - buildPath: function (ctx, style) { - if (!style.radius) { - ctx.moveTo(style.x, style.y); - ctx.lineTo(style.x + style.width, style.y); - ctx.lineTo(style.x + style.width, style.y + style.height); - ctx.lineTo(style.x, style.y + style.height); - ctx.lineTo(style.x, style.y); - } else { - this._buildRadiusPath(ctx, style); - } - ctx.closePath(); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - style.__rect = { - x: Math.round(style.x - lineWidth / 2), - y: Math.round(style.y - lineWidth / 2), - width: style.width + lineWidth, - height: style.height + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Rectangle, Base); - return Rectangle; -});define('zrender/tool/area', [ - 'require', - './util', - './curve' -], function (require) { - 'use strict'; - var util = require('./util'); - var curve = require('./curve'); - var _ctx; - var _textWidthCache = {}; - var _textHeightCache = {}; - var _textWidthCacheCounter = 0; - var _textHeightCacheCounter = 0; - var TEXT_CACHE_MAX = 5000; - var PI2 = Math.PI * 2; - function normalizeRadian(angle) { - angle %= PI2; - if (angle < 0) { - angle += PI2; - } - return angle; - } - function isInside(shape, area, x, y) { - if (!area || !shape) { - return false; - } - var zoneType = shape.type; - _ctx = _ctx || util.getContext(); - var _mathReturn = _mathMethod(shape, area, x, y); - if (typeof _mathReturn != 'undefined') { - return _mathReturn; - } - if (shape.buildPath && _ctx.isPointInPath) { - return _buildPathMethod(shape, _ctx, area, x, y); - } - switch (zoneType) { - case 'ellipse': - return true; - case 'trochoid': - var _r = area.location == 'out' ? area.r1 + area.r2 + area.d : area.r1 - area.r2 + area.d; - return isInsideCircle(area, x, y, _r); - case 'rose': - return isInsideCircle(area, x, y, area.maxr); - default: - return false; - } - } - function _mathMethod(shape, area, x, y) { - var zoneType = shape.type; - switch (zoneType) { - case 'bezier-curve': - if (typeof area.cpX2 === 'undefined') { - return isInsideQuadraticStroke(area.xStart, area.yStart, area.cpX1, area.cpY1, area.xEnd, area.yEnd, area.lineWidth, x, y); - } - return isInsideCubicStroke(area.xStart, area.yStart, area.cpX1, area.cpY1, area.cpX2, area.cpY2, area.xEnd, area.yEnd, area.lineWidth, x, y); - case 'line': - return isInsideLine(area.xStart, area.yStart, area.xEnd, area.yEnd, area.lineWidth, x, y); - case 'polyline': - return isInsidePolyline(area.pointList, area.lineWidth, x, y); - case 'ring': - return isInsideRing(area.x, area.y, area.r0, area.r, x, y); - case 'circle': - return isInsideCircle(area.x, area.y, area.r, x, y); - case 'sector': - var startAngle = area.startAngle * Math.PI / 180; - var endAngle = area.endAngle * Math.PI / 180; - if (!area.clockWise) { - startAngle = -startAngle; - endAngle = -endAngle; - } - return isInsideSector(area.x, area.y, area.r0, area.r, startAngle, endAngle, !area.clockWise, x, y); - case 'path': - return area.pathArray && isInsidePath(area.pathArray, Math.max(area.lineWidth, 5), area.brushType, x, y); - case 'polygon': - case 'star': - case 'isogon': - return isInsidePolygon(area.pointList, x, y); - case 'text': - var rect = area.__rect || shape.getRect(area); - return isInsideRect(rect.x, rect.y, rect.width, rect.height, x, y); - case 'rectangle': - case 'image': - return isInsideRect(area.x, area.y, area.width, area.height, x, y); - } - } - function _buildPathMethod(shape, context, area, x, y) { - context.beginPath(); - shape.buildPath(context, area); - context.closePath(); - return context.isPointInPath(x, y); - } - function isOutside(shape, area, x, y) { - return !isInside(shape, area, x, y); - } - function isInsideLine(x0, y0, x1, y1, lineWidth, x, y) { - if (lineWidth === 0) { - return false; - } - var _l = Math.max(lineWidth, 5); - var _a = 0; - var _b = x0; - if (y > y0 + _l && y > y1 + _l || y < y0 - _l && y < y1 - _l || x > x0 + _l && x > x1 + _l || x < x0 - _l && x < x1 - _l) { - return false; - } - if (x0 !== x1) { - _a = (y0 - y1) / (x0 - x1); - _b = (x0 * y1 - x1 * y0) / (x0 - x1); - } else { - return Math.abs(x - x0) <= _l / 2; - } - var tmp = _a * x - y + _b; - var _s = tmp * tmp / (_a * _a + 1); - return _s <= _l / 2 * _l / 2; - } - function isInsideCubicStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) { - if (lineWidth === 0) { - return false; - } - var _l = Math.max(lineWidth, 5); - if (y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l) { - return false; - } - var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null); - return d <= _l / 2; - } - function isInsideQuadraticStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) { - if (lineWidth === 0) { - return false; - } - var _l = Math.max(lineWidth, 5); - if (y > y0 + _l && y > y1 + _l && y > y2 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l) { - return false; - } - var d = curve.quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null); - return d <= _l / 2; - } - function isInsideArcStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) { - if (lineWidth === 0) { - return false; - } - var _l = Math.max(lineWidth, 5); - x -= cx; - y -= cy; - var d = Math.sqrt(x * x + y * y); - if (d - _l > r || d + _l < r) { - return false; - } - if (Math.abs(startAngle - endAngle) >= PI2) { - return true; - } - if (anticlockwise) { - var tmp = startAngle; - startAngle = normalizeRadian(endAngle); - endAngle = normalizeRadian(tmp); - } else { - startAngle = normalizeRadian(startAngle); - endAngle = normalizeRadian(endAngle); - } - if (startAngle > endAngle) { - endAngle += PI2; - } - var angle = Math.atan2(y, x); - if (angle < 0) { - angle += PI2; - } - return angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle; - } - function isInsidePolyline(points, lineWidth, x, y) { - var lineWidth = Math.max(lineWidth, 10); - for (var i = 0, l = points.length - 1; i < l; i++) { - var x0 = points[i][0]; - var y0 = points[i][1]; - var x1 = points[i + 1][0]; - var y1 = points[i + 1][1]; - if (isInsideLine(x0, y0, x1, y1, lineWidth, x, y)) { - return true; - } - } - return false; - } - function isInsideRing(cx, cy, r0, r, x, y) { - var d = (x - cx) * (x - cx) + (y - cy) * (y - cy); - return d < r * r && d > r0 * r0; - } - function isInsideRect(x0, y0, width, height, x, y) { - return x >= x0 && x <= x0 + width && y >= y0 && y <= y0 + height; - } - function isInsideCircle(x0, y0, r, x, y) { - return (x - x0) * (x - x0) + (y - y0) * (y - y0) < r * r; - } - function isInsideSector(cx, cy, r0, r, startAngle, endAngle, anticlockwise, x, y) { - return isInsideArcStroke(cx, cy, (r0 + r) / 2, startAngle, endAngle, anticlockwise, r - r0, x, y); - } - function isInsidePolygon(points, x, y) { - var N = points.length; - var w = 0; - for (var i = 0, j = N - 1; i < N; i++) { - var x0 = points[j][0]; - var y0 = points[j][1]; - var x1 = points[i][0]; - var y1 = points[i][1]; - w += windingLine(x0, y0, x1, y1, x, y); - j = i; - } - return w !== 0; - } - function windingLine(x0, y0, x1, y1, x, y) { - if (y > y0 && y > y1 || y < y0 && y < y1) { - return 0; - } - if (y1 == y0) { - return 0; - } - var dir = y1 < y0 ? 1 : -1; - var t = (y - y0) / (y1 - y0); - var x_ = t * (x1 - x0) + x0; - return x_ > x ? dir : 0; - } - var roots = [ - -1, - -1, - -1 - ]; - var extrema = [ - -1, - -1 - ]; - function swapExtrema() { - var tmp = extrema[0]; - extrema[0] = extrema[1]; - extrema[1] = tmp; - } - function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) { - if (y > y0 && y > y1 && y > y2 && y > y3 || y < y0 && y < y1 && y < y2 && y < y3) { - return 0; - } - var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots); - if (nRoots === 0) { - return 0; - } else { - var w = 0; - var nExtrema = -1; - var y0_, y1_; - for (var i = 0; i < nRoots; i++) { - var t = roots[i]; - var x_ = curve.cubicAt(x0, x1, x2, x3, t); - if (x_ < x) { - continue; - } - if (nExtrema < 0) { - nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema); - if (extrema[1] < extrema[0] && nExtrema > 1) { - swapExtrema(); - } - y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]); - if (nExtrema > 1) { - y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]); - } - } - if (nExtrema == 2) { - if (t < extrema[0]) { - w += y0_ < y0 ? 1 : -1; - } else if (t < extrema[1]) { - w += y1_ < y0_ ? 1 : -1; - } else { - w += y3 < y1_ ? 1 : -1; - } - } else { - if (t < extrema[0]) { - w += y0_ < y0 ? 1 : -1; - } else { - w += y3 < y0_ ? 1 : -1; - } - } - } - return w; - } - } - function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) { - if (y > y0 && y > y1 && y > y2 || y < y0 && y < y1 && y < y2) { - return 0; - } - var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots); - if (nRoots === 0) { - return 0; - } else { - var t = curve.quadraticExtremum(y0, y1, y2); - if (t >= 0 && t <= 1) { - var w = 0; - var y_ = curve.quadraticAt(y0, y1, y2, t); - for (var i = 0; i < nRoots; i++) { - var x_ = curve.quadraticAt(x0, x1, x2, roots[i]); - if (x_ < x) { - continue; - } - if (roots[i] < t) { - w += y_ < y0 ? 1 : -1; - } else { - w += y2 < y_ ? 1 : -1; - } - } - return w; - } else { - var x_ = curve.quadraticAt(x0, x1, x2, roots[0]); - if (x_ < x) { - return 0; - } - return y2 < y0 ? 1 : -1; - } - } - } - function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) { - y -= cy; - if (y > r || y < -r) { - return 0; - } - var tmp = Math.sqrt(r * r - y * y); - roots[0] = -tmp; - roots[1] = tmp; - if (Math.abs(startAngle - endAngle) >= PI2) { - startAngle = 0; - endAngle = PI2; - var dir = anticlockwise ? 1 : -1; - if (x >= roots[0] + cx && x <= roots[1] + cx) { - return dir; - } else { - return 0; - } - } - if (anticlockwise) { - var tmp = startAngle; - startAngle = normalizeRadian(endAngle); - endAngle = normalizeRadian(tmp); - } else { - startAngle = normalizeRadian(startAngle); - endAngle = normalizeRadian(endAngle); - } - if (startAngle > endAngle) { - endAngle += PI2; - } - var w = 0; - for (var i = 0; i < 2; i++) { - var x_ = roots[i]; - if (x_ + cx > x) { - var angle = Math.atan2(y, x_); - var dir = anticlockwise ? 1 : -1; - if (angle < 0) { - angle = PI2 + angle; - } - if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) { - if (angle > Math.PI / 2 && angle < Math.PI * 1.5) { - dir = -dir; - } - w += dir; - } - } - } - return w; - } - function isInsidePath(pathArray, lineWidth, brushType, x, y) { - var w = 0; - var xi = 0; - var yi = 0; - var x0 = 0; - var y0 = 0; - var beginSubpath = true; - var firstCmd = true; - brushType = brushType || 'fill'; - var hasStroke = brushType === 'stroke' || brushType === 'both'; - var hasFill = brushType === 'fill' || brushType === 'both'; - for (var i = 0; i < pathArray.length; i++) { - var seg = pathArray[i]; - var p = seg.points; - if (beginSubpath || seg.command === 'M') { - if (i > 0) { - if (hasFill) { - w += windingLine(xi, yi, x0, y0, x, y); - } - if (w !== 0) { - return true; - } - } - x0 = p[p.length - 2]; - y0 = p[p.length - 1]; - beginSubpath = false; - if (firstCmd && seg.command !== 'A') { - firstCmd = false; - xi = x0; - yi = y0; - } - } - switch (seg.command) { - case 'M': - xi = p[0]; - yi = p[1]; - break; - case 'L': - if (hasStroke) { - if (isInsideLine(xi, yi, p[0], p[1], lineWidth, x, y)) { - return true; - } - } - if (hasFill) { - w += windingLine(xi, yi, p[0], p[1], x, y); - } - xi = p[0]; - yi = p[1]; - break; - case 'C': - if (hasStroke) { - if (isInsideCubicStroke(xi, yi, p[0], p[1], p[2], p[3], p[4], p[5], lineWidth, x, y)) { - return true; - } - } - if (hasFill) { - w += windingCubic(xi, yi, p[0], p[1], p[2], p[3], p[4], p[5], x, y); - } - xi = p[4]; - yi = p[5]; - break; - case 'Q': - if (hasStroke) { - if (isInsideQuadraticStroke(xi, yi, p[0], p[1], p[2], p[3], lineWidth, x, y)) { - return true; - } - } - if (hasFill) { - w += windingQuadratic(xi, yi, p[0], p[1], p[2], p[3], x, y); - } - xi = p[2]; - yi = p[3]; - break; - case 'A': - var cx = p[0]; - var cy = p[1]; - var rx = p[2]; - var ry = p[3]; - var theta = p[4]; - var dTheta = p[5]; - var x1 = Math.cos(theta) * rx + cx; - var y1 = Math.sin(theta) * ry + cy; - if (!firstCmd) { - w += windingLine(xi, yi, x1, y1); - } else { - firstCmd = false; - x0 = x1; - y0 = y1; - } - var _x = (x - cx) * ry / rx + cx; - if (hasStroke) { - if (isInsideArcStroke(cx, cy, ry, theta, theta + dTheta, 1 - p[7], lineWidth, _x, y)) { - return true; - } - } - if (hasFill) { - w += windingArc(cx, cy, ry, theta, theta + dTheta, 1 - p[7], _x, y); - } - xi = Math.cos(theta + dTheta) * rx + cx; - yi = Math.sin(theta + dTheta) * ry + cy; - break; - case 'z': - if (hasStroke) { - if (isInsideLine(xi, yi, x0, y0, lineWidth, x, y)) { - return true; - } - } - beginSubpath = true; - break; - } - } - if (hasFill) { - w += windingLine(xi, yi, x0, y0, x, y); - } - return w !== 0; - } - function getTextWidth(text, textFont) { - var key = text + ':' + textFont; - if (_textWidthCache[key]) { - return _textWidthCache[key]; - } - _ctx = _ctx || util.getContext(); - _ctx.save(); - if (textFont) { - _ctx.font = textFont; - } - text = (text + '').split('\n'); - var width = 0; - for (var i = 0, l = text.length; i < l; i++) { - width = Math.max(_ctx.measureText(text[i]).width, width); - } - _ctx.restore(); - _textWidthCache[key] = width; - if (++_textWidthCacheCounter > TEXT_CACHE_MAX) { - _textWidthCacheCounter = 0; - _textWidthCache = {}; - } - return width; - } - function getTextHeight(text, textFont) { - var key = text + ':' + textFont; - if (_textHeightCache[key]) { - return _textHeightCache[key]; - } - _ctx = _ctx || util.getContext(); - _ctx.save(); - if (textFont) { - _ctx.font = textFont; - } - text = (text + '').split('\n'); - var height = (_ctx.measureText('国').width + 2) * text.length; - _ctx.restore(); - _textHeightCache[key] = height; - if (++_textHeightCacheCounter > TEXT_CACHE_MAX) { - _textHeightCacheCounter = 0; - _textHeightCache = {}; - } - return height; - } - return { - isInside: isInside, - isOutside: isOutside, - getTextWidth: getTextWidth, - getTextHeight: getTextHeight, - isInsidePath: isInsidePath, - isInsidePolygon: isInsidePolygon, - isInsideSector: isInsideSector, - isInsideCircle: isInsideCircle, - isInsideLine: isInsideLine, - isInsideRect: isInsideRect, - isInsidePolyline: isInsidePolyline, - isInsideCubicStroke: isInsideCubicStroke, - isInsideQuadraticStroke: isInsideQuadraticStroke - }; -});define('zrender/shape/Base', [ - 'require', - '../tool/matrix', - '../tool/guid', - '../tool/util', - '../tool/log', - '../mixin/Transformable', - '../mixin/Eventful', - '../tool/area', - '../tool/color' -], function (require) { - var vmlCanvasManager = window['G_vmlCanvasManager']; - var matrix = require('../tool/matrix'); - var guid = require('../tool/guid'); - var util = require('../tool/util'); - var log = require('../tool/log'); - var Transformable = require('../mixin/Transformable'); - var Eventful = require('../mixin/Eventful'); - function _fillText(ctx, text, x, y, textFont, textAlign, textBaseline) { - if (textFont) { - ctx.font = textFont; - } - ctx.textAlign = textAlign; - ctx.textBaseline = textBaseline; - var rect = _getTextRect(text, x, y, textFont, textAlign, textBaseline); - text = (text + '').split('\n'); - var lineHeight = require('../tool/area').getTextHeight('国', textFont); - switch (textBaseline) { - case 'top': - y = rect.y; - break; - case 'bottom': - y = rect.y + lineHeight; - break; - default: - y = rect.y + lineHeight / 2; - } - for (var i = 0, l = text.length; i < l; i++) { - ctx.fillText(text[i], x, y); - y += lineHeight; - } - } - function _getTextRect(text, x, y, textFont, textAlign, textBaseline) { - var area = require('../tool/area'); - var width = area.getTextWidth(text, textFont); - var lineHeight = area.getTextHeight('国', textFont); - text = (text + '').split('\n'); - switch (textAlign) { - case 'end': - case 'right': - x -= width; - break; - case 'center': - x -= width / 2; - break; - } - switch (textBaseline) { - case 'top': - break; - case 'bottom': - y -= lineHeight * text.length; - break; - default: - y -= lineHeight * text.length / 2; - } - return { - x: x, - y: y, - width: width, - height: lineHeight * text.length - }; - } - var Base = function (options) { - options = options || {}; - this.id = options.id || guid(); - for (var key in options) { - this[key] = options[key]; - } - this.style = this.style || {}; - this.highlightStyle = this.highlightStyle || null; - this.parent = null; - this.__dirty = true; - this.__clipShapes = []; - Transformable.call(this); - Eventful.call(this); - }; - Base.prototype.invisible = false; - Base.prototype.ignore = false; - Base.prototype.zlevel = 0; - Base.prototype.draggable = false; - Base.prototype.clickable = false; - Base.prototype.hoverable = true; - Base.prototype.z = 0; - Base.prototype.brush = function (ctx, isHighlight) { - var style = this.beforeBrush(ctx, isHighlight); - ctx.beginPath(); - this.buildPath(ctx, style); - switch (style.brushType) { - case 'both': - ctx.fill(); - case 'stroke': - style.lineWidth > 0 && ctx.stroke(); - break; - default: - ctx.fill(); - } - this.drawText(ctx, style, this.style); - this.afterBrush(ctx); - }; - Base.prototype.beforeBrush = function (ctx, isHighlight) { - var style = this.style; - if (this.brushTypeOnly) { - style.brushType = this.brushTypeOnly; - } - if (isHighlight) { - style = this.getHighlightStyle(style, this.highlightStyle || {}, this.brushTypeOnly); - } - if (this.brushTypeOnly == 'stroke') { - style.strokeColor = style.strokeColor || style.color; - } - ctx.save(); - this.doClip(ctx); - this.setContext(ctx, style); - this.setTransform(ctx); - return style; - }; - Base.prototype.afterBrush = function (ctx) { - ctx.restore(); - }; - var STYLE_CTX_MAP = [ - [ - 'color', - 'fillStyle' - ], - [ - 'strokeColor', - 'strokeStyle' - ], - [ - 'opacity', - 'globalAlpha' - ], - [ - 'lineCap', - 'lineCap' - ], - [ - 'lineJoin', - 'lineJoin' - ], - [ - 'miterLimit', - 'miterLimit' - ], - [ - 'lineWidth', - 'lineWidth' - ], - [ - 'shadowBlur', - 'shadowBlur' - ], - [ - 'shadowColor', - 'shadowColor' - ], - [ - 'shadowOffsetX', - 'shadowOffsetX' - ], - [ - 'shadowOffsetY', - 'shadowOffsetY' - ] - ]; - Base.prototype.setContext = function (ctx, style) { - for (var i = 0, len = STYLE_CTX_MAP.length; i < len; i++) { - var styleProp = STYLE_CTX_MAP[i][0]; - var styleValue = style[styleProp]; - var ctxProp = STYLE_CTX_MAP[i][1]; - if (typeof styleValue != 'undefined') { - ctx[ctxProp] = styleValue; - } - } - }; - var clipShapeInvTransform = matrix.create(); - Base.prototype.doClip = function (ctx) { - if (this.__clipShapes && !vmlCanvasManager) { - for (var i = 0; i < this.__clipShapes.length; i++) { - var clipShape = this.__clipShapes[i]; - if (clipShape.needTransform) { - var m = clipShape.transform; - matrix.invert(clipShapeInvTransform, m); - ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]); - } - ctx.beginPath(); - clipShape.buildPath(ctx, clipShape.style); - ctx.clip(); - if (clipShape.needTransform) { - var m = clipShapeInvTransform; - ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]); - } - } - } - }; - Base.prototype.getHighlightStyle = function (style, highlightStyle, brushTypeOnly) { - var newStyle = {}; - for (var k in style) { - newStyle[k] = style[k]; - } - var color = require('../tool/color'); - var highlightColor = color.getHighlightColor(); - if (style.brushType != 'stroke') { - newStyle.strokeColor = highlightColor; - newStyle.lineWidth = (style.lineWidth || 1) + this.getHighlightZoom(); - newStyle.brushType = 'both'; - } else { - if (brushTypeOnly != 'stroke') { - newStyle.strokeColor = highlightColor; - newStyle.lineWidth = (style.lineWidth || 1) + this.getHighlightZoom(); - } else { - newStyle.strokeColor = highlightStyle.strokeColor || color.mix(style.strokeColor, color.toRGB(highlightColor)); - } - } - for (var k in highlightStyle) { - if (typeof highlightStyle[k] != 'undefined') { - newStyle[k] = highlightStyle[k]; - } - } - return newStyle; - }; - Base.prototype.getHighlightZoom = function () { - return this.type != 'text' ? 6 : 2; - }; - Base.prototype.drift = function (dx, dy) { - this.position[0] += dx; - this.position[1] += dy; - }; - Base.prototype.buildPath = function (ctx, style) { - log('buildPath not implemented in ' + this.type); - }; - Base.prototype.getRect = function (style) { - log('getRect not implemented in ' + this.type); - }; - Base.prototype.isCover = function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - if (this.isCoverRect(x, y)) { - return require('../tool/area').isInside(this, this.style, x, y); - } - return false; - }; - Base.prototype.isCoverRect = function (x, y) { - var rect = this.style.__rect; - if (!rect) { - rect = this.style.__rect = this.getRect(this.style); - } - return x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height; - }; - Base.prototype.drawText = function (ctx, style, normalStyle) { - if (typeof style.text == 'undefined' || style.text === false) { - return; - } - var textColor = style.textColor || style.color || style.strokeColor; - ctx.fillStyle = textColor; - var dd = 10; - var al; - var bl; - var tx; - var ty; - var textPosition = style.textPosition || this.textPosition || 'top'; - switch (textPosition) { - case 'inside': - case 'top': - case 'bottom': - case 'left': - case 'right': - if (this.getRect) { - var rect = (normalStyle || style).__rect || this.getRect(normalStyle || style); - switch (textPosition) { - case 'inside': - tx = rect.x + rect.width / 2; - ty = rect.y + rect.height / 2; - al = 'center'; - bl = 'middle'; - if (style.brushType != 'stroke' && textColor == style.color) { - ctx.fillStyle = '#fff'; - } - break; - case 'left': - tx = rect.x - dd; - ty = rect.y + rect.height / 2; - al = 'end'; - bl = 'middle'; - break; - case 'right': - tx = rect.x + rect.width + dd; - ty = rect.y + rect.height / 2; - al = 'start'; - bl = 'middle'; - break; - case 'top': - tx = rect.x + rect.width / 2; - ty = rect.y - dd; - al = 'center'; - bl = 'bottom'; - break; - case 'bottom': - tx = rect.x + rect.width / 2; - ty = rect.y + rect.height + dd; - al = 'center'; - bl = 'top'; - break; - } - } - break; - case 'start': - case 'end': - var pointList = style.pointList || [ - [ - style.xStart || 0, - style.yStart || 0 - ], - [ - style.xEnd || 0, - style.yEnd || 0 - ] - ]; - var length = pointList.length; - if (length < 2) { - return; - } - var xStart; - var xEnd; - var yStart; - var yEnd; - switch (textPosition) { - case 'start': - xStart = pointList[1][0]; - xEnd = pointList[0][0]; - yStart = pointList[1][1]; - yEnd = pointList[0][1]; - break; - case 'end': - xStart = pointList[length - 2][0]; - xEnd = pointList[length - 1][0]; - yStart = pointList[length - 2][1]; - yEnd = pointList[length - 1][1]; - break; - } - tx = xEnd; - ty = yEnd; - var angle = Math.atan((yStart - yEnd) / (xEnd - xStart)) / Math.PI * 180; - if (xEnd - xStart < 0) { - angle += 180; - } else if (yStart - yEnd < 0) { - angle += 360; - } - dd = 5; - if (angle >= 30 && angle <= 150) { - al = 'center'; - bl = 'bottom'; - ty -= dd; - } else if (angle > 150 && angle < 210) { - al = 'right'; - bl = 'middle'; - tx -= dd; - } else if (angle >= 210 && angle <= 330) { - al = 'center'; - bl = 'top'; - ty += dd; - } else { - al = 'left'; - bl = 'middle'; - tx += dd; - } - break; - case 'specific': - tx = style.textX || 0; - ty = style.textY || 0; - al = 'start'; - bl = 'middle'; - break; - } - if (tx != null && ty != null) { - _fillText(ctx, style.text, tx, ty, style.textFont, style.textAlign || al, style.textBaseline || bl); - } - }; - Base.prototype.modSelf = function () { - this.__dirty = true; - if (this.style) { - this.style.__rect = null; - } - if (this.highlightStyle) { - this.highlightStyle.__rect = null; - } - }; - Base.prototype.isSilent = function () { - return !(this.hoverable || this.draggable || this.clickable || this.onmousemove || this.onmouseover || this.onmouseout || this.onmousedown || this.onmouseup || this.onclick || this.ondragenter || this.ondragover || this.ondragleave || this.ondrop); - }; - util.merge(Base.prototype, Transformable.prototype, true); - util.merge(Base.prototype, Eventful.prototype, true); - return Base; -});define('zrender/tool/curve', [ - 'require', - './vector' -], function (require) { - var vector = require('./vector'); - 'use strict'; - var EPSILON = 0.0001; - var THREE_SQRT = Math.sqrt(3); - var ONE_THIRD = 1 / 3; - var _v0 = vector.create(); - var _v1 = vector.create(); - var _v2 = vector.create(); - function isAroundZero(val) { - return val > -EPSILON && val < EPSILON; - } - function isNotAroundZero(val) { - return val > EPSILON || val < -EPSILON; - } - function cubicAt(p0, p1, p2, p3, t) { - var onet = 1 - t; - return onet * onet * (onet * p0 + 3 * t * p1) + t * t * (t * p3 + 3 * onet * p2); - } - function cubicDerivativeAt(p0, p1, p2, p3, t) { - var onet = 1 - t; - return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet + (p3 - p2) * t * t); - } - function cubicRootAt(p0, p1, p2, p3, val, roots) { - var a = p3 + 3 * (p1 - p2) - p0; - var b = 3 * (p2 - p1 * 2 + p0); - var c = 3 * (p1 - p0); - var d = p0 - val; - var A = b * b - 3 * a * c; - var B = b * c - 9 * a * d; - var C = c * c - 3 * b * d; - var n = 0; - if (isAroundZero(A) && isAroundZero(B)) { - if (isAroundZero(b)) { - roots[0] = 0; - } else { - var t1 = -c / b; - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - } - } else { - var disc = B * B - 4 * A * C; - if (isAroundZero(disc)) { - var K = B / A; - var t1 = -b / a + K; - var t2 = -K / 2; - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - if (t2 >= 0 && t2 <= 1) { - roots[n++] = t2; - } - } else if (disc > 0) { - var discSqrt = Math.sqrt(disc); - var Y1 = A * b + 1.5 * a * (-B + discSqrt); - var Y2 = A * b + 1.5 * a * (-B - discSqrt); - if (Y1 < 0) { - Y1 = -Math.pow(-Y1, ONE_THIRD); - } else { - Y1 = Math.pow(Y1, ONE_THIRD); - } - if (Y2 < 0) { - Y2 = -Math.pow(-Y2, ONE_THIRD); - } else { - Y2 = Math.pow(Y2, ONE_THIRD); - } - var t1 = (-b - (Y1 + Y2)) / (3 * a); - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - } else { - var T = (2 * A * b - 3 * a * B) / (2 * Math.sqrt(A * A * A)); - var theta = Math.acos(T) / 3; - var ASqrt = Math.sqrt(A); - var tmp = Math.cos(theta); - var t1 = (-b - 2 * ASqrt * tmp) / (3 * a); - var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a); - var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a); - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - if (t2 >= 0 && t2 <= 1) { - roots[n++] = t2; - } - if (t3 >= 0 && t3 <= 1) { - roots[n++] = t3; - } - } - } - return n; - } - function cubicExtrema(p0, p1, p2, p3, extrema) { - var b = 6 * p2 - 12 * p1 + 6 * p0; - var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2; - var c = 3 * p1 - 3 * p0; - var n = 0; - if (isAroundZero(a)) { - if (isNotAroundZero(b)) { - var t1 = -c / b; - if (t1 >= 0 && t1 <= 1) { - extrema[n++] = t1; - } - } - } else { - var disc = b * b - 4 * a * c; - if (isAroundZero(disc)) { - extrema[0] = -b / (2 * a); - } else if (disc > 0) { - var discSqrt = Math.sqrt(disc); - var t1 = (-b + discSqrt) / (2 * a); - var t2 = (-b - discSqrt) / (2 * a); - if (t1 >= 0 && t1 <= 1) { - extrema[n++] = t1; - } - if (t2 >= 0 && t2 <= 1) { - extrema[n++] = t2; - } - } - } - return n; - } - function cubicSubdivide(p0, p1, p2, p3, t, out) { - var p01 = (p1 - p0) * t + p0; - var p12 = (p2 - p1) * t + p1; - var p23 = (p3 - p2) * t + p2; - var p012 = (p12 - p01) * t + p01; - var p123 = (p23 - p12) * t + p12; - var p0123 = (p123 - p012) * t + p012; - out[0] = p0; - out[1] = p01; - out[2] = p012; - out[3] = p0123; - out[4] = p0123; - out[5] = p123; - out[6] = p23; - out[7] = p3; - } - function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) { - var t; - var interval = 0.005; - var d = Infinity; - _v0[0] = x; - _v0[1] = y; - for (var _t = 0; _t < 1; _t += 0.05) { - _v1[0] = cubicAt(x0, x1, x2, x3, _t); - _v1[1] = cubicAt(y0, y1, y2, y3, _t); - var d1 = vector.distSquare(_v0, _v1); - if (d1 < d) { - t = _t; - d = d1; - } - } - d = Infinity; - for (var i = 0; i < 32; i++) { - if (interval < EPSILON) { - break; - } - var prev = t - interval; - var next = t + interval; - _v1[0] = cubicAt(x0, x1, x2, x3, prev); - _v1[1] = cubicAt(y0, y1, y2, y3, prev); - var d1 = vector.distSquare(_v1, _v0); - if (prev >= 0 && d1 < d) { - t = prev; - d = d1; - } else { - _v2[0] = cubicAt(x0, x1, x2, x3, next); - _v2[1] = cubicAt(y0, y1, y2, y3, next); - var d2 = vector.distSquare(_v2, _v0); - if (next <= 1 && d2 < d) { - t = next; - d = d2; - } else { - interval *= 0.5; - } - } - } - if (out) { - out[0] = cubicAt(x0, x1, x2, x3, t); - out[1] = cubicAt(y0, y1, y2, y3, t); - } - return Math.sqrt(d); - } - function quadraticAt(p0, p1, p2, t) { - var onet = 1 - t; - return onet * (onet * p0 + 2 * t * p1) + t * t * p2; - } - function quadraticDerivativeAt(p0, p1, p2, t) { - return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1)); - } - function quadraticRootAt(p0, p1, p2, val, roots) { - var a = p0 - 2 * p1 + p2; - var b = 2 * (p1 - p0); - var c = p0 - val; - var n = 0; - if (isAroundZero(a)) { - if (isNotAroundZero(b)) { - var t1 = -c / b; - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - } - } else { - var disc = b * b - 4 * a * c; - if (isAroundZero(disc)) { - var t1 = -b / (2 * a); - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - } else if (disc > 0) { - var discSqrt = Math.sqrt(disc); - var t1 = (-b + discSqrt) / (2 * a); - var t2 = (-b - discSqrt) / (2 * a); - if (t1 >= 0 && t1 <= 1) { - roots[n++] = t1; - } - if (t2 >= 0 && t2 <= 1) { - roots[n++] = t2; - } - } - } - return n; - } - function quadraticExtremum(p0, p1, p2) { - var divider = p0 + p2 - 2 * p1; - if (divider === 0) { - return 0.5; - } else { - return (p0 - p1) / divider; - } - } - function quadraticSubdivide(p0, p1, p2, t, out) { - var p01 = (p1 - p0) * t + p0; - var p12 = (p2 - p1) * t + p1; - var p012 = (p12 - p01) * t + p01; - out[0] = p0; - out[1] = p01; - out[2] = p012; - out[3] = p012; - out[4] = p12; - out[5] = p2; - } - function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) { - var t; - var interval = 0.005; - var d = Infinity; - _v0[0] = x; - _v0[1] = y; - for (var _t = 0; _t < 1; _t += 0.05) { - _v1[0] = quadraticAt(x0, x1, x2, _t); - _v1[1] = quadraticAt(y0, y1, y2, _t); - var d1 = vector.distSquare(_v0, _v1); - if (d1 < d) { - t = _t; - d = d1; - } - } - d = Infinity; - for (var i = 0; i < 32; i++) { - if (interval < EPSILON) { - break; - } - var prev = t - interval; - var next = t + interval; - _v1[0] = quadraticAt(x0, x1, x2, prev); - _v1[1] = quadraticAt(y0, y1, y2, prev); - var d1 = vector.distSquare(_v1, _v0); - if (prev >= 0 && d1 < d) { - t = prev; - d = d1; - } else { - _v2[0] = quadraticAt(x0, x1, x2, next); - _v2[1] = quadraticAt(y0, y1, y2, next); - var d2 = vector.distSquare(_v2, _v0); - if (next <= 1 && d2 < d) { - t = next; - d = d2; - } else { - interval *= 0.5; - } - } - } - if (out) { - out[0] = quadraticAt(x0, x1, x2, t); - out[1] = quadraticAt(y0, y1, y2, t); - } - return Math.sqrt(d); - } - return { - cubicAt: cubicAt, - cubicDerivativeAt: cubicDerivativeAt, - cubicRootAt: cubicRootAt, - cubicExtrema: cubicExtrema, - cubicSubdivide: cubicSubdivide, - cubicProjectPoint: cubicProjectPoint, - quadraticAt: quadraticAt, - quadraticDerivativeAt: quadraticDerivativeAt, - quadraticRootAt: quadraticRootAt, - quadraticExtremum: quadraticExtremum, - quadraticSubdivide: quadraticSubdivide, - quadraticProjectPoint: quadraticProjectPoint - }; -});define('zrender/mixin/Transformable', [ - 'require', - '../tool/matrix', - '../tool/vector' -], function (require) { - 'use strict'; - var matrix = require('../tool/matrix'); - var vector = require('../tool/vector'); - var origin = [ - 0, - 0 - ]; - var mTranslate = matrix.translate; - var EPSILON = 0.00005; - function isAroundZero(val) { - return val > -EPSILON && val < EPSILON; - } - function isNotAroundZero(val) { - return val > EPSILON || val < -EPSILON; - } - var Transformable = function () { - if (!this.position) { - this.position = [ - 0, - 0 - ]; - } - if (typeof this.rotation == 'undefined') { - this.rotation = [ - 0, - 0, - 0 - ]; - } - if (!this.scale) { - this.scale = [ - 1, - 1, - 0, - 0 - ]; - } - this.needLocalTransform = false; - this.needTransform = false; - }; - Transformable.prototype = { - constructor: Transformable, - updateNeedTransform: function () { - this.needLocalTransform = isNotAroundZero(this.rotation[0]) || isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1]) || isNotAroundZero(this.scale[0] - 1) || isNotAroundZero(this.scale[1] - 1); - }, - updateTransform: function () { - this.updateNeedTransform(); - var parentHasTransform = this.parent && this.parent.needTransform; - this.needTransform = this.needLocalTransform || parentHasTransform; - if (!this.needTransform) { - return; - } - var m = this.transform || matrix.create(); - matrix.identity(m); - if (this.needLocalTransform) { - var scale = this.scale; - if (isNotAroundZero(scale[0]) || isNotAroundZero(scale[1])) { - origin[0] = -scale[2] || 0; - origin[1] = -scale[3] || 0; - var haveOrigin = isNotAroundZero(origin[0]) || isNotAroundZero(origin[1]); - if (haveOrigin) { - mTranslate(m, m, origin); - } - matrix.scale(m, m, scale); - if (haveOrigin) { - origin[0] = -origin[0]; - origin[1] = -origin[1]; - mTranslate(m, m, origin); - } - } - if (this.rotation instanceof Array) { - if (this.rotation[0] !== 0) { - origin[0] = -this.rotation[1] || 0; - origin[1] = -this.rotation[2] || 0; - var haveOrigin = isNotAroundZero(origin[0]) || isNotAroundZero(origin[1]); - if (haveOrigin) { - mTranslate(m, m, origin); - } - matrix.rotate(m, m, this.rotation[0]); - if (haveOrigin) { - origin[0] = -origin[0]; - origin[1] = -origin[1]; - mTranslate(m, m, origin); - } - } - } else { - if (this.rotation !== 0) { - matrix.rotate(m, m, this.rotation); - } - } - if (isNotAroundZero(this.position[0]) || isNotAroundZero(this.position[1])) { - mTranslate(m, m, this.position); - } - } - if (parentHasTransform) { - if (this.needLocalTransform) { - matrix.mul(m, this.parent.transform, m); - } else { - matrix.copy(m, this.parent.transform); - } - } - this.transform = m; - this.invTransform = this.invTransform || matrix.create(); - matrix.invert(this.invTransform, m); - }, - setTransform: function (ctx) { - if (this.needTransform) { - var m = this.transform; - ctx.transform(m[0], m[1], m[2], m[3], m[4], m[5]); - } - }, - lookAt: function () { - var v = vector.create(); - return function (target) { - if (!this.transform) { - this.transform = matrix.create(); - } - var m = this.transform; - vector.sub(v, target, this.position); - if (isAroundZero(v[0]) && isAroundZero(v[1])) { - return; - } - vector.normalize(v, v); - var scale = this.scale; - m[2] = v[0] * scale[1]; - m[3] = v[1] * scale[1]; - m[0] = v[1] * scale[0]; - m[1] = -v[0] * scale[0]; - m[4] = this.position[0]; - m[5] = this.position[1]; - this.decomposeTransform(); - }; - }(), - decomposeTransform: function () { - if (!this.transform) { - return; - } - var m = this.transform; - var sx = m[0] * m[0] + m[1] * m[1]; - var position = this.position; - var scale = this.scale; - var rotation = this.rotation; - if (isNotAroundZero(sx - 1)) { - sx = Math.sqrt(sx); - } - var sy = m[2] * m[2] + m[3] * m[3]; - if (isNotAroundZero(sy - 1)) { - sy = Math.sqrt(sy); - } - position[0] = m[4]; - position[1] = m[5]; - scale[0] = sx; - scale[1] = sy; - scale[2] = scale[3] = 0; - rotation[0] = Math.atan2(-m[1] / sy, m[0] / sx); - rotation[1] = rotation[2] = 0; - }, - transformCoordToLocal: function (x, y) { - var v2 = [ - x, - y - ]; - if (this.needTransform && this.invTransform) { - vector.applyTransform(v2, v2, this.invTransform); - } - return v2; - } - }; - return Transformable; -});define('zrender/Group', [ - 'require', - './tool/guid', - './tool/util', - './mixin/Transformable', - './mixin/Eventful' -], function (require) { - var guid = require('./tool/guid'); - var util = require('./tool/util'); - var Transformable = require('./mixin/Transformable'); - var Eventful = require('./mixin/Eventful'); - var Group = function (options) { - options = options || {}; - this.id = options.id || guid(); - for (var key in options) { - this[key] = options[key]; - } - this.type = 'group'; - this.clipShape = null; - this._children = []; - this._storage = null; - this.__dirty = true; - Transformable.call(this); - Eventful.call(this); - }; - Group.prototype.ignore = false; - Group.prototype.children = function () { - return this._children.slice(); - }; - Group.prototype.childAt = function (idx) { - return this._children[idx]; - }; - Group.prototype.addChild = function (child) { - if (child == this) { - return; - } - if (child.parent == this) { - return; - } - if (child.parent) { - child.parent.removeChild(child); - } - this._children.push(child); - child.parent = this; - if (this._storage && this._storage !== child._storage) { - this._storage.addToMap(child); - if (child instanceof Group) { - child.addChildrenToStorage(this._storage); - } - } - }; - Group.prototype.removeChild = function (child) { - var idx = util.indexOf(this._children, child); - if (idx >= 0) { - this._children.splice(idx, 1); - } - child.parent = null; - if (this._storage) { - this._storage.delFromMap(child.id); - if (child instanceof Group) { - child.delChildrenFromStorage(this._storage); - } - } - }; - Group.prototype.clearChildren = function () { - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - if (this._storage) { - this._storage.delFromMap(child.id); - if (child instanceof Group) { - child.delChildrenFromStorage(this._storage); - } - } - } - this._children.length = 0; - }; - Group.prototype.eachChild = function (cb, context) { - var haveContext = !!context; - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - if (haveContext) { - cb.call(context, child); - } else { - cb(child); - } - } - }; - Group.prototype.traverse = function (cb, context) { - var haveContext = !!context; - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - if (haveContext) { - cb.call(context, child); - } else { - cb(child); - } - if (child.type === 'group') { - child.traverse(cb, context); - } - } - }; - Group.prototype.addChildrenToStorage = function (storage) { - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - storage.addToMap(child); - if (child instanceof Group) { - child.addChildrenToStorage(storage); - } - } - }; - Group.prototype.delChildrenFromStorage = function (storage) { - for (var i = 0; i < this._children.length; i++) { - var child = this._children[i]; - storage.delFromMap(child.id); - if (child instanceof Group) { - child.delChildrenFromStorage(storage); - } - } - }; - Group.prototype.modSelf = function () { - this.__dirty = true; - }; - util.merge(Group.prototype, Transformable.prototype, true); - util.merge(Group.prototype, Eventful.prototype, true); - return Group; -});define('zrender/animation/Clip', [ - 'require', - './easing' -], function (require) { - var Easing = require('./easing'); - function Clip(options) { - this._targetPool = options.target || {}; - if (!(this._targetPool instanceof Array)) { - this._targetPool = [this._targetPool]; - } - this._life = options.life || 1000; - this._delay = options.delay || 0; - this._startTime = new Date().getTime() + this._delay; - this._endTime = this._startTime + this._life * 1000; - this.loop = typeof options.loop == 'undefined' ? false : options.loop; - this.gap = options.gap || 0; - this.easing = options.easing || 'Linear'; - this.onframe = options.onframe; - this.ondestroy = options.ondestroy; - this.onrestart = options.onrestart; - } - Clip.prototype = { - step: function (time) { - var percent = (time - this._startTime) / this._life; - if (percent < 0) { - return; - } - percent = Math.min(percent, 1); - var easingFunc = typeof this.easing == 'string' ? Easing[this.easing] : this.easing; - var schedule = typeof easingFunc === 'function' ? easingFunc(percent) : percent; - this.fire('frame', schedule); - if (percent == 1) { - if (this.loop) { - this.restart(); - return 'restart'; - } - this.__needsRemove = true; - return 'destroy'; - } - return null; - }, - restart: function () { - var time = new Date().getTime(); - var remainder = (time - this._startTime) % this._life; - this._startTime = new Date().getTime() - remainder + this.gap; - this.__needsRemove = false; - }, - fire: function (eventType, arg) { - for (var i = 0, len = this._targetPool.length; i < len; i++) { - if (this['on' + eventType]) { - this['on' + eventType](this._targetPool[i], arg); - } - } - }, - constructor: Clip - }; - return Clip; -});define('zrender/animation/easing', [], function () { - var easing = { - Linear: function (k) { - return k; - }, - QuadraticIn: function (k) { - return k * k; - }, - QuadraticOut: function (k) { - return k * (2 - k); - }, - QuadraticInOut: function (k) { - if ((k *= 2) < 1) { - return 0.5 * k * k; - } - return -0.5 * (--k * (k - 2) - 1); - }, - CubicIn: function (k) { - return k * k * k; - }, - CubicOut: function (k) { - return --k * k * k + 1; - }, - CubicInOut: function (k) { - if ((k *= 2) < 1) { - return 0.5 * k * k * k; - } - return 0.5 * ((k -= 2) * k * k + 2); - }, - QuarticIn: function (k) { - return k * k * k * k; - }, - QuarticOut: function (k) { - return 1 - --k * k * k * k; - }, - QuarticInOut: function (k) { - if ((k *= 2) < 1) { - return 0.5 * k * k * k * k; - } - return -0.5 * ((k -= 2) * k * k * k - 2); - }, - QuinticIn: function (k) { - return k * k * k * k * k; - }, - QuinticOut: function (k) { - return --k * k * k * k * k + 1; - }, - QuinticInOut: function (k) { - if ((k *= 2) < 1) { - return 0.5 * k * k * k * k * k; - } - return 0.5 * ((k -= 2) * k * k * k * k + 2); - }, - SinusoidalIn: function (k) { - return 1 - Math.cos(k * Math.PI / 2); - }, - SinusoidalOut: function (k) { - return Math.sin(k * Math.PI / 2); - }, - SinusoidalInOut: function (k) { - return 0.5 * (1 - Math.cos(Math.PI * k)); - }, - ExponentialIn: function (k) { - return k === 0 ? 0 : Math.pow(1024, k - 1); - }, - ExponentialOut: function (k) { - return k === 1 ? 1 : 1 - Math.pow(2, -10 * k); - }, - ExponentialInOut: function (k) { - if (k === 0) { - return 0; - } - if (k === 1) { - return 1; - } - if ((k *= 2) < 1) { - return 0.5 * Math.pow(1024, k - 1); - } - return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2); - }, - CircularIn: function (k) { - return 1 - Math.sqrt(1 - k * k); - }, - CircularOut: function (k) { - return Math.sqrt(1 - --k * k); - }, - CircularInOut: function (k) { - if ((k *= 2) < 1) { - return -0.5 * (Math.sqrt(1 - k * k) - 1); - } - return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1); - }, - ElasticIn: function (k) { - var s; - var a = 0.1; - var p = 0.4; - if (k === 0) { - return 0; - } - if (k === 1) { - return 1; - } - if (!a || a < 1) { - a = 1; - s = p / 4; - } else { - s = p * Math.asin(1 / a) / (2 * Math.PI); - } - return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); - }, - ElasticOut: function (k) { - var s; - var a = 0.1; - var p = 0.4; - if (k === 0) { - return 0; - } - if (k === 1) { - return 1; - } - if (!a || a < 1) { - a = 1; - s = p / 4; - } else { - s = p * Math.asin(1 / a) / (2 * Math.PI); - } - return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1; - }, - ElasticInOut: function (k) { - var s; - var a = 0.1; - var p = 0.4; - if (k === 0) { - return 0; - } - if (k === 1) { - return 1; - } - if (!a || a < 1) { - a = 1; - s = p / 4; - } else { - s = p * Math.asin(1 / a) / (2 * Math.PI); - } - if ((k *= 2) < 1) { - return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); - } - return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1; - }, - BackIn: function (k) { - var s = 1.70158; - return k * k * ((s + 1) * k - s); - }, - BackOut: function (k) { - var s = 1.70158; - return --k * k * ((s + 1) * k + s) + 1; - }, - BackInOut: function (k) { - var s = 1.70158 * 1.525; - if ((k *= 2) < 1) { - return 0.5 * (k * k * ((s + 1) * k - s)); - } - return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2); - }, - BounceIn: function (k) { - return 1 - easing.BounceOut(1 - k); - }, - BounceOut: function (k) { - if (k < 1 / 2.75) { - return 7.5625 * k * k; - } else if (k < 2 / 2.75) { - return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75; - } else if (k < 2.5 / 2.75) { - return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375; - } else { - return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375; - } - }, - BounceInOut: function (k) { - if (k < 0.5) { - return easing.BounceIn(k * 2) * 0.5; - } - return easing.BounceOut(k * 2 - 1) * 0.5 + 0.5; - } - }; - return easing; -});define('echarts/chart/base', [ - 'require', - 'zrender/shape/Image', - '../util/shape/Icon', - '../util/shape/MarkLine', - '../util/shape/Symbol', - 'zrender/shape/Polyline', - 'zrender/shape/ShapeBundle', - '../config', - '../util/ecData', - '../util/ecAnimation', - '../util/ecEffect', - '../util/accMath', - '../component/base', - '../layout/EdgeBundling', - 'zrender/tool/util', - 'zrender/tool/area' -], function (require) { - var ImageShape = require('zrender/shape/Image'); - var IconShape = require('../util/shape/Icon'); - var MarkLineShape = require('../util/shape/MarkLine'); - var SymbolShape = require('../util/shape/Symbol'); - var PolylineShape = require('zrender/shape/Polyline'); - var ShapeBundle = require('zrender/shape/ShapeBundle'); - var ecConfig = require('../config'); - var ecData = require('../util/ecData'); - var ecAnimation = require('../util/ecAnimation'); - var ecEffect = require('../util/ecEffect'); - var accMath = require('../util/accMath'); - var ComponentBase = require('../component/base'); - var EdgeBundling = require('../layout/EdgeBundling'); - var zrUtil = require('zrender/tool/util'); - var zrArea = require('zrender/tool/area'); - function isCoordAvailable(coord) { - return coord.x != null && coord.y != null; - } - function Base(ecTheme, messageCenter, zr, option, myChart) { - ComponentBase.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - this.selectedMap = {}; - this.lastShapeList = []; - this.shapeHandler = { - onclick: function () { - self.isClick = true; - }, - ondragover: function (param) { - var calculableShape = param.target; - calculableShape.highlightStyle = calculableShape.highlightStyle || {}; - var highlightStyle = calculableShape.highlightStyle; - var brushType = highlightStyle.brushTyep; - var strokeColor = highlightStyle.strokeColor; - var lineWidth = highlightStyle.lineWidth; - highlightStyle.brushType = 'stroke'; - highlightStyle.strokeColor = self.ecTheme.calculableColor || ecConfig.calculableColor; - highlightStyle.lineWidth = calculableShape.type === 'icon' ? 30 : 10; - self.zr.addHoverShape(calculableShape); - setTimeout(function () { - if (highlightStyle) { - highlightStyle.brushType = brushType; - highlightStyle.strokeColor = strokeColor; - highlightStyle.lineWidth = lineWidth; - } - }, 20); - }, - ondrop: function (param) { - if (ecData.get(param.dragged, 'data') != null) { - self.isDrop = true; - } - }, - ondragend: function () { - self.isDragend = true; - } - }; - } - Base.prototype = { - setCalculable: function (shape) { - shape.dragEnableTime = this.ecTheme.DRAG_ENABLE_TIME || ecConfig.DRAG_ENABLE_TIME; - shape.ondragover = this.shapeHandler.ondragover; - shape.ondragend = this.shapeHandler.ondragend; - shape.ondrop = this.shapeHandler.ondrop; - return shape; - }, - ondrop: function (param, status) { - if (!this.isDrop || !param.target || status.dragIn) { - return; - } - var target = param.target; - var dragged = param.dragged; - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - var series = this.series; - var data; - var legend = this.component.legend; - if (dataIndex === -1) { - if (ecData.get(dragged, 'seriesIndex') == seriesIndex) { - status.dragOut = status.dragIn = status.needRefresh = true; - this.isDrop = false; - return; - } - data = { - value: ecData.get(dragged, 'value'), - name: ecData.get(dragged, 'name') - }; - if (this.type === ecConfig.CHART_TYPE_PIE && data.value < 0) { - data.value = 0; - } - var hasFind = false; - var sData = series[seriesIndex].data; - for (var i = 0, l = sData.length; i < l; i++) { - if (sData[i].name === data.name && sData[i].value === '-') { - series[seriesIndex].data[i].value = data.value; - hasFind = true; - } - } - !hasFind && series[seriesIndex].data.push(data); - legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor); - } else { - data = series[seriesIndex].data[dataIndex] || '-'; - if (data.value != null) { - if (data.value != '-') { - series[seriesIndex].data[dataIndex].value = accMath.accAdd(series[seriesIndex].data[dataIndex].value, ecData.get(dragged, 'value')); - } else { - series[seriesIndex].data[dataIndex].value = ecData.get(dragged, 'value'); - } - if (this.type === ecConfig.CHART_TYPE_FUNNEL || this.type === ecConfig.CHART_TYPE_PIE) { - legend && legend.getRelatedAmount(data.name) === 1 && this.component.legend.del(data.name); - data.name += this.option.nameConnector + ecData.get(dragged, 'name'); - legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor); - } - } else { - if (data != '-') { - series[seriesIndex].data[dataIndex] = accMath.accAdd(series[seriesIndex].data[dataIndex], ecData.get(dragged, 'value')); - } else { - series[seriesIndex].data[dataIndex] = ecData.get(dragged, 'value'); - } - } - } - status.dragIn = status.dragIn || true; - this.isDrop = false; - var self = this; - setTimeout(function () { - self.zr.trigger('mousemove', param.event); - }, 300); - return; - }, - ondragend: function (param, status) { - if (!this.isDragend || !param.target || status.dragOut) { - return; - } - var target = param.target; - var seriesIndex = ecData.get(target, 'seriesIndex'); - var dataIndex = ecData.get(target, 'dataIndex'); - var series = this.series; - if (series[seriesIndex].data[dataIndex].value != null) { - series[seriesIndex].data[dataIndex].value = '-'; - var name = series[seriesIndex].data[dataIndex].name; - var legend = this.component.legend; - if (legend && legend.getRelatedAmount(name) === 0) { - legend.del(name); - } - } else { - series[seriesIndex].data[dataIndex] = '-'; - } - status.dragOut = true; - status.needRefresh = true; - this.isDragend = false; - return; - }, - onlegendSelected: function (param, status) { - var legendSelected = param.selected; - for (var itemName in this.selectedMap) { - if (this.selectedMap[itemName] != legendSelected[itemName]) { - status.needRefresh = true; - } - this.selectedMap[itemName] = legendSelected[itemName]; - } - return; - }, - _buildPosition: function () { - this._symbol = this.option.symbolList; - this._sIndex2ShapeMap = {}; - this._sIndex2ColorMap = {}; - this.selectedMap = {}; - this.xMarkMap = {}; - var series = this.series; - var _position2sIndexMap = { - top: [], - bottom: [], - left: [], - right: [], - other: [] - }; - var xAxisIndex; - var yAxisIndex; - var xAxis; - var yAxis; - for (var i = 0, l = series.length; i < l; i++) { - if (series[i].type === this.type) { - series[i] = this.reformOption(series[i]); - this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink; - xAxisIndex = series[i].xAxisIndex; - yAxisIndex = series[i].yAxisIndex; - xAxis = this.component.xAxis.getAxis(xAxisIndex); - yAxis = this.component.yAxis.getAxis(yAxisIndex); - if (xAxis.type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { - _position2sIndexMap[xAxis.getPosition()].push(i); - } else if (yAxis.type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) { - _position2sIndexMap[yAxis.getPosition()].push(i); - } else { - _position2sIndexMap.other.push(i); - } - } - } - for (var position in _position2sIndexMap) { - if (_position2sIndexMap[position].length > 0) { - this._buildSinglePosition(position, _position2sIndexMap[position]); - } - } - this.addShapeList(); - }, - _buildSinglePosition: function (position, seriesArray) { - var mapData = this._mapData(seriesArray); - var locationMap = mapData.locationMap; - var maxDataLength = mapData.maxDataLength; - if (maxDataLength === 0 || locationMap.length === 0) { - return; - } - switch (position) { - case 'bottom': - case 'top': - this._buildHorizontal(seriesArray, maxDataLength, locationMap, this.xMarkMap); - break; - case 'left': - case 'right': - this._buildVertical(seriesArray, maxDataLength, locationMap, this.xMarkMap); - break; - case 'other': - this._buildOther(seriesArray, maxDataLength, locationMap, this.xMarkMap); - break; - } - for (var i = 0, l = seriesArray.length; i < l; i++) { - this.buildMark(seriesArray[i]); - } - }, - _mapData: function (seriesArray) { - var series = this.series; - var serie; - var dataIndex = 0; - var stackMap = {}; - var magicStackKey = '__kener__stack__'; - var stackKey; - var serieName; - var legend = this.component.legend; - var locationMap = []; - var maxDataLength = 0; - var iconShape; - for (var i = 0, l = seriesArray.length; i < l; i++) { - serie = series[seriesArray[i]]; - serieName = serie.name; - this._sIndex2ShapeMap[seriesArray[i]] = this._sIndex2ShapeMap[seriesArray[i]] || this.query(serie, 'symbol') || this._symbol[i % this._symbol.length]; - if (legend) { - this.selectedMap[serieName] = legend.isSelected(serieName); - this._sIndex2ColorMap[seriesArray[i]] = legend.getColor(serieName); - iconShape = legend.getItemShape(serieName); - if (iconShape) { - var style = iconShape.style; - if (this.type == ecConfig.CHART_TYPE_LINE) { - style.iconType = 'legendLineIcon'; - style.symbol = this._sIndex2ShapeMap[seriesArray[i]]; - } else if (serie.itemStyle.normal.barBorderWidth > 0) { - var highlightStyle = iconShape.highlightStyle; - style.brushType = 'both'; - style.x += 1; - style.y += 1; - style.width -= 2; - style.height -= 2; - style.strokeColor = highlightStyle.strokeColor = serie.itemStyle.normal.barBorderColor; - highlightStyle.lineWidth = 3; - } - legend.setItemShape(serieName, iconShape); - } - } else { - this.selectedMap[serieName] = true; - this._sIndex2ColorMap[seriesArray[i]] = this.zr.getColor(seriesArray[i]); - } - if (this.selectedMap[serieName]) { - stackKey = serie.stack || magicStackKey + seriesArray[i]; - if (stackMap[stackKey] == null) { - stackMap[stackKey] = dataIndex; - locationMap[dataIndex] = [seriesArray[i]]; - dataIndex++; - } else { - locationMap[stackMap[stackKey]].push(seriesArray[i]); - } - } - maxDataLength = Math.max(maxDataLength, serie.data.length); - } - return { - locationMap: locationMap, - maxDataLength: maxDataLength - }; - }, - _calculMarkMapXY: function (xMarkMap, locationMap, xy) { - var series = this.series; - for (var j = 0, k = locationMap.length; j < k; j++) { - for (var m = 0, n = locationMap[j].length; m < n; m++) { - var seriesIndex = locationMap[j][m]; - var valueIndex = xy == 'xy' ? 0 : ''; - var grid = this.component.grid; - var tarMark = xMarkMap[seriesIndex]; - if (xy.indexOf('x') != '-1') { - if (tarMark['counter' + valueIndex] > 0) { - tarMark['average' + valueIndex] = tarMark['sum' + valueIndex] / tarMark['counter' + valueIndex]; - } - var x = this.component.xAxis.getAxis(series[seriesIndex].xAxisIndex || 0).getCoord(tarMark['average' + valueIndex]); - tarMark['averageLine' + valueIndex] = [ - [ - x, - grid.getYend() - ], - [ - x, - grid.getY() - ] - ]; - tarMark['minLine' + valueIndex] = [ - [ - tarMark['minX' + valueIndex], - grid.getYend() - ], - [ - tarMark['minX' + valueIndex], - grid.getY() - ] - ]; - tarMark['maxLine' + valueIndex] = [ - [ - tarMark['maxX' + valueIndex], - grid.getYend() - ], - [ - tarMark['maxX' + valueIndex], - grid.getY() - ] - ]; - tarMark.isHorizontal = false; - } - valueIndex = xy == 'xy' ? 1 : ''; - if (xy.indexOf('y') != '-1') { - if (tarMark['counter' + valueIndex] > 0) { - tarMark['average' + valueIndex] = tarMark['sum' + valueIndex] / tarMark['counter' + valueIndex]; - } - var y = this.component.yAxis.getAxis(series[seriesIndex].yAxisIndex || 0).getCoord(tarMark['average' + valueIndex]); - tarMark['averageLine' + valueIndex] = [ - [ - grid.getX(), - y - ], - [ - grid.getXend(), - y - ] - ]; - tarMark['minLine' + valueIndex] = [ - [ - grid.getX(), - tarMark['minY' + valueIndex] - ], - [ - grid.getXend(), - tarMark['minY' + valueIndex] - ] - ]; - tarMark['maxLine' + valueIndex] = [ - [ - grid.getX(), - tarMark['maxY' + valueIndex] - ], - [ - grid.getXend(), - tarMark['maxY' + valueIndex] - ] - ]; - tarMark.isHorizontal = true; - } - } - } - }, - addLabel: function (tarShape, serie, data, name, orient) { - var queryTarget = [ - data, - serie - ]; - var nLabel = this.deepMerge(queryTarget, 'itemStyle.normal.label'); - var eLabel = this.deepMerge(queryTarget, 'itemStyle.emphasis.label'); - var nTextStyle = nLabel.textStyle || {}; - var eTextStyle = eLabel.textStyle || {}; - if (nLabel.show) { - var style = tarShape.style; - style.text = this._getLabelText(serie, data, name, 'normal'); - style.textPosition = nLabel.position == null ? orient === 'horizontal' ? 'right' : 'top' : nLabel.position; - style.textColor = nTextStyle.color; - style.textFont = this.getFont(nTextStyle); - style.textAlign = nTextStyle.align; - style.textBaseline = nTextStyle.baseline; - } - if (eLabel.show) { - var highlightStyle = tarShape.highlightStyle; - highlightStyle.text = this._getLabelText(serie, data, name, 'emphasis'); - highlightStyle.textPosition = nLabel.show ? tarShape.style.textPosition : eLabel.position == null ? orient === 'horizontal' ? 'right' : 'top' : eLabel.position; - highlightStyle.textColor = eTextStyle.color; - highlightStyle.textFont = this.getFont(eTextStyle); - highlightStyle.textAlign = eTextStyle.align; - highlightStyle.textBaseline = eTextStyle.baseline; - } - return tarShape; - }, - _getLabelText: function (serie, data, name, status) { - var formatter = this.deepQuery([ - data, - serie - ], 'itemStyle.' + status + '.label.formatter'); - if (!formatter && status === 'emphasis') { - formatter = this.deepQuery([ - data, - serie - ], 'itemStyle.normal.label.formatter'); - } - var value = this.getDataFromOption(data, '-'); - if (formatter) { - if (typeof formatter === 'function') { - return formatter.call(this.myChart, { - seriesName: serie.name, - series: serie, - name: name, - value: value, - data: data, - status: status - }); - } else if (typeof formatter === 'string') { - formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{a0}', serie.name).replace('{b0}', name).replace('{c0}', this.numAddCommas(value)); - return formatter; - } - } else { - if (value instanceof Array) { - return value[2] != null ? this.numAddCommas(value[2]) : value[0] + ' , ' + value[1]; - } else { - return this.numAddCommas(value); - } - } - }, - buildMark: function (seriesIndex) { - var serie = this.series[seriesIndex]; - if (this.selectedMap[serie.name]) { - serie.markLine && this._buildMarkLine(seriesIndex); - serie.markPoint && this._buildMarkPoint(seriesIndex); - } - }, - _buildMarkPoint: function (seriesIndex) { - var attachStyle = (this.markAttachStyle || {})[seriesIndex]; - var serie = this.series[seriesIndex]; - var mpData; - var pos; - var markPoint = zrUtil.clone(serie.markPoint); - for (var i = 0, l = markPoint.data.length; i < l; i++) { - mpData = markPoint.data[i]; - pos = this.getMarkCoord(seriesIndex, mpData); - mpData.x = mpData.x != null ? mpData.x : pos[0]; - mpData.y = mpData.y != null ? mpData.y : pos[1]; - if (mpData.type && (mpData.type === 'max' || mpData.type === 'min')) { - mpData.value = pos[3]; - mpData.name = mpData.name || mpData.type; - mpData.symbolSize = mpData.symbolSize || zrArea.getTextWidth(pos[3], this.getFont()) / 2 + 5; - } - } - var shapeList = this._markPoint(seriesIndex, markPoint); - for (var i = 0, l = shapeList.length; i < l; i++) { - var tarShape = shapeList[i]; - tarShape.zlevel = serie.zlevel; - tarShape.z = serie.z + 1; - for (var key in attachStyle) { - tarShape[key] = zrUtil.clone(attachStyle[key]); - } - this.shapeList.push(tarShape); - } - if (this.type === ecConfig.CHART_TYPE_FORCE || this.type === ecConfig.CHART_TYPE_CHORD) { - for (var i = 0, l = shapeList.length; i < l; i++) { - this.zr.addShape(shapeList[i]); - } - } - }, - _buildMarkLine: function (seriesIndex) { - var attachStyle = (this.markAttachStyle || {})[seriesIndex]; - var serie = this.series[seriesIndex]; - var pos; - var markLine = zrUtil.clone(serie.markLine); - for (var i = 0, l = markLine.data.length; i < l; i++) { - var mlData = markLine.data[i]; - if (mlData.type && (mlData.type === 'max' || mlData.type === 'min' || mlData.type === 'average')) { - pos = this.getMarkCoord(seriesIndex, mlData); - markLine.data[i] = [ - zrUtil.clone(mlData), - {} - ]; - markLine.data[i][0].name = mlData.name || mlData.type; - markLine.data[i][0].value = mlData.type !== 'average' ? pos[3] : +pos[3].toFixed(markLine.precision != null ? markLine.precision : this.deepQuery([ - this.ecTheme, - ecConfig - ], 'markLine.precision')); - pos = pos[2]; - mlData = [ - {}, - {} - ]; - } else { - pos = [ - this.getMarkCoord(seriesIndex, mlData[0]), - this.getMarkCoord(seriesIndex, mlData[1]) - ]; - } - if (pos == null || pos[0] == null || pos[1] == null) { - continue; - } - markLine.data[i][0].x = mlData[0].x != null ? mlData[0].x : pos[0][0]; - markLine.data[i][0].y = mlData[0].y != null ? mlData[0].y : pos[0][1]; - markLine.data[i][1].x = mlData[1].x != null ? mlData[1].x : pos[1][0]; - markLine.data[i][1].y = mlData[1].y != null ? mlData[1].y : pos[1][1]; - } - var shapeList = this._markLine(seriesIndex, markLine); - var isLarge = markLine.large; - if (isLarge) { - var shapeBundle = new ShapeBundle({ style: { shapeList: shapeList } }); - var firstShape = shapeList[0]; - if (firstShape) { - zrUtil.merge(shapeBundle.style, firstShape.style); - zrUtil.merge(shapeBundle.highlightStyle = {}, firstShape.highlightStyle); - shapeBundle.style.brushType = 'stroke'; - shapeBundle.zlevel = serie.zlevel; - shapeBundle.z = serie.z + 1; - shapeBundle.hoverable = false; - for (var key in attachStyle) { - shapeBundle[key] = zrUtil.clone(attachStyle[key]); - } - } - this.shapeList.push(shapeBundle); - this.zr.addShape(shapeBundle); - shapeBundle._mark = 'largeLine'; - var effect = markLine.effect; - if (effect.show) { - shapeBundle.effect = effect; - } - } else { - for (var i = 0, l = shapeList.length; i < l; i++) { - var tarShape = shapeList[i]; - tarShape.zlevel = serie.zlevel; - tarShape.z = serie.z + 1; - for (var key in attachStyle) { - tarShape[key] = zrUtil.clone(attachStyle[key]); - } - this.shapeList.push(tarShape); - } - if (this.type === ecConfig.CHART_TYPE_FORCE || this.type === ecConfig.CHART_TYPE_CHORD) { - for (var i = 0, l = shapeList.length; i < l; i++) { - this.zr.addShape(shapeList[i]); - } - } - } - }, - _markPoint: function (seriesIndex, mpOption) { - var serie = this.series[seriesIndex]; - var component = this.component; - zrUtil.merge(zrUtil.merge(mpOption, zrUtil.clone(this.ecTheme.markPoint || {})), zrUtil.clone(ecConfig.markPoint)); - mpOption.name = serie.name; - var pList = []; - var data = mpOption.data; - var itemShape; - var dataRange = component.dataRange; - var legend = component.legend; - var color; - var value; - var queryTarget; - var nColor; - var eColor; - var effect; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - if (!mpOption.large) { - for (var i = 0, l = data.length; i < l; i++) { - if (data[i].x == null || data[i].y == null) { - continue; - } - value = data[i].value != null ? data[i].value : ''; - if (legend) { - color = legend.getColor(serie.name); - } - if (dataRange) { - color = isNaN(value) ? color : dataRange.getColor(value); - queryTarget = [ - data[i], - mpOption - ]; - nColor = this.deepQuery(queryTarget, 'itemStyle.normal.color') || color; - eColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.color') || nColor; - if (nColor == null && eColor == null) { - continue; - } - } - color = color == null ? this.zr.getColor(seriesIndex) : color; - data[i].tooltip = data[i].tooltip || mpOption.tooltip || { trigger: 'item' }; - data[i].name = data[i].name != null ? data[i].name : ''; - data[i].value = value; - itemShape = this.getSymbolShape(mpOption, seriesIndex, data[i], i, data[i].name, this.parsePercent(data[i].x, zrWidth), this.parsePercent(data[i].y, zrHeight), 'pin', color, 'rgba(0,0,0,0)', 'horizontal'); - itemShape._mark = 'point'; - effect = this.deepMerge([ - data[i], - mpOption - ], 'effect'); - if (effect.show) { - itemShape.effect = effect; - } - if (serie.type === ecConfig.CHART_TYPE_MAP) { - itemShape._geo = this.getMarkGeo(data[i]); - } - ecData.pack(itemShape, serie, seriesIndex, data[i], i, data[i].name, value); - pList.push(itemShape); - } - } else { - itemShape = this.getLargeMarkPointShape(seriesIndex, mpOption); - itemShape._mark = 'largePoint'; - itemShape && pList.push(itemShape); - } - return pList; - }, - _markLine: function () { - function normalizeOptionValue(mlOption, key) { - mlOption[key] = mlOption[key] instanceof Array ? mlOption[key].length > 1 ? mlOption[key] : [ - mlOption[key][0], - mlOption[key][0] - ] : [ - mlOption[key], - mlOption[key] - ]; - } - return function (seriesIndex, mlOption) { - var serie = this.series[seriesIndex]; - var component = this.component; - var dataRange = component.dataRange; - var legend = component.legend; - zrUtil.merge(zrUtil.merge(mlOption, zrUtil.clone(this.ecTheme.markLine || {})), zrUtil.clone(ecConfig.markLine)); - var defaultColor = legend ? legend.getColor(serie.name) : this.zr.getColor(seriesIndex); - normalizeOptionValue(mlOption, 'symbol'); - normalizeOptionValue(mlOption, 'symbolSize'); - normalizeOptionValue(mlOption, 'symbolRotate'); - var data = mlOption.data; - var edges = []; - var zrWidth = this.zr.getWidth(); - var zrHeight = this.zr.getHeight(); - for (var i = 0; i < data.length; i++) { - var mlData = data[i]; - if (isCoordAvailable(mlData[0]) && isCoordAvailable(mlData[1])) { - var mergeData = this.deepMerge(mlData); - var queryTarget = [ - mergeData, - mlOption - ]; - var color = defaultColor; - var value = mergeData.value != null ? mergeData.value : ''; - if (dataRange) { - color = isNaN(value) ? color : dataRange.getColor(value); - var nColor = this.deepQuery(queryTarget, 'itemStyle.normal.color') || color; - var eColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.color') || nColor; - if (nColor == null && eColor == null) { - continue; - } - } - mlData[0].tooltip = mergeData.tooltip || mlOption.tooltip || { trigger: 'item' }; - mlData[0].name = mlData[0].name || ''; - mlData[1].name = mlData[1].name || ''; - mlData[0].value = value; - edges.push({ - points: [ - [ - this.parsePercent(mlData[0].x, zrWidth), - this.parsePercent(mlData[0].y, zrHeight) - ], - [ - this.parsePercent(mlData[1].x, zrWidth), - this.parsePercent(mlData[1].y, zrHeight) - ] - ], - rawData: mlData, - color: color - }); - } - } - var enableBundling = this.query(mlOption, 'bundling.enable'); - if (enableBundling) { - var edgeBundling = new EdgeBundling(); - edgeBundling.maxTurningAngle = this.query(mlOption, 'bundling.maxTurningAngle') / 180 * Math.PI; - edges = edgeBundling.run(edges); - } - mlOption.name = serie.name; - var shapeList = []; - for (var i = 0, l = edges.length; i < l; i++) { - var edge = edges[i]; - var rawEdge = edge.rawEdge || edge; - var mlData = rawEdge.rawData; - var value = mlData.value != null ? mlData.value : ''; - var itemShape = this.getMarkLineShape(mlOption, seriesIndex, mlData, i, edge.points, enableBundling, rawEdge.color); - itemShape._mark = 'line'; - var effect = this.deepMerge([ - mlData[0], - mlData[1], - mlOption - ], 'effect'); - if (effect.show) { - itemShape.effect = effect; - itemShape.effect.large = mlOption.large; - } - if (serie.type === ecConfig.CHART_TYPE_MAP) { - itemShape._geo = [ - this.getMarkGeo(mlData[0]), - this.getMarkGeo(mlData[1]) - ]; - } - ecData.pack(itemShape, serie, seriesIndex, mlData[0], i, mlData[0].name + (mlData[1].name !== '' ? ' > ' + mlData[1].name : ''), value); - shapeList.push(itemShape); - } - return shapeList; - }; - }(), - getMarkCoord: function () { - return [ - 0, - 0 - ]; - }, - getSymbolShape: function (serie, seriesIndex, data, dataIndex, name, x, y, symbol, color, emptyColor, orient) { - var queryTarget = [ - data, - serie - ]; - var value = this.getDataFromOption(data, '-'); - symbol = this.deepQuery(queryTarget, 'symbol') || symbol; - var symbolSize = this.deepQuery(queryTarget, 'symbolSize'); - symbolSize = typeof symbolSize === 'function' ? symbolSize(value) : symbolSize; - if (typeof symbolSize === 'number') { - symbolSize = [ - symbolSize, - symbolSize - ]; - } - var symbolRotate = this.deepQuery(queryTarget, 'symbolRotate'); - var normal = this.deepMerge(queryTarget, 'itemStyle.normal'); - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis'); - var nBorderWidth = normal.borderWidth != null ? normal.borderWidth : normal.lineStyle && normal.lineStyle.width; - if (nBorderWidth == null) { - nBorderWidth = symbol.match('empty') ? 2 : 0; - } - var eBorderWidth = emphasis.borderWidth != null ? emphasis.borderWidth : emphasis.lineStyle && emphasis.lineStyle.width; - if (eBorderWidth == null) { - eBorderWidth = nBorderWidth + 2; - } - var nColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data); - var eColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data); - var width = symbolSize[0]; - var height = symbolSize[1]; - var itemShape = new IconShape({ - style: { - iconType: symbol.replace('empty', '').toLowerCase(), - x: x - width, - y: y - height, - width: width * 2, - height: height * 2, - brushType: 'both', - color: symbol.match('empty') ? emptyColor : nColor || color, - strokeColor: normal.borderColor || nColor || color, - lineWidth: nBorderWidth - }, - highlightStyle: { - color: symbol.match('empty') ? emptyColor : eColor || nColor || color, - strokeColor: emphasis.borderColor || normal.borderColor || eColor || nColor || color, - lineWidth: eBorderWidth - }, - clickable: this.deepQuery(queryTarget, 'clickable') - }); - if (symbol.match('image')) { - itemShape.style.image = symbol.replace(new RegExp('^image:\\/\\/'), ''); - itemShape = new ImageShape({ - style: itemShape.style, - highlightStyle: itemShape.highlightStyle, - clickable: this.deepQuery(queryTarget, 'clickable') - }); - } - if (symbolRotate != null) { - itemShape.rotation = [ - symbolRotate * Math.PI / 180, - x, - y - ]; - } - if (symbol.match('star')) { - itemShape.style.iconType = 'star'; - itemShape.style.n = symbol.replace('empty', '').replace('star', '') - 0 || 5; - } - if (symbol === 'none') { - itemShape.invisible = true; - itemShape.hoverable = false; - } - itemShape = this.addLabel(itemShape, serie, data, name, orient); - if (symbol.match('empty')) { - if (itemShape.style.textColor == null) { - itemShape.style.textColor = itemShape.style.strokeColor; - } - if (itemShape.highlightStyle.textColor == null) { - itemShape.highlightStyle.textColor = itemShape.highlightStyle.strokeColor; - } - } - ecData.pack(itemShape, serie, seriesIndex, data, dataIndex, name); - itemShape._x = x; - itemShape._y = y; - itemShape._dataIndex = dataIndex; - itemShape._seriesIndex = seriesIndex; - return itemShape; - }, - getMarkLineShape: function (mlOption, seriesIndex, data, dataIndex, points, bundling, color) { - var value0 = data[0].value != null ? data[0].value : '-'; - var value1 = data[1].value != null ? data[1].value : '-'; - var symbol = [ - data[0].symbol || mlOption.symbol[0], - data[1].symbol || mlOption.symbol[1] - ]; - var symbolSize = [ - data[0].symbolSize || mlOption.symbolSize[0], - data[1].symbolSize || mlOption.symbolSize[1] - ]; - symbolSize[0] = typeof symbolSize[0] === 'function' ? symbolSize[0](value0) : symbolSize[0]; - symbolSize[1] = typeof symbolSize[1] === 'function' ? symbolSize[1](value1) : symbolSize[1]; - var symbolRotate = [ - this.query(data[0], 'symbolRotate') || mlOption.symbolRotate[0], - this.query(data[1], 'symbolRotate') || mlOption.symbolRotate[1] - ]; - var queryTarget = [ - data[0], - data[1], - mlOption - ]; - var normal = this.deepMerge(queryTarget, 'itemStyle.normal'); - normal.color = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data); - var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis'); - emphasis.color = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data); - var nlineStyle = normal.lineStyle; - var elineStyle = emphasis.lineStyle; - var nBorderWidth = nlineStyle.width; - if (nBorderWidth == null) { - nBorderWidth = normal.borderWidth; - } - var eBorderWidth = elineStyle.width; - if (eBorderWidth == null) { - eBorderWidth = emphasis.borderWidth != null ? emphasis.borderWidth : nBorderWidth + 2; - } - var smoothness = this.deepQuery(queryTarget, 'smoothness'); - if (!this.deepQuery(queryTarget, 'smooth')) { - smoothness = 0; - } - var ShapeCtor = bundling ? PolylineShape : MarkLineShape; - var itemShape = new ShapeCtor({ - style: { - symbol: symbol, - symbolSize: symbolSize, - symbolRotate: symbolRotate, - brushType: 'both', - lineType: nlineStyle.type, - shadowColor: nlineStyle.shadowColor || nlineStyle.color || normal.borderColor || normal.color || color, - shadowBlur: nlineStyle.shadowBlur, - shadowOffsetX: nlineStyle.shadowOffsetX, - shadowOffsetY: nlineStyle.shadowOffsetY, - color: normal.color || color, - strokeColor: nlineStyle.color || normal.borderColor || normal.color || color, - lineWidth: nBorderWidth, - symbolBorderColor: normal.borderColor || normal.color || color, - symbolBorder: normal.borderWidth - }, - highlightStyle: { - shadowColor: elineStyle.shadowColor, - shadowBlur: elineStyle.shadowBlur, - shadowOffsetX: elineStyle.shadowOffsetX, - shadowOffsetY: elineStyle.shadowOffsetY, - color: emphasis.color || normal.color || color, - strokeColor: elineStyle.color || nlineStyle.color || emphasis.borderColor || normal.borderColor || emphasis.color || normal.color || color, - lineWidth: eBorderWidth, - symbolBorderColor: emphasis.borderColor || normal.borderColor || emphasis.color || normal.color || color, - symbolBorder: emphasis.borderWidth == null ? normal.borderWidth + 2 : emphasis.borderWidth - }, - clickable: this.deepQuery(queryTarget, 'clickable') - }); - var shapeStyle = itemShape.style; - if (bundling) { - shapeStyle.pointList = points; - shapeStyle.smooth = smoothness; - } else { - shapeStyle.xStart = points[0][0]; - shapeStyle.yStart = points[0][1]; - shapeStyle.xEnd = points[1][0]; - shapeStyle.yEnd = points[1][1]; - shapeStyle.curveness = smoothness; - itemShape.updatePoints(itemShape.style); - } - itemShape = this.addLabel(itemShape, mlOption, data[0], data[0].name + ' : ' + data[1].name); - return itemShape; - }, - getLargeMarkPointShape: function (seriesIndex, mpOption) { - var serie = this.series[seriesIndex]; - var component = this.component; - var data = mpOption.data; - var itemShape; - var dataRange = component.dataRange; - var legend = component.legend; - var color; - var value; - var queryTarget = [ - data[0], - mpOption - ]; - var nColor; - var eColor; - var effect; - if (legend) { - color = legend.getColor(serie.name); - } - if (dataRange) { - value = data[0].value != null ? data[0].value : ''; - color = isNaN(value) ? color : dataRange.getColor(value); - nColor = this.deepQuery(queryTarget, 'itemStyle.normal.color') || color; - eColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.color') || nColor; - if (nColor == null && eColor == null) { - return; - } - } - color = this.deepMerge(queryTarget, 'itemStyle.normal').color || color; - var symbol = this.deepQuery(queryTarget, 'symbol') || 'circle'; - symbol = symbol.replace('empty', '').replace(/\d/g, ''); - effect = this.deepMerge([ - data[0], - mpOption - ], 'effect'); - var devicePixelRatio = window.devicePixelRatio || 1; - itemShape = new SymbolShape({ - style: { - pointList: data, - color: color, - strokeColor: color, - shadowColor: effect.shadowColor || color, - shadowBlur: (effect.shadowBlur != null ? effect.shadowBlur : 8) * devicePixelRatio, - size: this.deepQuery(queryTarget, 'symbolSize'), - iconType: symbol, - brushType: 'fill', - lineWidth: 1 - }, - draggable: false, - hoverable: false - }); - if (effect.show) { - itemShape.effect = effect; - } - return itemShape; - }, - backupShapeList: function () { - if (this.shapeList && this.shapeList.length > 0) { - this.lastShapeList = this.shapeList; - this.shapeList = []; - } else { - this.lastShapeList = []; - } - }, - addShapeList: function () { - var maxLenth = this.option.animationThreshold / (this.canvasSupported ? 2 : 4); - var lastShapeList = this.lastShapeList; - var shapeList = this.shapeList; - var isUpdate = lastShapeList.length > 0; - var duration = isUpdate ? this.query(this.option, 'animationDurationUpdate') : this.query(this.option, 'animationDuration'); - var easing = this.query(this.option, 'animationEasing'); - var delay; - var key; - var oldMap = {}; - var newMap = {}; - if (this.option.animation && !this.option.renderAsImage && shapeList.length < maxLenth && !this.motionlessOnce) { - for (var i = 0, l = lastShapeList.length; i < l; i++) { - key = this._getAnimationKey(lastShapeList[i]); - if (key.match('undefined')) { - this.zr.delShape(lastShapeList[i].id); - } else { - key += lastShapeList[i].type; - if (oldMap[key]) { - this.zr.delShape(lastShapeList[i].id); - } else { - oldMap[key] = lastShapeList[i]; - } - } - } - for (var i = 0, l = shapeList.length; i < l; i++) { - key = this._getAnimationKey(shapeList[i]); - if (key.match('undefined')) { - this.zr.addShape(shapeList[i]); - } else { - key += shapeList[i].type; - newMap[key] = shapeList[i]; - } - } - for (key in oldMap) { - if (!newMap[key]) { - this.zr.delShape(oldMap[key].id); - } - } - for (key in newMap) { - if (oldMap[key]) { - this.zr.delShape(oldMap[key].id); - this._animateMod(oldMap[key], newMap[key], duration, easing, 0, isUpdate); - } else { - delay = (this.type == ecConfig.CHART_TYPE_LINE || this.type == ecConfig.CHART_TYPE_RADAR) && key.indexOf('icon') !== 0 ? duration / 2 : 0; - this._animateMod(false, newMap[key], duration, easing, delay, isUpdate); - } - } - this.zr.refresh(); - this.animationEffect(); - } else { - this.motionlessOnce = false; - this.zr.delShape(lastShapeList); - for (var i = 0, l = shapeList.length; i < l; i++) { - this.zr.addShape(shapeList[i]); - } - } - }, - _getAnimationKey: function (shape) { - if (this.type != ecConfig.CHART_TYPE_MAP && this.type != ecConfig.CHART_TYPE_TREEMAP && this.type != ecConfig.CHART_TYPE_VENN && this.type != ecConfig.CHART_TYPE_TREE) { - return ecData.get(shape, 'seriesIndex') + '_' + ecData.get(shape, 'dataIndex') + (shape._mark ? shape._mark : '') + (this.type === ecConfig.CHART_TYPE_RADAR ? ecData.get(shape, 'special') : ''); - } else { - return ecData.get(shape, 'seriesIndex') + '_' + ecData.get(shape, 'dataIndex') + (shape._mark ? shape._mark : 'undefined'); - } - }, - _animateMod: function (oldShape, newShape, duration, easing, delay, isUpdate) { - switch (newShape.type) { - case 'polyline': - case 'half-smooth-polygon': - ecAnimation.pointList(this.zr, oldShape, newShape, duration, easing); - break; - case 'rectangle': - ecAnimation.rectangle(this.zr, oldShape, newShape, duration, easing); - break; - case 'image': - case 'icon': - ecAnimation.icon(this.zr, oldShape, newShape, duration, easing, delay); - break; - case 'candle': - if (!isUpdate) { - ecAnimation.candle(this.zr, oldShape, newShape, duration, easing); - } else { - this.zr.addShape(newShape); - } - break; - case 'ring': - case 'sector': - case 'circle': - if (!isUpdate) { - ecAnimation.ring(this.zr, oldShape, newShape, duration + (ecData.get(newShape, 'dataIndex') || 0) % 20 * 100, easing); - } else if (newShape.type === 'sector') { - ecAnimation.sector(this.zr, oldShape, newShape, duration, easing); - } else { - this.zr.addShape(newShape); - } - break; - case 'text': - ecAnimation.text(this.zr, oldShape, newShape, duration, easing); - break; - case 'polygon': - if (!isUpdate) { - ecAnimation.polygon(this.zr, oldShape, newShape, duration, easing); - } else { - ecAnimation.pointList(this.zr, oldShape, newShape, duration, easing); - } - break; - case 'ribbon': - ecAnimation.ribbon(this.zr, oldShape, newShape, duration, easing); - break; - case 'gauge-pointer': - ecAnimation.gaugePointer(this.zr, oldShape, newShape, duration, easing); - break; - case 'mark-line': - ecAnimation.markline(this.zr, oldShape, newShape, duration, easing); - break; - case 'bezier-curve': - case 'line': - ecAnimation.line(this.zr, oldShape, newShape, duration, easing); - break; - default: - this.zr.addShape(newShape); - break; - } - }, - animationMark: function (duration, easing, shapeList) { - var shapeList = shapeList || this.shapeList; - for (var i = 0, l = shapeList.length; i < l; i++) { - if (!shapeList[i]._mark) { - continue; - } - this._animateMod(false, shapeList[i], duration, easing, 0, true); - } - this.animationEffect(shapeList); - }, - animationEffect: function (shapeList) { - !shapeList && this.clearEffectShape(); - shapeList = shapeList || this.shapeList; - if (shapeList == null) { - return; - } - var zlevel = ecConfig.EFFECT_ZLEVEL; - if (this.canvasSupported) { - this.zr.modLayer(zlevel, { - motionBlur: true, - lastFrameAlpha: this.option.effectBlendAlpha || ecConfig.effectBlendAlpha - }); - } - var shape; - for (var i = 0, l = shapeList.length; i < l; i++) { - shape = shapeList[i]; - if (!(shape._mark && shape.effect && shape.effect.show && ecEffect[shape._mark])) { - continue; - } - ecEffect[shape._mark](this.zr, this.effectList, shape, zlevel); - this.effectList[this.effectList.length - 1]._mark = shape._mark; - } - }, - clearEffectShape: function (clearMotionBlur) { - var effectList = this.effectList; - if (this.zr && effectList && effectList.length > 0) { - clearMotionBlur && this.zr.modLayer(ecConfig.EFFECT_ZLEVEL, { motionBlur: false }); - this.zr.delShape(effectList); - for (var i = 0; i < effectList.length; i++) { - if (effectList[i].effectAnimator) { - effectList[i].effectAnimator.stop(); - } - } - } - this.effectList = []; - }, - addMark: function (seriesIndex, markData, markType) { - var serie = this.series[seriesIndex]; - if (this.selectedMap[serie.name]) { - var duration = this.query(this.option, 'animationDurationUpdate'); - var easing = this.query(this.option, 'animationEasing'); - var oriMarkData = serie[markType].data; - var lastLength = this.shapeList.length; - serie[markType].data = markData.data; - this['_build' + markType.replace('m', 'M')](seriesIndex); - if (this.option.animation && !this.option.renderAsImage) { - this.animationMark(duration, easing, this.shapeList.slice(lastLength)); - } else { - for (var i = lastLength, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - this.zr.refreshNextFrame(); - } - serie[markType].data = oriMarkData; - } - }, - delMark: function (seriesIndex, markName, markType) { - markType = markType.replace('mark', '').replace('large', '').toLowerCase(); - var serie = this.series[seriesIndex]; - if (this.selectedMap[serie.name]) { - var needRefresh = false; - var shapeList = [ - this.shapeList, - this.effectList - ]; - var len = 2; - while (len--) { - for (var i = 0, l = shapeList[len].length; i < l; i++) { - if (shapeList[len][i]._mark == markType && ecData.get(shapeList[len][i], 'seriesIndex') == seriesIndex && ecData.get(shapeList[len][i], 'name') == markName) { - this.zr.delShape(shapeList[len][i].id); - shapeList[len].splice(i, 1); - needRefresh = true; - break; - } - } - } - needRefresh && this.zr.refreshNextFrame(); - } - } - }; - zrUtil.inherits(Base, ComponentBase); - return Base; -});define('zrender/shape/Circle', [ - 'require', - './Base', - '../tool/util' -], function (require) { - 'use strict'; - var Base = require('./Base'); - var Circle = function (options) { - Base.call(this, options); - }; - Circle.prototype = { - type: 'circle', - buildPath: function (ctx, style) { - ctx.moveTo(style.x + style.r, style.y); - ctx.arc(style.x, style.y, style.r, 0, Math.PI * 2, true); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - style.__rect = { - x: Math.round(style.x - style.r - lineWidth / 2), - y: Math.round(style.y - style.r - lineWidth / 2), - width: style.r * 2 + lineWidth, - height: style.r * 2 + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Circle, Base); - return Circle; -});define('echarts/util/accMath', [], function () { - function accDiv(arg1, arg2) { - var s1 = arg1.toString(); - var s2 = arg2.toString(); - var m = 0; - try { - m = s2.split('.')[1].length; - } catch (e) { - } - try { - m -= s1.split('.')[1].length; - } catch (e) { - } - return (s1.replace('.', '') - 0) / (s2.replace('.', '') - 0) * Math.pow(10, m); - } - function accMul(arg1, arg2) { - var s1 = arg1.toString(); - var s2 = arg2.toString(); - var m = 0; - try { - m += s1.split('.')[1].length; - } catch (e) { - } - try { - m += s2.split('.')[1].length; - } catch (e) { - } - return (s1.replace('.', '') - 0) * (s2.replace('.', '') - 0) / Math.pow(10, m); - } - function accAdd(arg1, arg2) { - var r1 = 0; - var r2 = 0; - try { - r1 = arg1.toString().split('.')[1].length; - } catch (e) { - } - try { - r2 = arg2.toString().split('.')[1].length; - } catch (e) { - } - var m = Math.pow(10, Math.max(r1, r2)); - return (Math.round(arg1 * m) + Math.round(arg2 * m)) / m; - } - function accSub(arg1, arg2) { - return accAdd(arg1, -arg2); - } - return { - accDiv: accDiv, - accMul: accMul, - accAdd: accAdd, - accSub: accSub - }; -});define('echarts/util/shape/Icon', [ - 'require', - 'zrender/tool/util', - 'zrender/shape/Star', - 'zrender/shape/Heart', - 'zrender/shape/Droplet', - 'zrender/shape/Image', - 'zrender/shape/Base' -], function (require) { - var zrUtil = require('zrender/tool/util'); - function _iconMark(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x, y + style.height); - ctx.lineTo(x + 5 * dx, y + 14 * dy); - ctx.lineTo(x + style.width, y + 3 * dy); - ctx.lineTo(x + 13 * dx, y); - ctx.lineTo(x + 2 * dx, y + 11 * dy); - ctx.lineTo(x, y + style.height); - ctx.moveTo(x + 6 * dx, y + 10 * dy); - ctx.lineTo(x + 14 * dx, y + 2 * dy); - ctx.moveTo(x + 10 * dx, y + 13 * dy); - ctx.lineTo(x + style.width, y + 13 * dy); - ctx.moveTo(x + 13 * dx, y + 10 * dy); - ctx.lineTo(x + 13 * dx, y + style.height); - } - function _iconMarkUndo(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x, y + style.height); - ctx.lineTo(x + 5 * dx, y + 14 * dy); - ctx.lineTo(x + style.width, y + 3 * dy); - ctx.lineTo(x + 13 * dx, y); - ctx.lineTo(x + 2 * dx, y + 11 * dy); - ctx.lineTo(x, y + style.height); - ctx.moveTo(x + 6 * dx, y + 10 * dy); - ctx.lineTo(x + 14 * dx, y + 2 * dy); - ctx.moveTo(x + 10 * dx, y + 13 * dy); - ctx.lineTo(x + style.width, y + 13 * dy); - } - function _iconMarkClear(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x + 4 * dx, y + 15 * dy); - ctx.lineTo(x + 9 * dx, y + 13 * dy); - ctx.lineTo(x + 14 * dx, y + 8 * dy); - ctx.lineTo(x + 11 * dx, y + 5 * dy); - ctx.lineTo(x + 6 * dx, y + 10 * dy); - ctx.lineTo(x + 4 * dx, y + 15 * dy); - ctx.moveTo(x + 5 * dx, y); - ctx.lineTo(x + 11 * dx, y); - ctx.moveTo(x + 5 * dx, y + dy); - ctx.lineTo(x + 11 * dx, y + dy); - ctx.moveTo(x, y + 2 * dy); - ctx.lineTo(x + style.width, y + 2 * dy); - ctx.moveTo(x, y + 5 * dy); - ctx.lineTo(x + 3 * dx, y + style.height); - ctx.lineTo(x + 13 * dx, y + style.height); - ctx.lineTo(x + style.width, y + 5 * dy); - } - function _iconDataZoom(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x, y + 3 * dy); - ctx.lineTo(x + 6 * dx, y + 3 * dy); - ctx.moveTo(x + 3 * dx, y); - ctx.lineTo(x + 3 * dx, y + 6 * dy); - ctx.moveTo(x + 3 * dx, y + 8 * dy); - ctx.lineTo(x + 3 * dx, y + style.height); - ctx.lineTo(x + style.width, y + style.height); - ctx.lineTo(x + style.width, y + 3 * dy); - ctx.lineTo(x + 8 * dx, y + 3 * dy); - } - function _iconDataZoomReset(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x + 6 * dx, y); - ctx.lineTo(x + 2 * dx, y + 3 * dy); - ctx.lineTo(x + 6 * dx, y + 6 * dy); - ctx.moveTo(x + 2 * dx, y + 3 * dy); - ctx.lineTo(x + 14 * dx, y + 3 * dy); - ctx.lineTo(x + 14 * dx, y + 11 * dy); - ctx.moveTo(x + 2 * dx, y + 5 * dy); - ctx.lineTo(x + 2 * dx, y + 13 * dy); - ctx.lineTo(x + 14 * dx, y + 13 * dy); - ctx.moveTo(x + 10 * dx, y + 10 * dy); - ctx.lineTo(x + 14 * dx, y + 13 * dy); - ctx.lineTo(x + 10 * dx, y + style.height); - } - function _iconRestore(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - var r = style.width / 2; - ctx.lineWidth = 1.5; - ctx.arc(x + r, y + r, r - dx, 0, Math.PI * 2 / 3); - ctx.moveTo(x + 3 * dx, y + style.height); - ctx.lineTo(x + 0 * dx, y + 12 * dy); - ctx.lineTo(x + 5 * dx, y + 11 * dy); - ctx.moveTo(x, y + 8 * dy); - ctx.arc(x + r, y + r, r - dx, Math.PI, Math.PI * 5 / 3); - ctx.moveTo(x + 13 * dx, y); - ctx.lineTo(x + style.width, y + 4 * dy); - ctx.lineTo(x + 11 * dx, y + 5 * dy); - } - function _iconLineChart(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x, y); - ctx.lineTo(x, y + style.height); - ctx.lineTo(x + style.width, y + style.height); - ctx.moveTo(x + 2 * dx, y + 14 * dy); - ctx.lineTo(x + 7 * dx, y + 6 * dy); - ctx.lineTo(x + 11 * dx, y + 11 * dy); - ctx.lineTo(x + 15 * dx, y + 2 * dy); - } - function _iconBarChart(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x, y); - ctx.lineTo(x, y + style.height); - ctx.lineTo(x + style.width, y + style.height); - ctx.moveTo(x + 3 * dx, y + 14 * dy); - ctx.lineTo(x + 3 * dx, y + 6 * dy); - ctx.lineTo(x + 4 * dx, y + 6 * dy); - ctx.lineTo(x + 4 * dx, y + 14 * dy); - ctx.moveTo(x + 7 * dx, y + 14 * dy); - ctx.lineTo(x + 7 * dx, y + 2 * dy); - ctx.lineTo(x + 8 * dx, y + 2 * dy); - ctx.lineTo(x + 8 * dx, y + 14 * dy); - ctx.moveTo(x + 11 * dx, y + 14 * dy); - ctx.lineTo(x + 11 * dx, y + 9 * dy); - ctx.lineTo(x + 12 * dx, y + 9 * dy); - ctx.lineTo(x + 12 * dx, y + 14 * dy); - } - function _iconPieChart(ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width - 2; - var height = style.height - 2; - var r = Math.min(width, height) / 2; - y += 2; - ctx.moveTo(x + r + 3, y + r - 3); - ctx.arc(x + r + 3, y + r - 3, r - 1, 0, -Math.PI / 2, true); - ctx.lineTo(x + r + 3, y + r - 3); - ctx.moveTo(x + r, y); - ctx.lineTo(x + r, y + r); - ctx.arc(x + r, y + r, r, -Math.PI / 2, Math.PI * 2, true); - ctx.lineTo(x + r, y + r); - ctx.lineWidth = 1.5; - } - function _iconFunnelChart(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - y -= dy; - ctx.moveTo(x + 1 * dx, y + 2 * dy); - ctx.lineTo(x + 15 * dx, y + 2 * dy); - ctx.lineTo(x + 14 * dx, y + 3 * dy); - ctx.lineTo(x + 2 * dx, y + 3 * dy); - ctx.moveTo(x + 3 * dx, y + 6 * dy); - ctx.lineTo(x + 13 * dx, y + 6 * dy); - ctx.lineTo(x + 12 * dx, y + 7 * dy); - ctx.lineTo(x + 4 * dx, y + 7 * dy); - ctx.moveTo(x + 5 * dx, y + 10 * dy); - ctx.lineTo(x + 11 * dx, y + 10 * dy); - ctx.lineTo(x + 10 * dx, y + 11 * dy); - ctx.lineTo(x + 6 * dx, y + 11 * dy); - ctx.moveTo(x + 7 * dx, y + 14 * dy); - ctx.lineTo(x + 9 * dx, y + 14 * dy); - ctx.lineTo(x + 8 * dx, y + 15 * dy); - ctx.lineTo(x + 7 * dx, y + 15 * dy); - } - function _iconForceChart(ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - var dx = width / 16; - var dy = height / 16; - var r = Math.min(dx, dy) * 2; - ctx.moveTo(x + dx + r, y + dy + r); - ctx.arc(x + dx, y + dy, r, Math.PI / 4, Math.PI * 3); - ctx.lineTo(x + 7 * dx - r, y + 6 * dy - r); - ctx.arc(x + 7 * dx, y + 6 * dy, r, Math.PI / 4 * 5, Math.PI * 4); - ctx.arc(x + 7 * dx, y + 6 * dy, r / 2, Math.PI / 4 * 5, Math.PI * 4); - ctx.moveTo(x + 7 * dx - r / 2, y + 6 * dy + r); - ctx.lineTo(x + dx + r, y + 14 * dy - r); - ctx.arc(x + dx, y + 14 * dy, r, -Math.PI / 4, Math.PI * 2); - ctx.moveTo(x + 7 * dx + r / 2, y + 6 * dy); - ctx.lineTo(x + 14 * dx - r, y + 10 * dy - r / 2); - ctx.moveTo(x + 16 * dx, y + 10 * dy); - ctx.arc(x + 14 * dx, y + 10 * dy, r, 0, Math.PI * 3); - ctx.lineWidth = 1.5; - } - function _iconChordChart(ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - var r = Math.min(width, height) / 2; - ctx.moveTo(x + width, y + height / 2); - ctx.arc(x + r, y + r, r, 0, Math.PI * 2); - ctx.arc(x + r, y, r, Math.PI / 4, Math.PI / 5 * 4); - ctx.arc(x, y + r, r, -Math.PI / 3, Math.PI / 3); - ctx.arc(x + width, y + height, r, Math.PI, Math.PI / 2 * 3); - ctx.lineWidth = 1.5; - } - function _iconStackChart(ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - var dy = Math.round(height / 3); - var delta = Math.round((dy - 2) / 2); - var len = 3; - while (len--) { - ctx.rect(x, y + dy * len + delta, width, 2); - } - } - function _iconTiledChart(ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - var dx = Math.round(width / 3); - var delta = Math.round((dx - 2) / 2); - var len = 3; - while (len--) { - ctx.rect(x + dx * len + delta, y, 2, height); - } - } - function _iconDataView(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - ctx.moveTo(x + dx, y); - ctx.lineTo(x + dx, y + style.height); - ctx.lineTo(x + 15 * dx, y + style.height); - ctx.lineTo(x + 15 * dx, y); - ctx.lineTo(x + dx, y); - ctx.moveTo(x + 3 * dx, y + 3 * dx); - ctx.lineTo(x + 13 * dx, y + 3 * dx); - ctx.moveTo(x + 3 * dx, y + 6 * dx); - ctx.lineTo(x + 13 * dx, y + 6 * dx); - ctx.moveTo(x + 3 * dx, y + 9 * dx); - ctx.lineTo(x + 13 * dx, y + 9 * dx); - ctx.moveTo(x + 3 * dx, y + 12 * dx); - ctx.lineTo(x + 9 * dx, y + 12 * dx); - } - function _iconSave(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - var dy = style.height / 16; - ctx.moveTo(x, y); - ctx.lineTo(x, y + style.height); - ctx.lineTo(x + style.width, y + style.height); - ctx.lineTo(x + style.width, y); - ctx.lineTo(x, y); - ctx.moveTo(x + 4 * dx, y); - ctx.lineTo(x + 4 * dx, y + 8 * dy); - ctx.lineTo(x + 12 * dx, y + 8 * dy); - ctx.lineTo(x + 12 * dx, y); - ctx.moveTo(x + 6 * dx, y + 11 * dy); - ctx.lineTo(x + 6 * dx, y + 13 * dy); - ctx.lineTo(x + 10 * dx, y + 13 * dy); - ctx.lineTo(x + 10 * dx, y + 11 * dy); - ctx.lineTo(x + 6 * dx, y + 11 * dy); - } - function _iconCross(ctx, style) { - var x = style.x; - var y = style.y; - var width = style.width; - var height = style.height; - ctx.moveTo(x, y + height / 2); - ctx.lineTo(x + width, y + height / 2); - ctx.moveTo(x + width / 2, y); - ctx.lineTo(x + width / 2, y + height); - } - function _iconCircle(ctx, style) { - var width = style.width / 2; - var height = style.height / 2; - var r = Math.min(width, height); - ctx.moveTo(style.x + width + r, style.y + height); - ctx.arc(style.x + width, style.y + height, r, 0, Math.PI * 2); - ctx.closePath(); - } - function _iconRectangle(ctx, style) { - ctx.rect(style.x, style.y, style.width, style.height); - ctx.closePath(); - } - function _iconTriangle(ctx, style) { - var width = style.width / 2; - var height = style.height / 2; - var x = style.x + width; - var y = style.y + height; - var symbolSize = Math.min(width, height); - ctx.moveTo(x, y - symbolSize); - ctx.lineTo(x + symbolSize, y + symbolSize); - ctx.lineTo(x - symbolSize, y + symbolSize); - ctx.lineTo(x, y - symbolSize); - ctx.closePath(); - } - function _iconDiamond(ctx, style) { - var width = style.width / 2; - var height = style.height / 2; - var x = style.x + width; - var y = style.y + height; - var symbolSize = Math.min(width, height); - ctx.moveTo(x, y - symbolSize); - ctx.lineTo(x + symbolSize, y); - ctx.lineTo(x, y + symbolSize); - ctx.lineTo(x - symbolSize, y); - ctx.lineTo(x, y - symbolSize); - ctx.closePath(); - } - function _iconArrow(ctx, style) { - var x = style.x; - var y = style.y; - var dx = style.width / 16; - ctx.moveTo(x + 8 * dx, y); - ctx.lineTo(x + dx, y + style.height); - ctx.lineTo(x + 8 * dx, y + style.height / 4 * 3); - ctx.lineTo(x + 15 * dx, y + style.height); - ctx.lineTo(x + 8 * dx, y); - ctx.closePath(); - } - function _iconStar(ctx, style) { - var StarShape = require('zrender/shape/Star'); - var width = style.width / 2; - var height = style.height / 2; - StarShape.prototype.buildPath(ctx, { - x: style.x + width, - y: style.y + height, - r: Math.min(width, height), - n: style.n || 5 - }); - } - function _iconHeart(ctx, style) { - var HeartShape = require('zrender/shape/Heart'); - HeartShape.prototype.buildPath(ctx, { - x: style.x + style.width / 2, - y: style.y + style.height * 0.2, - a: style.width / 2, - b: style.height * 0.8 - }); - } - function _iconDroplet(ctx, style) { - var DropletShape = require('zrender/shape/Droplet'); - DropletShape.prototype.buildPath(ctx, { - x: style.x + style.width * 0.5, - y: style.y + style.height * 0.5, - a: style.width * 0.5, - b: style.height * 0.8 - }); - } - function _iconPin(ctx, style) { - var x = style.x; - var y = style.y - style.height / 2 * 1.5; - var width = style.width / 2; - var height = style.height / 2; - var r = Math.min(width, height); - ctx.arc(x + width, y + height, r, Math.PI / 5 * 4, Math.PI / 5); - ctx.lineTo(x + width, y + height + r * 1.5); - ctx.closePath(); - } - function _iconImage(ctx, style, refreshNextFrame) { - var ImageShape = require('zrender/shape/Image'); - this._imageShape = this._imageShape || new ImageShape({ style: {} }); - for (var name in style) { - this._imageShape.style[name] = style[name]; - } - this._imageShape.brush(ctx, false, refreshNextFrame); - } - var Base = require('zrender/shape/Base'); - function Icon(options) { - Base.call(this, options); - } - Icon.prototype = { - type: 'icon', - iconLibrary: { - mark: _iconMark, - markUndo: _iconMarkUndo, - markClear: _iconMarkClear, - dataZoom: _iconDataZoom, - dataZoomReset: _iconDataZoomReset, - restore: _iconRestore, - lineChart: _iconLineChart, - barChart: _iconBarChart, - pieChart: _iconPieChart, - funnelChart: _iconFunnelChart, - forceChart: _iconForceChart, - chordChart: _iconChordChart, - stackChart: _iconStackChart, - tiledChart: _iconTiledChart, - dataView: _iconDataView, - saveAsImage: _iconSave, - cross: _iconCross, - circle: _iconCircle, - rectangle: _iconRectangle, - triangle: _iconTriangle, - diamond: _iconDiamond, - arrow: _iconArrow, - star: _iconStar, - heart: _iconHeart, - droplet: _iconDroplet, - pin: _iconPin, - image: _iconImage - }, - brush: function (ctx, isHighlight, refreshNextFrame) { - var style = isHighlight ? this.highlightStyle : this.style; - style = style || {}; - var iconType = style.iconType || this.style.iconType; - if (iconType === 'image') { - var ImageShape = require('zrender/shape/Image'); - ImageShape.prototype.brush.call(this, ctx, isHighlight, refreshNextFrame); - } else { - var style = this.beforeBrush(ctx, isHighlight); - ctx.beginPath(); - this.buildPath(ctx, style, refreshNextFrame); - switch (style.brushType) { - case 'both': - ctx.fill(); - case 'stroke': - style.lineWidth > 0 && ctx.stroke(); - break; - default: - ctx.fill(); - } - this.drawText(ctx, style, this.style); - this.afterBrush(ctx); - } - }, - buildPath: function (ctx, style, refreshNextFrame) { - if (this.iconLibrary[style.iconType]) { - this.iconLibrary[style.iconType].call(this, ctx, style, refreshNextFrame); - } else { - ctx.moveTo(style.x, style.y); - ctx.lineTo(style.x + style.width, style.y); - ctx.lineTo(style.x + style.width, style.y + style.height); - ctx.lineTo(style.x, style.y + style.height); - ctx.lineTo(style.x, style.y); - ctx.closePath(); - } - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - style.__rect = { - x: Math.round(style.x), - y: Math.round(style.y - (style.iconType == 'pin' ? style.height / 2 * 1.5 : 0)), - width: style.width, - height: style.height * (style.iconType === 'pin' ? 1.25 : 1) - }; - return style.__rect; - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - var rect = this.style.__rect; - if (!rect) { - rect = this.style.__rect = this.getRect(this.style); - } - var delta = rect.height < 8 || rect.width < 8 ? 4 : 0; - return x >= rect.x - delta && x <= rect.x + rect.width + delta && y >= rect.y - delta && y <= rect.y + rect.height + delta; - } - }; - zrUtil.inherits(Icon, Base); - return Icon; -});define('echarts/util/shape/MarkLine', [ - 'require', - 'zrender/shape/Base', - './Icon', - 'zrender/shape/Line', - 'zrender/shape/BezierCurve', - 'zrender/tool/area', - 'zrender/shape/util/dashedLineTo', - 'zrender/tool/util', - 'zrender/tool/curve' -], function (require) { - var Base = require('zrender/shape/Base'); - var IconShape = require('./Icon'); - var LineShape = require('zrender/shape/Line'); - var lineInstance = new LineShape({}); - var CurveShape = require('zrender/shape/BezierCurve'); - var curveInstance = new CurveShape({}); - var area = require('zrender/tool/area'); - var dashedLineTo = require('zrender/shape/util/dashedLineTo'); - var zrUtil = require('zrender/tool/util'); - var curveTool = require('zrender/tool/curve'); - function MarkLine(options) { - Base.call(this, options); - if (this.style.curveness > 0) { - this.updatePoints(this.style); - } - if (this.highlightStyle.curveness > 0) { - this.updatePoints(this.highlightStyle); - } - } - MarkLine.prototype = { - type: 'mark-line', - brush: function (ctx, isHighlight) { - var style = this.style; - if (isHighlight) { - style = this.getHighlightStyle(style, this.highlightStyle || {}); - } - ctx.save(); - this.setContext(ctx, style); - this.setTransform(ctx); - ctx.save(); - ctx.beginPath(); - this.buildPath(ctx, style); - ctx.stroke(); - ctx.restore(); - this.brushSymbol(ctx, style, 0); - this.brushSymbol(ctx, style, 1); - this.drawText(ctx, style, this.style); - ctx.restore(); - }, - buildPath: function (ctx, style) { - var lineType = style.lineType || 'solid'; - ctx.moveTo(style.xStart, style.yStart); - if (style.curveness > 0) { - var lineDash = null; - switch (lineType) { - case 'dashed': - lineDash = [ - 5, - 5 - ]; - break; - case 'dotted': - lineDash = [ - 1, - 1 - ]; - break; - } - if (lineDash && ctx.setLineDash) { - ctx.setLineDash(lineDash); - } - ctx.quadraticCurveTo(style.cpX1, style.cpY1, style.xEnd, style.yEnd); - } else { - if (lineType == 'solid') { - ctx.lineTo(style.xEnd, style.yEnd); - } else { - var dashLength = (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); - dashedLineTo(ctx, style.xStart, style.yStart, style.xEnd, style.yEnd, dashLength); - } - } - }, - updatePoints: function (style) { - var curveness = style.curveness || 0; - var inv = 1; - var x0 = style.xStart; - var y0 = style.yStart; - var x2 = style.xEnd; - var y2 = style.yEnd; - var x1 = (x0 + x2) / 2 - inv * (y0 - y2) * curveness; - var y1 = (y0 + y2) / 2 - inv * (x2 - x0) * curveness; - style.cpX1 = x1; - style.cpY1 = y1; - }, - brushSymbol: function (ctx, style, idx) { - if (style.symbol[idx] == 'none') { - return; - } - ctx.save(); - ctx.beginPath(); - ctx.lineWidth = style.symbolBorder; - ctx.strokeStyle = style.symbolBorderColor; - var symbol = style.symbol[idx].replace('empty', '').toLowerCase(); - if (style.symbol[idx].match('empty')) { - ctx.fillStyle = '#fff'; - } - var x0 = style.xStart; - var y0 = style.yStart; - var x2 = style.xEnd; - var y2 = style.yEnd; - var x = idx === 0 ? x0 : x2; - var y = idx === 0 ? y0 : y2; - var curveness = style.curveness || 0; - var rotate = style.symbolRotate[idx] != null ? style.symbolRotate[idx] - 0 : 0; - rotate = rotate / 180 * Math.PI; - if (symbol == 'arrow' && rotate === 0) { - if (curveness === 0) { - var sign = idx === 0 ? -1 : 1; - rotate = Math.PI / 2 + Math.atan2(sign * (y2 - y0), sign * (x2 - x0)); - } else { - var x1 = style.cpX1; - var y1 = style.cpY1; - var quadraticDerivativeAt = curveTool.quadraticDerivativeAt; - var dx = quadraticDerivativeAt(x0, x1, x2, idx); - var dy = quadraticDerivativeAt(y0, y1, y2, idx); - rotate = Math.PI / 2 + Math.atan2(dy, dx); - } - } - ctx.translate(x, y); - if (rotate !== 0) { - ctx.rotate(rotate); - } - var symbolSize = style.symbolSize[idx]; - IconShape.prototype.buildPath(ctx, { - x: -symbolSize, - y: -symbolSize, - width: symbolSize * 2, - height: symbolSize * 2, - iconType: symbol - }); - ctx.closePath(); - ctx.fill(); - ctx.stroke(); - ctx.restore(); - }, - getRect: function (style) { - style.curveness > 0 ? curveInstance.getRect(style) : lineInstance.getRect(style); - return style.__rect; - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - if (this.isCoverRect(x, y)) { - return this.style.curveness > 0 ? area.isInside(curveInstance, this.style, x, y) : area.isInside(lineInstance, this.style, x, y); - } - return false; - } - }; - zrUtil.inherits(MarkLine, Base); - return MarkLine; -});define('echarts/util/shape/Symbol', [ - 'require', - 'zrender/shape/Base', - 'zrender/shape/Polygon', - 'zrender/tool/util', - './normalIsCover' -], function (require) { - var Base = require('zrender/shape/Base'); - var PolygonShape = require('zrender/shape/Polygon'); - var polygonInstance = new PolygonShape({}); - var zrUtil = require('zrender/tool/util'); - function Symbol(options) { - Base.call(this, options); - } - Symbol.prototype = { - type: 'symbol', - buildPath: function (ctx, style) { - var pointList = style.pointList; - var len = pointList.length; - if (len === 0) { - return; - } - var subSize = 10000; - var subSetLength = Math.ceil(len / subSize); - var sub; - var subLen; - var isArray = pointList[0] instanceof Array; - var size = style.size ? style.size : 2; - var curSize = size; - var halfSize = size / 2; - var PI2 = Math.PI * 2; - var percent; - var x; - var y; - for (var j = 0; j < subSetLength; j++) { - ctx.beginPath(); - sub = j * subSize; - subLen = sub + subSize; - subLen = subLen > len ? len : subLen; - for (var i = sub; i < subLen; i++) { - if (style.random) { - percent = style['randomMap' + i % 20] / 100; - curSize = size * percent * percent; - halfSize = curSize / 2; - } - if (isArray) { - x = pointList[i][0]; - y = pointList[i][1]; - } else { - x = pointList[i].x; - y = pointList[i].y; - } - if (curSize < 3) { - ctx.rect(x - halfSize, y - halfSize, curSize, curSize); - } else { - switch (style.iconType) { - case 'circle': - ctx.moveTo(x, y); - ctx.arc(x, y, halfSize, 0, PI2, true); - break; - case 'diamond': - ctx.moveTo(x, y - halfSize); - ctx.lineTo(x + halfSize / 3, y - halfSize / 3); - ctx.lineTo(x + halfSize, y); - ctx.lineTo(x + halfSize / 3, y + halfSize / 3); - ctx.lineTo(x, y + halfSize); - ctx.lineTo(x - halfSize / 3, y + halfSize / 3); - ctx.lineTo(x - halfSize, y); - ctx.lineTo(x - halfSize / 3, y - halfSize / 3); - ctx.lineTo(x, y - halfSize); - break; - default: - ctx.rect(x - halfSize, y - halfSize, curSize, curSize); - } - } - } - ctx.closePath(); - if (j < subSetLength - 1) { - switch (style.brushType) { - case 'both': - ctx.fill(); - style.lineWidth > 0 && ctx.stroke(); - break; - case 'stroke': - style.lineWidth > 0 && ctx.stroke(); - break; - default: - ctx.fill(); - } - } - } - }, - getRect: function (style) { - return style.__rect || polygonInstance.getRect(style); - }, - isCover: require('./normalIsCover') - }; - zrUtil.inherits(Symbol, Base); - return Symbol; -});define('zrender/shape/Polyline', [ - 'require', - './Base', - './util/smoothSpline', - './util/smoothBezier', - './util/dashedLineTo', - './Polygon', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var smoothSpline = require('./util/smoothSpline'); - var smoothBezier = require('./util/smoothBezier'); - var dashedLineTo = require('./util/dashedLineTo'); - var Polyline = function (options) { - this.brushTypeOnly = 'stroke'; - this.textPosition = 'end'; - Base.call(this, options); - }; - Polyline.prototype = { - type: 'polyline', - buildPath: function (ctx, style) { - var pointList = style.pointList; - if (pointList.length < 2) { - return; - } - var len = Math.min(style.pointList.length, Math.round(style.pointListLength || style.pointList.length)); - if (style.smooth && style.smooth !== 'spline') { - if (!style.controlPointList) { - this.updateControlPoints(style); - } - var controlPointList = style.controlPointList; - ctx.moveTo(pointList[0][0], pointList[0][1]); - var cp1; - var cp2; - var p; - for (var i = 0; i < len - 1; i++) { - cp1 = controlPointList[i * 2]; - cp2 = controlPointList[i * 2 + 1]; - p = pointList[i + 1]; - ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); - } - } else { - if (style.smooth === 'spline') { - pointList = smoothSpline(pointList); - len = pointList.length; - } - if (!style.lineType || style.lineType == 'solid') { - ctx.moveTo(pointList[0][0], pointList[0][1]); - for (var i = 1; i < len; i++) { - ctx.lineTo(pointList[i][0], pointList[i][1]); - } - } else if (style.lineType == 'dashed' || style.lineType == 'dotted') { - var dashLength = (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); - ctx.moveTo(pointList[0][0], pointList[0][1]); - for (var i = 1; i < len; i++) { - dashedLineTo(ctx, pointList[i - 1][0], pointList[i - 1][1], pointList[i][0], pointList[i][1], dashLength); - } - } - } - return; - }, - updateControlPoints: function (style) { - style.controlPointList = smoothBezier(style.pointList, style.smooth, false, style.smoothConstraint); - }, - getRect: function (style) { - return require('./Polygon').prototype.getRect(style); - } - }; - require('../tool/util').inherits(Polyline, Base); - return Polyline; -});define('zrender/shape/ShapeBundle', [ - 'require', - './Base', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var ShapeBundle = function (options) { - Base.call(this, options); - }; - ShapeBundle.prototype = { - constructor: ShapeBundle, - type: 'shape-bundle', - brush: function (ctx, isHighlight) { - var style = this.beforeBrush(ctx, isHighlight); - ctx.beginPath(); - for (var i = 0; i < style.shapeList.length; i++) { - var subShape = style.shapeList[i]; - var subShapeStyle = subShape.style; - if (isHighlight) { - subShapeStyle = subShape.getHighlightStyle(subShapeStyle, subShape.highlightStyle || {}, subShape.brushTypeOnly); - } - subShape.buildPath(ctx, subShapeStyle); - } - switch (style.brushType) { - case 'both': - ctx.fill(); - case 'stroke': - style.lineWidth > 0 && ctx.stroke(); - break; - default: - ctx.fill(); - } - this.drawText(ctx, style, this.style); - this.afterBrush(ctx); - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var minX = Infinity; - var maxX = -Infinity; - var minY = Infinity; - var maxY = -Infinity; - for (var i = 0; i < style.shapeList.length; i++) { - var subShape = style.shapeList[i]; - var subRect = subShape.getRect(subShape.style); - var minX = Math.min(subRect.x, minX); - var minY = Math.min(subRect.y, minY); - var maxX = Math.max(subRect.x + subRect.width, maxX); - var maxY = Math.max(subRect.y + subRect.height, maxY); - } - style.__rect = { - x: minX, - y: minY, - width: maxX - minX, - height: maxY - minY - }; - return style.__rect; - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - if (this.isCoverRect(x, y)) { - for (var i = 0; i < this.style.shapeList.length; i++) { - var subShape = this.style.shapeList[i]; - if (subShape.isCover(x, y)) { - return true; - } - } - } - return false; - } - }; - require('../tool/util').inherits(ShapeBundle, Base); - return ShapeBundle; -});define('echarts/util/ecAnimation', [ - 'require', - 'zrender/tool/util', - 'zrender/tool/curve', - 'zrender/shape/Polygon' -], function (require) { - var zrUtil = require('zrender/tool/util'); - var curveTool = require('zrender/tool/curve'); - function pointList(zr, oldShape, newShape, duration, easing) { - var newPointList = newShape.style.pointList; - var newPointListLen = newPointList.length; - var oldPointList; - if (!oldShape) { - oldPointList = []; - if (newShape._orient != 'vertical') { - var y = newPointList[0][1]; - for (var i = 0; i < newPointListLen; i++) { - oldPointList[i] = [ - newPointList[i][0], - y - ]; - } - } else { - var x = newPointList[0][0]; - for (var i = 0; i < newPointListLen; i++) { - oldPointList[i] = [ - x, - newPointList[i][1] - ]; - } - } - if (newShape.type == 'half-smooth-polygon') { - oldPointList[newPointListLen - 1] = zrUtil.clone(newPointList[newPointListLen - 1]); - oldPointList[newPointListLen - 2] = zrUtil.clone(newPointList[newPointListLen - 2]); - } - oldShape = { style: { pointList: oldPointList } }; - } - oldPointList = oldShape.style.pointList; - var oldPointListLen = oldPointList.length; - if (oldPointListLen == newPointListLen) { - newShape.style.pointList = oldPointList; - } else if (oldPointListLen < newPointListLen) { - newShape.style.pointList = oldPointList.concat(newPointList.slice(oldPointListLen)); - } else { - newShape.style.pointList = oldPointList.slice(0, newPointListLen); - } - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { pointList: newPointList }).during(function () { - if (newShape.updateControlPoints) { - newShape.updateControlPoints(newShape.style); - } - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function cloneStyle(target, source) { - var len = arguments.length; - for (var i = 2; i < len; i++) { - var prop = arguments[i]; - target.style[prop] = source.style[prop]; - } - } - function rectangle(zr, oldShape, newShape, duration, easing) { - var newShapeStyle = newShape.style; - if (!oldShape) { - oldShape = { - position: newShape.position, - style: { - x: newShapeStyle.x, - y: newShape._orient == 'vertical' ? newShapeStyle.y + newShapeStyle.height : newShapeStyle.y, - width: newShape._orient == 'vertical' ? newShapeStyle.width : 0, - height: newShape._orient != 'vertical' ? newShapeStyle.height : 0 - } - }; - } - var newX = newShapeStyle.x; - var newY = newShapeStyle.y; - var newWidth = newShapeStyle.width; - var newHeight = newShapeStyle.height; - var newPosition = [ - newShape.position[0], - newShape.position[1] - ]; - cloneStyle(newShape, oldShape, 'x', 'y', 'width', 'height'); - newShape.position = oldShape.position; - zr.addShape(newShape); - if (newPosition[0] != oldShape.position[0] || newPosition[1] != oldShape.position[1]) { - zr.animate(newShape.id, '').when(duration, { position: newPosition }).start(easing); - } - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { - x: newX, - y: newY, - width: newWidth, - height: newHeight - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function candle(zr, oldShape, newShape, duration, easing) { - if (!oldShape) { - var y = newShape.style.y; - oldShape = { - style: { - y: [ - y[0], - y[0], - y[0], - y[0] - ] - } - }; - } - var newY = newShape.style.y; - newShape.style.y = oldShape.style.y; - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { y: newY }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function ring(zr, oldShape, newShape, duration, easing) { - var x = newShape.style.x; - var y = newShape.style.y; - var r0 = newShape.style.r0; - var r = newShape.style.r; - newShape.__animating = true; - if (newShape._animationAdd != 'r') { - newShape.style.r0 = 0; - newShape.style.r = 0; - newShape.rotation = [ - Math.PI * 2, - x, - y - ]; - zr.addShape(newShape); - zr.animate(newShape.id, 'style').when(duration, { - r0: r0, - r: r - }).done(function () { - newShape.__animating = false; - }).start(easing); - zr.animate(newShape.id, '').when(duration, { - rotation: [ - 0, - x, - y - ] - }).start(easing); - } else { - newShape.style.r0 = newShape.style.r; - zr.addShape(newShape); - zr.animate(newShape.id, 'style').when(duration, { r0: r0 }).done(function () { - newShape.__animating = false; - }).start(easing); - } - } - function sector(zr, oldShape, newShape, duration, easing) { - if (!oldShape) { - if (newShape._animationAdd != 'r') { - oldShape = { - style: { - startAngle: newShape.style.startAngle, - endAngle: newShape.style.startAngle - } - }; - } else { - oldShape = { style: { r0: newShape.style.r } }; - } - } - var startAngle = newShape.style.startAngle; - var endAngle = newShape.style.endAngle; - cloneStyle(newShape, oldShape, 'startAngle', 'endAngle'); - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { - startAngle: startAngle, - endAngle: endAngle - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function text(zr, oldShape, newShape, duration, easing) { - if (!oldShape) { - oldShape = { - style: { - x: newShape.style.textAlign == 'left' ? newShape.style.x + 100 : newShape.style.x - 100, - y: newShape.style.y - } - }; - } - var x = newShape.style.x; - var y = newShape.style.y; - cloneStyle(newShape, oldShape, 'x', 'y'); - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { - x: x, - y: y - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function polygon(zr, oldShape, newShape, duration, easing) { - var rect = require('zrender/shape/Polygon').prototype.getRect(newShape.style); - var x = rect.x + rect.width / 2; - var y = rect.y + rect.height / 2; - newShape.scale = [ - 0.1, - 0.1, - x, - y - ]; - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, '').when(duration, { - scale: [ - 1, - 1, - x, - y - ] - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function ribbon(zr, oldShape, newShape, duration, easing) { - if (!oldShape) { - oldShape = { - style: { - source0: 0, - source1: newShape.style.source1 > 0 ? 360 : -360, - target0: 0, - target1: newShape.style.target1 > 0 ? 360 : -360 - } - }; - } - var source0 = newShape.style.source0; - var source1 = newShape.style.source1; - var target0 = newShape.style.target0; - var target1 = newShape.style.target1; - if (oldShape.style) { - cloneStyle(newShape, oldShape, 'source0', 'source1', 'target0', 'target1'); - } - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { - source0: source0, - source1: source1, - target0: target0, - target1: target1 - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function gaugePointer(zr, oldShape, newShape, duration, easing) { - if (!oldShape) { - oldShape = { style: { angle: newShape.style.startAngle } }; - } - var angle = newShape.style.angle; - newShape.style.angle = oldShape.style.angle; - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { angle: angle }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function icon(zr, oldShape, newShape, duration, easing, delay) { - newShape.style._x = newShape.style.x; - newShape.style._y = newShape.style.y; - newShape.style._width = newShape.style.width; - newShape.style._height = newShape.style.height; - if (!oldShape) { - var x = newShape._x || 0; - var y = newShape._y || 0; - newShape.scale = [ - 0.01, - 0.01, - x, - y - ]; - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, '').delay(delay).when(duration, { - scale: [ - 1, - 1, - x, - y - ] - }).done(function () { - newShape.__animating = false; - }).start(easing || 'QuinticOut'); - } else { - rectangle(zr, oldShape, newShape, duration, easing); - } - } - function line(zr, oldShape, newShape, duration, easing) { - if (!oldShape) { - oldShape = { - style: { - xStart: newShape.style.xStart, - yStart: newShape.style.yStart, - xEnd: newShape.style.xStart, - yEnd: newShape.style.yStart - } - }; - } - var xStart = newShape.style.xStart; - var xEnd = newShape.style.xEnd; - var yStart = newShape.style.yStart; - var yEnd = newShape.style.yEnd; - cloneStyle(newShape, oldShape, 'xStart', 'xEnd', 'yStart', 'yEnd'); - zr.addShape(newShape); - newShape.__animating = true; - zr.animate(newShape.id, 'style').when(duration, { - xStart: xStart, - xEnd: xEnd, - yStart: yStart, - yEnd: yEnd - }).done(function () { - newShape.__animating = false; - }).start(easing); - } - function markline(zr, oldShape, newShape, duration, easing) { - easing = easing || 'QuinticOut'; - newShape.__animating = true; - zr.addShape(newShape); - var newShapeStyle = newShape.style; - var animationDone = function () { - newShape.__animating = false; - }; - var x0 = newShapeStyle.xStart; - var y0 = newShapeStyle.yStart; - var x2 = newShapeStyle.xEnd; - var y2 = newShapeStyle.yEnd; - if (newShapeStyle.curveness > 0) { - newShape.updatePoints(newShapeStyle); - var obj = { p: 0 }; - var x1 = newShapeStyle.cpX1; - var y1 = newShapeStyle.cpY1; - var newXArr = []; - var newYArr = []; - var subdivide = curveTool.quadraticSubdivide; - zr.animation.animate(obj).when(duration, { p: 1 }).during(function () { - subdivide(x0, x1, x2, obj.p, newXArr); - subdivide(y0, y1, y2, obj.p, newYArr); - newShapeStyle.cpX1 = newXArr[1]; - newShapeStyle.cpY1 = newYArr[1]; - newShapeStyle.xEnd = newXArr[2]; - newShapeStyle.yEnd = newYArr[2]; - zr.modShape(newShape); - }).done(animationDone).start(easing); - } else { - zr.animate(newShape.id, 'style').when(0, { - xEnd: x0, - yEnd: y0 - }).when(duration, { - xEnd: x2, - yEnd: y2 - }).done(animationDone).start(easing); - } - } - return { - pointList: pointList, - rectangle: rectangle, - candle: candle, - ring: ring, - sector: sector, - text: text, - polygon: polygon, - ribbon: ribbon, - gaugePointer: gaugePointer, - icon: icon, - line: line, - markline: markline - }; -});define('echarts/util/ecEffect', [ - 'require', - '../util/ecData', - 'zrender/shape/Circle', - 'zrender/shape/Image', - 'zrender/tool/curve', - '../util/shape/Icon', - '../util/shape/Symbol', - 'zrender/shape/ShapeBundle', - 'zrender/shape/Polyline', - 'zrender/tool/vector', - 'zrender/tool/env' -], function (require) { - var ecData = require('../util/ecData'); - var CircleShape = require('zrender/shape/Circle'); - var ImageShape = require('zrender/shape/Image'); - var curveTool = require('zrender/tool/curve'); - var IconShape = require('../util/shape/Icon'); - var SymbolShape = require('../util/shape/Symbol'); - var ShapeBundle = require('zrender/shape/ShapeBundle'); - var Polyline = require('zrender/shape/Polyline'); - var vec2 = require('zrender/tool/vector'); - var canvasSupported = require('zrender/tool/env').canvasSupported; - function point(zr, effectList, shape, zlevel) { - var effect = shape.effect; - var color = effect.color || shape.style.strokeColor || shape.style.color; - var shadowColor = effect.shadowColor || color; - var size = effect.scaleSize; - var distance = effect.bounceDistance; - var shadowBlur = typeof effect.shadowBlur != 'undefined' ? effect.shadowBlur : size; - var effectShape; - if (shape.type !== 'image') { - effectShape = new IconShape({ - zlevel: zlevel, - style: { - brushType: 'stroke', - iconType: shape.style.iconType != 'droplet' ? shape.style.iconType : 'circle', - x: shadowBlur + 1, - y: shadowBlur + 1, - n: shape.style.n, - width: shape.style._width * size, - height: shape.style._height * size, - lineWidth: 1, - strokeColor: color, - shadowColor: shadowColor, - shadowBlur: shadowBlur - }, - draggable: false, - hoverable: false - }); - if (shape.style.iconType == 'pin') { - effectShape.style.y += effectShape.style.height / 2 * 1.5; - } - if (canvasSupported) { - effectShape.style.image = zr.shapeToImage(effectShape, effectShape.style.width + shadowBlur * 2 + 2, effectShape.style.height + shadowBlur * 2 + 2).style.image; - effectShape = new ImageShape({ - zlevel: effectShape.zlevel, - style: effectShape.style, - draggable: false, - hoverable: false - }); - } - } else { - effectShape = new ImageShape({ - zlevel: zlevel, - style: shape.style, - draggable: false, - hoverable: false - }); - } - ecData.clone(shape, effectShape); - effectShape.position = shape.position; - effectList.push(effectShape); - zr.addShape(effectShape); - var devicePixelRatio = shape.type !== 'image' ? window.devicePixelRatio || 1 : 1; - var offset = (effectShape.style.width / devicePixelRatio - shape.style._width) / 2; - effectShape.style.x = shape.style._x - offset; - effectShape.style.y = shape.style._y - offset; - if (shape.style.iconType == 'pin') { - effectShape.style.y -= shape.style.height / 2 * 1.5; - } - var duration = (effect.period + Math.random() * 10) * 100; - zr.modShape(shape.id, { invisible: true }); - var centerX = effectShape.style.x + effectShape.style.width / 2 / devicePixelRatio; - var centerY = effectShape.style.y + effectShape.style.height / 2 / devicePixelRatio; - if (effect.type === 'scale') { - zr.modShape(effectShape.id, { - scale: [ - 0.1, - 0.1, - centerX, - centerY - ] - }); - zr.animate(effectShape.id, '', effect.loop).when(duration, { - scale: [ - 1, - 1, - centerX, - centerY - ] - }).done(function () { - shape.effect.show = false; - zr.delShape(effectShape.id); - }).start(); - } else { - zr.animate(effectShape.id, 'style', effect.loop).when(duration, { y: effectShape.style.y - distance }).when(duration * 2, { y: effectShape.style.y }).done(function () { - shape.effect.show = false; - zr.delShape(effectShape.id); - }).start(); - } - } - function largePoint(zr, effectList, shape, zlevel) { - var effect = shape.effect; - var color = effect.color || shape.style.strokeColor || shape.style.color; - var size = effect.scaleSize; - var shadowColor = effect.shadowColor || color; - var shadowBlur = typeof effect.shadowBlur != 'undefined' ? effect.shadowBlur : size * 2; - var devicePixelRatio = window.devicePixelRatio || 1; - var effectShape = new SymbolShape({ - zlevel: zlevel, - position: shape.position, - scale: shape.scale, - style: { - pointList: shape.style.pointList, - iconType: shape.style.iconType, - color: color, - strokeColor: color, - shadowColor: shadowColor, - shadowBlur: shadowBlur * devicePixelRatio, - random: true, - brushType: 'fill', - lineWidth: 1, - size: shape.style.size - }, - draggable: false, - hoverable: false - }); - effectList.push(effectShape); - zr.addShape(effectShape); - zr.modShape(shape.id, { invisible: true }); - var duration = Math.round(effect.period * 100); - var clip1 = {}; - var clip2 = {}; - for (var i = 0; i < 20; i++) { - effectShape.style['randomMap' + i] = 0; - clip1 = {}; - clip1['randomMap' + i] = 100; - clip2 = {}; - clip2['randomMap' + i] = 0; - effectShape.style['randomMap' + i] = Math.random() * 100; - zr.animate(effectShape.id, 'style', true).when(duration, clip1).when(duration * 2, clip2).when(duration * 3, clip1).when(duration * 4, clip1).delay(Math.random() * duration * i).start(); - } - } - function line(zr, effectList, shape, zlevel, isLarge) { - var effect = shape.effect; - var shapeStyle = shape.style; - var color = effect.color || shapeStyle.strokeColor || shapeStyle.color; - var shadowColor = effect.shadowColor || shapeStyle.strokeColor || color; - var size = shapeStyle.lineWidth * effect.scaleSize; - var shadowBlur = typeof effect.shadowBlur != 'undefined' ? effect.shadowBlur : size; - var effectShape = new CircleShape({ - zlevel: zlevel, - style: { - x: shadowBlur, - y: shadowBlur, - r: size, - color: color, - shadowColor: shadowColor, - shadowBlur: shadowBlur - }, - hoverable: false - }); - var offset = 0; - if (canvasSupported && !isLarge) { - var zlevel = effectShape.zlevel; - effectShape = zr.shapeToImage(effectShape, (size + shadowBlur) * 2, (size + shadowBlur) * 2); - effectShape.zlevel = zlevel; - effectShape.hoverable = false; - offset = shadowBlur; - } - if (!isLarge) { - ecData.clone(shape, effectShape); - effectShape.position = shape.position; - effectList.push(effectShape); - zr.addShape(effectShape); - } - var effectDone = function () { - if (!isLarge) { - shape.effect.show = false; - zr.delShape(effectShape.id); - } - effectShape.effectAnimator = null; - }; - if (shape instanceof Polyline) { - var distanceList = [0]; - var totalDist = 0; - var pointList = shapeStyle.pointList; - var controlPointList = shapeStyle.controlPointList; - for (var i = 1; i < pointList.length; i++) { - if (controlPointList) { - var cp1 = controlPointList[(i - 1) * 2]; - var cp2 = controlPointList[(i - 1) * 2 + 1]; - totalDist += vec2.dist(pointList[i - 1], cp1) + vec2.dist(cp1, cp2) + vec2.dist(cp2, pointList[i]); - } else { - totalDist += vec2.dist(pointList[i - 1], pointList[i]); - } - distanceList.push(totalDist); - } - var obj = { p: 0 }; - var animator = zr.animation.animate(obj, { loop: effect.loop }); - for (var i = 0; i < distanceList.length; i++) { - animator.when(distanceList[i] * effect.period, { p: i }); - } - animator.during(function () { - var i = Math.floor(obj.p); - var x, y; - if (i == pointList.length - 1) { - x = pointList[i][0]; - y = pointList[i][1]; - } else { - var t = obj.p - i; - var p0 = pointList[i]; - var p1 = pointList[i + 1]; - if (controlPointList) { - var cp1 = controlPointList[i * 2]; - var cp2 = controlPointList[i * 2 + 1]; - x = curveTool.cubicAt(p0[0], cp1[0], cp2[0], p1[0], t); - y = curveTool.cubicAt(p0[1], cp1[1], cp2[1], p1[1], t); - } else { - x = (p1[0] - p0[0]) * t + p0[0]; - y = (p1[1] - p0[1]) * t + p0[1]; - } - } - effectShape.style.x = x; - effectShape.style.y = y; - if (!isLarge) { - zr.modShape(effectShape); - } - }).done(effectDone).start(); - animator.duration = totalDist * effect.period; - effectShape.effectAnimator = animator; - } else { - var x0 = shapeStyle.xStart - offset; - var y0 = shapeStyle.yStart - offset; - var x2 = shapeStyle.xEnd - offset; - var y2 = shapeStyle.yEnd - offset; - effectShape.style.x = x0; - effectShape.style.y = y0; - var distance = (x2 - x0) * (x2 - x0) + (y2 - y0) * (y2 - y0); - var duration = Math.round(Math.sqrt(Math.round(distance * effect.period * effect.period))); - if (shape.style.curveness > 0) { - var x1 = shapeStyle.cpX1 - offset; - var y1 = shapeStyle.cpY1 - offset; - effectShape.effectAnimator = zr.animation.animate(effectShape, { loop: effect.loop }).when(duration, { p: 1 }).during(function (target, t) { - effectShape.style.x = curveTool.quadraticAt(x0, x1, x2, t); - effectShape.style.y = curveTool.quadraticAt(y0, y1, y2, t); - if (!isLarge) { - zr.modShape(effectShape); - } - }).done(effectDone).start(); - } else { - effectShape.effectAnimator = zr.animation.animate(effectShape.style, { loop: effect.loop }).when(duration, { - x: x2, - y: y2 - }).during(function () { - if (!isLarge) { - zr.modShape(effectShape); - } - }).done(effectDone).start(); - } - effectShape.effectAnimator.duration = duration; - } - return effectShape; - } - function largeLine(zr, effectList, shape, zlevel) { - var effectShape = new ShapeBundle({ - style: { shapeList: [] }, - zlevel: zlevel, - hoverable: false - }); - var shapeList = shape.style.shapeList; - var effect = shape.effect; - effectShape.position = shape.position; - var maxDuration = 0; - var subEffectAnimators = []; - for (var i = 0; i < shapeList.length; i++) { - shapeList[i].effect = effect; - var subEffectShape = line(zr, null, shapeList[i], zlevel, true); - var subEffectAnimator = subEffectShape.effectAnimator; - effectShape.style.shapeList.push(subEffectShape); - if (subEffectAnimator.duration > maxDuration) { - maxDuration = subEffectAnimator.duration; - } - if (i === 0) { - effectShape.style.color = subEffectShape.style.color; - effectShape.style.shadowBlur = subEffectShape.style.shadowBlur; - effectShape.style.shadowColor = subEffectShape.style.shadowColor; - } - subEffectAnimators.push(subEffectAnimator); - } - effectList.push(effectShape); - zr.addShape(effectShape); - var clearAllAnimators = function () { - for (var i = 0; i < subEffectAnimators.length; i++) { - subEffectAnimators[i].stop(); - } - }; - if (maxDuration) { - effectShape.__dummy = 0; - var animator = zr.animate(effectShape.id, '', effect.loop).when(maxDuration, { __dummy: 1 }).during(function () { - zr.modShape(effectShape); - }).done(function () { - shape.effect.show = false; - zr.delShape(effectShape.id); - }).start(); - var oldStop = animator.stop; - animator.stop = function () { - clearAllAnimators(); - oldStop.call(this); - }; - } - } - return { - point: point, - largePoint: largePoint, - line: line, - largeLine: largeLine - }; -});define('echarts/component/base', [ - 'require', - '../config', - '../util/ecData', - '../util/ecQuery', - '../util/number', - 'zrender/tool/util', - 'zrender/tool/env' -], function (require) { - var ecConfig = require('../config'); - var ecData = require('../util/ecData'); - var ecQuery = require('../util/ecQuery'); - var number = require('../util/number'); - var zrUtil = require('zrender/tool/util'); - function Base(ecTheme, messageCenter, zr, option, myChart) { - this.ecTheme = ecTheme; - this.messageCenter = messageCenter; - this.zr = zr; - this.option = option; - this.series = option.series; - this.myChart = myChart; - this.component = myChart.component; - this.shapeList = []; - this.effectList = []; - var self = this; - self._onlegendhoverlink = function (param) { - if (self.legendHoverLink) { - var targetName = param.target; - var name; - for (var i = self.shapeList.length - 1; i >= 0; i--) { - name = self.type == ecConfig.CHART_TYPE_PIE || self.type == ecConfig.CHART_TYPE_FUNNEL ? ecData.get(self.shapeList[i], 'name') : (ecData.get(self.shapeList[i], 'series') || {}).name; - if (name == targetName && !self.shapeList[i].invisible && !self.shapeList[i].__animating) { - self.zr.addHoverShape(self.shapeList[i]); - } - } - } - }; - messageCenter && messageCenter.bind(ecConfig.EVENT.LEGEND_HOVERLINK, this._onlegendhoverlink); - } - Base.prototype = { - canvasSupported: require('zrender/tool/env').canvasSupported, - _getZ: function (zWhat) { - if (this[zWhat] != null) { - return this[zWhat]; - } - var opt = this.ecTheme[this.type]; - if (opt && opt[zWhat] != null) { - return opt[zWhat]; - } - opt = ecConfig[this.type]; - if (opt && opt[zWhat] != null) { - return opt[zWhat]; - } - return 0; - }, - getZlevelBase: function () { - return this._getZ('zlevel'); - }, - getZBase: function () { - return this._getZ('z'); - }, - reformOption: function (opt) { - opt = zrUtil.merge(zrUtil.merge(opt || {}, zrUtil.clone(this.ecTheme[this.type] || {})), zrUtil.clone(ecConfig[this.type] || {})); - this.z = opt.z; - this.zlevel = opt.zlevel; - return opt; - }, - reformCssArray: function (p) { - if (p instanceof Array) { - switch (p.length + '') { - case '4': - return p; - case '3': - return [ - p[0], - p[1], - p[2], - p[1] - ]; - case '2': - return [ - p[0], - p[1], - p[0], - p[1] - ]; - case '1': - return [ - p[0], - p[0], - p[0], - p[0] - ]; - case '0': - return [ - 0, - 0, - 0, - 0 - ]; - } - } else { - return [ - p, - p, - p, - p - ]; - } - }, - getShapeById: function (id) { - for (var i = 0, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i].id === id) { - return this.shapeList[i]; - } - } - return null; - }, - getFont: function (textStyle) { - var finalTextStyle = this.getTextStyle(zrUtil.clone(textStyle)); - return finalTextStyle.fontStyle + ' ' + finalTextStyle.fontWeight + ' ' + finalTextStyle.fontSize + 'px ' + finalTextStyle.fontFamily; - }, - getTextStyle: function (targetStyle) { - return zrUtil.merge(zrUtil.merge(targetStyle || {}, this.ecTheme.textStyle), ecConfig.textStyle); - }, - getItemStyleColor: function (itemColor, seriesIndex, dataIndex, data) { - return typeof itemColor === 'function' ? itemColor.call(this.myChart, { - seriesIndex: seriesIndex, - series: this.series[seriesIndex], - dataIndex: dataIndex, - data: data - }) : itemColor; - }, - getDataFromOption: function (data, defaultData) { - return data != null ? data.value != null ? data.value : data : defaultData; - }, - subPixelOptimize: function (position, lineWidth) { - if (lineWidth % 2 === 1) { - position = Math.floor(position) + 0.5; - } else { - position = Math.round(position); - } - return position; - }, - resize: function () { - this.refresh && this.refresh(); - this.clearEffectShape && this.clearEffectShape(true); - var self = this; - setTimeout(function () { - self.animationEffect && self.animationEffect(); - }, 200); - }, - clear: function () { - this.clearEffectShape && this.clearEffectShape(); - this.zr && this.zr.delShape(this.shapeList); - this.shapeList = []; - }, - dispose: function () { - this.onbeforDispose && this.onbeforDispose(); - this.clear(); - this.shapeList = null; - this.effectList = null; - this.messageCenter && this.messageCenter.unbind(ecConfig.EVENT.LEGEND_HOVERLINK, this._onlegendhoverlink); - this.onafterDispose && this.onafterDispose(); - }, - query: ecQuery.query, - deepQuery: ecQuery.deepQuery, - deepMerge: ecQuery.deepMerge, - parsePercent: number.parsePercent, - parseCenter: number.parseCenter, - parseRadius: number.parseRadius, - numAddCommas: number.addCommas, - getPrecision: number.getPrecision - }; - return Base; -});define('echarts/layout/EdgeBundling', [ - 'require', - '../data/KDTree', - 'zrender/tool/vector' -], function (require) { - var KDTree = require('../data/KDTree'); - var vec2 = require('zrender/tool/vector'); - var v2Create = vec2.create; - var v2DistSquare = vec2.distSquare; - var v2Dist = vec2.dist; - var v2Copy = vec2.copy; - var v2Clone = vec2.clone; - function squaredDistance(a, b) { - a = a.array; - b = b.array; - var x = b[0] - a[0]; - var y = b[1] - a[1]; - var z = b[2] - a[2]; - var w = b[3] - a[3]; - return x * x + y * y + z * z + w * w; - } - function CoarsenedEdge(group) { - this.points = [ - group.mp0, - group.mp1 - ]; - this.group = group; - } - function Edge(edge) { - var points = edge.points; - if (points[0][1] < points[1][1] || edge instanceof CoarsenedEdge) { - this.array = [ - points[0][0], - points[0][1], - points[1][0], - points[1][1] - ]; - this._startPoint = points[0]; - this._endPoint = points[1]; - } else { - this.array = [ - points[1][0], - points[1][1], - points[0][0], - points[0][1] - ]; - this._startPoint = points[1]; - this._endPoint = points[0]; - } - this.ink = v2Dist(points[0], points[1]); - this.edge = edge; - this.group = null; - } - Edge.prototype.getStartPoint = function () { - return this._startPoint; - }; - Edge.prototype.getEndPoint = function () { - return this._endPoint; - }; - function BundledEdgeGroup() { - this.edgeList = []; - this.mp0 = v2Create(); - this.mp1 = v2Create(); - this.ink = 0; - } - BundledEdgeGroup.prototype.addEdge = function (edge) { - edge.group = this; - this.edgeList.push(edge); - }; - BundledEdgeGroup.prototype.removeEdge = function (edge) { - edge.group = null; - this.edgeList.splice(this.edgeList.indexOf(edge), 1); - }; - function EdgeBundling() { - this.maxNearestEdge = 6; - this.maxTurningAngle = Math.PI / 4; - this.maxIteration = 20; - } - EdgeBundling.prototype = { - constructor: EdgeBundling, - run: function (rawEdges) { - var res = this._iterate(rawEdges); - var nIterate = 0; - while (nIterate++ < this.maxIteration) { - var coarsenedEdges = []; - for (var i = 0; i < res.groups.length; i++) { - coarsenedEdges.push(new CoarsenedEdge(res.groups[i])); - } - var newRes = this._iterate(coarsenedEdges); - if (newRes.savedInk <= 0) { - break; - } else { - res = newRes; - } - } - var newEdges = []; - function pointApproxEqual(p0, p1) { - return v2DistSquare(p0, p1) < 1e-10; - } - function cleanEdgePoints(edgePoints, rawEdgePoints) { - var res = []; - var off = 0; - for (var i = 0; i < edgePoints.length; i++) { - if (!(off > 0 && pointApproxEqual(edgePoints[i], res[off - 1]))) { - res[off++] = v2Clone(edgePoints[i]); - } - } - if (rawEdgePoints[0] && !pointApproxEqual(res[0], rawEdgePoints[0])) { - res = res.reverse(); - } - return res; - } - var buildNewEdges = function (groups, fromEdgePoints) { - var newEdgePoints; - for (var i = 0; i < groups.length; i++) { - var group = groups[i]; - if (group.edgeList[0] && group.edgeList[0].edge instanceof CoarsenedEdge) { - var newGroups = []; - for (var j = 0; j < group.edgeList.length; j++) { - newGroups.push(group.edgeList[j].edge.group); - } - if (!fromEdgePoints) { - newEdgePoints = []; - } else { - newEdgePoints = fromEdgePoints.slice(); - } - newEdgePoints.unshift(group.mp0); - newEdgePoints.push(group.mp1); - buildNewEdges(newGroups, newEdgePoints); - } else { - for (var j = 0; j < group.edgeList.length; j++) { - var edge = group.edgeList[j]; - if (!fromEdgePoints) { - newEdgePoints = []; - } else { - newEdgePoints = fromEdgePoints.slice(); - } - newEdgePoints.unshift(group.mp0); - newEdgePoints.push(group.mp1); - newEdgePoints.unshift(edge.getStartPoint()); - newEdgePoints.push(edge.getEndPoint()); - newEdges.push({ - points: cleanEdgePoints(newEdgePoints, edge.edge.points), - rawEdge: edge.edge - }); - } - } - } - }; - buildNewEdges(res.groups); - return newEdges; - }, - _iterate: function (rawEdges) { - var edges = []; - var groups = []; - var totalSavedInk = 0; - for (var i = 0; i < rawEdges.length; i++) { - var edge = new Edge(rawEdges[i]); - edges.push(edge); - } - var tree = new KDTree(edges, 4); - var nearests = []; - var _mp0 = v2Create(); - var _mp1 = v2Create(); - var _newGroupInk = 0; - var mp0 = v2Create(); - var mp1 = v2Create(); - var newGroupInk = 0; - for (var i = 0; i < edges.length; i++) { - var edge = edges[i]; - if (edge.group) { - continue; - } - tree.nearestN(edge, this.maxNearestEdge, squaredDistance, nearests); - var maxSavedInk = 0; - var mostSavingInkEdge = null; - var lastCheckedGroup = null; - for (var j = 0; j < nearests.length; j++) { - var nearest = nearests[j]; - var savedInk = 0; - if (nearest.group) { - if (nearest.group !== lastCheckedGroup) { - lastCheckedGroup = nearest.group; - _newGroupInk = this._calculateGroupEdgeInk(nearest.group, edge, _mp0, _mp1); - savedInk = nearest.group.ink + edge.ink - _newGroupInk; - } - } else { - _newGroupInk = this._calculateEdgeEdgeInk(edge, nearest, _mp0, _mp1); - savedInk = nearest.ink + edge.ink - _newGroupInk; - } - if (savedInk > maxSavedInk) { - maxSavedInk = savedInk; - mostSavingInkEdge = nearest; - v2Copy(mp1, _mp1); - v2Copy(mp0, _mp0); - newGroupInk = _newGroupInk; - } - } - if (mostSavingInkEdge) { - totalSavedInk += maxSavedInk; - var group; - if (!mostSavingInkEdge.group) { - group = new BundledEdgeGroup(); - groups.push(group); - group.addEdge(mostSavingInkEdge); - } - group = mostSavingInkEdge.group; - v2Copy(group.mp0, mp0); - v2Copy(group.mp1, mp1); - group.ink = newGroupInk; - mostSavingInkEdge.group.addEdge(edge); - } else { - var group = new BundledEdgeGroup(); - groups.push(group); - v2Copy(group.mp0, edge.getStartPoint()); - v2Copy(group.mp1, edge.getEndPoint()); - group.ink = edge.ink; - group.addEdge(edge); - } - } - return { - groups: groups, - edges: edges, - savedInk: totalSavedInk - }; - }, - _calculateEdgeEdgeInk: function () { - var startPointSet = []; - var endPointSet = []; - return function (e0, e1, mp0, mp1) { - startPointSet[0] = e0.getStartPoint(); - startPointSet[1] = e1.getStartPoint(); - endPointSet[0] = e0.getEndPoint(); - endPointSet[1] = e1.getEndPoint(); - this._calculateMeetPoints(startPointSet, endPointSet, mp0, mp1); - var ink = v2Dist(startPointSet[0], mp0) + v2Dist(mp0, mp1) + v2Dist(mp1, endPointSet[0]) + v2Dist(startPointSet[1], mp0) + v2Dist(mp1, endPointSet[1]); - return ink; - }; - }(), - _calculateGroupEdgeInk: function (group, edgeTryAdd, mp0, mp1) { - var startPointSet = []; - var endPointSet = []; - for (var i = 0; i < group.edgeList.length; i++) { - var edge = group.edgeList[i]; - startPointSet.push(edge.getStartPoint()); - endPointSet.push(edge.getEndPoint()); - } - startPointSet.push(edgeTryAdd.getStartPoint()); - endPointSet.push(edgeTryAdd.getEndPoint()); - this._calculateMeetPoints(startPointSet, endPointSet, mp0, mp1); - var ink = v2Dist(mp0, mp1); - for (var i = 0; i < startPointSet.length; i++) { - ink += v2Dist(startPointSet[i], mp0) + v2Dist(endPointSet[i], mp1); - } - return ink; - }, - _calculateMeetPoints: function () { - var cp0 = v2Create(); - var cp1 = v2Create(); - return function (startPointSet, endPointSet, mp0, mp1) { - vec2.set(cp0, 0, 0); - vec2.set(cp1, 0, 0); - var len = startPointSet.length; - for (var i = 0; i < len; i++) { - vec2.add(cp0, cp0, startPointSet[i]); - } - vec2.scale(cp0, cp0, 1 / len); - len = endPointSet.length; - for (var i = 0; i < len; i++) { - vec2.add(cp1, cp1, endPointSet[i]); - } - vec2.scale(cp1, cp1, 1 / len); - this._limitTurningAngle(startPointSet, cp0, cp1, mp0); - this._limitTurningAngle(endPointSet, cp1, cp0, mp1); - }; - }(), - _limitTurningAngle: function () { - var v10 = v2Create(); - var vTmp = v2Create(); - var project = v2Create(); - var tmpOut = v2Create(); - return function (pointSet, p0, p1, out) { - var maxTurningAngleCos = Math.cos(this.maxTurningAngle); - var maxTurningAngleTan = Math.tan(this.maxTurningAngle); - vec2.sub(v10, p0, p1); - vec2.normalize(v10, v10); - vec2.copy(out, p0); - var maxMovement = 0; - for (var i = 0; i < pointSet.length; i++) { - var p = pointSet[i]; - vec2.sub(vTmp, p, p0); - var len = vec2.len(vTmp); - vec2.scale(vTmp, vTmp, 1 / len); - var turningAngleCos = vec2.dot(vTmp, v10); - if (turningAngleCos < maxTurningAngleCos) { - vec2.scaleAndAdd(project, p0, v10, len * turningAngleCos); - var distance = v2Dist(project, p); - var d = distance / maxTurningAngleTan; - vec2.scaleAndAdd(tmpOut, project, v10, -d); - var movement = v2DistSquare(tmpOut, p0); - if (movement > maxMovement) { - maxMovement = movement; - vec2.copy(out, tmpOut); - } - } - } - }; - }() - }; - return EdgeBundling; -});define('zrender/shape/Star', [ - 'require', - '../tool/math', - './Base', - '../tool/util' -], function (require) { - var math = require('../tool/math'); - var sin = math.sin; - var cos = math.cos; - var PI = Math.PI; - var Base = require('./Base'); - var Star = function (options) { - Base.call(this, options); - }; - Star.prototype = { - type: 'star', - buildPath: function (ctx, style) { - var n = style.n; - if (!n || n < 2) { - return; - } - var x = style.x; - var y = style.y; - var r = style.r; - var r0 = style.r0; - if (r0 == null) { - r0 = n > 4 ? r * cos(2 * PI / n) / cos(PI / n) : r / 3; - } - var dStep = PI / n; - var deg = -PI / 2; - var xStart = x + r * cos(deg); - var yStart = y + r * sin(deg); - deg += dStep; - var pointList = style.pointList = []; - pointList.push([ - xStart, - yStart - ]); - for (var i = 0, end = n * 2 - 1, ri; i < end; i++) { - ri = i % 2 === 0 ? r0 : r; - pointList.push([ - x + ri * cos(deg), - y + ri * sin(deg) - ]); - deg += dStep; - } - pointList.push([ - xStart, - yStart - ]); - ctx.moveTo(pointList[0][0], pointList[0][1]); - for (var i = 0; i < pointList.length; i++) { - ctx.lineTo(pointList[i][0], pointList[i][1]); - } - ctx.closePath(); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - style.__rect = { - x: Math.round(style.x - style.r - lineWidth / 2), - y: Math.round(style.y - style.r - lineWidth / 2), - width: style.r * 2 + lineWidth, - height: style.r * 2 + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Star, Base); - return Star; -});define('zrender/shape/Heart', [ - 'require', - './Base', - './util/PathProxy', - '../tool/area', - '../tool/util' -], function (require) { - 'use strict'; - var Base = require('./Base'); - var PathProxy = require('./util/PathProxy'); - var area = require('../tool/area'); - var Heart = function (options) { - Base.call(this, options); - this._pathProxy = new PathProxy(); - }; - Heart.prototype = { - type: 'heart', - buildPath: function (ctx, style) { - var path = this._pathProxy || new PathProxy(); - path.begin(ctx); - path.moveTo(style.x, style.y); - path.bezierCurveTo(style.x + style.a / 2, style.y - style.b * 2 / 3, style.x + style.a * 2, style.y + style.b / 3, style.x, style.y + style.b); - path.bezierCurveTo(style.x - style.a * 2, style.y + style.b / 3, style.x - style.a / 2, style.y - style.b * 2 / 3, style.x, style.y); - path.closePath(); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - if (!this._pathProxy.isEmpty()) { - this.buildPath(null, style); - } - return this._pathProxy.fastBoundingRect(); - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - if (this.isCoverRect(x, y)) { - return area.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, x, y); - } - } - }; - require('../tool/util').inherits(Heart, Base); - return Heart; -});define('zrender/shape/Droplet', [ - 'require', - './Base', - './util/PathProxy', - '../tool/area', - '../tool/util' -], function (require) { - 'use strict'; - var Base = require('./Base'); - var PathProxy = require('./util/PathProxy'); - var area = require('../tool/area'); - var Droplet = function (options) { - Base.call(this, options); - this._pathProxy = new PathProxy(); - }; - Droplet.prototype = { - type: 'droplet', - buildPath: function (ctx, style) { - var path = this._pathProxy || new PathProxy(); - path.begin(ctx); - path.moveTo(style.x, style.y + style.a); - path.bezierCurveTo(style.x + style.a, style.y + style.a, style.x + style.a * 3 / 2, style.y - style.a / 3, style.x, style.y - style.b); - path.bezierCurveTo(style.x - style.a * 3 / 2, style.y - style.a / 3, style.x - style.a, style.y + style.a, style.x, style.y + style.a); - path.closePath(); - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - if (!this._pathProxy.isEmpty()) { - this.buildPath(null, style); - } - return this._pathProxy.fastBoundingRect(); - }, - isCover: function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - if (this.isCoverRect(x, y)) { - return area.isInsidePath(this._pathProxy.pathCommands, this.style.lineWidth, this.style.brushType, x, y); - } - } - }; - require('../tool/util').inherits(Droplet, Base); - return Droplet; -});define('zrender/tool/math', [], function () { - var _radians = Math.PI / 180; - function sin(angle, isDegrees) { - return Math.sin(isDegrees ? angle * _radians : angle); - } - function cos(angle, isDegrees) { - return Math.cos(isDegrees ? angle * _radians : angle); - } - function degreeToRadian(angle) { - return angle * _radians; - } - function radianToDegree(angle) { - return angle / _radians; - } - return { - sin: sin, - cos: cos, - degreeToRadian: degreeToRadian, - radianToDegree: radianToDegree - }; -});define('zrender/shape/util/PathProxy', [ - 'require', - '../../tool/vector' -], function (require) { - var vector = require('../../tool/vector'); - var PathSegment = function (command, points) { - this.command = command; - this.points = points || null; - }; - var PathProxy = function () { - this.pathCommands = []; - this._ctx = null; - this._min = []; - this._max = []; - }; - PathProxy.prototype.fastBoundingRect = function () { - var min = this._min; - var max = this._max; - min[0] = min[1] = Infinity; - max[0] = max[1] = -Infinity; - for (var i = 0; i < this.pathCommands.length; i++) { - var seg = this.pathCommands[i]; - var p = seg.points; - switch (seg.command) { - case 'M': - vector.min(min, min, p); - vector.max(max, max, p); - break; - case 'L': - vector.min(min, min, p); - vector.max(max, max, p); - break; - case 'C': - for (var j = 0; j < 6; j += 2) { - min[0] = Math.min(min[0], min[0], p[j]); - min[1] = Math.min(min[1], min[1], p[j + 1]); - max[0] = Math.max(max[0], max[0], p[j]); - max[1] = Math.max(max[1], max[1], p[j + 1]); - } - break; - case 'Q': - for (var j = 0; j < 4; j += 2) { - min[0] = Math.min(min[0], min[0], p[j]); - min[1] = Math.min(min[1], min[1], p[j + 1]); - max[0] = Math.max(max[0], max[0], p[j]); - max[1] = Math.max(max[1], max[1], p[j + 1]); - } - break; - case 'A': - var cx = p[0]; - var cy = p[1]; - var rx = p[2]; - var ry = p[3]; - min[0] = Math.min(min[0], min[0], cx - rx); - min[1] = Math.min(min[1], min[1], cy - ry); - max[0] = Math.max(max[0], max[0], cx + rx); - max[1] = Math.max(max[1], max[1], cy + ry); - break; - } - } - return { - x: min[0], - y: min[1], - width: max[0] - min[0], - height: max[1] - min[1] - }; - }; - PathProxy.prototype.begin = function (ctx) { - this._ctx = ctx || null; - this.pathCommands.length = 0; - return this; - }; - PathProxy.prototype.moveTo = function (x, y) { - this.pathCommands.push(new PathSegment('M', [ - x, - y - ])); - if (this._ctx) { - this._ctx.moveTo(x, y); - } - return this; - }; - PathProxy.prototype.lineTo = function (x, y) { - this.pathCommands.push(new PathSegment('L', [ - x, - y - ])); - if (this._ctx) { - this._ctx.lineTo(x, y); - } - return this; - }; - PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) { - this.pathCommands.push(new PathSegment('C', [ - x1, - y1, - x2, - y2, - x3, - y3 - ])); - if (this._ctx) { - this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); - } - return this; - }; - PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) { - this.pathCommands.push(new PathSegment('Q', [ - x1, - y1, - x2, - y2 - ])); - if (this._ctx) { - this._ctx.quadraticCurveTo(x1, y1, x2, y2); - } - return this; - }; - PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) { - this.pathCommands.push(new PathSegment('A', [ - cx, - cy, - r, - r, - startAngle, - endAngle - startAngle, - 0, - anticlockwise ? 0 : 1 - ])); - if (this._ctx) { - this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise); - } - return this; - }; - PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) { - if (this._ctx) { - this._ctx.arcTo(x1, y1, x2, y2, radius); - } - return this; - }; - PathProxy.prototype.rect = function (x, y, w, h) { - if (this._ctx) { - this._ctx.rect(x, y, w, h); - } - return this; - }; - PathProxy.prototype.closePath = function () { - this.pathCommands.push(new PathSegment('z')); - if (this._ctx) { - this._ctx.closePath(); - } - return this; - }; - PathProxy.prototype.isEmpty = function () { - return this.pathCommands.length === 0; - }; - PathProxy.PathSegment = PathSegment; - return PathProxy; -});define('zrender/shape/Line', [ - 'require', - './Base', - './util/dashedLineTo', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var dashedLineTo = require('./util/dashedLineTo'); - var Line = function (options) { - this.brushTypeOnly = 'stroke'; - this.textPosition = 'end'; - Base.call(this, options); - }; - Line.prototype = { - type: 'line', - buildPath: function (ctx, style) { - if (!style.lineType || style.lineType == 'solid') { - ctx.moveTo(style.xStart, style.yStart); - ctx.lineTo(style.xEnd, style.yEnd); - } else if (style.lineType == 'dashed' || style.lineType == 'dotted') { - var dashLength = (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); - dashedLineTo(ctx, style.xStart, style.yStart, style.xEnd, style.yEnd, dashLength); - } - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth = style.lineWidth || 1; - style.__rect = { - x: Math.min(style.xStart, style.xEnd) - lineWidth, - y: Math.min(style.yStart, style.yEnd) - lineWidth, - width: Math.abs(style.xStart - style.xEnd) + lineWidth, - height: Math.abs(style.yStart - style.yEnd) + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Line, Base); - return Line; -});define('zrender/shape/BezierCurve', [ - 'require', - './Base', - '../tool/util' -], function (require) { - 'use strict'; - var Base = require('./Base'); - var BezierCurve = function (options) { - this.brushTypeOnly = 'stroke'; - this.textPosition = 'end'; - Base.call(this, options); - }; - BezierCurve.prototype = { - type: 'bezier-curve', - buildPath: function (ctx, style) { - ctx.moveTo(style.xStart, style.yStart); - if (typeof style.cpX2 != 'undefined' && typeof style.cpY2 != 'undefined') { - ctx.bezierCurveTo(style.cpX1, style.cpY1, style.cpX2, style.cpY2, style.xEnd, style.yEnd); - } else { - ctx.quadraticCurveTo(style.cpX1, style.cpY1, style.xEnd, style.yEnd); - } - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var _minX = Math.min(style.xStart, style.xEnd, style.cpX1); - var _minY = Math.min(style.yStart, style.yEnd, style.cpY1); - var _maxX = Math.max(style.xStart, style.xEnd, style.cpX1); - var _maxY = Math.max(style.yStart, style.yEnd, style.cpY1); - var _x2 = style.cpX2; - var _y2 = style.cpY2; - if (typeof _x2 != 'undefined' && typeof _y2 != 'undefined') { - _minX = Math.min(_minX, _x2); - _minY = Math.min(_minY, _y2); - _maxX = Math.max(_maxX, _x2); - _maxY = Math.max(_maxY, _y2); - } - var lineWidth = style.lineWidth || 1; - style.__rect = { - x: _minX - lineWidth, - y: _minY - lineWidth, - width: _maxX - _minX + lineWidth, - height: _maxY - _minY + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(BezierCurve, Base); - return BezierCurve; -});define('zrender/shape/util/dashedLineTo', [], function () { - var dashPattern = [ - 5, - 5 - ]; - return function (ctx, x1, y1, x2, y2, dashLength) { - if (ctx.setLineDash) { - dashPattern[0] = dashPattern[1] = dashLength; - ctx.setLineDash(dashPattern); - ctx.moveTo(x1, y1); - ctx.lineTo(x2, y2); - return; - } - dashLength = typeof dashLength != 'number' ? 5 : dashLength; - var dx = x2 - x1; - var dy = y2 - y1; - var numDashes = Math.floor(Math.sqrt(dx * dx + dy * dy) / dashLength); - dx = dx / numDashes; - dy = dy / numDashes; - var flag = true; - for (var i = 0; i < numDashes; ++i) { - if (flag) { - ctx.moveTo(x1, y1); - } else { - ctx.lineTo(x1, y1); - } - flag = !flag; - x1 += dx; - y1 += dy; - } - ctx.lineTo(x2, y2); - }; -});define('zrender/shape/Polygon', [ - 'require', - './Base', - './util/smoothSpline', - './util/smoothBezier', - './util/dashedLineTo', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var smoothSpline = require('./util/smoothSpline'); - var smoothBezier = require('./util/smoothBezier'); - var dashedLineTo = require('./util/dashedLineTo'); - var Polygon = function (options) { - Base.call(this, options); - }; - Polygon.prototype = { - type: 'polygon', - buildPath: function (ctx, style) { - var pointList = style.pointList; - if (pointList.length < 2) { - return; - } - if (style.smooth && style.smooth !== 'spline') { - var controlPoints = smoothBezier(pointList, style.smooth, true, style.smoothConstraint); - ctx.moveTo(pointList[0][0], pointList[0][1]); - var cp1; - var cp2; - var p; - var len = pointList.length; - for (var i = 0; i < len; i++) { - cp1 = controlPoints[i * 2]; - cp2 = controlPoints[i * 2 + 1]; - p = pointList[(i + 1) % len]; - ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); - } - } else { - if (style.smooth === 'spline') { - pointList = smoothSpline(pointList, true); - } - if (!style.lineType || style.lineType == 'solid') { - ctx.moveTo(pointList[0][0], pointList[0][1]); - for (var i = 1, l = pointList.length; i < l; i++) { - ctx.lineTo(pointList[i][0], pointList[i][1]); - } - ctx.lineTo(pointList[0][0], pointList[0][1]); - } else if (style.lineType == 'dashed' || style.lineType == 'dotted') { - var dashLength = style._dashLength || (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); - style._dashLength = dashLength; - ctx.moveTo(pointList[0][0], pointList[0][1]); - for (var i = 1, l = pointList.length; i < l; i++) { - dashedLineTo(ctx, pointList[i - 1][0], pointList[i - 1][1], pointList[i][0], pointList[i][1], dashLength); - } - dashedLineTo(ctx, pointList[pointList.length - 1][0], pointList[pointList.length - 1][1], pointList[0][0], pointList[0][1], dashLength); - } - } - ctx.closePath(); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var minX = Number.MAX_VALUE; - var maxX = Number.MIN_VALUE; - var minY = Number.MAX_VALUE; - var maxY = Number.MIN_VALUE; - var pointList = style.pointList; - for (var i = 0, l = pointList.length; i < l; i++) { - if (pointList[i][0] < minX) { - minX = pointList[i][0]; - } - if (pointList[i][0] > maxX) { - maxX = pointList[i][0]; - } - if (pointList[i][1] < minY) { - minY = pointList[i][1]; - } - if (pointList[i][1] > maxY) { - maxY = pointList[i][1]; - } - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - style.__rect = { - x: Math.round(minX - lineWidth / 2), - y: Math.round(minY - lineWidth / 2), - width: maxX - minX + lineWidth, - height: maxY - minY + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Polygon, Base); - return Polygon; -});define('echarts/util/shape/normalIsCover', [], function () { - return function (x, y) { - var originPos = this.transformCoordToLocal(x, y); - x = originPos[0]; - y = originPos[1]; - return this.isCoverRect(x, y); - }; -});define('zrender/shape/util/smoothSpline', [ - 'require', - '../../tool/vector' -], function (require) { - var vector = require('../../tool/vector'); - function interpolate(p0, p1, p2, p3, t, t2, t3) { - var v0 = (p2 - p0) * 0.5; - var v1 = (p3 - p1) * 0.5; - return (2 * (p1 - p2) + v0 + v1) * t3 + (-3 * (p1 - p2) - 2 * v0 - v1) * t2 + v0 * t + p1; - } - return function (points, isLoop, constraint) { - var len = points.length; - var ret = []; - var distance = 0; - for (var i = 1; i < len; i++) { - distance += vector.distance(points[i - 1], points[i]); - } - var segs = distance / 5; - segs = segs < len ? len : segs; - for (var i = 0; i < segs; i++) { - var pos = i / (segs - 1) * (isLoop ? len : len - 1); - var idx = Math.floor(pos); - var w = pos - idx; - var p0; - var p1 = points[idx % len]; - var p2; - var p3; - if (!isLoop) { - p0 = points[idx === 0 ? idx : idx - 1]; - p2 = points[idx > len - 2 ? len - 1 : idx + 1]; - p3 = points[idx > len - 3 ? len - 1 : idx + 2]; - } else { - p0 = points[(idx - 1 + len) % len]; - p2 = points[(idx + 1) % len]; - p3 = points[(idx + 2) % len]; - } - var w2 = w * w; - var w3 = w * w2; - ret.push([ - interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3), - interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3) - ]); - } - return ret; - }; -});define('zrender/shape/util/smoothBezier', [ - 'require', - '../../tool/vector' -], function (require) { - var vector = require('../../tool/vector'); - return function (points, smooth, isLoop, constraint) { - var cps = []; - var v = []; - var v1 = []; - var v2 = []; - var prevPoint; - var nextPoint; - var hasConstraint = !!constraint; - var min, max; - if (hasConstraint) { - min = [ - Infinity, - Infinity - ]; - max = [ - -Infinity, - -Infinity - ]; - for (var i = 0, len = points.length; i < len; i++) { - vector.min(min, min, points[i]); - vector.max(max, max, points[i]); - } - vector.min(min, min, constraint[0]); - vector.max(max, max, constraint[1]); - } - for (var i = 0, len = points.length; i < len; i++) { - var point = points[i]; - var prevPoint; - var nextPoint; - if (isLoop) { - prevPoint = points[i ? i - 1 : len - 1]; - nextPoint = points[(i + 1) % len]; - } else { - if (i === 0 || i === len - 1) { - cps.push(vector.clone(points[i])); - continue; - } else { - prevPoint = points[i - 1]; - nextPoint = points[i + 1]; - } - } - vector.sub(v, nextPoint, prevPoint); - vector.scale(v, v, smooth); - var d0 = vector.distance(point, prevPoint); - var d1 = vector.distance(point, nextPoint); - var sum = d0 + d1; - if (sum !== 0) { - d0 /= sum; - d1 /= sum; - } - vector.scale(v1, v, -d0); - vector.scale(v2, v, d1); - var cp0 = vector.add([], point, v1); - var cp1 = vector.add([], point, v2); - if (hasConstraint) { - vector.max(cp0, cp0, min); - vector.min(cp0, cp0, max); - vector.max(cp1, cp1, min); - vector.min(cp1, cp1, max); - } - cps.push(cp0); - cps.push(cp1); - } - if (isLoop) { - cps.push(vector.clone(cps.shift())); - } - return cps; - }; -});define('echarts/util/ecQuery', [ - 'require', - 'zrender/tool/util' -], function (require) { - var zrUtil = require('zrender/tool/util'); - function query(optionTarget, optionLocation) { - if (typeof optionTarget == 'undefined') { - return; - } - if (!optionLocation) { - return optionTarget; - } - optionLocation = optionLocation.split('.'); - var length = optionLocation.length; - var curIdx = 0; - while (curIdx < length) { - optionTarget = optionTarget[optionLocation[curIdx]]; - if (typeof optionTarget == 'undefined') { - return; - } - curIdx++; - } - return optionTarget; - } - function deepQuery(ctrList, optionLocation) { - var finalOption; - for (var i = 0, l = ctrList.length; i < l; i++) { - finalOption = query(ctrList[i], optionLocation); - if (typeof finalOption != 'undefined') { - return finalOption; - } - } - } - function deepMerge(ctrList, optionLocation) { - var finalOption; - var len = ctrList.length; - while (len--) { - var tempOption = query(ctrList[len], optionLocation); - if (typeof tempOption != 'undefined') { - if (typeof finalOption == 'undefined') { - finalOption = zrUtil.clone(tempOption); - } else { - zrUtil.merge(finalOption, tempOption, true); - } - } - } - return finalOption; - } - return { - query: query, - deepQuery: deepQuery, - deepMerge: deepMerge - }; -});define('echarts/util/number', [], function () { - function _trim(str) { - return str.replace(/^\s+/, '').replace(/\s+$/, ''); - } - function parsePercent(value, maxValue) { - if (typeof value === 'string') { - if (_trim(value).match(/%$/)) { - return parseFloat(value) / 100 * maxValue; - } - return parseFloat(value); - } - return value; - } - function parseCenter(zr, center) { - return [ - parsePercent(center[0], zr.getWidth()), - parsePercent(center[1], zr.getHeight()) - ]; - } - function parseRadius(zr, radius) { - if (!(radius instanceof Array)) { - radius = [ - 0, - radius - ]; - } - var zrSize = Math.min(zr.getWidth(), zr.getHeight()) / 2; - return [ - parsePercent(radius[0], zrSize), - parsePercent(radius[1], zrSize) - ]; - } - function addCommas(x) { - if (isNaN(x)) { - return '-'; - } - x = (x + '').split('.'); - return x[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, '$1,') + (x.length > 1 ? '.' + x[1] : ''); - } - function getPrecision(val) { - var e = 1; - var count = 0; - while (Math.round(val * e) / e !== val) { - e *= 10; - count++; - } - return count; - } - return { - parsePercent: parsePercent, - parseCenter: parseCenter, - parseRadius: parseRadius, - addCommas: addCommas, - getPrecision: getPrecision - }; -});define('echarts/data/KDTree', [ - 'require', - './quickSelect' -], function (require) { - var quickSelect = require('./quickSelect'); - function Node(axis, data) { - this.left = null; - this.right = null; - this.axis = axis; - this.data = data; - } - var KDTree = function (points, dimension) { - if (!points.length) { - return; - } - if (!dimension) { - dimension = points[0].array.length; - } - this.dimension = dimension; - this.root = this._buildTree(points, 0, points.length - 1, 0); - this._stack = []; - this._nearstNList = []; - }; - KDTree.prototype._buildTree = function (points, left, right, axis) { - if (right < left) { - return null; - } - var medianIndex = Math.floor((left + right) / 2); - medianIndex = quickSelect(points, left, right, medianIndex, function (a, b) { - return a.array[axis] - b.array[axis]; - }); - var median = points[medianIndex]; - var node = new Node(axis, median); - axis = (axis + 1) % this.dimension; - if (right > left) { - node.left = this._buildTree(points, left, medianIndex - 1, axis); - node.right = this._buildTree(points, medianIndex + 1, right, axis); - } - return node; - }; - KDTree.prototype.nearest = function (target, squaredDistance) { - var curr = this.root; - var stack = this._stack; - var idx = 0; - var minDist = Infinity; - var nearestNode = null; - if (curr.data !== target) { - minDist = squaredDistance(curr.data, target); - nearestNode = curr; - } - if (target.array[curr.axis] < curr.data.array[curr.axis]) { - curr.right && (stack[idx++] = curr.right); - curr.left && (stack[idx++] = curr.left); - } else { - curr.left && (stack[idx++] = curr.left); - curr.right && (stack[idx++] = curr.right); - } - while (idx--) { - curr = stack[idx]; - var currDist = target.array[curr.axis] - curr.data.array[curr.axis]; - var isLeft = currDist < 0; - var needsCheckOtherSide = false; - currDist = currDist * currDist; - if (currDist < minDist) { - currDist = squaredDistance(curr.data, target); - if (currDist < minDist && curr.data !== target) { - minDist = currDist; - nearestNode = curr; - } - needsCheckOtherSide = true; - } - if (isLeft) { - if (needsCheckOtherSide) { - curr.right && (stack[idx++] = curr.right); - } - curr.left && (stack[idx++] = curr.left); - } else { - if (needsCheckOtherSide) { - curr.left && (stack[idx++] = curr.left); - } - curr.right && (stack[idx++] = curr.right); - } - } - return nearestNode.data; - }; - KDTree.prototype._addNearest = function (found, dist, node) { - var nearestNList = this._nearstNList; - for (var i = found - 1; i > 0; i--) { - if (dist >= nearestNList[i - 1].dist) { - break; - } else { - nearestNList[i].dist = nearestNList[i - 1].dist; - nearestNList[i].node = nearestNList[i - 1].node; - } - } - nearestNList[i].dist = dist; - nearestNList[i].node = node; - }; - KDTree.prototype.nearestN = function (target, N, squaredDistance, output) { - if (N <= 0) { - output.length = 0; - return output; - } - var curr = this.root; - var stack = this._stack; - var idx = 0; - var nearestNList = this._nearstNList; - for (var i = 0; i < N; i++) { - if (!nearestNList[i]) { - nearestNList[i] = {}; - } - nearestNList[i].dist = 0; - nearestNList[i].node = null; - } - var currDist = squaredDistance(curr.data, target); - var found = 0; - if (curr.data !== target) { - found++; - this._addNearest(found, currDist, curr); - } - if (target.array[curr.axis] < curr.data.array[curr.axis]) { - curr.right && (stack[idx++] = curr.right); - curr.left && (stack[idx++] = curr.left); - } else { - curr.left && (stack[idx++] = curr.left); - curr.right && (stack[idx++] = curr.right); - } - while (idx--) { - curr = stack[idx]; - var currDist = target.array[curr.axis] - curr.data.array[curr.axis]; - var isLeft = currDist < 0; - var needsCheckOtherSide = false; - currDist = currDist * currDist; - if (found < N || currDist < nearestNList[found - 1].dist) { - currDist = squaredDistance(curr.data, target); - if ((found < N || currDist < nearestNList[found - 1].dist) && curr.data !== target) { - if (found < N) { - found++; - } - this._addNearest(found, currDist, curr); - } - needsCheckOtherSide = true; - } - if (isLeft) { - if (needsCheckOtherSide) { - curr.right && (stack[idx++] = curr.right); - } - curr.left && (stack[idx++] = curr.left); - } else { - if (needsCheckOtherSide) { - curr.left && (stack[idx++] = curr.left); - } - curr.right && (stack[idx++] = curr.right); - } - } - for (var i = 0; i < found; i++) { - output[i] = nearestNList[i].node.data; - } - output.length = found; - return output; - }; - return KDTree; -});define('echarts/data/quickSelect', ['require'], function (require) { - function defaultCompareFunc(a, b) { - return a - b; - } - function swapElement(list, idx0, idx1) { - var tmp = list[idx0]; - list[idx0] = list[idx1]; - list[idx1] = tmp; - } - function select(list, left, right, nth, compareFunc) { - var pivotIdx = left; - while (right > left) { - var pivotIdx = Math.round((right + left) / 2); - var pivotValue = list[pivotIdx]; - swapElement(list, pivotIdx, right); - pivotIdx = left; - for (var i = left; i <= right - 1; i++) { - if (compareFunc(pivotValue, list[i]) >= 0) { - swapElement(list, i, pivotIdx); - pivotIdx++; - } - } - swapElement(list, right, pivotIdx); - if (pivotIdx === nth) { - return pivotIdx; - } else if (pivotIdx < nth) { - left = pivotIdx + 1; - } else { - right = pivotIdx - 1; - } - } - return left; - } - function quickSelect(list, left, right, nth, compareFunc) { - if (arguments.length <= 3) { - nth = left; - if (arguments.length == 2) { - compareFunc = defaultCompareFunc; - } else { - compareFunc = right; - } - left = 0; - right = list.length - 1; - } - return select(list, left, right, nth, compareFunc); - } - return quickSelect; -});define('echarts/component/dataView', [ - 'require', - './base', - '../config', - 'zrender/tool/util', - '../component' -], function (require) { - var Base = require('./base'); - var ecConfig = require('../config'); - var zrUtil = require('zrender/tool/util'); - function DataView(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.dom = myChart.dom; - this._tDom = document.createElement('div'); - this._textArea = document.createElement('textArea'); - this._buttonRefresh = document.createElement('button'); - this._buttonRefresh.setAttribute('type', 'button'); - this._buttonClose = document.createElement('button'); - this._buttonClose.setAttribute('type', 'button'); - this._hasShow = false; - this._zrHeight = zr.getHeight(); - this._zrWidth = zr.getWidth(); - this._tDom.className = 'echarts-dataview'; - this.hide(); - this.dom.firstChild.appendChild(this._tDom); - if (window.addEventListener) { - this._tDom.addEventListener('click', this._stop); - this._tDom.addEventListener('mousewheel', this._stop); - this._tDom.addEventListener('mousemove', this._stop); - this._tDom.addEventListener('mousedown', this._stop); - this._tDom.addEventListener('mouseup', this._stop); - this._tDom.addEventListener('touchstart', this._stop); - this._tDom.addEventListener('touchmove', this._stop); - this._tDom.addEventListener('touchend', this._stop); - } else { - this._tDom.attachEvent('onclick', this._stop); - this._tDom.attachEvent('onmousewheel', this._stop); - this._tDom.attachEvent('onmousemove', this._stop); - this._tDom.attachEvent('onmousedown', this._stop); - this._tDom.attachEvent('onmouseup', this._stop); - } - } - DataView.prototype = { - type: ecConfig.COMPONENT_TYPE_DATAVIEW, - _lang: [ - 'Data View', - 'close', - 'refresh' - ], - _gCssText: 'position:absolute;' + 'display:block;' + 'overflow:hidden;' + 'transition:height 0.8s,background-color 1s;' + '-moz-transition:height 0.8s,background-color 1s;' + '-webkit-transition:height 0.8s,background-color 1s;' + '-o-transition:height 0.8s,background-color 1s;' + 'z-index:1;' + 'left:0;' + 'top:0;', - hide: function () { - this._sizeCssText = 'width:' + this._zrWidth + 'px;' + 'height:' + 0 + 'px;' + 'background-color:#f0ffff;'; - this._tDom.style.cssText = this._gCssText + this._sizeCssText; - }, - show: function (newOption) { - this._hasShow = true; - var lang = this.query(this.option, 'toolbox.feature.dataView.lang') || this._lang; - this.option = newOption; - this._tDom.innerHTML = '

' + (lang[0] || this._lang[0]) + '

'; - var customContent = this.query(this.option, 'toolbox.feature.dataView.optionToContent'); - if (typeof customContent != 'function') { - this._textArea.value = this._optionToContent(); - } else { - this._textArea = document.createElement('div'); - this._textArea.innerHTML = customContent(this.option); - } - this._textArea.style.cssText = 'display:block;margin:0 0 8px 0;padding:4px 6px;overflow:auto;' + 'width:100%;' + 'height:' + (this._zrHeight - 100) + 'px;'; - this._tDom.appendChild(this._textArea); - this._buttonClose.style.cssText = 'float:right;padding:1px 6px;'; - this._buttonClose.innerHTML = lang[1] || this._lang[1]; - var self = this; - this._buttonClose.onclick = function () { - self.hide(); - }; - this._tDom.appendChild(this._buttonClose); - if (this.query(this.option, 'toolbox.feature.dataView.readOnly') === false) { - this._buttonRefresh.style.cssText = 'float:right;margin-right:10px;padding:1px 6px;'; - this._buttonRefresh.innerHTML = lang[2] || this._lang[2]; - this._buttonRefresh.onclick = function () { - self._save(); - }; - this._textArea.readOnly = false; - this._textArea.style.cursor = 'default'; - } else { - this._buttonRefresh.style.cssText = 'display:none'; - this._textArea.readOnly = true; - this._textArea.style.cursor = 'text'; - } - this._tDom.appendChild(this._buttonRefresh); - this._sizeCssText = 'width:' + this._zrWidth + 'px;' + 'height:' + this._zrHeight + 'px;' + 'background-color:#fff;'; - this._tDom.style.cssText = this._gCssText + this._sizeCssText; - }, - _optionToContent: function () { - var i; - var j; - var k; - var len; - var data; - var valueList; - var axisList = []; - var content = ''; - if (this.option.xAxis) { - if (this.option.xAxis instanceof Array) { - axisList = this.option.xAxis; - } else { - axisList = [this.option.xAxis]; - } - for (i = 0, len = axisList.length; i < len; i++) { - if ((axisList[i].type || 'category') == 'category') { - valueList = []; - for (j = 0, k = axisList[i].data.length; j < k; j++) { - valueList.push(this.getDataFromOption(axisList[i].data[j])); - } - content += valueList.join(', ') + '\n\n'; - } - } - } - if (this.option.yAxis) { - if (this.option.yAxis instanceof Array) { - axisList = this.option.yAxis; - } else { - axisList = [this.option.yAxis]; - } - for (i = 0, len = axisList.length; i < len; i++) { - if (axisList[i].type == 'category') { - valueList = []; - for (j = 0, k = axisList[i].data.length; j < k; j++) { - valueList.push(this.getDataFromOption(axisList[i].data[j])); - } - content += valueList.join(', ') + '\n\n'; - } - } - } - var series = this.option.series; - var itemName; - for (i = 0, len = series.length; i < len; i++) { - valueList = []; - for (j = 0, k = series[i].data.length; j < k; j++) { - data = series[i].data[j]; - if (series[i].type == ecConfig.CHART_TYPE_PIE || series[i].type == ecConfig.CHART_TYPE_MAP) { - itemName = (data.name || '-') + ':'; - } else { - itemName = ''; - } - if (series[i].type == ecConfig.CHART_TYPE_SCATTER) { - data = this.getDataFromOption(data).join(', '); - } - valueList.push(itemName + this.getDataFromOption(data)); - } - content += (series[i].name || '-') + ' : \n'; - content += valueList.join(series[i].type == ecConfig.CHART_TYPE_SCATTER ? '\n' : ', '); - content += '\n\n'; - } - return content; - }, - _save: function () { - var customContent = this.query(this.option, 'toolbox.feature.dataView.contentToOption'); - if (typeof customContent != 'function') { - var text = this._textArea.value.split('\n'); - var content = []; - for (var i = 0, l = text.length; i < l; i++) { - text[i] = this._trim(text[i]); - if (text[i] !== '') { - content.push(text[i]); - } - } - this._contentToOption(content); - } else { - customContent(this._textArea, this.option); - } - this.hide(); - var self = this; - setTimeout(function () { - self.messageCenter && self.messageCenter.dispatch(ecConfig.EVENT.DATA_VIEW_CHANGED, null, { option: self.option }, self.myChart); - }, self.canvasSupported ? 800 : 100); - }, - _contentToOption: function (content) { - var i; - var j; - var k; - var len; - var data; - var axisList = []; - var contentIdx = 0; - var contentValueList; - var value; - if (this.option.xAxis) { - if (this.option.xAxis instanceof Array) { - axisList = this.option.xAxis; - } else { - axisList = [this.option.xAxis]; - } - for (i = 0, len = axisList.length; i < len; i++) { - if ((axisList[i].type || 'category') == 'category') { - contentValueList = content[contentIdx].split(','); - for (j = 0, k = axisList[i].data.length; j < k; j++) { - value = this._trim(contentValueList[j] || ''); - data = axisList[i].data[j]; - if (typeof axisList[i].data[j].value != 'undefined') { - axisList[i].data[j].value = value; - } else { - axisList[i].data[j] = value; - } - } - contentIdx++; - } - } - } - if (this.option.yAxis) { - if (this.option.yAxis instanceof Array) { - axisList = this.option.yAxis; - } else { - axisList = [this.option.yAxis]; - } - for (i = 0, len = axisList.length; i < len; i++) { - if (axisList[i].type == 'category') { - contentValueList = content[contentIdx].split(','); - for (j = 0, k = axisList[i].data.length; j < k; j++) { - value = this._trim(contentValueList[j] || ''); - data = axisList[i].data[j]; - if (typeof axisList[i].data[j].value != 'undefined') { - axisList[i].data[j].value = value; - } else { - axisList[i].data[j] = value; - } - } - contentIdx++; - } - } - } - var series = this.option.series; - for (i = 0, len = series.length; i < len; i++) { - contentIdx++; - if (series[i].type == ecConfig.CHART_TYPE_SCATTER) { - for (var j = 0, k = series[i].data.length; j < k; j++) { - contentValueList = content[contentIdx]; - value = contentValueList.replace(' ', '').split(','); - if (typeof series[i].data[j].value != 'undefined') { - series[i].data[j].value = value; - } else { - series[i].data[j] = value; - } - contentIdx++; - } - } else { - contentValueList = content[contentIdx].split(','); - for (var j = 0, k = series[i].data.length; j < k; j++) { - value = (contentValueList[j] || '').replace(/.*:/, ''); - value = this._trim(value); - value = value != '-' && value !== '' ? value - 0 : '-'; - if (typeof series[i].data[j].value != 'undefined') { - series[i].data[j].value = value; - } else { - series[i].data[j] = value; - } - } - contentIdx++; - } - } - }, - _trim: function (str) { - var trimer = new RegExp('(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+$)', 'g'); - return str.replace(trimer, ''); - }, - _stop: function (e) { - e = e || window.event; - if (e.stopPropagation) { - e.stopPropagation(); - } else { - e.cancelBubble = true; - } - }, - resize: function () { - this._zrHeight = this.zr.getHeight(); - this._zrWidth = this.zr.getWidth(); - if (this._tDom.offsetHeight > 10) { - this._sizeCssText = 'width:' + this._zrWidth + 'px;' + 'height:' + this._zrHeight + 'px;' + 'background-color:#fff;'; - this._tDom.style.cssText = this._gCssText + this._sizeCssText; - this._textArea.style.cssText = 'display:block;margin:0 0 8px 0;' + 'padding:4px 6px;overflow:auto;' + 'width:100%;' + 'height:' + (this._zrHeight - 100) + 'px;'; - } - }, - dispose: function () { - if (window.removeEventListener) { - this._tDom.removeEventListener('click', this._stop); - this._tDom.removeEventListener('mousewheel', this._stop); - this._tDom.removeEventListener('mousemove', this._stop); - this._tDom.removeEventListener('mousedown', this._stop); - this._tDom.removeEventListener('mouseup', this._stop); - this._tDom.removeEventListener('touchstart', this._stop); - this._tDom.removeEventListener('touchmove', this._stop); - this._tDom.removeEventListener('touchend', this._stop); - } else { - this._tDom.detachEvent('onclick', this._stop); - this._tDom.detachEvent('onmousewheel', this._stop); - this._tDom.detachEvent('onmousemove', this._stop); - this._tDom.detachEvent('onmousedown', this._stop); - this._tDom.detachEvent('onmouseup', this._stop); - } - this._buttonRefresh.onclick = null; - this._buttonClose.onclick = null; - if (this._hasShow) { - this._tDom.removeChild(this._textArea); - this._tDom.removeChild(this._buttonRefresh); - this._tDom.removeChild(this._buttonClose); - } - this._textArea = null; - this._buttonRefresh = null; - this._buttonClose = null; - this.dom.firstChild.removeChild(this._tDom); - this._tDom = null; - } - }; - zrUtil.inherits(DataView, Base); - require('../component').define('dataView', DataView); - return DataView; -});define('echarts/util/shape/Cross', [ - 'require', - 'zrender/shape/Base', - 'zrender/shape/Line', - 'zrender/tool/util', - './normalIsCover' -], function (require) { - var Base = require('zrender/shape/Base'); - var LineShape = require('zrender/shape/Line'); - var zrUtil = require('zrender/tool/util'); - function Cross(options) { - Base.call(this, options); - } - Cross.prototype = { - type: 'cross', - buildPath: function (ctx, style) { - var rect = style.rect; - style.xStart = rect.x; - style.xEnd = rect.x + rect.width; - style.yStart = style.yEnd = style.y; - LineShape.prototype.buildPath(ctx, style); - style.xStart = style.xEnd = style.x; - style.yStart = rect.y; - style.yEnd = rect.y + rect.height; - LineShape.prototype.buildPath(ctx, style); - }, - getRect: function (style) { - return style.rect; - }, - isCover: require('./normalIsCover') - }; - zrUtil.inherits(Cross, Base); - return Cross; -});define('zrender/shape/Sector', [ - 'require', - '../tool/math', - '../tool/computeBoundingBox', - '../tool/vector', - './Base', - '../tool/util' -], function (require) { - var math = require('../tool/math'); - var computeBoundingBox = require('../tool/computeBoundingBox'); - var vec2 = require('../tool/vector'); - var Base = require('./Base'); - var min0 = vec2.create(); - var min1 = vec2.create(); - var max0 = vec2.create(); - var max1 = vec2.create(); - var Sector = function (options) { - Base.call(this, options); - }; - Sector.prototype = { - type: 'sector', - buildPath: function (ctx, style) { - var x = style.x; - var y = style.y; - var r0 = style.r0 || 0; - var r = style.r; - var startAngle = style.startAngle; - var endAngle = style.endAngle; - var clockWise = style.clockWise || false; - startAngle = math.degreeToRadian(startAngle); - endAngle = math.degreeToRadian(endAngle); - if (!clockWise) { - startAngle = -startAngle; - endAngle = -endAngle; - } - var unitX = math.cos(startAngle); - var unitY = math.sin(startAngle); - ctx.moveTo(unitX * r0 + x, unitY * r0 + y); - ctx.lineTo(unitX * r + x, unitY * r + y); - ctx.arc(x, y, r, startAngle, endAngle, !clockWise); - ctx.lineTo(math.cos(endAngle) * r0 + x, math.sin(endAngle) * r0 + y); - if (r0 !== 0) { - ctx.arc(x, y, r0, endAngle, startAngle, clockWise); - } - ctx.closePath(); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var x = style.x; - var y = style.y; - var r0 = style.r0 || 0; - var r = style.r; - var startAngle = math.degreeToRadian(style.startAngle); - var endAngle = math.degreeToRadian(style.endAngle); - var clockWise = style.clockWise; - if (!clockWise) { - startAngle = -startAngle; - endAngle = -endAngle; - } - if (r0 > 1) { - computeBoundingBox.arc(x, y, r0, startAngle, endAngle, !clockWise, min0, max0); - } else { - min0[0] = max0[0] = x; - min0[1] = max0[1] = y; - } - computeBoundingBox.arc(x, y, r, startAngle, endAngle, !clockWise, min1, max1); - vec2.min(min0, min0, min1); - vec2.max(max0, max0, max1); - style.__rect = { - x: min0[0], - y: min0[1], - width: max0[0] - min0[0], - height: max0[1] - min0[1] - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Sector, Base); - return Sector; -});define('echarts/util/shape/Candle', [ - 'require', - 'zrender/shape/Base', - 'zrender/tool/util', - './normalIsCover' -], function (require) { - var Base = require('zrender/shape/Base'); - var zrUtil = require('zrender/tool/util'); - function Candle(options) { - Base.call(this, options); - } - Candle.prototype = { - type: 'candle', - _numberOrder: function (a, b) { - return b - a; - }, - buildPath: function (ctx, style) { - var yList = zrUtil.clone(style.y).sort(this._numberOrder); - ctx.moveTo(style.x, yList[3]); - ctx.lineTo(style.x, yList[2]); - ctx.moveTo(style.x - style.width / 2, yList[2]); - ctx.rect(style.x - style.width / 2, yList[2], style.width, yList[1] - yList[2]); - ctx.moveTo(style.x, yList[1]); - ctx.lineTo(style.x, yList[0]); - }, - getRect: function (style) { - if (!style.__rect) { - var lineWidth = 0; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } - var yList = zrUtil.clone(style.y).sort(this._numberOrder); - style.__rect = { - x: Math.round(style.x - style.width / 2 - lineWidth / 2), - y: Math.round(yList[3] - lineWidth / 2), - width: style.width + lineWidth, - height: yList[0] - yList[3] + lineWidth - }; - } - return style.__rect; - }, - isCover: require('./normalIsCover') - }; - zrUtil.inherits(Candle, Base); - return Candle; -});define('zrender/tool/computeBoundingBox', [ - 'require', - './vector', - './curve' -], function (require) { - var vec2 = require('./vector'); - var curve = require('./curve'); - function computeBoundingBox(points, min, max) { - if (points.length === 0) { - return; - } - var left = points[0][0]; - var right = points[0][0]; - var top = points[0][1]; - var bottom = points[0][1]; - for (var i = 1; i < points.length; i++) { - var p = points[i]; - if (p[0] < left) { - left = p[0]; - } - if (p[0] > right) { - right = p[0]; - } - if (p[1] < top) { - top = p[1]; - } - if (p[1] > bottom) { - bottom = p[1]; - } - } - min[0] = left; - min[1] = top; - max[0] = right; - max[1] = bottom; - } - function computeCubeBezierBoundingBox(p0, p1, p2, p3, min, max) { - var xDim = []; - curve.cubicExtrema(p0[0], p1[0], p2[0], p3[0], xDim); - for (var i = 0; i < xDim.length; i++) { - xDim[i] = curve.cubicAt(p0[0], p1[0], p2[0], p3[0], xDim[i]); - } - var yDim = []; - curve.cubicExtrema(p0[1], p1[1], p2[1], p3[1], yDim); - for (var i = 0; i < yDim.length; i++) { - yDim[i] = curve.cubicAt(p0[1], p1[1], p2[1], p3[1], yDim[i]); - } - xDim.push(p0[0], p3[0]); - yDim.push(p0[1], p3[1]); - var left = Math.min.apply(null, xDim); - var right = Math.max.apply(null, xDim); - var top = Math.min.apply(null, yDim); - var bottom = Math.max.apply(null, yDim); - min[0] = left; - min[1] = top; - max[0] = right; - max[1] = bottom; - } - function computeQuadraticBezierBoundingBox(p0, p1, p2, min, max) { - var t1 = curve.quadraticExtremum(p0[0], p1[0], p2[0]); - var t2 = curve.quadraticExtremum(p0[1], p1[1], p2[1]); - t1 = Math.max(Math.min(t1, 1), 0); - t2 = Math.max(Math.min(t2, 1), 0); - var ct1 = 1 - t1; - var ct2 = 1 - t2; - var x1 = ct1 * ct1 * p0[0] + 2 * ct1 * t1 * p1[0] + t1 * t1 * p2[0]; - var y1 = ct1 * ct1 * p0[1] + 2 * ct1 * t1 * p1[1] + t1 * t1 * p2[1]; - var x2 = ct2 * ct2 * p0[0] + 2 * ct2 * t2 * p1[0] + t2 * t2 * p2[0]; - var y2 = ct2 * ct2 * p0[1] + 2 * ct2 * t2 * p1[1] + t2 * t2 * p2[1]; - min[0] = Math.min(p0[0], p2[0], x1, x2); - min[1] = Math.min(p0[1], p2[1], y1, y2); - max[0] = Math.max(p0[0], p2[0], x1, x2); - max[1] = Math.max(p0[1], p2[1], y1, y2); - } - var start = vec2.create(); - var end = vec2.create(); - var extremity = vec2.create(); - var computeArcBoundingBox = function (x, y, r, startAngle, endAngle, anticlockwise, min, max) { - if (Math.abs(startAngle - endAngle) >= Math.PI * 2) { - min[0] = x - r; - min[1] = y - r; - max[0] = x + r; - max[1] = y + r; - return; - } - start[0] = Math.cos(startAngle) * r + x; - start[1] = Math.sin(startAngle) * r + y; - end[0] = Math.cos(endAngle) * r + x; - end[1] = Math.sin(endAngle) * r + y; - vec2.min(min, start, end); - vec2.max(max, start, end); - startAngle = startAngle % (Math.PI * 2); - if (startAngle < 0) { - startAngle = startAngle + Math.PI * 2; - } - endAngle = endAngle % (Math.PI * 2); - if (endAngle < 0) { - endAngle = endAngle + Math.PI * 2; - } - if (startAngle > endAngle && !anticlockwise) { - endAngle += Math.PI * 2; - } else if (startAngle < endAngle && anticlockwise) { - startAngle += Math.PI * 2; - } - if (anticlockwise) { - var tmp = endAngle; - endAngle = startAngle; - startAngle = tmp; - } - for (var angle = 0; angle < endAngle; angle += Math.PI / 2) { - if (angle > startAngle) { - extremity[0] = Math.cos(angle) * r + x; - extremity[1] = Math.sin(angle) * r + y; - vec2.min(min, extremity, min); - vec2.max(max, extremity, max); - } - } - }; - computeBoundingBox.cubeBezier = computeCubeBezierBoundingBox; - computeBoundingBox.quadraticBezier = computeQuadraticBezierBoundingBox; - computeBoundingBox.arc = computeArcBoundingBox; - return computeBoundingBox; -});define('echarts/util/shape/Chain', [ - 'require', - 'zrender/shape/Base', - './Icon', - 'zrender/shape/util/dashedLineTo', - 'zrender/tool/util', - 'zrender/tool/matrix' -], function (require) { - var Base = require('zrender/shape/Base'); - var IconShape = require('./Icon'); - var dashedLineTo = require('zrender/shape/util/dashedLineTo'); - var zrUtil = require('zrender/tool/util'); - var matrix = require('zrender/tool/matrix'); - function Chain(options) { - Base.call(this, options); - } - Chain.prototype = { - type: 'chain', - brush: function (ctx, isHighlight) { - var style = this.style; - if (isHighlight) { - style = this.getHighlightStyle(style, this.highlightStyle || {}); - } - ctx.save(); - this.setContext(ctx, style); - this.setTransform(ctx); - ctx.save(); - ctx.beginPath(); - this.buildLinePath(ctx, style); - ctx.stroke(); - ctx.restore(); - this.brushSymbol(ctx, style); - ctx.restore(); - return; - }, - buildLinePath: function (ctx, style) { - var x = style.x; - var y = style.y + 5; - var width = style.width; - var height = style.height / 2 - 10; - ctx.moveTo(x, y); - ctx.lineTo(x, y + height); - ctx.moveTo(x + width, y); - ctx.lineTo(x + width, y + height); - ctx.moveTo(x, y + height / 2); - if (!style.lineType || style.lineType == 'solid') { - ctx.lineTo(x + width, y + height / 2); - } else if (style.lineType == 'dashed' || style.lineType == 'dotted') { - var dashLength = (style.lineWidth || 1) * (style.lineType == 'dashed' ? 5 : 1); - dashedLineTo(ctx, x, y + height / 2, x + width, y + height / 2, dashLength); - } - }, - brushSymbol: function (ctx, style) { - var y = style.y + style.height / 4; - ctx.save(); - var chainPoint = style.chainPoint; - var curPoint; - for (var idx = 0, l = chainPoint.length; idx < l; idx++) { - curPoint = chainPoint[idx]; - if (curPoint.symbol != 'none') { - ctx.beginPath(); - var symbolSize = curPoint.symbolSize; - IconShape.prototype.buildPath(ctx, { - iconType: curPoint.symbol, - x: curPoint.x - symbolSize, - y: y - symbolSize, - width: symbolSize * 2, - height: symbolSize * 2, - n: curPoint.n - }); - ctx.fillStyle = curPoint.isEmpty ? '#fff' : style.strokeColor; - ctx.closePath(); - ctx.fill(); - ctx.stroke(); - } - if (curPoint.showLabel) { - ctx.font = curPoint.textFont; - ctx.fillStyle = curPoint.textColor; - ctx.textAlign = curPoint.textAlign; - ctx.textBaseline = curPoint.textBaseline; - if (curPoint.rotation) { - ctx.save(); - this._updateTextTransform(ctx, curPoint.rotation); - ctx.fillText(curPoint.name, curPoint.textX, curPoint.textY); - ctx.restore(); - } else { - ctx.fillText(curPoint.name, curPoint.textX, curPoint.textY); - } - } - } - ctx.restore(); - }, - _updateTextTransform: function (ctx, rotation) { - var _transform = matrix.create(); - matrix.identity(_transform); - if (rotation[0] !== 0) { - var originX = rotation[1] || 0; - var originY = rotation[2] || 0; - if (originX || originY) { - matrix.translate(_transform, _transform, [ - -originX, - -originY - ]); - } - matrix.rotate(_transform, _transform, rotation[0]); - if (originX || originY) { - matrix.translate(_transform, _transform, [ - originX, - originY - ]); - } - } - ctx.transform.apply(ctx, _transform); - }, - isCover: function (x, y) { - var rect = this.style; - if (x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height) { - return true; - } else { - return false; - } - } - }; - zrUtil.inherits(Chain, Base); - return Chain; -});define('zrender/shape/Ring', [ - 'require', - './Base', - '../tool/util' -], function (require) { - var Base = require('./Base'); - var Ring = function (options) { - Base.call(this, options); - }; - Ring.prototype = { - type: 'ring', - buildPath: function (ctx, style) { - ctx.arc(style.x, style.y, style.r, 0, Math.PI * 2, false); - ctx.moveTo(style.x + style.r0, style.y); - ctx.arc(style.x, style.y, style.r0, 0, Math.PI * 2, true); - return; - }, - getRect: function (style) { - if (style.__rect) { - return style.__rect; - } - var lineWidth; - if (style.brushType == 'stroke' || style.brushType == 'fill') { - lineWidth = style.lineWidth || 1; - } else { - lineWidth = 0; - } - style.__rect = { - x: Math.round(style.x - style.r - lineWidth / 2), - y: Math.round(style.y - style.r - lineWidth / 2), - width: style.r * 2 + lineWidth, - height: style.r * 2 + lineWidth - }; - return style.__rect; - } - }; - require('../tool/util').inherits(Ring, Base); - return Ring; -});define('echarts/component/axis', [ - 'require', - './base', - 'zrender/shape/Line', - '../config', - '../util/ecData', - 'zrender/tool/util', - 'zrender/tool/color', - './categoryAxis', - './valueAxis', - '../component' -], function (require) { - var Base = require('./base'); - var LineShape = require('zrender/shape/Line'); - var ecConfig = require('../config'); - var ecData = require('../util/ecData'); - var zrUtil = require('zrender/tool/util'); - var zrColor = require('zrender/tool/color'); - function Axis(ecTheme, messageCenter, zr, option, myChart, axisType) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.axisType = axisType; - this._axisList = []; - this.refresh(option); - } - Axis.prototype = { - type: ecConfig.COMPONENT_TYPE_AXIS, - axisBase: { - _buildAxisLine: function () { - var lineWidth = this.option.axisLine.lineStyle.width; - var halfLineWidth = lineWidth / 2; - var axShape = { - _axisShape: 'axisLine', - zlevel: this.getZlevelBase(), - z: this.getZBase() + 3, - hoverable: false - }; - var grid = this.grid; - switch (this.option.position) { - case 'left': - axShape.style = { - xStart: grid.getX() - halfLineWidth, - yStart: grid.getYend(), - xEnd: grid.getX() - halfLineWidth, - yEnd: grid.getY(), - lineCap: 'round' - }; - break; - case 'right': - axShape.style = { - xStart: grid.getXend() + halfLineWidth, - yStart: grid.getYend(), - xEnd: grid.getXend() + halfLineWidth, - yEnd: grid.getY(), - lineCap: 'round' - }; - break; - case 'bottom': - axShape.style = { - xStart: grid.getX(), - yStart: grid.getYend() + halfLineWidth, - xEnd: grid.getXend(), - yEnd: grid.getYend() + halfLineWidth, - lineCap: 'round' - }; - break; - case 'top': - axShape.style = { - xStart: grid.getX(), - yStart: grid.getY() - halfLineWidth, - xEnd: grid.getXend(), - yEnd: grid.getY() - halfLineWidth, - lineCap: 'round' - }; - break; - } - var style = axShape.style; - if (this.option.name !== '') { - style.text = this.option.name; - style.textPosition = this.option.nameLocation; - style.textFont = this.getFont(this.option.nameTextStyle); - if (this.option.nameTextStyle.align) { - style.textAlign = this.option.nameTextStyle.align; - } - if (this.option.nameTextStyle.baseline) { - style.textBaseline = this.option.nameTextStyle.baseline; - } - if (this.option.nameTextStyle.color) { - style.textColor = this.option.nameTextStyle.color; - } - } - style.strokeColor = this.option.axisLine.lineStyle.color; - style.lineWidth = lineWidth; - if (this.isHorizontal()) { - style.yStart = style.yEnd = this.subPixelOptimize(style.yEnd, lineWidth); - } else { - style.xStart = style.xEnd = this.subPixelOptimize(style.xEnd, lineWidth); - } - style.lineType = this.option.axisLine.lineStyle.type; - axShape = new LineShape(axShape); - this.shapeList.push(axShape); - }, - _axisLabelClickable: function (clickable, axShape) { - if (clickable) { - ecData.pack(axShape, undefined, -1, undefined, -1, axShape.style.text); - axShape.hoverable = true; - axShape.clickable = true; - axShape.highlightStyle = { - color: zrColor.lift(axShape.style.color, 1), - brushType: 'fill' - }; - return axShape; - } else { - return axShape; - } - }, - refixAxisShape: function (zeroX, zeroY) { - if (!this.option.axisLine.onZero) { - return; - } - var tickLength; - if (this.isHorizontal() && zeroY != null) { - for (var i = 0, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i]._axisShape === 'axisLine') { - this.shapeList[i].style.yStart = this.shapeList[i].style.yEnd = this.subPixelOptimize(zeroY, this.shapeList[i].stylelineWidth); - this.zr.modShape(this.shapeList[i].id); - } else if (this.shapeList[i]._axisShape === 'axisTick') { - tickLength = this.shapeList[i].style.yEnd - this.shapeList[i].style.yStart; - this.shapeList[i].style.yStart = zeroY - tickLength; - this.shapeList[i].style.yEnd = zeroY; - this.zr.modShape(this.shapeList[i].id); - } - } - } - if (!this.isHorizontal() && zeroX != null) { - for (var i = 0, l = this.shapeList.length; i < l; i++) { - if (this.shapeList[i]._axisShape === 'axisLine') { - this.shapeList[i].style.xStart = this.shapeList[i].style.xEnd = this.subPixelOptimize(zeroX, this.shapeList[i].stylelineWidth); - this.zr.modShape(this.shapeList[i].id); - } else if (this.shapeList[i]._axisShape === 'axisTick') { - tickLength = this.shapeList[i].style.xEnd - this.shapeList[i].style.xStart; - this.shapeList[i].style.xStart = zeroX; - this.shapeList[i].style.xEnd = zeroX + tickLength; - this.zr.modShape(this.shapeList[i].id); - } - } - } - }, - getPosition: function () { - return this.option.position; - }, - isHorizontal: function () { - return this.option.position === 'bottom' || this.option.position === 'top'; - } - }, - reformOption: function (opt) { - if (!opt || opt instanceof Array && opt.length === 0) { - opt = [{ type: ecConfig.COMPONENT_TYPE_AXIS_VALUE }]; - } else if (!(opt instanceof Array)) { - opt = [opt]; - } - if (opt.length > 2) { - opt = [ - opt[0], - opt[1] - ]; - } - if (this.axisType === 'xAxis') { - if (!opt[0].position || opt[0].position != 'bottom' && opt[0].position != 'top') { - opt[0].position = 'bottom'; - } - if (opt.length > 1) { - opt[1].position = opt[0].position === 'bottom' ? 'top' : 'bottom'; - } - for (var i = 0, l = opt.length; i < l; i++) { - opt[i].type = opt[i].type || 'category'; - opt[i].xAxisIndex = i; - opt[i].yAxisIndex = -1; - } - } else { - if (!opt[0].position || opt[0].position != 'left' && opt[0].position != 'right') { - opt[0].position = 'left'; - } - if (opt.length > 1) { - opt[1].position = opt[0].position === 'left' ? 'right' : 'left'; - } - for (var i = 0, l = opt.length; i < l; i++) { - opt[i].type = opt[i].type || 'value'; - opt[i].xAxisIndex = -1; - opt[i].yAxisIndex = i; - } - } - return opt; - }, - refresh: function (newOption) { - var axisOption; - if (newOption) { - this.option = newOption; - if (this.axisType === 'xAxis') { - this.option.xAxis = this.reformOption(newOption.xAxis); - axisOption = this.option.xAxis; - } else { - this.option.yAxis = this.reformOption(newOption.yAxis); - axisOption = this.option.yAxis; - } - this.series = newOption.series; - } - var CategoryAxis = require('./categoryAxis'); - var ValueAxis = require('./valueAxis'); - var len = Math.max(axisOption && axisOption.length || 0, this._axisList.length); - for (var i = 0; i < len; i++) { - if (this._axisList[i] && newOption && (!axisOption[i] || this._axisList[i].type != axisOption[i].type)) { - this._axisList[i].dispose && this._axisList[i].dispose(); - this._axisList[i] = false; - } - if (this._axisList[i]) { - this._axisList[i].refresh && this._axisList[i].refresh(axisOption ? axisOption[i] : false, this.series); - } else if (axisOption && axisOption[i]) { - this._axisList[i] = axisOption[i].type === 'category' ? new CategoryAxis(this.ecTheme, this.messageCenter, this.zr, axisOption[i], this.myChart, this.axisBase) : new ValueAxis(this.ecTheme, this.messageCenter, this.zr, axisOption[i], this.myChart, this.axisBase, this.series); - } - } - }, - getAxis: function (idx) { - return this._axisList[idx]; - }, - getAxisCount: function () { - return this._axisList.length; - }, - clear: function () { - for (var i = 0, l = this._axisList.length; i < l; i++) { - this._axisList[i].dispose && this._axisList[i].dispose(); - } - this._axisList = []; - } - }; - zrUtil.inherits(Axis, Base); - require('../component').define('axis', Axis); - return Axis; -});define('echarts/component/grid', [ - 'require', - './base', - 'zrender/shape/Rectangle', - '../config', - 'zrender/tool/util', - '../component' -], function (require) { - var Base = require('./base'); - var RectangleShape = require('zrender/shape/Rectangle'); - var ecConfig = require('../config'); - ecConfig.grid = { - zlevel: 0, - z: 0, - x: 80, - y: 60, - x2: 80, - y2: 60, - backgroundColor: 'rgba(0,0,0,0)', - borderWidth: 1, - borderColor: '#ccc' - }; - var zrUtil = require('zrender/tool/util'); - function Grid(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.refresh(option); - } - Grid.prototype = { - type: ecConfig.COMPONENT_TYPE_GRID, - getX: function () { - return this._x; - }, - getY: function () { - return this._y; - }, - getWidth: function () { - return this._width; - }, - getHeight: function () { - return this._height; - }, - getXend: function () { - return this._x + this._width; - }, - getYend: function () { - return this._y + this._height; - }, - getArea: function () { - return { - x: this._x, - y: this._y, - width: this._width, - height: this._height - }; - }, - getBbox: function () { - return [ - [ - this._x, - this._y - ], - [ - this.getXend(), - this.getYend() - ] - ]; - }, - refixAxisShape: function (component) { - var zeroX; - var zeroY; - var axisList = component.xAxis._axisList.concat(component.yAxis ? component.yAxis._axisList : []); - var len = axisList.length; - var axis; - while (len--) { - axis = axisList[len]; - if (axis.type == ecConfig.COMPONENT_TYPE_AXIS_VALUE && axis._min < 0 && axis._max >= 0) { - axis.isHorizontal() ? zeroX = axis.getCoord(0) : zeroY = axis.getCoord(0); - } - } - if (typeof zeroX != 'undefined' || typeof zeroY != 'undefined') { - len = axisList.length; - while (len--) { - axisList[len].refixAxisShape(zeroX, zeroY); - } - } - }, - refresh: function (newOption) { - if (newOption || this._zrWidth != this.zr.getWidth() || this._zrHeight != this.zr.getHeight()) { - this.clear(); - this.option = newOption || this.option; - this.option.grid = this.reformOption(this.option.grid); - var gridOption = this.option.grid; - this._zrWidth = this.zr.getWidth(); - this._zrHeight = this.zr.getHeight(); - this._x = this.parsePercent(gridOption.x, this._zrWidth); - this._y = this.parsePercent(gridOption.y, this._zrHeight); - var x2 = this.parsePercent(gridOption.x2, this._zrWidth); - var y2 = this.parsePercent(gridOption.y2, this._zrHeight); - if (typeof gridOption.width == 'undefined') { - this._width = this._zrWidth - this._x - x2; - } else { - this._width = this.parsePercent(gridOption.width, this._zrWidth); - } - this._width = this._width <= 0 ? 10 : this._width; - if (typeof gridOption.height == 'undefined') { - this._height = this._zrHeight - this._y - y2; - } else { - this._height = this.parsePercent(gridOption.height, this._zrHeight); - } - this._height = this._height <= 0 ? 10 : this._height; - this._x = this.subPixelOptimize(this._x, gridOption.borderWidth); - this._y = this.subPixelOptimize(this._y, gridOption.borderWidth); - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._x, - y: this._y, - width: this._width, - height: this._height, - brushType: gridOption.borderWidth > 0 ? 'both' : 'fill', - color: gridOption.backgroundColor, - strokeColor: gridOption.borderColor, - lineWidth: gridOption.borderWidth - } - })); - this.zr.addShape(this.shapeList[0]); - } - } - }; - zrUtil.inherits(Grid, Base); - require('../component').define('grid', Grid); - return Grid; -});define('echarts/component/dataZoom', [ - 'require', - './base', - 'zrender/shape/Rectangle', - 'zrender/shape/Polygon', - '../util/shape/Icon', - '../config', - '../util/date', - 'zrender/tool/util', - '../component' -], function (require) { - var Base = require('./base'); - var RectangleShape = require('zrender/shape/Rectangle'); - var PolygonShape = require('zrender/shape/Polygon'); - var IconShape = require('../util/shape/Icon'); - var ecConfig = require('../config'); - ecConfig.dataZoom = { - zlevel: 0, - z: 4, - show: false, - orient: 'horizontal', - backgroundColor: 'rgba(0,0,0,0)', - dataBackgroundColor: '#eee', - fillerColor: 'rgba(144,197,237,0.2)', - handleColor: 'rgba(70,130,180,0.8)', - handleSize: 8, - showDetail: true, - realtime: true - }; - var ecDate = require('../util/date'); - var zrUtil = require('zrender/tool/util'); - function DataZoom(ecTheme, messageCenter, zr, option, myChart) { - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - var self = this; - self._ondrift = function (dx, dy) { - return self.__ondrift(this, dx, dy); - }; - self._ondragend = function () { - return self.__ondragend(); - }; - this._fillerSize = 30; - this._isSilence = false; - this._zoom = {}; - this.option.dataZoom = this.reformOption(this.option.dataZoom); - this.zoomOption = this.option.dataZoom; - this._handleSize = this.zoomOption.handleSize; - if (!this.myChart.canvasSupported) { - this.zoomOption.realtime = false; - } - this._location = this._getLocation(); - this._zoom = this._getZoom(); - this._backupData(); - if (this.option.dataZoom.show) { - this._buildShape(); - } - this._syncData(); - } - DataZoom.prototype = { - type: ecConfig.COMPONENT_TYPE_DATAZOOM, - _buildShape: function () { - this._buildBackground(); - this._buildFiller(); - this._buildHandle(); - this._buildFrame(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - this._syncFrameShape(); - }, - _getLocation: function () { - var x; - var y; - var width; - var height; - var grid = this.component.grid; - if (this.zoomOption.orient == 'horizontal') { - width = this.zoomOption.width || grid.getWidth(); - height = this.zoomOption.height || this._fillerSize; - x = this.zoomOption.x != null ? this.zoomOption.x : grid.getX(); - y = this.zoomOption.y != null ? this.zoomOption.y : this.zr.getHeight() - height - 2; - } else { - width = this.zoomOption.width || this._fillerSize; - height = this.zoomOption.height || grid.getHeight(); - x = this.zoomOption.x != null ? this.zoomOption.x : 2; - y = this.zoomOption.y != null ? this.zoomOption.y : grid.getY(); - } - return { - x: x, - y: y, - width: width, - height: height - }; - }, - _getZoom: function () { - var series = this.option.series; - var xAxis = this.option.xAxis; - if (xAxis && !(xAxis instanceof Array)) { - xAxis = [xAxis]; - this.option.xAxis = xAxis; - } - var yAxis = this.option.yAxis; - if (yAxis && !(yAxis instanceof Array)) { - yAxis = [yAxis]; - this.option.yAxis = yAxis; - } - var zoomSeriesIndex = []; - var xAxisIndex; - var yAxisIndex; - var zOptIdx = this.zoomOption.xAxisIndex; - if (xAxis && zOptIdx == null) { - xAxisIndex = []; - for (var i = 0, l = xAxis.length; i < l; i++) { - if (xAxis[i].type == 'category' || xAxis[i].type == null) { - xAxisIndex.push(i); - } - } - } else { - if (zOptIdx instanceof Array) { - xAxisIndex = zOptIdx; - } else if (zOptIdx != null) { - xAxisIndex = [zOptIdx]; - } else { - xAxisIndex = []; - } - } - zOptIdx = this.zoomOption.yAxisIndex; - if (yAxis && zOptIdx == null) { - yAxisIndex = []; - for (var i = 0, l = yAxis.length; i < l; i++) { - if (yAxis[i].type == 'category') { - yAxisIndex.push(i); - } - } - } else { - if (zOptIdx instanceof Array) { - yAxisIndex = zOptIdx; - } else if (zOptIdx != null) { - yAxisIndex = [zOptIdx]; - } else { - yAxisIndex = []; - } - } - var serie; - for (var i = 0, l = series.length; i < l; i++) { - serie = series[i]; - if (serie.type != ecConfig.CHART_TYPE_LINE && serie.type != ecConfig.CHART_TYPE_BAR && serie.type != ecConfig.CHART_TYPE_SCATTER && serie.type != ecConfig.CHART_TYPE_K) { - continue; - } - for (var j = 0, k = xAxisIndex.length; j < k; j++) { - if (xAxisIndex[j] == (serie.xAxisIndex || 0)) { - zoomSeriesIndex.push(i); - break; - } - } - for (var j = 0, k = yAxisIndex.length; j < k; j++) { - if (yAxisIndex[j] == (serie.yAxisIndex || 0)) { - zoomSeriesIndex.push(i); - break; - } - } - if (this.zoomOption.xAxisIndex == null && this.zoomOption.yAxisIndex == null && serie.data && this.getDataFromOption(serie.data[0]) instanceof Array && (serie.type == ecConfig.CHART_TYPE_SCATTER || serie.type == ecConfig.CHART_TYPE_LINE || serie.type == ecConfig.CHART_TYPE_BAR)) { - zoomSeriesIndex.push(i); - } - } - var start = this._zoom.start != null ? this._zoom.start : this.zoomOption.start != null ? this.zoomOption.start : 0; - var end = this._zoom.end != null ? this._zoom.end : this.zoomOption.end != null ? this.zoomOption.end : 100; - if (start > end) { - start = start + end; - end = start - end; - start = start - end; - } - var size = Math.round((end - start) / 100 * (this.zoomOption.orient == 'horizontal' ? this._location.width : this._location.height)); - return { - start: start, - end: end, - start2: 0, - end2: 100, - size: size, - xAxisIndex: xAxisIndex, - yAxisIndex: yAxisIndex, - seriesIndex: zoomSeriesIndex, - scatterMap: this._zoom.scatterMap || {} - }; - }, - _backupData: function () { - this._originalData = { - xAxis: {}, - yAxis: {}, - series: {} - }; - var xAxis = this.option.xAxis; - var xAxisIndex = this._zoom.xAxisIndex; - for (var i = 0, l = xAxisIndex.length; i < l; i++) { - this._originalData.xAxis[xAxisIndex[i]] = xAxis[xAxisIndex[i]].data; - } - var yAxis = this.option.yAxis; - var yAxisIndex = this._zoom.yAxisIndex; - for (var i = 0, l = yAxisIndex.length; i < l; i++) { - this._originalData.yAxis[yAxisIndex[i]] = yAxis[yAxisIndex[i]].data; - } - var series = this.option.series; - var seriesIndex = this._zoom.seriesIndex; - var serie; - for (var i = 0, l = seriesIndex.length; i < l; i++) { - serie = series[seriesIndex[i]]; - this._originalData.series[seriesIndex[i]] = serie.data; - if (serie.data && this.getDataFromOption(serie.data[0]) instanceof Array && (serie.type == ecConfig.CHART_TYPE_SCATTER || serie.type == ecConfig.CHART_TYPE_LINE || serie.type == ecConfig.CHART_TYPE_BAR)) { - this._backupScale(); - this._calculScatterMap(seriesIndex[i]); - } - } - }, - _calculScatterMap: function (seriesIndex) { - this._zoom.scatterMap = this._zoom.scatterMap || {}; - this._zoom.scatterMap[seriesIndex] = this._zoom.scatterMap[seriesIndex] || {}; - var componentLibrary = require('../component'); - var Axis = componentLibrary.get('axis'); - var axisOption = zrUtil.clone(this.option.xAxis); - if (axisOption[0].type == 'category') { - axisOption[0].type = 'value'; - } - if (axisOption[1] && axisOption[1].type == 'category') { - axisOption[1].type = 'value'; - } - var vAxis = new Axis(this.ecTheme, null, false, { - xAxis: axisOption, - series: this.option.series - }, this, 'xAxis'); - var axisIndex = this.option.series[seriesIndex].xAxisIndex || 0; - this._zoom.scatterMap[seriesIndex].x = vAxis.getAxis(axisIndex).getExtremum(); - vAxis.dispose(); - axisOption = zrUtil.clone(this.option.yAxis); - if (axisOption[0].type == 'category') { - axisOption[0].type = 'value'; - } - if (axisOption[1] && axisOption[1].type == 'category') { - axisOption[1].type = 'value'; - } - vAxis = new Axis(this.ecTheme, null, false, { - yAxis: axisOption, - series: this.option.series - }, this, 'yAxis'); - axisIndex = this.option.series[seriesIndex].yAxisIndex || 0; - this._zoom.scatterMap[seriesIndex].y = vAxis.getAxis(axisIndex).getExtremum(); - vAxis.dispose(); - }, - _buildBackground: function () { - var width = this._location.width; - var height = this._location.height; - this.shapeList.push(new RectangleShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this._location.x, - y: this._location.y, - width: width, - height: height, - color: this.zoomOption.backgroundColor - } - })); - var maxLength = 0; - var xAxis = this._originalData.xAxis; - var xAxisIndex = this._zoom.xAxisIndex; - for (var i = 0, l = xAxisIndex.length; i < l; i++) { - maxLength = Math.max(maxLength, xAxis[xAxisIndex[i]].length); - } - var yAxis = this._originalData.yAxis; - var yAxisIndex = this._zoom.yAxisIndex; - for (var i = 0, l = yAxisIndex.length; i < l; i++) { - maxLength = Math.max(maxLength, yAxis[yAxisIndex[i]].length); - } - var seriesIndex = this._zoom.seriesIndex[0]; - var data = this._originalData.series[seriesIndex]; - var maxValue = Number.MIN_VALUE; - var minValue = Number.MAX_VALUE; - var value; - for (var i = 0, l = data.length; i < l; i++) { - value = this.getDataFromOption(data[i], 0); - if (this.option.series[seriesIndex].type == ecConfig.CHART_TYPE_K) { - value = value[1]; - } - if (isNaN(value)) { - value = 0; - } - maxValue = Math.max(maxValue, value); - minValue = Math.min(minValue, value); - } - var valueRange = maxValue - minValue; - var pointList = []; - var x = width / (maxLength - (maxLength > 1 ? 1 : 0)); - var y = height / (maxLength - (maxLength > 1 ? 1 : 0)); - var step = 1; - if (this.zoomOption.orient == 'horizontal' && x < 1) { - step = Math.floor(maxLength * 3 / width); - } else if (this.zoomOption.orient == 'vertical' && y < 1) { - step = Math.floor(maxLength * 3 / height); - } - for (var i = 0, l = maxLength; i < l; i += step) { - value = this.getDataFromOption(data[i], 0); - if (this.option.series[seriesIndex].type == ecConfig.CHART_TYPE_K) { - value = value[1]; - } - if (isNaN(value)) { - value = 0; - } - if (this.zoomOption.orient == 'horizontal') { - pointList.push([ - this._location.x + x * i, - this._location.y + height - 1 - Math.round((value - minValue) / valueRange * (height - 10)) - ]); - } else { - pointList.push([ - this._location.x + 1 + Math.round((value - minValue) / valueRange * (width - 10)), - this._location.y + y * (l - i - 1) - ]); - } - } - if (this.zoomOption.orient == 'horizontal') { - pointList.push([ - this._location.x + width, - this._location.y + height - ]); - pointList.push([ - this._location.x, - this._location.y + height - ]); - } else { - pointList.push([ - this._location.x, - this._location.y - ]); - pointList.push([ - this._location.x, - this._location.y + height - ]); - } - this.shapeList.push(new PolygonShape({ - zlevel: this.getZlevelBase(), - z: this.getZBase(), - style: { - pointList: pointList, - color: this.zoomOption.dataBackgroundColor - }, - hoverable: false - })); - }, - _buildFiller: function () { - this._fillerShae = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - draggable: true, - ondrift: this._ondrift, - ondragend: this._ondragend, - _type: 'filler' - }; - if (this.zoomOption.orient == 'horizontal') { - this._fillerShae.style = { - x: this._location.x + Math.round(this._zoom.start / 100 * this._location.width) + this._handleSize, - y: this._location.y, - width: this._zoom.size - this._handleSize * 2, - height: this._location.height, - color: this.zoomOption.fillerColor, - text: ':::', - textPosition: 'inside' - }; - } else { - this._fillerShae.style = { - x: this._location.x, - y: this._location.y + Math.round(this._zoom.start / 100 * this._location.height) + this._handleSize, - width: this._location.width, - height: this._zoom.size - this._handleSize * 2, - color: this.zoomOption.fillerColor, - text: '::', - textPosition: 'inside' - }; - } - this._fillerShae.highlightStyle = { - brushType: 'fill', - color: 'rgba(0,0,0,0)' - }; - this._fillerShae = new RectangleShape(this._fillerShae); - this.shapeList.push(this._fillerShae); - }, - _buildHandle: function () { - var detail = this.zoomOption.showDetail ? this._getDetail() : { - start: '', - end: '' - }; - this._startShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - draggable: true, - style: { - iconType: 'rectangle', - x: this._location.x, - y: this._location.y, - width: this._handleSize, - height: this._handleSize, - color: this.zoomOption.handleColor, - text: '=', - textPosition: 'inside' - }, - highlightStyle: { - text: detail.start, - brushType: 'fill', - textPosition: 'left' - }, - ondrift: this._ondrift, - ondragend: this._ondragend - }; - if (this.zoomOption.orient == 'horizontal') { - this._startShape.style.height = this._location.height; - this._endShape = zrUtil.clone(this._startShape); - this._startShape.style.x = this._fillerShae.style.x - this._handleSize, this._endShape.style.x = this._fillerShae.style.x + this._fillerShae.style.width; - this._endShape.highlightStyle.text = detail.end; - this._endShape.highlightStyle.textPosition = 'right'; - } else { - this._startShape.style.width = this._location.width; - this._endShape = zrUtil.clone(this._startShape); - this._startShape.style.y = this._fillerShae.style.y + this._fillerShae.style.height; - this._startShape.highlightStyle.textPosition = 'bottom'; - this._endShape.style.y = this._fillerShae.style.y - this._handleSize; - this._endShape.highlightStyle.text = detail.end; - this._endShape.highlightStyle.textPosition = 'top'; - } - this._startShape = new IconShape(this._startShape); - this._endShape = new IconShape(this._endShape); - this.shapeList.push(this._startShape); - this.shapeList.push(this._endShape); - }, - _buildFrame: function () { - var x = this.subPixelOptimize(this._location.x, 1); - var y = this.subPixelOptimize(this._location.y, 1); - this._startFrameShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: x, - y: y, - width: this._location.width - (x > this._location.x ? 1 : 0), - height: this._location.height - (y > this._location.y ? 1 : 0), - lineWidth: 1, - brushType: 'stroke', - strokeColor: this.zoomOption.handleColor - } - }; - this._endFrameShape = zrUtil.clone(this._startFrameShape); - this._startFrameShape = new RectangleShape(this._startFrameShape); - this._endFrameShape = new RectangleShape(this._endFrameShape); - this.shapeList.push(this._startFrameShape); - this.shapeList.push(this._endFrameShape); - return; - }, - _syncHandleShape: function () { - if (this.zoomOption.orient == 'horizontal') { - this._startShape.style.x = this._fillerShae.style.x - this._handleSize; - this._endShape.style.x = this._fillerShae.style.x + this._fillerShae.style.width; - this._zoom.start = (this._startShape.style.x - this._location.x) / this._location.width * 100; - this._zoom.end = (this._endShape.style.x + this._handleSize - this._location.x) / this._location.width * 100; - } else { - this._startShape.style.y = this._fillerShae.style.y + this._fillerShae.style.height; - this._endShape.style.y = this._fillerShae.style.y - this._handleSize; - this._zoom.start = (this._location.y + this._location.height - this._startShape.style.y) / this._location.height * 100; - this._zoom.end = (this._location.y + this._location.height - this._endShape.style.y - this._handleSize) / this._location.height * 100; - } - this.zr.modShape(this._startShape.id); - this.zr.modShape(this._endShape.id); - this._syncFrameShape(); - this.zr.refreshNextFrame(); - }, - _syncFillerShape: function () { - var a; - var b; - if (this.zoomOption.orient == 'horizontal') { - a = this._startShape.style.x; - b = this._endShape.style.x; - this._fillerShae.style.x = Math.min(a, b) + this._handleSize; - this._fillerShae.style.width = Math.abs(a - b) - this._handleSize; - this._zoom.start = (Math.min(a, b) - this._location.x) / this._location.width * 100; - this._zoom.end = (Math.max(a, b) + this._handleSize - this._location.x) / this._location.width * 100; - } else { - a = this._startShape.style.y; - b = this._endShape.style.y; - this._fillerShae.style.y = Math.min(a, b) + this._handleSize; - this._fillerShae.style.height = Math.abs(a - b) - this._handleSize; - this._zoom.start = (this._location.y + this._location.height - Math.max(a, b)) / this._location.height * 100; - this._zoom.end = (this._location.y + this._location.height - Math.min(a, b) - this._handleSize) / this._location.height * 100; - } - this.zr.modShape(this._fillerShae.id); - this._syncFrameShape(); - this.zr.refreshNextFrame(); - }, - _syncFrameShape: function () { - if (this.zoomOption.orient == 'horizontal') { - this._startFrameShape.style.width = this._fillerShae.style.x - this._location.x; - this._endFrameShape.style.x = this._fillerShae.style.x + this._fillerShae.style.width; - this._endFrameShape.style.width = this._location.x + this._location.width - this._endFrameShape.style.x; - } else { - this._startFrameShape.style.y = this._fillerShae.style.y + this._fillerShae.style.height; - this._startFrameShape.style.height = this._location.y + this._location.height - this._startFrameShape.style.y; - this._endFrameShape.style.height = this._fillerShae.style.y - this._location.y; - } - this.zr.modShape(this._startFrameShape.id); - this.zr.modShape(this._endFrameShape.id); - }, - _syncShape: function () { - if (!this.zoomOption.show) { - return; - } - if (this.zoomOption.orient == 'horizontal') { - this._startShape.style.x = this._location.x + this._zoom.start / 100 * this._location.width; - this._endShape.style.x = this._location.x + this._zoom.end / 100 * this._location.width - this._handleSize; - this._fillerShae.style.x = this._startShape.style.x + this._handleSize; - this._fillerShae.style.width = this._endShape.style.x - this._startShape.style.x - this._handleSize; - } else { - this._startShape.style.y = this._location.y + this._location.height - this._zoom.start / 100 * this._location.height; - this._endShape.style.y = this._location.y + this._location.height - this._zoom.end / 100 * this._location.height - this._handleSize; - this._fillerShae.style.y = this._endShape.style.y + this._handleSize; - this._fillerShae.style.height = this._startShape.style.y - this._endShape.style.y - this._handleSize; - } - this.zr.modShape(this._startShape.id); - this.zr.modShape(this._endShape.id); - this.zr.modShape(this._fillerShae.id); - this._syncFrameShape(); - this.zr.refresh(); - }, - _syncData: function (dispatchNow) { - var target; - var start; - var end; - var length; - var data; - for (var key in this._originalData) { - target = this._originalData[key]; - for (var idx in target) { - data = target[idx]; - if (data == null) { - continue; - } - length = data.length; - start = Math.floor(this._zoom.start / 100 * length); - end = Math.ceil(this._zoom.end / 100 * length); - if (!(this.getDataFromOption(data[0]) instanceof Array) || this.option[key][idx].type == ecConfig.CHART_TYPE_K) { - this.option[key][idx].data = data.slice(start, end); - } else { - this._setScale(); - this.option[key][idx].data = this._synScatterData(idx, data); - } - } - } - if (!this._isSilence && (this.zoomOption.realtime || dispatchNow)) { - this.messageCenter.dispatch(ecConfig.EVENT.DATA_ZOOM, null, { zoom: this._zoom }, this.myChart); - } - }, - _synScatterData: function (seriesIndex, data) { - if (this._zoom.start === 0 && this._zoom.end == 100 && this._zoom.start2 === 0 && this._zoom.end2 == 100) { - return data; - } - var newData = []; - var scale = this._zoom.scatterMap[seriesIndex]; - var total; - var xStart; - var xEnd; - var yStart; - var yEnd; - if (this.zoomOption.orient == 'horizontal') { - total = scale.x.max - scale.x.min; - xStart = this._zoom.start / 100 * total + scale.x.min; - xEnd = this._zoom.end / 100 * total + scale.x.min; - total = scale.y.max - scale.y.min; - yStart = this._zoom.start2 / 100 * total + scale.y.min; - yEnd = this._zoom.end2 / 100 * total + scale.y.min; - } else { - total = scale.x.max - scale.x.min; - xStart = this._zoom.start2 / 100 * total + scale.x.min; - xEnd = this._zoom.end2 / 100 * total + scale.x.min; - total = scale.y.max - scale.y.min; - yStart = this._zoom.start / 100 * total + scale.y.min; - yEnd = this._zoom.end / 100 * total + scale.y.min; - } - var dataMappingMethods; - if (dataMappingMethods = scale.x.dataMappingMethods) { - xStart = dataMappingMethods.coord2Value(xStart); - xEnd = dataMappingMethods.coord2Value(xEnd); - } - if (dataMappingMethods = scale.y.dataMappingMethods) { - yStart = dataMappingMethods.coord2Value(yStart); - yEnd = dataMappingMethods.coord2Value(yEnd); - } - var value; - for (var i = 0, l = data.length; i < l; i++) { - value = data[i].value || data[i]; - if (value[0] >= xStart && value[0] <= xEnd && value[1] >= yStart && value[1] <= yEnd) { - newData.push(data[i]); - } - } - return newData; - }, - _setScale: function () { - var needScale = this._zoom.start !== 0 || this._zoom.end !== 100 || this._zoom.start2 !== 0 || this._zoom.end2 !== 100; - var axis = { - xAxis: this.option.xAxis, - yAxis: this.option.yAxis - }; - for (var key in axis) { - for (var i = 0, l = axis[key].length; i < l; i++) { - axis[key][i].scale = needScale || axis[key][i]._scale; - } - } - }, - _backupScale: function () { - var axis = { - xAxis: this.option.xAxis, - yAxis: this.option.yAxis - }; - for (var key in axis) { - for (var i = 0, l = axis[key].length; i < l; i++) { - axis[key][i]._scale = axis[key][i].scale; - } - } - }, - _getDetail: function () { - var key = [ - 'xAxis', - 'yAxis' - ]; - for (var i = 0, l = key.length; i < l; i++) { - var target = this._originalData[key[i]]; - for (var idx in target) { - var data = target[idx]; - if (data == null) { - continue; - } - var length = data.length; - var start = Math.floor(this._zoom.start / 100 * length); - var end = Math.ceil(this._zoom.end / 100 * length); - end -= end > 0 ? 1 : 0; - return { - start: this.getDataFromOption(data[start]), - end: this.getDataFromOption(data[end]) - }; - } - } - key = this.zoomOption.orient == 'horizontal' ? 'xAxis' : 'yAxis'; - var seriesIndex = this._zoom.seriesIndex[0]; - var axisIndex = this.option.series[seriesIndex][key + 'Index'] || 0; - var axisType = this.option[key][axisIndex].type; - var min = this._zoom.scatterMap[seriesIndex][key.charAt(0)].min; - var max = this._zoom.scatterMap[seriesIndex][key.charAt(0)].max; - var gap = max - min; - if (axisType == 'value') { - return { - start: min + gap * this._zoom.start / 100, - end: min + gap * this._zoom.end / 100 - }; - } else if (axisType == 'time') { - max = min + gap * this._zoom.end / 100; - min = min + gap * this._zoom.start / 100; - var formatter = ecDate.getAutoFormatter(min, max).formatter; - return { - start: ecDate.format(formatter, min), - end: ecDate.format(formatter, max) - }; - } - return { - start: '', - end: '' - }; - }, - __ondrift: function (shape, dx, dy) { - if (this.zoomOption.zoomLock) { - shape = this._fillerShae; - } - var detailSize = shape._type == 'filler' ? this._handleSize : 0; - if (this.zoomOption.orient == 'horizontal') { - if (shape.style.x + dx - detailSize <= this._location.x) { - shape.style.x = this._location.x + detailSize; - } else if (shape.style.x + dx + shape.style.width + detailSize >= this._location.x + this._location.width) { - shape.style.x = this._location.x + this._location.width - shape.style.width - detailSize; - } else { - shape.style.x += dx; - } - } else { - if (shape.style.y + dy - detailSize <= this._location.y) { - shape.style.y = this._location.y + detailSize; - } else if (shape.style.y + dy + shape.style.height + detailSize >= this._location.y + this._location.height) { - shape.style.y = this._location.y + this._location.height - shape.style.height - detailSize; - } else { - shape.style.y += dy; - } - } - if (shape._type == 'filler') { - this._syncHandleShape(); - } else { - this._syncFillerShape(); - } - if (this.zoomOption.realtime) { - this._syncData(); - } - if (this.zoomOption.showDetail) { - var detail = this._getDetail(); - this._startShape.style.text = this._startShape.highlightStyle.text = detail.start; - this._endShape.style.text = this._endShape.highlightStyle.text = detail.end; - this._startShape.style.textPosition = this._startShape.highlightStyle.textPosition; - this._endShape.style.textPosition = this._endShape.highlightStyle.textPosition; - } - return true; - }, - __ondragend: function () { - if (this.zoomOption.showDetail) { - this._startShape.style.text = this._endShape.style.text = '='; - this._startShape.style.textPosition = this._endShape.style.textPosition = 'inside'; - this.zr.modShape(this._startShape.id); - this.zr.modShape(this._endShape.id); - this.zr.refreshNextFrame(); - } - this.isDragend = true; - }, - ondragend: function (param, status) { - if (!this.isDragend || !param.target) { - return; - } - !this.zoomOption.realtime && this._syncData(); - status.dragOut = true; - status.dragIn = true; - if (!this._isSilence && !this.zoomOption.realtime) { - this.messageCenter.dispatch(ecConfig.EVENT.DATA_ZOOM, null, { zoom: this._zoom }, this.myChart); - } - status.needRefresh = false; - this.isDragend = false; - return; - }, - ondataZoom: function (param, status) { - status.needRefresh = true; - return; - }, - absoluteZoom: function (param) { - this._zoom.start = param.start; - this._zoom.end = param.end; - this._zoom.start2 = param.start2; - this._zoom.end2 = param.end2; - this._syncShape(); - this._syncData(true); - return; - }, - rectZoom: function (param) { - if (!param) { - this._zoom.start = this._zoom.start2 = 0; - this._zoom.end = this._zoom.end2 = 100; - this._syncShape(); - this._syncData(true); - return this._zoom; - } - var gridArea = this.component.grid.getArea(); - var rect = { - x: param.x, - y: param.y, - width: param.width, - height: param.height - }; - if (rect.width < 0) { - rect.x += rect.width; - rect.width = -rect.width; - } - if (rect.height < 0) { - rect.y += rect.height; - rect.height = -rect.height; - } - if (rect.x > gridArea.x + gridArea.width || rect.y > gridArea.y + gridArea.height) { - return false; - } - if (rect.x < gridArea.x) { - rect.x = gridArea.x; - } - if (rect.x + rect.width > gridArea.x + gridArea.width) { - rect.width = gridArea.x + gridArea.width - rect.x; - } - if (rect.y + rect.height > gridArea.y + gridArea.height) { - rect.height = gridArea.y + gridArea.height - rect.y; - } - var total; - var sdx = (rect.x - gridArea.x) / gridArea.width; - var edx = 1 - (rect.x + rect.width - gridArea.x) / gridArea.width; - var sdy = 1 - (rect.y + rect.height - gridArea.y) / gridArea.height; - var edy = (rect.y - gridArea.y) / gridArea.height; - if (this.zoomOption.orient == 'horizontal') { - total = this._zoom.end - this._zoom.start; - this._zoom.start += total * sdx; - this._zoom.end -= total * edx; - total = this._zoom.end2 - this._zoom.start2; - this._zoom.start2 += total * sdy; - this._zoom.end2 -= total * edy; - } else { - total = this._zoom.end - this._zoom.start; - this._zoom.start += total * sdy; - this._zoom.end -= total * edy; - total = this._zoom.end2 - this._zoom.start2; - this._zoom.start2 += total * sdx; - this._zoom.end2 -= total * edx; - } - this._syncShape(); - this._syncData(true); - return this._zoom; - }, - syncBackupData: function (curOption) { - var start; - var target = this._originalData['series']; - var curSeries = curOption.series; - var curData; - for (var i = 0, l = curSeries.length; i < l; i++) { - curData = curSeries[i].data || curSeries[i].eventList; - if (target[i]) { - start = Math.floor(this._zoom.start / 100 * target[i].length); - } else { - start = 0; - } - for (var j = 0, k = curData.length; j < k; j++) { - if (target[i]) { - target[i][j + start] = curData[j]; - } - } - } - }, - syncOption: function (magicOption) { - this.silence(true); - this.option = magicOption; - this.option.dataZoom = this.reformOption(this.option.dataZoom); - this.zoomOption = this.option.dataZoom; - if (!this.myChart.canvasSupported) { - this.zoomOption.realtime = false; - } - this.clear(); - this._location = this._getLocation(); - this._zoom = this._getZoom(); - this._backupData(); - if (this.option.dataZoom && this.option.dataZoom.show) { - this._buildShape(); - } - this._syncData(); - this.silence(false); - }, - silence: function (s) { - this._isSilence = s; - }, - getRealDataIndex: function (sIdx, dIdx) { - if (!this._originalData || this._zoom.start === 0 && this._zoom.end == 100) { - return dIdx; - } - var sreies = this._originalData.series; - if (sreies[sIdx]) { - return Math.floor(this._zoom.start / 100 * sreies[sIdx].length) + dIdx; - } - return -1; - }, - resize: function () { - this.clear(); - this._location = this._getLocation(); - this._zoom = this._getZoom(); - if (this.option.dataZoom.show) { - this._buildShape(); - } - } - }; - zrUtil.inherits(DataZoom, Base); - require('../component').define('dataZoom', DataZoom); - return DataZoom; -});define('echarts/component/categoryAxis', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Line', - 'zrender/shape/Rectangle', - '../config', - 'zrender/tool/util', - 'zrender/tool/area', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var RectangleShape = require('zrender/shape/Rectangle'); - var ecConfig = require('../config'); - ecConfig.categoryAxis = { - zlevel: 0, - z: 0, - show: true, - position: 'bottom', - name: '', - nameLocation: 'end', - nameTextStyle: {}, - boundaryGap: true, - axisLine: { - show: true, - onZero: true, - lineStyle: { - color: '#48b', - width: 2, - type: 'solid' - } - }, - axisTick: { - show: true, - interval: 'auto', - inside: false, - length: 5, - lineStyle: { - color: '#333', - width: 1 - } - }, - axisLabel: { - show: true, - interval: 'auto', - rotate: 0, - margin: 8, - textStyle: { color: '#333' } - }, - splitLine: { - show: true, - lineStyle: { - color: ['#ccc'], - width: 1, - type: 'solid' - } - }, - splitArea: { - show: false, - areaStyle: { - color: [ - 'rgba(250,250,250,0.3)', - 'rgba(200,200,200,0.3)' - ] - } - } - }; - var zrUtil = require('zrender/tool/util'); - var zrArea = require('zrender/tool/area'); - function CategoryAxis(ecTheme, messageCenter, zr, option, myChart, axisBase) { - if (option.data.length < 1) { - console.error('option.data.length < 1.'); - return; - } - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.grid = this.component.grid; - for (var method in axisBase) { - this[method] = axisBase[method]; - } - this.refresh(option); - } - CategoryAxis.prototype = { - type: ecConfig.COMPONENT_TYPE_AXIS_CATEGORY, - _getReformedLabel: function (idx) { - var data = this.getDataFromOption(this.option.data[idx]); - var formatter = this.option.data[idx].formatter || this.option.axisLabel.formatter; - if (formatter) { - if (typeof formatter == 'function') { - data = formatter.call(this.myChart, data); - } else if (typeof formatter == 'string') { - data = formatter.replace('{value}', data); - } - } - return data; - }, - _getInterval: function () { - var interval = this.option.axisLabel.interval; - if (interval == 'auto') { - var fontSize = this.option.axisLabel.textStyle.fontSize; - var data = this.option.data; - var dataLength = this.option.data.length; - if (this.isHorizontal()) { - if (dataLength > 3) { - var gap = this.getGap(); - var isEnough = false; - var labelSpace; - var labelSize; - var step = Math.floor(0.5 / gap); - step = step < 1 ? 1 : step; - interval = Math.floor(15 / gap); - while (!isEnough && interval < dataLength) { - interval += step; - isEnough = true; - labelSpace = Math.floor(gap * interval); - for (var i = Math.floor((dataLength - 1) / interval) * interval; i >= 0; i -= interval) { - if (this.option.axisLabel.rotate !== 0) { - labelSize = fontSize; - } else if (data[i].textStyle) { - labelSize = zrArea.getTextWidth(this._getReformedLabel(i), this.getFont(zrUtil.merge(data[i].textStyle, this.option.axisLabel.textStyle))); - } else { - var label = this._getReformedLabel(i) + ''; - var wLen = (label.match(/\w/g) || '').length; - var oLen = label.length - wLen; - labelSize = wLen * fontSize * 2 / 3 + oLen * fontSize; - } - if (labelSpace < labelSize) { - isEnough = false; - break; - } - } - } - } else { - interval = 1; - } - } else { - if (dataLength > 3) { - var gap = this.getGap(); - interval = Math.floor(11 / gap); - while (gap * interval - 6 < fontSize && interval < dataLength) { - interval++; - } - } else { - interval = 1; - } - } - } else { - interval = typeof interval == 'function' ? 1 : interval - 0 + 1; - } - return interval; - }, - _buildShape: function () { - this._interval = this._getInterval(); - if (!this.option.show) { - return; - } - this.option.splitArea.show && this._buildSplitArea(); - this.option.splitLine.show && this._buildSplitLine(); - this.option.axisLine.show && this._buildAxisLine(); - this.option.axisTick.show && this._buildAxisTick(); - this.option.axisLabel.show && this._buildAxisLabel(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _buildAxisTick: function () { - var axShape; - var data = this.option.data; - var dataLength = this.option.data.length; - var tickOption = this.option.axisTick; - var length = tickOption.length; - var color = tickOption.lineStyle.color; - var lineWidth = tickOption.lineStyle.width; - var intervalFunction = typeof tickOption.interval == 'function' ? tickOption.interval : tickOption.interval == 'auto' ? typeof this.option.axisLabel.interval == 'function' ? this.option.axisLabel.interval : false : false; - var interval = intervalFunction ? 1 : tickOption.interval == 'auto' ? this._interval : tickOption.interval - 0 + 1; - var onGap = tickOption.onGap; - var optGap = onGap ? this.getGap() / 2 : typeof onGap == 'undefined' ? this.option.boundaryGap ? this.getGap() / 2 : 0 : 0; - var startIndex = optGap > 0 ? -interval : 0; - if (this.isHorizontal()) { - var yPosition = this.option.position == 'bottom' ? tickOption.inside ? this.grid.getYend() - length - 1 : this.grid.getYend() + 1 : tickOption.inside ? this.grid.getY() + 1 : this.grid.getY() - length - 1; - var x; - for (var i = startIndex; i < dataLength; i += interval) { - if (intervalFunction && !intervalFunction(i, data[i])) { - continue; - } - x = this.subPixelOptimize(this.getCoordByIndex(i) + (i >= 0 ? optGap : 0), lineWidth); - axShape = { - _axisShape: 'axisTick', - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: x, - yStart: yPosition, - xEnd: x, - yEnd: yPosition + length, - strokeColor: color, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } else { - var xPosition = this.option.position == 'left' ? tickOption.inside ? this.grid.getX() + 1 : this.grid.getX() - length - 1 : tickOption.inside ? this.grid.getXend() - length - 1 : this.grid.getXend() + 1; - var y; - for (var i = startIndex; i < dataLength; i += interval) { - if (intervalFunction && !intervalFunction(i, data[i])) { - continue; - } - y = this.subPixelOptimize(this.getCoordByIndex(i) - (i >= 0 ? optGap : 0), lineWidth); - axShape = { - _axisShape: 'axisTick', - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: xPosition, - yStart: y, - xEnd: xPosition + length, - yEnd: y, - strokeColor: color, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } - }, - _buildAxisLabel: function () { - var axShape; - var data = this.option.data; - var dataLength = this.option.data.length; - var labelOption = this.option.axisLabel; - var rotate = labelOption.rotate; - var margin = labelOption.margin; - var clickable = labelOption.clickable; - var textStyle = labelOption.textStyle; - var intervalFunction = typeof labelOption.interval == 'function' ? labelOption.interval : false; - var dataTextStyle; - if (this.isHorizontal()) { - var yPosition; - var baseLine; - if (this.option.position == 'bottom') { - yPosition = this.grid.getYend() + margin; - baseLine = 'top'; - } else { - yPosition = this.grid.getY() - margin; - baseLine = 'bottom'; - } - for (var i = 0; i < dataLength; i += this._interval) { - if (intervalFunction && !intervalFunction(i, data[i]) || this._getReformedLabel(i) === '') { - continue; - } - dataTextStyle = zrUtil.merge(data[i].textStyle || {}, textStyle); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 3, - hoverable: false, - style: { - x: this.getCoordByIndex(i), - y: yPosition, - color: dataTextStyle.color, - text: this._getReformedLabel(i), - textFont: this.getFont(dataTextStyle), - textAlign: dataTextStyle.align || 'center', - textBaseline: dataTextStyle.baseline || baseLine - } - }; - if (rotate) { - axShape.style.textAlign = rotate > 0 ? this.option.position == 'bottom' ? 'right' : 'left' : this.option.position == 'bottom' ? 'left' : 'right'; - axShape.rotation = [ - rotate * Math.PI / 180, - axShape.style.x, - axShape.style.y - ]; - } - this.shapeList.push(new TextShape(this._axisLabelClickable(clickable, axShape))); - } - } else { - var xPosition; - var align; - if (this.option.position == 'left') { - xPosition = this.grid.getX() - margin; - align = 'right'; - } else { - xPosition = this.grid.getXend() + margin; - align = 'left'; - } - for (var i = 0; i < dataLength; i += this._interval) { - if (intervalFunction && !intervalFunction(i, data[i]) || this._getReformedLabel(i) === '') { - continue; - } - dataTextStyle = zrUtil.merge(data[i].textStyle || {}, textStyle); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 3, - hoverable: false, - style: { - x: xPosition, - y: this.getCoordByIndex(i), - color: dataTextStyle.color, - text: this._getReformedLabel(i), - textFont: this.getFont(dataTextStyle), - textAlign: dataTextStyle.align || align, - textBaseline: dataTextStyle.baseline || i === 0 && this.option.name !== '' ? 'bottom' : i == dataLength - 1 && this.option.name !== '' ? 'top' : 'middle' - } - }; - if (rotate) { - axShape.rotation = [ - rotate * Math.PI / 180, - axShape.style.x, - axShape.style.y - ]; - } - this.shapeList.push(new TextShape(this._axisLabelClickable(clickable, axShape))); - } - } - }, - _buildSplitLine: function () { - var axShape; - var data = this.option.data; - var dataLength = this.option.data.length; - var sLineOption = this.option.splitLine; - var lineType = sLineOption.lineStyle.type; - var lineWidth = sLineOption.lineStyle.width; - var color = sLineOption.lineStyle.color; - color = color instanceof Array ? color : [color]; - var colorLength = color.length; - var intervalFunction = typeof this.option.axisLabel.interval == 'function' ? this.option.axisLabel.interval : false; - var onGap = sLineOption.onGap; - var optGap = onGap ? this.getGap() / 2 : typeof onGap == 'undefined' ? this.option.boundaryGap ? this.getGap() / 2 : 0 : 0; - dataLength -= onGap || typeof onGap == 'undefined' && this.option.boundaryGap ? 1 : 0; - if (this.isHorizontal()) { - var sy = this.grid.getY(); - var ey = this.grid.getYend(); - var x; - for (var i = 0; i < dataLength; i += this._interval) { - if (intervalFunction && !intervalFunction(i, data[i])) { - continue; - } - x = this.subPixelOptimize(this.getCoordByIndex(i) + optGap, lineWidth); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: x, - yStart: sy, - xEnd: x, - yEnd: ey, - strokeColor: color[i / this._interval % colorLength], - lineType: lineType, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } else { - var sx = this.grid.getX(); - var ex = this.grid.getXend(); - var y; - for (var i = 0; i < dataLength; i += this._interval) { - if (intervalFunction && !intervalFunction(i, data[i])) { - continue; - } - y = this.subPixelOptimize(this.getCoordByIndex(i) - optGap, lineWidth); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: sx, - yStart: y, - xEnd: ex, - yEnd: y, - strokeColor: color[i / this._interval % colorLength], - lineType: lineType, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } - }, - _buildSplitArea: function () { - var axShape; - var data = this.option.data; - var sAreaOption = this.option.splitArea; - var color = sAreaOption.areaStyle.color; - if (!(color instanceof Array)) { - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this.grid.getX(), - y: this.grid.getY(), - width: this.grid.getWidth(), - height: this.grid.getHeight(), - color: color - } - }; - this.shapeList.push(new RectangleShape(axShape)); - } else { - var colorLength = color.length; - var dataLength = this.option.data.length; - var intervalFunction = typeof this.option.axisLabel.interval == 'function' ? this.option.axisLabel.interval : false; - var onGap = sAreaOption.onGap; - var optGap = onGap ? this.getGap() / 2 : typeof onGap == 'undefined' ? this.option.boundaryGap ? this.getGap() / 2 : 0 : 0; - if (this.isHorizontal()) { - var y = this.grid.getY(); - var height = this.grid.getHeight(); - var lastX = this.grid.getX(); - var curX; - for (var i = 0; i <= dataLength; i += this._interval) { - if (intervalFunction && !intervalFunction(i, data[i]) && i < dataLength) { - continue; - } - curX = i < dataLength ? this.getCoordByIndex(i) + optGap : this.grid.getXend(); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: lastX, - y: y, - width: curX - lastX, - height: height, - color: color[i / this._interval % colorLength] - } - }; - this.shapeList.push(new RectangleShape(axShape)); - lastX = curX; - } - } else { - var x = this.grid.getX(); - var width = this.grid.getWidth(); - var lastYend = this.grid.getYend(); - var curY; - for (var i = 0; i <= dataLength; i += this._interval) { - if (intervalFunction && !intervalFunction(i, data[i]) && i < dataLength) { - continue; - } - curY = i < dataLength ? this.getCoordByIndex(i) - optGap : this.grid.getY(); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: x, - y: curY, - width: width, - height: lastYend - curY, - color: color[i / this._interval % colorLength] - } - }; - this.shapeList.push(new RectangleShape(axShape)); - lastYend = curY; - } - } - } - }, - refresh: function (newOption) { - if (newOption) { - this.option = this.reformOption(newOption); - this.option.axisLabel.textStyle = this.getTextStyle(this.option.axisLabel.textStyle); - } - this.clear(); - this._buildShape(); - }, - getGap: function () { - var dataLength = this.option.data.length; - var total = this.isHorizontal() ? this.grid.getWidth() : this.grid.getHeight(); - if (this.option.boundaryGap) { - return total / dataLength; - } else { - return total / (dataLength > 1 ? dataLength - 1 : 1); - } - }, - getCoord: function (value) { - var data = this.option.data; - var dataLength = data.length; - var gap = this.getGap(); - var position = this.option.boundaryGap ? gap / 2 : 0; - for (var i = 0; i < dataLength; i++) { - if (this.getDataFromOption(data[i]) == value) { - if (this.isHorizontal()) { - position = this.grid.getX() + position; - } else { - position = this.grid.getYend() - position; - } - return position; - } - position += gap; - } - }, - getCoordByIndex: function (dataIndex) { - if (dataIndex < 0) { - if (this.isHorizontal()) { - return this.grid.getX(); - } else { - return this.grid.getYend(); - } - } else if (dataIndex > this.option.data.length - 1) { - if (this.isHorizontal()) { - return this.grid.getXend(); - } else { - return this.grid.getY(); - } - } else { - var gap = this.getGap(); - var position = this.option.boundaryGap ? gap / 2 : 0; - position += dataIndex * gap; - if (this.isHorizontal()) { - position = this.grid.getX() + position; - } else { - position = this.grid.getYend() - position; - } - return position; - } - }, - getNameByIndex: function (dataIndex) { - return this.getDataFromOption(this.option.data[dataIndex]); - }, - getIndexByName: function (name) { - var data = this.option.data; - var dataLength = data.length; - for (var i = 0; i < dataLength; i++) { - if (this.getDataFromOption(data[i]) == name) { - return i; - } - } - return -1; - }, - getValueFromCoord: function () { - return ''; - }, - isMainAxis: function (dataIndex) { - return dataIndex % this._interval === 0; - } - }; - zrUtil.inherits(CategoryAxis, Base); - require('../component').define('categoryAxis', CategoryAxis); - return CategoryAxis; -});define('echarts/component/valueAxis', [ - 'require', - './base', - 'zrender/shape/Text', - 'zrender/shape/Line', - 'zrender/shape/Rectangle', - '../config', - '../util/date', - 'zrender/tool/util', - '../util/smartSteps', - '../util/accMath', - '../util/smartLogSteps', - '../component' -], function (require) { - var Base = require('./base'); - var TextShape = require('zrender/shape/Text'); - var LineShape = require('zrender/shape/Line'); - var RectangleShape = require('zrender/shape/Rectangle'); - var ecConfig = require('../config'); - ecConfig.valueAxis = { - zlevel: 0, - z: 0, - show: true, - position: 'left', - name: '', - nameLocation: 'end', - nameTextStyle: {}, - boundaryGap: [ - 0, - 0 - ], - axisLine: { - show: true, - onZero: true, - lineStyle: { - color: '#48b', - width: 2, - type: 'solid' - } - }, - axisTick: { - show: false, - inside: false, - length: 5, - lineStyle: { - color: '#333', - width: 1 - } - }, - axisLabel: { - show: true, - rotate: 0, - margin: 8, - textStyle: { color: '#333' } - }, - splitLine: { - show: true, - lineStyle: { - color: ['#ccc'], - width: 1, - type: 'solid' - } - }, - splitArea: { - show: false, - areaStyle: { - color: [ - 'rgba(250,250,250,0.3)', - 'rgba(200,200,200,0.3)' - ] - } - } - }; - var ecDate = require('../util/date'); - var zrUtil = require('zrender/tool/util'); - function ValueAxis(ecTheme, messageCenter, zr, option, myChart, axisBase, series) { - if (!series || series.length === 0) { - console.err('option.series.length == 0.'); - return; - } - Base.call(this, ecTheme, messageCenter, zr, option, myChart); - this.series = series; - this.grid = this.component.grid; - for (var method in axisBase) { - this[method] = axisBase[method]; - } - this.refresh(option, series); - } - ValueAxis.prototype = { - type: ecConfig.COMPONENT_TYPE_AXIS_VALUE, - _buildShape: function () { - this._hasData = false; - this._calculateValue(); - if (!this._hasData || !this.option.show) { - return; - } - this.option.splitArea.show && this._buildSplitArea(); - this.option.splitLine.show && this._buildSplitLine(); - this.option.axisLine.show && this._buildAxisLine(); - this.option.axisTick.show && this._buildAxisTick(); - this.option.axisLabel.show && this._buildAxisLabel(); - for (var i = 0, l = this.shapeList.length; i < l; i++) { - this.zr.addShape(this.shapeList[i]); - } - }, - _buildAxisTick: function () { - var axShape; - var data = this._valueList; - var dataLength = this._valueList.length; - var tickOption = this.option.axisTick; - var length = tickOption.length; - var color = tickOption.lineStyle.color; - var lineWidth = tickOption.lineStyle.width; - if (this.isHorizontal()) { - var yPosition = this.option.position === 'bottom' ? tickOption.inside ? this.grid.getYend() - length - 1 : this.grid.getYend() + 1 : tickOption.inside ? this.grid.getY() + 1 : this.grid.getY() - length - 1; - var x; - for (var i = 0; i < dataLength; i++) { - x = this.subPixelOptimize(this.getCoord(data[i]), lineWidth); - axShape = { - _axisShape: 'axisTick', - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: x, - yStart: yPosition, - xEnd: x, - yEnd: yPosition + length, - strokeColor: color, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } else { - var xPosition = this.option.position === 'left' ? tickOption.inside ? this.grid.getX() + 1 : this.grid.getX() - length - 1 : tickOption.inside ? this.grid.getXend() - length - 1 : this.grid.getXend() + 1; - var y; - for (var i = 0; i < dataLength; i++) { - y = this.subPixelOptimize(this.getCoord(data[i]), lineWidth); - axShape = { - _axisShape: 'axisTick', - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: xPosition, - yStart: y, - xEnd: xPosition + length, - yEnd: y, - strokeColor: color, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } - }, - _buildAxisLabel: function () { - var axShape; - var data = this._valueList; - var dataLength = this._valueList.length; - var rotate = this.option.axisLabel.rotate; - var margin = this.option.axisLabel.margin; - var clickable = this.option.axisLabel.clickable; - var textStyle = this.option.axisLabel.textStyle; - if (this.isHorizontal()) { - var yPosition; - var baseLine; - if (this.option.position === 'bottom') { - yPosition = this.grid.getYend() + margin; - baseLine = 'top'; - } else { - yPosition = this.grid.getY() - margin; - baseLine = 'bottom'; - } - for (var i = 0; i < dataLength; i++) { - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 3, - hoverable: false, - style: { - x: this.getCoord(data[i]), - y: yPosition, - color: typeof textStyle.color === 'function' ? textStyle.color(data[i]) : textStyle.color, - text: this._valueLabel[i], - textFont: this.getFont(textStyle), - textAlign: textStyle.align || 'center', - textBaseline: textStyle.baseline || baseLine - } - }; - if (rotate) { - axShape.style.textAlign = rotate > 0 ? this.option.position === 'bottom' ? 'right' : 'left' : this.option.position === 'bottom' ? 'left' : 'right'; - axShape.rotation = [ - rotate * Math.PI / 180, - axShape.style.x, - axShape.style.y - ]; - } - this.shapeList.push(new TextShape(this._axisLabelClickable(clickable, axShape))); - } - } else { - var xPosition; - var align; - if (this.option.position === 'left') { - xPosition = this.grid.getX() - margin; - align = 'right'; - } else { - xPosition = this.grid.getXend() + margin; - align = 'left'; - } - for (var i = 0; i < dataLength; i++) { - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase() + 3, - hoverable: false, - style: { - x: xPosition, - y: this.getCoord(data[i]), - color: typeof textStyle.color === 'function' ? textStyle.color(data[i]) : textStyle.color, - text: this._valueLabel[i], - textFont: this.getFont(textStyle), - textAlign: textStyle.align || align, - textBaseline: textStyle.baseline || (i === 0 && this.option.name !== '' ? 'bottom' : i === dataLength - 1 && this.option.name !== '' ? 'top' : 'middle') - } - }; - if (rotate) { - axShape.rotation = [ - rotate * Math.PI / 180, - axShape.style.x, - axShape.style.y - ]; - } - this.shapeList.push(new TextShape(this._axisLabelClickable(clickable, axShape))); - } - } - }, - _buildSplitLine: function () { - var axShape; - var data = this._valueList; - var dataLength = this._valueList.length; - var sLineOption = this.option.splitLine; - var lineType = sLineOption.lineStyle.type; - var lineWidth = sLineOption.lineStyle.width; - var color = sLineOption.lineStyle.color; - color = color instanceof Array ? color : [color]; - var colorLength = color.length; - if (this.isHorizontal()) { - var sy = this.grid.getY(); - var ey = this.grid.getYend(); - var x; - for (var i = 0; i < dataLength; i++) { - x = this.subPixelOptimize(this.getCoord(data[i]), lineWidth); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: x, - yStart: sy, - xEnd: x, - yEnd: ey, - strokeColor: color[i % colorLength], - lineType: lineType, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } else { - var sx = this.grid.getX(); - var ex = this.grid.getXend(); - var y; - for (var i = 0; i < dataLength; i++) { - y = this.subPixelOptimize(this.getCoord(data[i]), lineWidth); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - xStart: sx, - yStart: y, - xEnd: ex, - yEnd: y, - strokeColor: color[i % colorLength], - lineType: lineType, - lineWidth: lineWidth - } - }; - this.shapeList.push(new LineShape(axShape)); - } - } - }, - _buildSplitArea: function () { - var axShape; - var color = this.option.splitArea.areaStyle.color; - if (!(color instanceof Array)) { - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: this.grid.getX(), - y: this.grid.getY(), - width: this.grid.getWidth(), - height: this.grid.getHeight(), - color: color - } - }; - this.shapeList.push(new RectangleShape(axShape)); - } else { - var colorLength = color.length; - var data = this._valueList; - var dataLength = this._valueList.length; - if (this.isHorizontal()) { - var y = this.grid.getY(); - var height = this.grid.getHeight(); - var lastX = this.grid.getX(); - var curX; - for (var i = 0; i <= dataLength; i++) { - curX = i < dataLength ? this.getCoord(data[i]) : this.grid.getXend(); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: lastX, - y: y, - width: curX - lastX, - height: height, - color: color[i % colorLength] - } - }; - this.shapeList.push(new RectangleShape(axShape)); - lastX = curX; - } - } else { - var x = this.grid.getX(); - var width = this.grid.getWidth(); - var lastYend = this.grid.getYend(); - var curY; - for (var i = 0; i <= dataLength; i++) { - curY = i < dataLength ? this.getCoord(data[i]) : this.grid.getY(); - axShape = { - zlevel: this.getZlevelBase(), - z: this.getZBase(), - hoverable: false, - style: { - x: x, - y: curY, - width: width, - height: lastYend - curY, - color: color[i % colorLength] - } - }; - this.shapeList.push(new RectangleShape(axShape)); - lastYend = curY; - } - } - } - }, - _calculateValue: function () { - if (isNaN(this.option.min - 0) || isNaN(this.option.max - 0)) { - var data = {}; - var xIdx; - var yIdx; - var legend = this.component.legend; - for (var i = 0, l = this.series.length; i < l; i++) { - if (this.series[i].type != ecConfig.CHART_TYPE_LINE && this.series[i].type != ecConfig.CHART_TYPE_BAR && this.series[i].type != ecConfig.CHART_TYPE_SCATTER && this.series[i].type != ecConfig.CHART_TYPE_K && this.series[i].type != ecConfig.CHART_TYPE_EVENTRIVER) { - continue; - } - if (legend && !legend.isSelected(this.series[i].name)) { - continue; - } - xIdx = this.series[i].xAxisIndex || 0; - yIdx = this.series[i].yAxisIndex || 0; - if (this.option.xAxisIndex != xIdx && this.option.yAxisIndex != yIdx) { - continue; - } - this._calculSum(data, i); - } - var oriData; - for (var i in data) { - oriData = data[i]; - for (var j = 0, k = oriData.length; j < k; j++) { - if (!isNaN(oriData[j])) { - this._hasData = true; - this._min = oriData[j]; - this._max = oriData[j]; - break; - } - } - if (this._hasData) { - break; - } - } - for (var i in data) { - oriData = data[i]; - for (var j = 0, k = oriData.length; j < k; j++) { - if (!isNaN(oriData[j])) { - this._min = Math.min(this._min, oriData[j]); - this._max = Math.max(this._max, oriData[j]); - } - } - } - var boundaryGap = this.option.type !== 'log' ? this.option.boundaryGap : [ - 0, - 0 - ]; - var gap = Math.abs(this._max - this._min); - this._min = isNaN(this.option.min - 0) ? this._min - Math.abs(gap * boundaryGap[0]) : this.option.min - 0; - this._max = isNaN(this.option.max - 0) ? this._max + Math.abs(gap * boundaryGap[1]) : this.option.max - 0; - if (this._min === this._max) { - if (this._max === 0) { - this._max = 1; - } else if (this._max > 0) { - this._min = this._max / this.option.splitNumber != null ? this.option.splitNumber : 5; - } else { - this._max = this._max / this.option.splitNumber != null ? this.option.splitNumber : 5; - } - } - if (this.option.type === 'time') { - this._reformTimeValue(); - } else if (this.option.type === 'log') { - this._reformLogValue(); - } else { - this._reformValue(this.option.scale); - } - } else { - this._hasData = true; - this._min = this.option.min - 0; - this._max = this.option.max - 0; - if (this.option.type === 'time') { - this._reformTimeValue(); - } else if (this.option.type === 'log') { - this._reformLogValue(); - } else { - this._customerValue(); - } - } - }, - _calculSum: function (data, i) { - var key = this.series[i].name || 'kener'; - var value; - var oriData; - if (!this.series[i].stack) { - data[key] = data[key] || []; - if (this.series[i].type != ecConfig.CHART_TYPE_EVENTRIVER) { - oriData = this.series[i].data; - for (var j = 0, k = oriData.length; j < k; j++) { - value = this.getDataFromOption(oriData[j]); - if (this.series[i].type === ecConfig.CHART_TYPE_K) { - data[key].push(value[0]); - data[key].push(value[1]); - data[key].push(value[2]); - data[key].push(value[3]); - } else if (value instanceof Array) { - if (this.option.xAxisIndex != -1) { - data[key].push(this.option.type != 'time' ? value[0] : ecDate.getNewDate(value[0])); - } - if (this.option.yAxisIndex != -1) { - data[key].push(this.option.type != 'time' ? value[1] : ecDate.getNewDate(value[1])); - } - } else { - data[key].push(value); - } - } - } else { - oriData = this.series[i].data; - for (var j = 0, k = oriData.length; j < k; j++) { - var evolution = oriData[j].evolution; - for (var m = 0, n = evolution.length; m < n; m++) { - data[key].push(ecDate.getNewDate(evolution[m].time)); - } - } - } - } else { - var keyP = '__Magic_Key_Positive__' + this.series[i].stack; - var keyN = '__Magic_Key_Negative__' + this.series[i].stack; - data[keyP] = data[keyP] || []; - data[keyN] = data[keyN] || []; - data[key] = data[key] || []; - oriData = this.series[i].data; - for (var j = 0, k = oriData.length; j < k; j++) { - value = this.getDataFromOption(oriData[j]); - if (value === '-') { - continue; - } - value = value - 0; - if (value >= 0) { - if (data[keyP][j] != null) { - data[keyP][j] += value; - } else { - data[keyP][j] = value; - } - } else { - if (data[keyN][j] != null) { - data[keyN][j] += value; - } else { - data[keyN][j] = value; - } - } - if (this.option.scale) { - data[key].push(value); - } - } - } - }, - _reformValue: function (scale) { - var smartSteps = require('../util/smartSteps'); - var splitNumber = this.option.splitNumber; - if (!scale && this._min >= 0 && this._max >= 0) { - this._min = 0; - } - if (!scale && this._min <= 0 && this._max <= 0) { - this._max = 0; - } - var stepOpt = smartSteps(this._min, this._max, splitNumber); - splitNumber = splitNumber != null ? splitNumber : stepOpt.secs; - this._min = stepOpt.min; - this._max = stepOpt.max; - this._valueList = stepOpt.pnts; - this._reformLabelData(); - }, - _reformTimeValue: function () { - var splitNumber = this.option.splitNumber != null ? this.option.splitNumber : 5; - var curValue = ecDate.getAutoFormatter(this._min, this._max, splitNumber); - var formatter = curValue.formatter; - var gapValue = curValue.gapValue; - this._valueList = [ecDate.getNewDate(this._min)]; - var startGap; - switch (formatter) { - case 'week': - startGap = ecDate.nextMonday(this._min); - break; - case 'month': - startGap = ecDate.nextNthOnMonth(this._min, 1); - break; - case 'quarter': - startGap = ecDate.nextNthOnQuarterYear(this._min, 1); - break; - case 'half-year': - startGap = ecDate.nextNthOnHalfYear(this._min, 1); - break; - case 'year': - startGap = ecDate.nextNthOnYear(this._min, 1); - break; - default: - if (gapValue <= 3600000 * 2) { - startGap = (Math.floor(this._min / gapValue) + 1) * gapValue; - } else { - startGap = ecDate.getNewDate(this._min - -gapValue); - startGap.setHours(Math.round(startGap.getHours() / 6) * 6); - startGap.setMinutes(0); - startGap.setSeconds(0); - } - break; - } - if (startGap - this._min < gapValue / 2) { - startGap -= -gapValue; - } - curValue = ecDate.getNewDate(startGap); - splitNumber *= 1.5; - while (splitNumber-- >= 0) { - if (formatter == 'month' || formatter == 'quarter' || formatter == 'half-year' || formatter == 'year') { - curValue.setDate(1); - } - if (this._max - curValue < gapValue / 2) { - break; - } - this._valueList.push(curValue); - curValue = ecDate.getNewDate(curValue - -gapValue); - } - this._valueList.push(ecDate.getNewDate(this._max)); - this._reformLabelData(function (formatterStr) { - return function (value) { - return ecDate.format(formatterStr, value); - }; - }(formatter)); - }, - _customerValue: function () { - var accMath = require('../util/accMath'); - var splitNumber = this.option.splitNumber != null ? this.option.splitNumber : 5; - var splitGap = (this._max - this._min) / splitNumber; - this._valueList = []; - for (var i = 0; i <= splitNumber; i++) { - this._valueList.push(accMath.accAdd(this._min, accMath.accMul(splitGap, i))); - } - this._reformLabelData(); - }, - _reformLogValue: function () { - var thisOption = this.option; - var result = require('../util/smartLogSteps')({ - dataMin: this._min, - dataMax: this._max, - logPositive: thisOption.logPositive, - logLabelBase: thisOption.logLabelBase, - splitNumber: thisOption.splitNumber - }); - this._min = result.dataMin; - this._max = result.dataMax; - this._valueList = result.tickList; - this._dataMappingMethods = result.dataMappingMethods; - this._reformLabelData(result.labelFormatter); - }, - _reformLabelData: function (innerFormatter) { - this._valueLabel = []; - var formatter = this.option.axisLabel.formatter; - if (formatter) { - for (var i = 0, l = this._valueList.length; i < l; i++) { - if (typeof formatter === 'function') { - this._valueLabel.push(innerFormatter ? formatter.call(this.myChart, this._valueList[i], innerFormatter) : formatter.call(this.myChart, this._valueList[i])); - } else if (typeof formatter === 'string') { - this._valueLabel.push(innerFormatter ? ecDate.format(formatter, this._valueList[i]) : formatter.replace('{value}', this._valueList[i])); - } - } - } else { - for (var i = 0, l = this._valueList.length; i < l; i++) { - this._valueLabel.push(innerFormatter ? innerFormatter(this._valueList[i]) : this.numAddCommas(this._valueList[i])); - } - } - }, - getExtremum: function () { - this._calculateValue(); - var dataMappingMethods = this._dataMappingMethods; - return { - min: this._min, - max: this._max, - dataMappingMethods: dataMappingMethods ? zrUtil.merge({}, dataMappingMethods) : null - }; - }, - refresh: function (newOption, newSeries) { - if (newOption) { - this.option = this.reformOption(newOption); - this.option.axisLabel.textStyle = zrUtil.merge(this.option.axisLabel.textStyle || {}, this.ecTheme.textStyle); - this.series = newSeries; - } - if (this.zr) { - this.clear(); - this._buildShape(); - } - }, - getCoord: function (value) { - if (this._dataMappingMethods) { - value = this._dataMappingMethods.value2Coord(value); - } - value = value < this._min ? this._min : value; - value = value > this._max ? this._max : value; - var result; - if (!this.isHorizontal()) { - result = this.grid.getYend() - (value - this._min) / (this._max - this._min) * this.grid.getHeight(); - } else { - result = this.grid.getX() + (value - this._min) / (this._max - this._min) * this.grid.getWidth(); - } - return result; - }, - getCoordSize: function (value) { - if (!this.isHorizontal()) { - return Math.abs(value / (this._max - this._min) * this.grid.getHeight()); - } else { - return Math.abs(value / (this._max - this._min) * this.grid.getWidth()); - } - }, - getValueFromCoord: function (coord) { - var result; - if (!this.isHorizontal()) { - coord = coord < this.grid.getY() ? this.grid.getY() : coord; - coord = coord > this.grid.getYend() ? this.grid.getYend() : coord; - result = this._max - (coord - this.grid.getY()) / this.grid.getHeight() * (this._max - this._min); - } else { - coord = coord < this.grid.getX() ? this.grid.getX() : coord; - coord = coord > this.grid.getXend() ? this.grid.getXend() : coord; - result = this._min + (coord - this.grid.getX()) / this.grid.getWidth() * (this._max - this._min); - } - if (this._dataMappingMethods) { - result = this._dataMappingMethods.coord2Value(result); - } - return result.toFixed(2) - 0; - }, - isMaindAxis: function (value) { - for (var i = 0, l = this._valueList.length; i < l; i++) { - if (this._valueList[i] === value) { - return true; - } - } - return false; - } - }; - zrUtil.inherits(ValueAxis, Base); - require('../component').define('valueAxis', ValueAxis); - return ValueAxis; -});define('echarts/util/date', [], function () { - var _timeGap = [ - { - formatter: 'hh : mm : ss', - value: 1000 - }, - { - formatter: 'hh : mm : ss', - value: 1000 * 5 - }, - { - formatter: 'hh : mm : ss', - value: 1000 * 10 - }, - { - formatter: 'hh : mm : ss', - value: 1000 * 15 - }, - { - formatter: 'hh : mm : ss', - value: 1000 * 30 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 60000 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 60000 * 5 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 60000 * 10 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 60000 * 15 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 60000 * 30 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 3600000 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 3600000 * 2 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 3600000 * 6 - }, - { - formatter: 'hh : mm\nMM - dd', - value: 3600000 * 12 - }, - { - formatter: 'MM - dd\nyyyy', - value: 3600000 * 24 - }, - { - formatter: 'week', - value: 3600000 * 24 * 7 - }, - { - formatter: 'month', - value: 3600000 * 24 * 31 - }, - { - formatter: 'quarter', - value: 3600000 * 24 * 380 / 4 - }, - { - formatter: 'half-year', - value: 3600000 * 24 * 380 / 2 - }, - { - formatter: 'year', - value: 3600000 * 24 * 380 - } - ]; - function getAutoFormatter(min, max, splitNumber) { - splitNumber = splitNumber > 1 ? splitNumber : 2; - var curValue; - var totalGap; - var formatter; - var gapValue; - for (var i = 0, l = _timeGap.length; i < l; i++) { - curValue = _timeGap[i].value; - totalGap = Math.ceil(max / curValue) * curValue - Math.floor(min / curValue) * curValue; - if (Math.round(totalGap / curValue) <= splitNumber * 1.2) { - formatter = _timeGap[i].formatter; - gapValue = _timeGap[i].value; - break; - } - } - if (formatter == null) { - formatter = 'year'; - curValue = 3600000 * 24 * 367; - totalGap = Math.ceil(max / curValue) * curValue - Math.floor(min / curValue) * curValue; - gapValue = Math.round(totalGap / (splitNumber - 1) / curValue) * curValue; - } - return { - formatter: formatter, - gapValue: gapValue - }; - } - function s2d(v) { - return v < 10 ? '0' + v : v; - } - function format(formatter, value) { - if (formatter == 'week' || formatter == 'month' || formatter == 'quarter' || formatter == 'half-year' || formatter == 'year') { - formatter = 'MM - dd\nyyyy'; - } - var date = getNewDate(value); - var y = date.getFullYear(); - var M = date.getMonth() + 1; - var d = date.getDate(); - var h = date.getHours(); - var m = date.getMinutes(); - var s = date.getSeconds(); - formatter = formatter.replace('MM', s2d(M)); - formatter = formatter.toLowerCase(); - formatter = formatter.replace('yyyy', y); - formatter = formatter.replace('yy', y % 100); - formatter = formatter.replace('dd', s2d(d)); - formatter = formatter.replace('d', d); - formatter = formatter.replace('hh', s2d(h)); - formatter = formatter.replace('h', h); - formatter = formatter.replace('mm', s2d(m)); - formatter = formatter.replace('m', m); - formatter = formatter.replace('ss', s2d(s)); - formatter = formatter.replace('s', s); - return formatter; - } - function nextMonday(value) { - value = getNewDate(value); - value.setDate(value.getDate() + 8 - value.getDay()); - return value; - } - function nextNthPerNmonth(value, nth, nmon) { - value = getNewDate(value); - value.setMonth(Math.ceil((value.getMonth() + 1) / nmon) * nmon); - value.setDate(nth); - return value; - } - function nextNthOnMonth(value, nth) { - return nextNthPerNmonth(value, nth, 1); - } - function nextNthOnQuarterYear(value, nth) { - return nextNthPerNmonth(value, nth, 3); - } - function nextNthOnHalfYear(value, nth) { - return nextNthPerNmonth(value, nth, 6); - } - function nextNthOnYear(value, nth) { - return nextNthPerNmonth(value, nth, 12); - } - function getNewDate(value) { - return value instanceof Date ? value : new Date(typeof value == 'string' ? value.replace(/-/g, '/') : value); - } - return { - getAutoFormatter: getAutoFormatter, - getNewDate: getNewDate, - format: format, - nextMonday: nextMonday, - nextNthPerNmonth: nextNthPerNmonth, - nextNthOnMonth: nextNthOnMonth, - nextNthOnQuarterYear: nextNthOnQuarterYear, - nextNthOnHalfYear: nextNthOnHalfYear, - nextNthOnYear: nextNthOnYear - }; -});define('echarts/util/smartSteps', [], function () { - var mySteps = [ - 10, - 20, - 25, - 50 - ]; - var mySections = [ - 4, - 5, - 6 - ]; - var custOpts; - var custSteps; - var custSecs; - var minLocked; - var maxLocked; - var MT = Math; - var MATH_ROUND = MT.round; - var MATH_FLOOR = MT.floor; - var MATH_CEIL = MT.ceil; - var MATH_ABS = MT.abs; - function MATH_LOG(n) { - return MT.log(MATH_ABS(n)) / MT.LN10; - } - function MATH_POW(n) { - return MT.pow(10, n); - } - function MATH_ISINT(n) { - return n === MATH_FLOOR(n); - } - function smartSteps(min, max, section, opts) { - custOpts = opts || {}; - custSteps = custOpts.steps || mySteps; - custSecs = custOpts.secs || mySections; - section = MATH_ROUND(+section || 0) % 99; - min = +min || 0; - max = +max || 0; - minLocked = maxLocked = 0; - if ('min' in custOpts) { - min = +custOpts.min || 0; - minLocked = 1; - } - if ('max' in custOpts) { - max = +custOpts.max || 0; - maxLocked = 1; - } - if (min > max) { - max = [ - min, - min = max - ][0]; - } - var span = max - min; - if (minLocked && maxLocked) { - return bothLocked(min, max, section); - } - if (span < (section || 5)) { - if (MATH_ISINT(min) && MATH_ISINT(max)) { - return forInteger(min, max, section); - } else if (span === 0) { - return forSpan0(min, max, section); - } - } - return coreCalc(min, max, section); - } - function makeResult(newMin, newMax, section, expon) { - expon = expon || 0; - var expStep = expNum((newMax - newMin) / section, -1); - var expMin = expNum(newMin, -1, 1); - var expMax = expNum(newMax, -1); - var minExp = MT.min(expStep.e, expMin.e, expMax.e); - if (expMin.c === 0) { - minExp = MT.min(expStep.e, expMax.e); - } else if (expMax.c === 0) { - minExp = MT.min(expStep.e, expMin.e); - } - expFixTo(expStep, { - c: 0, - e: minExp - }); - expFixTo(expMin, expStep, 1); - expFixTo(expMax, expStep); - expon += minExp; - newMin = expMin.c; - newMax = expMax.c; - var step = (newMax - newMin) / section; - var zoom = MATH_POW(expon); - var fixTo = 0; - var points = []; - for (var i = section + 1; i--;) { - points[i] = (newMin + step * i) * zoom; - } - if (expon < 0) { - fixTo = decimals(zoom); - step = +(step * zoom).toFixed(fixTo); - newMin = +(newMin * zoom).toFixed(fixTo); - newMax = +(newMax * zoom).toFixed(fixTo); - for (var i = points.length; i--;) { - points[i] = points[i].toFixed(fixTo); - +points[i] === 0 && (points[i] = '0'); - } - } else { - newMin *= zoom; - newMax *= zoom; - step *= zoom; - } - custSecs = 0; - custSteps = 0; - custOpts = 0; - return { - min: newMin, - max: newMax, - secs: section, - step: step, - fix: fixTo, - exp: expon, - pnts: points - }; - } - function expNum(num, digit, byFloor) { - digit = MATH_ROUND(digit % 10) || 2; - if (digit < 0) { - if (MATH_ISINT(num)) { - digit = ('' + MATH_ABS(num)).replace(/0+$/, '').length || 1; - } else { - num = num.toFixed(15).replace(/0+$/, ''); - digit = num.replace('.', '').replace(/^[-0]+/, '').length; - num = +num; - } - } - var expon = MATH_FLOOR(MATH_LOG(num)) - digit + 1; - var cNum = +(num * MATH_POW(-expon)).toFixed(15) || 0; - cNum = byFloor ? MATH_FLOOR(cNum) : MATH_CEIL(cNum); - !cNum && (expon = 0); - if (('' + MATH_ABS(cNum)).length > digit) { - expon += 1; - cNum /= 10; - } - return { - c: cNum, - e: expon - }; - } - function expFixTo(expnum1, expnum2, byFloor) { - var deltaExp = expnum2.e - expnum1.e; - if (deltaExp) { - expnum1.e += deltaExp; - expnum1.c *= MATH_POW(-deltaExp); - expnum1.c = byFloor ? MATH_FLOOR(expnum1.c) : MATH_CEIL(expnum1.c); - } - } - function expFixMin(expnum1, expnum2, byFloor) { - if (expnum1.e < expnum2.e) { - expFixTo(expnum2, expnum1, byFloor); - } else { - expFixTo(expnum1, expnum2, byFloor); - } - } - function getCeil(num, rounds) { - rounds = rounds || mySteps; - num = expNum(num); - var cNum = num.c; - var i = 0; - while (cNum > rounds[i]) { - i++; - } - if (!rounds[i]) { - cNum /= 10; - num.e += 1; - i = 0; - while (cNum > rounds[i]) { - i++; - } - } - num.c = rounds[i]; - return num; - } - function coreCalc(min, max, section) { - var step; - var secs = section || +custSecs.slice(-1); - var expStep = getCeil((max - min) / secs, custSteps); - var expSpan = expNum(max - min); - var expMin = expNum(min, -1, 1); - var expMax = expNum(max, -1); - expFixTo(expSpan, expStep); - expFixTo(expMin, expStep, 1); - expFixTo(expMax, expStep); - if (!section) { - secs = look4sections(expMin, expMax); - } else { - step = look4step(expMin, expMax, secs); - } - if (MATH_ISINT(min) && MATH_ISINT(max) && min * max >= 0) { - if (max - min < secs) { - return forInteger(min, max, secs); - } - secs = tryForInt(min, max, section, expMin, expMax, secs); - } - var arrMM = cross0(min, max, expMin.c, expMax.c); - expMin.c = arrMM[0]; - expMax.c = arrMM[1]; - if (minLocked || maxLocked) { - singleLocked(min, max, expMin, expMax); - } - return makeResult(expMin.c, expMax.c, secs, expMax.e); - } - function look4sections(expMin, expMax) { - var section; - var tmpStep, tmpMin, tmpMax; - var reference = []; - for (var i = custSecs.length; i--;) { - section = custSecs[i]; - tmpStep = getCeil((expMax.c - expMin.c) / section, custSteps); - tmpStep = tmpStep.c * MATH_POW(tmpStep.e); - tmpMin = MATH_FLOOR(expMin.c / tmpStep) * tmpStep; - tmpMax = MATH_CEIL(expMax.c / tmpStep) * tmpStep; - reference[i] = { - min: tmpMin, - max: tmpMax, - step: tmpStep, - span: tmpMax - tmpMin - }; - } - reference.sort(function (a, b) { - var delta = a.span - b.span; - if (delta === 0) { - delta = a.step - b.step; - } - return delta; - }); - reference = reference[0]; - section = reference.span / reference.step; - expMin.c = reference.min; - expMax.c = reference.max; - return section < 3 ? section * 2 : section; - } - function look4step(expMin, expMax, secs) { - var span; - var tmpMax; - var tmpMin = expMax.c; - var tmpStep = (expMax.c - expMin.c) / secs - 1; - while (tmpMin > expMin.c) { - tmpStep = getCeil(tmpStep + 1, custSteps); - tmpStep = tmpStep.c * MATH_POW(tmpStep.e); - span = tmpStep * secs; - tmpMax = MATH_CEIL(expMax.c / tmpStep) * tmpStep; - tmpMin = tmpMax - span; - } - var deltaMin = expMin.c - tmpMin; - var deltaMax = tmpMax - expMax.c; - var deltaDelta = deltaMin - deltaMax; - if (deltaDelta > tmpStep * 1.1) { - deltaDelta = MATH_ROUND(deltaDelta / tmpStep / 2) * tmpStep; - tmpMin += deltaDelta; - tmpMax += deltaDelta; - } - expMin.c = tmpMin; - expMax.c = tmpMax; - return tmpStep; - } - function tryForInt(min, max, section, expMin, expMax, secs) { - var span = expMax.c - expMin.c; - var step = span / secs * MATH_POW(expMax.e); - if (!MATH_ISINT(step)) { - step = MATH_FLOOR(step); - span = step * secs; - if (span < max - min) { - step += 1; - span = step * secs; - if (!section && step * (secs - 1) >= max - min) { - secs -= 1; - span = step * secs; - } - } - if (span >= max - min) { - var delta = span - (max - min); - expMin.c = MATH_ROUND(min - delta / 2); - expMax.c = MATH_ROUND(max + delta / 2); - expMin.e = 0; - expMax.e = 0; - } - } - return secs; - } - function forInteger(min, max, section) { - section = section || 5; - if (minLocked) { - max = min + section; - } else if (maxLocked) { - min = max - section; - } else { - var delta = section - (max - min); - var newMin = MATH_ROUND(min - delta / 2); - var newMax = MATH_ROUND(max + delta / 2); - var arrMM = cross0(min, max, newMin, newMax); - min = arrMM[0]; - max = arrMM[1]; - } - return makeResult(min, max, section); - } - function forSpan0(min, max, section) { - section = section || 5; - var delta = MT.min(MATH_ABS(max / section), section) / 2.1; - if (minLocked) { - max = min + delta; - } else if (maxLocked) { - min = max - delta; - } else { - min = min - delta; - max = max + delta; - } - return coreCalc(min, max, section); - } - function cross0(min, max, newMin, newMax) { - if (min >= 0 && newMin < 0) { - newMax -= newMin; - newMin = 0; - } else if (max <= 0 && newMax > 0) { - newMin -= newMax; - newMax = 0; - } - return [ - newMin, - newMax - ]; - } - function decimals(num) { - num = (+num).toFixed(15).split('.'); - return num.pop().replace(/0+$/, '').length; - } - function singleLocked(min, max, emin, emax) { - if (minLocked) { - var expMin = expNum(min, 4, 1); - if (emin.e - expMin.e > 6) { - expMin = { - c: 0, - e: emin.e - }; - } - expFixMin(emin, expMin); - expFixMin(emax, expMin); - emax.c += expMin.c - emin.c; - emin.c = expMin.c; - } else if (maxLocked) { - var expMax = expNum(max, 4); - if (emax.e - expMax.e > 6) { - expMax = { - c: 0, - e: emax.e - }; - } - expFixMin(emin, expMax); - expFixMin(emax, expMax); - emin.c += expMax.c - emax.c; - emax.c = expMax.c; - } - } - function bothLocked(min, max, section) { - var trySecs = section ? [section] : custSecs; - var span = max - min; - if (span === 0) { - max = expNum(max, 3); - section = trySecs[0]; - max.c = MATH_ROUND(max.c + section / 2); - return makeResult(max.c - section, max.c, section, max.e); - } - if (MATH_ABS(max / span) < 0.000001) { - max = 0; - } - if (MATH_ABS(min / span) < 0.000001) { - min = 0; - } - var step, deltaSpan, score; - var scoreS = [ - [ - 5, - 10 - ], - [ - 10, - 2 - ], - [ - 50, - 10 - ], - [ - 100, - 2 - ] - ]; - var reference = []; - var debugLog = []; - var expSpan = expNum(max - min, 3); - var expMin = expNum(min, -1, 1); - var expMax = expNum(max, -1); - expFixTo(expMin, expSpan, 1); - expFixTo(expMax, expSpan); - span = expMax.c - expMin.c; - expSpan.c = span; - for (var i = trySecs.length; i--;) { - section = trySecs[i]; - step = MATH_CEIL(span / section); - deltaSpan = step * section - span; - score = (deltaSpan + 3) * 3; - score += (section - trySecs[0] + 2) * 2; - if (section % 5 === 0) { - score -= 10; - } - for (var j = scoreS.length; j--;) { - if (step % scoreS[j][0] === 0) { - score /= scoreS[j][1]; - } - } - debugLog[i] = [ - section, - step, - deltaSpan, - score - ].join(); - reference[i] = { - secs: section, - step: step, - delta: deltaSpan, - score: score - }; - } - reference.sort(function (a, b) { - return a.score - b.score; - }); - reference = reference[0]; - expMin.c = MATH_ROUND(expMin.c - reference.delta / 2); - expMax.c = MATH_ROUND(expMax.c + reference.delta / 2); - return makeResult(expMin.c, expMax.c, reference.secs, expSpan.e); - } - return smartSteps; -});define('echarts/util/smartLogSteps', [ - 'require', - './number' -], function (require) { - var number = require('./number'); - var Mt = Math; - var mathLog = Mt.log; - var mathPow = Mt.pow; - var mathAbs = Mt.abs; - var mathCeil = Mt.ceil; - var mathFloor = Mt.floor; - var LOG_BASE = Mt.E; - var LN10 = Mt.LN10; - var LN2 = Mt.LN2; - var LN2D10 = LN2 / LN10; - var EPSILON = 1e-9; - var DEFAULT_SPLIT_NUMBER = 5; - var MIN_BASE_10_SPLIT_NUMBER = 2; - var SUPERSCRIPTS = { - '0': '⁰', - '1': '¹', - '2': '²', - '3': '³', - '4': '⁴', - '5': '⁵', - '6': '⁶', - '7': '⁷', - '8': '⁸', - '9': '⁹', - '-': '⁻' - }; - var logPositive; - var logLabelBase; - var logLabelMode; - var lnBase; - var custOpts; - var splitNumber; - var logMappingOffset; - var absMin; - var absMax; - var tickList; - function smartLogSteps(opts) { - clearStaticVariables(); - custOpts = opts || {}; - reformSetting(); - makeTicksList(); - return [ - makeResult(), - clearStaticVariables() - ][0]; - } - function clearStaticVariables() { - logPositive = custOpts = logMappingOffset = lnBase = absMin = absMax = splitNumber = tickList = logLabelBase = logLabelMode = null; - } - function reformSetting() { - logLabelBase = custOpts.logLabelBase; - if (logLabelBase == null) { - logLabelMode = 'plain'; - logLabelBase = 10; - lnBase = LN10; - } else { - logLabelBase = +logLabelBase; - if (logLabelBase < 1) { - logLabelBase = 10; - } - logLabelMode = 'exponent'; - lnBase = mathLog(logLabelBase); - } - splitNumber = custOpts.splitNumber; - splitNumber == null && (splitNumber = DEFAULT_SPLIT_NUMBER); - var dataMin = parseFloat(custOpts.dataMin); - var dataMax = parseFloat(custOpts.dataMax); - if (!isFinite(dataMin) && !isFinite(dataMax)) { - dataMin = dataMax = 1; - } else if (!isFinite(dataMin)) { - dataMin = dataMax; - } else if (!isFinite(dataMax)) { - dataMax = dataMin; - } else if (dataMin > dataMax) { - dataMax = [ - dataMin, - dataMin = dataMax - ][0]; - } - logPositive = custOpts.logPositive; - if (logPositive == null) { - logPositive = dataMax > 0 || dataMin === 0; - } - absMin = logPositive ? dataMin : -dataMax; - absMax = logPositive ? dataMax : -dataMin; - absMin < EPSILON && (absMin = EPSILON); - absMax < EPSILON && (absMax = EPSILON); - } - function makeTicksList() { - tickList = []; - var maxDataLog = fixAccurate(mathLog(absMax) / lnBase); - var minDataLog = fixAccurate(mathLog(absMin) / lnBase); - var maxExpon = mathCeil(maxDataLog); - var minExpon = mathFloor(minDataLog); - var spanExpon = maxExpon - minExpon; - var spanDataLog = maxDataLog - minDataLog; - if (logLabelMode === 'exponent') { - baseAnalysis(); - } else { - !(spanExpon <= MIN_BASE_10_SPLIT_NUMBER && splitNumber > MIN_BASE_10_SPLIT_NUMBER) ? baseAnalysis() : detailAnalysis(); - } - function baseAnalysis() { - if (spanExpon < splitNumber) { - splitNumber = spanExpon; - } - var stepExpon = mathFloor(fixAccurate(spanExpon / splitNumber)); - var splitNumberAdjust = mathCeil(fixAccurate(spanExpon / stepExpon)); - var spanExponAdjust = stepExpon * splitNumberAdjust; - var halfDiff = (spanExponAdjust - spanDataLog) / 2; - var minExponAdjust = mathFloor(fixAccurate(minDataLog - halfDiff)); - if (aroundZero(minExponAdjust - minDataLog)) { - minExponAdjust -= 1; - } - logMappingOffset = -minExponAdjust * lnBase; - for (var n = minExponAdjust; n - stepExpon <= maxDataLog; n += stepExpon) { - tickList.push(mathPow(logLabelBase, n)); - } - } - function detailAnalysis() { - var minDecimal = toDecimalFrom4Hex(minExpon, 0); - var endDecimal = minDecimal + 2; - while (minDecimal < endDecimal && toH(minDecimal + 1) + toK(minDecimal + 1) * LN2D10 < minDataLog) { - minDecimal++; - } - var maxDecimal = toDecimalFrom4Hex(maxExpon, 0); - var endDecimal = maxDecimal - 2; - while (maxDecimal > endDecimal && toH(maxDecimal - 1) + toK(maxDecimal - 1) * LN2D10 > maxDataLog) { - maxDecimal--; - } - logMappingOffset = -(toH(minDecimal) * LN10 + toK(minDecimal) * LN2); - for (var i = minDecimal; i <= maxDecimal; i++) { - var h = toH(i); - var k = toK(i); - tickList.push(mathPow(10, h) * mathPow(2, k)); - } - } - function toDecimalFrom4Hex(h, k) { - return h * 3 + k; - } - function toK(decimal) { - return decimal - toH(decimal) * 3; - } - function toH(decimal) { - return mathFloor(fixAccurate(decimal / 3)); - } - } - function makeResult() { - var resultTickList = []; - for (var i = 0, len = tickList.length; i < len; i++) { - resultTickList[i] = (logPositive ? 1 : -1) * tickList[i]; - } - !logPositive && resultTickList.reverse(); - var dataMappingMethods = makeDataMappingMethods(); - var value2Coord = dataMappingMethods.value2Coord; - var newDataMin = value2Coord(resultTickList[0]); - var newDataMax = value2Coord(resultTickList[resultTickList.length - 1]); - if (newDataMin === newDataMax) { - newDataMin -= 1; - newDataMax += 1; - } - return { - dataMin: newDataMin, - dataMax: newDataMax, - tickList: resultTickList, - logPositive: logPositive, - labelFormatter: makeLabelFormatter(), - dataMappingMethods: dataMappingMethods - }; - } - function makeLabelFormatter() { - if (logLabelMode === 'exponent') { - var myLogLabelBase = logLabelBase; - var myLnBase = lnBase; - return function (value) { - if (!isFinite(parseFloat(value))) { - return ''; - } - var sign = ''; - if (value < 0) { - value = -value; - sign = '-'; - } - return sign + myLogLabelBase + makeSuperscriptExponent(mathLog(value) / myLnBase); - }; - } else { - return function (value) { - if (!isFinite(parseFloat(value))) { - return ''; - } - return number.addCommas(formatNumber(value)); - }; - } - } - function makeDataMappingMethods() { - var myLogPositive = logPositive; - var myLogMappingOffset = logMappingOffset; - return { - value2Coord: function (x) { - if (x == null || isNaN(x) || !isFinite(x)) { - return x; - } - x = parseFloat(x); - if (!isFinite(x)) { - x = EPSILON; - } else if (myLogPositive && x < EPSILON) { - x = EPSILON; - } else if (!myLogPositive && x > -EPSILON) { - x = -EPSILON; - } - x = mathAbs(x); - return (myLogPositive ? 1 : -1) * (mathLog(x) + myLogMappingOffset); - }, - coord2Value: function (x) { - if (x == null || isNaN(x) || !isFinite(x)) { - return x; - } - x = parseFloat(x); - if (!isFinite(x)) { - x = EPSILON; - } - return myLogPositive ? mathPow(LOG_BASE, x - myLogMappingOffset) : -mathPow(LOG_BASE, -x + myLogMappingOffset); - } - }; - } - function fixAccurate(result) { - return +Number(+result).toFixed(14); - } - function formatNumber(num) { - return Number(num).toFixed(15).replace(/\.?0*$/, ''); - } - function makeSuperscriptExponent(exponent) { - exponent = formatNumber(Math.round(exponent)); - var result = []; - for (var i = 0, len = exponent.length; i < len; i++) { - var cha = exponent.charAt(i); - result.push(SUPERSCRIPTS[cha] || ''); - } - return result.join(''); - } - function aroundZero(val) { - return val > -EPSILON && val < EPSILON; - } - return smartLogSteps; -}); \ No newline at end of file diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/about-en.html b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/about-en.html deleted file mode 100644 index f43f0dc..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/about-en.html +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - - - ECharts · About - - - - - - - - - - - - - - - - -
-
-

ORIGIN

- -

ECharts (a contraction of Enterprise Charts) is a commercial charting solution originally intended to address the report need of the Company's various business systems, such as Baidu Promotion (凤巢), Advertising Manager (广告管家). Previously we used Flash to fulfill those needs, but the problem is, due to Baidu's highly clear-cut division of labor, there is a special team in charge of Flash. As a result, everything – from the design of data interface to personalized needs - has to be negotiated and agreed upon, leaving little room for front-end engineers to control completely. Moreover, there is no Flash common to all the scenes in a system. Worse still, Steve Jobs, the co-founder and then CEO of Apple Inc., insisted that Apple wouldn't allow Flash on the iPhone, iPod touch and iPad. For all these reasons, and given the soaring popularity of html5, we decided to try something else. Therefore in early 2012 Lin Feng (Kener), the then front-end technical director of Baidu Promotion, tried to make charts via Canvas in the Data Platform Project of Baidu Promotion. He wrote a whole new lightweight Canvas library ZRender, which is actually the prototype of ECharts, albeit miles from the one in front of you now.

-

Erik, Baidu's senior front-end developer, built the team of Baidu business front-end general technology right after his return. Against the above backdrop, and with the firm support of the front-end team manager Zu Ming, data visualization became an important field of general technology studies. So it's only natural that Lin Feng switched his role and began to head the Baidu business front-end data visualization team, which comprises the foremost front-line software engineers including Shen Yi (tech genius obsessed with web3d), Yang Ji (graphic maniac), Su Shuang (who has hands-on experience of SVG / GUI) and Chen Huaimu (who knows color inside out).

- -

As mentioned above, ECharts is based on ZRender. Back then ZRender had charting features, and we already managed to add the Drag-Recalculate option. Nevertheless, the coupling of various graphic data logic and image rendering, non-modularity, and the arbitrary customized demos made us realize that it was by no means a decent design. Therefore, for the first time we made a large-scale ZRender reconstruction, cutting out all its charting features and making it a pure Canvas library under the hood.

- -

The chart logic from ZRender was then made into the fundamental framework for ECharts Version 0.1, which, to be honest, was still a demo, for the interface was not standardized, and both customization and universality were terrible. Erik, Lin Feng, and three senior engineers from the Flash team (FYI, it was they or their team who made almost all the Flash charts in the Baidu business system over the years) opened six meetings in nearly two months before the final approval and release of ECharts Standard Version 1.0. The standard was defined in pursuit of rational design and high customizability, regardless of implementation costs. So it was like the team was digging itself a bottomless pit. For the ensuing ten months, the team found itself climbing out of the pit step by step.

-

Lucky for us, we finally made it. On June 30, 2013, ECharts Version 1.0 was launched. And the standard became the API reference of ECharts 1.0 when richer interactivity were added. Its importance is unquestionable despite the fact that it is now only a part of the ECharts documentation. Today when we look back, we sincerely thank the five extraordinary engineers - Lin Feng, Zhao Shu, Erik, Liu Yang, Yang Dong - for setting the spectacular standard. They convinced us that compared with implementation costs, a reasonable interface design is far more important.

-
- -
-

DEVELOPMENT

-

It all started as a response to Baidu's own business needs, yet the real opportunity for the way ahead lies in open source. Though there has been innumerable JS charting libraries in China, ECharts, with its revolutionary new functionality and technology, has taken the industry by storm right after its release. Commonly lauded as a "rising star" of China's data visualization, it was featured by mainstream technical media such as CSDN, ITEye, InfoQ, iTongji as well as COS. In particular, OSChina did a week-long ECharts promotion on its home page, with the post being bookmarked for over 1,000 times. What's more, just 18 months after its release on GitHub, ECharts was starred for more than 5,000 times, which means that it has become the most-watched Chinese open source project around the globe. ECharts is also the first Chinese project which selected into Github Explorer Data Visualization. Today, hundreds of companies - ranging over a variety of fields including media, finance, e-commerce, tourism, hotels, weather, geography, video games, and electric power - trust ECharts Solution when it comes to enterprise-grade charting.

-

We are so very flattered that, just 6 months after its release, ECharts made it to "The Ten Hottest Domestic Open Source Projects of the Year" and took the lead in "The Twenty Hottest New Open Source Software of the Year". In addition, we never dreamed that ECharts would get so many attentions from other domains or countries: expansions of multiple domestic and international versions appeared on RtypeL; it's said that there are two financial consulting firms in the Asia-Pacific region developing ECharts-based BI products, and that someone even pushed ECharts further into the Mayor's Office of Data Analytics, City of New York. We are now full of unexpected delight and we'd like to thank every single ECharts enthusiast for his/her continuing support.

-
-
- -
-

TEAM

-

The ECharts team is a bunch of distinct, diligent, dynamic people - who have different skills and hail from all corners of companies - on an extraordinary mission to make your data sing. Come check out the faces that make up Team ECharts.

- -

Research & Development

-
-
- -

Lin Feng

-

Senior Front-End Engineer at Baidu

-
-
- -

Shen Yi

-

Front-End Engineer at Baidu

-
-
- -

Dong Rui

-

Senior Front-End Engineer at Baidu

-
-
- -

Su Shuang

-

Front-End Engineer at Baidu

-
-
- -

Deng Hongqi

-

Front-End Engineer at Baidu

-
-
- -

Yang Ji

-

Front-End Engineer at Baidu

-
-
- -

Lou Tongbing

-

Front-End Engineer at Baidu

-
-
- -

Product | Design

-
-
- -

Zu Ming

-

Baidu business Front-End Team Manager

-
-
- -

Huang Yue

-

Interaction Designer at Baidu

-
-
- -

Wang Junting

-

Interaction Designer at Baidu

-
-
- -

Hu Yao

-

Front-End Engineer at Baidu

-
- -
- -

Expert Advisors

-
-
- -

Chen Wei

-

Professor at Zhejiang University

-
-
- -

Huang Zhimin

-

CTO of Caixin Media

-
-
- -

Li Zhan

-

Director of Baidu CS Department

-
-
- -

Shen Hao

-

Professor at CUC

-
-
- -

Avid Aficionados

-
-
- -

Zhou Yang

-

Data Analyst
recharts author

-
-
- -

Wei Taiyun

-

Secretary-General of Capital of Statistics
recharts author

-
-
- -

Yao Feifei

-

Front-End Engineer at Baidu

-
-
- -

Tan He

-

Master of CUC
Data Visualization Team at the CUC

-
-
- -

Xie Shiwei

-

Front-End Engineer at Baidu

-
-
- -

Jaroslav Benc

-

R&D Software Engineer at Aviarc New Zealand

-
-
-
- -
-

JOIN US!

-

We know you are passionate and adventurous...so don't hesitate, do it now!

- Contact Us » -
-
- -
- - - - - - - - - diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/about.html b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/about.html deleted file mode 100644 index 85746a5..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/about.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - - - - - - ECharts · About - - - - - - - - - - - - - - - - -
-
-

缘起

- -

  ECharts,缩写来自Enterprise Charts,商业级数据图表,它最初是为了满足公司商业体系里各种业务系统(如凤巢、广告管家等等)的报表需求。以前这些系统的图表需求我们都是使用flash去实现的,百度分工很细,有专门的flash组同学去做这个事情,这就不可避免多了一个沟通环节,作为前端工程师无法独立掌控,不管是数据接口的设计,个性化的需求都得沟通商定。而且一个系统内会有很多个flash在不同场景下出现,他们并没有实现通用。加上乔帮主不让i系列上运行flash以及html5的火热,我们需要寻求一个解决方案。于是在2012年初,当时还是凤巢前端技术负责人的Kener-林峰在凤巢数据平台项目中尝试使用Canvas去做图表,他写了一个全新的轻量级Canvas类库ZRender,那可以说是ECharts的原型,虽然跟现在已经相去十万八千里了。

-

  百度资深前端Erik回归后组建起了百度商业前端通用技术组,在前面提到的背景下加上前端团队的经理祖明的强力支持,数据可视化成为了通用技术里一个重要的研究方向, 林峰也就这样顺理成章的从凤巢技术负责人转到现在的角色,百度商业前端数据可视化团队负责人。痴狂于web3d的技术天才沈毅,沉迷图形图像的杨骥,有SVG/GUI实战经验的宿爽,对颜色如数家珍的陈怀木等等来自一线的工程师加入组建起了可视化团队。

- -

  正如前面提到的,ECharts来自ZRender,那时的ZRender是包含图表功能的,甚至拖拽重计算已经在那个时候被实现了,但各种图表数据逻辑与图形渲染耦合,非模块化,Demo时随心所欲的特殊定制,我们意识到这是一个糟糕的设计。ZRender做了第一次大规模的重构,抽离了一切图表相关功能,纯粹的作为底层Canvas类库使用。

- -

  而被抽离的图表逻辑构建成为ECharts 0.1版本,但基本仍旧属于Demo状态,因为接口不规范,个性化能力和通用性都太差了。Erik和林峰,以及3位来自Flash组的资深工程师(百度商业系统中多年来所做的各种flash图表基本出自他们或者是他们所带领的团队),花了近2个月时间先后开了6次会议终于制定并发布了百度图表库标准1.0版本。这份标准是在几乎没考虑实现成本的情况下制定的,追求设计的合理、高度个性化的扩展能力,可想而知,这是给团队挖了一个很深很深的坑,在紧接着的近10个月时间里ECharts团队就是看着文档一步一步从这个坑里爬出来。

-

  幸运的是我们真爬出来了,2013年6月30,ECharts发布了1.0版本,这份标准完全成为了ECharts 1.0的API文档,而且我们还加入了更多的数据交互能力。虽然这份标准目前已经成为了ECharts文档的子集了,但它的重要性不容置疑,回过头看这段历程,我们衷心的感谢制定这份标准的5位工程师(林峰、赵庶、Erik、刘阳、杨冬),在我们看来接口设计的合理比起实现成本重要得多。

-
- -
-

发展

-

  ECharts缘起公司自身的业务需求,但开源使得它得以发展,虽然业界已经有多如牛毛的JS图表库,但ECharts带着颠覆性的功能设计和技术特征,发布后得到了业界高度关注和好评,迅速成为国内数据可视化领域的“后起之秀”,先后在CSDN、ITEye、InfoQ、中国统计网、统计之都等主流技术媒体上有专题报道,被开源中国收录后即被列为精选推荐,github上发布18个月后star数超过了5000,不仅成为了国内关注度最高的开源项目,我们还是中国第一个也是目前唯一一个入选了Github Explorer Data Visualization板块的开源项目。被百度外数百家企业应用在新闻传媒、证券金融、电子商务、旅游酒店、天气地理、视频游戏、电力等众多领域。

-

  令我们意外的是,ECharts仅发布半年入选成为了“2013年国产开源软件10大年度热门项目”,同时在“2013年度最新的20大热门开源软件”中排名第一。除此之外,ECharts还得到了跨领域以及国外技术团体关注,如在R领域就同时出现国内外多个版本的扩展,听说还有两家亚太地区金融咨询企业正在研发基于ECharts的BI类产品,甚至还有人拿着ECharts跑到纽约市长数据分析部门做应用推广。这都是我们的意外收获,感谢大家的支持。

-
-
- -
-

ECharts背后的那些人

-

ECharts的进步离不开其背后那些人的卓越贡献,他们有着不同的技能,来自不同的岗位甚至不同的公司。

- - -

研发

-
-
- -

林峰

-

百度资深前端研发工程师

-
-
- -

沈毅

-

百度前端研发工程师

-
-
- -

董睿

-

百度资深前端研发工程师

-
-
- -

宿爽

-

百度前端研发工程师

-
-
- -

邓红启

-

百度前端研发工程师

-
-
- -

杨骥

-

百度前端研发工程师

-
-
- -

娄同兵

-

百度前端研发工程师

-
-
- - -

产品|设计

-
-
- -

祖明

-

百度复合搜索部
前端团队经理

-
-
- -

黄悦

-

百度交互设计师

-
-
- -

王俊婷

-

百度交互设计师

-
-
- -

胡瑶

-

百度前端研发工程师

-
- -
- - -

领域专家顾问

-
-
- -

陈为

-

浙江大学教授

-
-
- -

黄志敏

-

财新传媒CTO

-
-
- -

李湛

-

百度复合搜索部总监

-
-
- -

沈浩

-

中国传媒大学教授

-
-
- - -

资深玩家

-
-
- -

周扬

-

高级数据研究员
recharts作者

-
-
- -

魏太云

-

统计之都理事会主席
recharts作者

-
-
- -

姚飞飞

-

百度前端研发工程师

-
-
- -

谈和

-

中国传媒大学硕士研究生
传媒大学数据可视化小组

-
-
- -

谢世威

-

百度前端研发工程师

-
-
- -

Jaroslav Benc

-

R&D Software Engineer at Aviarc New Zealand

-
-
-
- -
-

加入我们!

-

充满激情、喜欢挑战的你还犹豫什么?赶快行动!

- Contact Us » -
-
- -
- - - - - - - - - diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/asset/css/bootstrap-responsive.css b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/asset/css/bootstrap-responsive.css deleted file mode 100644 index fcd72f7..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/asset/css/bootstrap-responsive.css +++ /dev/null @@ -1,1109 +0,0 @@ -/*! - * Bootstrap Responsive v2.3.1 - * - * Copyright 2012 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world @twitter by @mdo and @fat. - */ - -.clearfix { - *zoom: 1; -} - -.clearfix:before, -.clearfix:after { - display: table; - line-height: 0; - content: ""; -} - -.clearfix:after { - clear: both; -} - -.hide-text { - font: 0/0 a; - color: transparent; - text-shadow: none; - background-color: transparent; - border: 0; -} - -.input-block-level { - display: block; - width: 100%; - min-height: 30px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; -} - -@-ms-viewport { - width: device-width; -} - -.hidden { - display: none; - visibility: hidden; -} - -.visible-phone { - display: none !important; -} - -.visible-tablet { - display: none !important; -} - -.hidden-desktop { - display: none !important; -} - -.visible-desktop { - display: inherit !important; -} - -@media (min-width: 768px) and (max-width: 979px) { - .hidden-desktop { - display: inherit !important; - } - .visible-desktop { - display: none !important ; - } - .visible-tablet { - display: inherit !important; - } - .hidden-tablet { - display: none !important; - } -} - -@media (max-width: 767px) { - .hidden-desktop { - display: inherit !important; - } - .visible-desktop { - display: none !important; - } - .visible-phone { - display: inherit !important; - } - .hidden-phone { - display: none !important; - } -} - -.visible-print { - display: none !important; -} - -@media print { - .visible-print { - display: inherit !important; - } - .hidden-print { - display: none !important; - } -} - -@media (min-width: 1200px) { - .row { - margin-left: -30px; - *zoom: 1; - } - .row:before, - .row:after { - display: table; - line-height: 0; - content: ""; - } - .row:after { - clear: both; - } - [class*="span"] { - float: left; - min-height: 1px; - margin-left: 30px; - } - .container, - .navbar-static-top .container, - .navbar-fixed-top .container, - .navbar-fixed-bottom .container { - width: 1170px; - } - .span12 { - width: 1170px; - } - .span11 { - width: 1070px; - } - .span10 { - width: 970px; - } - .span9 { - width: 870px; - } - .span8 { - width: 770px; - } - .span7 { - width: 670px; - } - .span6 { - width: 570px; - } - .span5 { - width: 470px; - } - .span4 { - width: 370px; - } - .span3 { - width: 270px; - } - .span2 { - width: 170px; - } - .span1 { - width: 70px; - } - .offset12 { - margin-left: 1230px; - } - .offset11 { - margin-left: 1130px; - } - .offset10 { - margin-left: 1030px; - } - .offset9 { - margin-left: 930px; - } - .offset8 { - margin-left: 830px; - } - .offset7 { - margin-left: 730px; - } - .offset6 { - margin-left: 630px; - } - .offset5 { - margin-left: 530px; - } - .offset4 { - margin-left: 430px; - } - .offset3 { - margin-left: 330px; - } - .offset2 { - margin-left: 230px; - } - .offset1 { - margin-left: 130px; - } - .row-fluid { - width: 100%; - *zoom: 1; - } - .row-fluid:before, - .row-fluid:after { - display: table; - line-height: 0; - content: ""; - } - .row-fluid:after { - clear: both; - } - .row-fluid [class*="span"] { - display: block; - float: left; - width: 100%; - min-height: 30px; - margin-left: 2.564102564102564%; - *margin-left: 2.5109110747408616%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - .row-fluid [class*="span"]:first-child { - margin-left: 0; - } - .row-fluid .controls-row [class*="span"] + [class*="span"] { - margin-left: 2.564102564102564%; - } - .row-fluid .span12 { - width: 100%; - *width: 99.94680851063829%; - } - .row-fluid .span11 { - width: 91.45299145299145%; - *width: 91.39979996362975%; - } - .row-fluid .span10 { - width: 82.90598290598291%; - *width: 82.8527914166212%; - } - .row-fluid .span9 { - width: 74.35897435897436%; - *width: 74.30578286961266%; - } - .row-fluid .span8 { - width: 65.81196581196582%; - *width: 65.75877432260411%; - } - .row-fluid .span7 { - width: 57.26495726495726%; - *width: 57.21176577559556%; - } - .row-fluid .span6 { - width: 48.717948717948715%; - *width: 48.664757228587014%; - } - .row-fluid .span5 { - width: 40.17094017094017%; - *width: 40.11774868157847%; - } - .row-fluid .span4 { - width: 31.623931623931625%; - *width: 31.570740134569924%; - } - .row-fluid .span3 { - width: 23.076923076923077%; - *width: 23.023731587561375%; - } - .row-fluid .span2 { - width: 14.52991452991453%; - *width: 14.476723040552828%; - } - .row-fluid .span1 { - width: 5.982905982905983%; - *width: 5.929714493544281%; - } - .row-fluid .offset12 { - margin-left: 105.12820512820512%; - *margin-left: 105.02182214948171%; - } - .row-fluid .offset12:first-child { - margin-left: 102.56410256410257%; - *margin-left: 102.45771958537915%; - } - .row-fluid .offset11 { - margin-left: 96.58119658119658%; - *margin-left: 96.47481360247316%; - } - .row-fluid .offset11:first-child { - margin-left: 94.01709401709402%; - *margin-left: 93.91071103837061%; - } - .row-fluid .offset10 { - margin-left: 88.03418803418803%; - *margin-left: 87.92780505546462%; - } - .row-fluid .offset10:first-child { - margin-left: 85.47008547008548%; - *margin-left: 85.36370249136206%; - } - .row-fluid .offset9 { - margin-left: 79.48717948717949%; - *margin-left: 79.38079650845607%; - } - .row-fluid .offset9:first-child { - margin-left: 76.92307692307693%; - *margin-left: 76.81669394435352%; - } - .row-fluid .offset8 { - margin-left: 70.94017094017094%; - *margin-left: 70.83378796144753%; - } - .row-fluid .offset8:first-child { - margin-left: 68.37606837606839%; - *margin-left: 68.26968539734497%; - } - .row-fluid .offset7 { - margin-left: 62.393162393162385%; - *margin-left: 62.28677941443899%; - } - .row-fluid .offset7:first-child { - margin-left: 59.82905982905982%; - *margin-left: 59.72267685033642%; - } - .row-fluid .offset6 { - margin-left: 53.84615384615384%; - *margin-left: 53.739770867430444%; - } - .row-fluid .offset6:first-child { - margin-left: 51.28205128205128%; - *margin-left: 51.175668303327875%; - } - .row-fluid .offset5 { - margin-left: 45.299145299145295%; - *margin-left: 45.1927623204219%; - } - .row-fluid .offset5:first-child { - margin-left: 42.73504273504273%; - *margin-left: 42.62865975631933%; - } - .row-fluid .offset4 { - margin-left: 36.75213675213675%; - *margin-left: 36.645753773413354%; - } - .row-fluid .offset4:first-child { - margin-left: 34.18803418803419%; - *margin-left: 34.081651209310785%; - } - .row-fluid .offset3 { - margin-left: 28.205128205128204%; - *margin-left: 28.0987452264048%; - } - .row-fluid .offset3:first-child { - margin-left: 25.641025641025642%; - *margin-left: 25.53464266230224%; - } - .row-fluid .offset2 { - margin-left: 19.65811965811966%; - *margin-left: 19.551736679396257%; - } - .row-fluid .offset2:first-child { - margin-left: 17.094017094017094%; - *margin-left: 16.98763411529369%; - } - .row-fluid .offset1 { - margin-left: 11.11111111111111%; - *margin-left: 11.004728132387708%; - } - .row-fluid .offset1:first-child { - margin-left: 8.547008547008547%; - *margin-left: 8.440625568285142%; - } - input, - textarea, - .uneditable-input { - margin-left: 0; - } - .controls-row [class*="span"] + [class*="span"] { - margin-left: 30px; - } - input.span12, - textarea.span12, - .uneditable-input.span12 { - width: 1156px; - } - input.span11, - textarea.span11, - .uneditable-input.span11 { - width: 1056px; - } - input.span10, - textarea.span10, - .uneditable-input.span10 { - width: 956px; - } - input.span9, - textarea.span9, - .uneditable-input.span9 { - width: 856px; - } - input.span8, - textarea.span8, - .uneditable-input.span8 { - width: 756px; - } - input.span7, - textarea.span7, - .uneditable-input.span7 { - width: 656px; - } - input.span6, - textarea.span6, - .uneditable-input.span6 { - width: 556px; - } - input.span5, - textarea.span5, - .uneditable-input.span5 { - width: 456px; - } - input.span4, - textarea.span4, - .uneditable-input.span4 { - width: 356px; - } - input.span3, - textarea.span3, - .uneditable-input.span3 { - width: 256px; - } - input.span2, - textarea.span2, - .uneditable-input.span2 { - width: 156px; - } - input.span1, - textarea.span1, - .uneditable-input.span1 { - width: 56px; - } - .thumbnails { - margin-left: -30px; - } - .thumbnails > li { - margin-left: 30px; - } - .row-fluid .thumbnails { - margin-left: 0; - } -} - -@media (min-width: 768px) and (max-width: 979px) { - .row { - margin-left: -20px; - *zoom: 1; - } - .row:before, - .row:after { - display: table; - line-height: 0; - content: ""; - } - .row:after { - clear: both; - } - [class*="span"] { - float: left; - min-height: 1px; - margin-left: 20px; - } - .container, - .navbar-static-top .container, - .navbar-fixed-top .container, - .navbar-fixed-bottom .container { - width: 724px; - } - .span12 { - width: 724px; - } - .span11 { - width: 662px; - } - .span10 { - width: 600px; - } - .span9 { - width: 538px; - } - .span8 { - width: 476px; - } - .span7 { - width: 414px; - } - .span6 { - width: 352px; - } - .span5 { - width: 290px; - } - .span4 { - width: 228px; - } - .span3 { - width: 166px; - } - .span2 { - width: 104px; - } - .span1 { - width: 42px; - } - .offset12 { - margin-left: 764px; - } - .offset11 { - margin-left: 702px; - } - .offset10 { - margin-left: 640px; - } - .offset9 { - margin-left: 578px; - } - .offset8 { - margin-left: 516px; - } - .offset7 { - margin-left: 454px; - } - .offset6 { - margin-left: 392px; - } - .offset5 { - margin-left: 330px; - } - .offset4 { - margin-left: 268px; - } - .offset3 { - margin-left: 206px; - } - .offset2 { - margin-left: 144px; - } - .offset1 { - margin-left: 82px; - } - .row-fluid { - width: 100%; - *zoom: 1; - } - .row-fluid:before, - .row-fluid:after { - display: table; - line-height: 0; - content: ""; - } - .row-fluid:after { - clear: both; - } - .row-fluid [class*="span"] { - display: block; - float: left; - width: 100%; - min-height: 30px; - margin-left: 2.7624309392265194%; - *margin-left: 2.709239449864817%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - .row-fluid [class*="span"]:first-child { - margin-left: 0; - } - .row-fluid .controls-row [class*="span"] + [class*="span"] { - margin-left: 2.7624309392265194%; - } - .row-fluid .span12 { - width: 100%; - *width: 99.94680851063829%; - } - .row-fluid .span11 { - width: 91.43646408839778%; - *width: 91.38327259903608%; - } - .row-fluid .span10 { - width: 82.87292817679558%; - *width: 82.81973668743387%; - } - .row-fluid .span9 { - width: 74.30939226519337%; - *width: 74.25620077583166%; - } - .row-fluid .span8 { - width: 65.74585635359117%; - *width: 65.69266486422946%; - } - .row-fluid .span7 { - width: 57.18232044198895%; - *width: 57.12912895262725%; - } - .row-fluid .span6 { - width: 48.61878453038674%; - *width: 48.56559304102504%; - } - .row-fluid .span5 { - width: 40.05524861878453%; - *width: 40.00205712942283%; - } - .row-fluid .span4 { - width: 31.491712707182323%; - *width: 31.43852121782062%; - } - .row-fluid .span3 { - width: 22.92817679558011%; - *width: 22.87498530621841%; - } - .row-fluid .span2 { - width: 14.3646408839779%; - *width: 14.311449394616199%; - } - .row-fluid .span1 { - width: 5.801104972375691%; - *width: 5.747913483013988%; - } - .row-fluid .offset12 { - margin-left: 105.52486187845304%; - *margin-left: 105.41847889972962%; - } - .row-fluid .offset12:first-child { - margin-left: 102.76243093922652%; - *margin-left: 102.6560479605031%; - } - .row-fluid .offset11 { - margin-left: 96.96132596685082%; - *margin-left: 96.8549429881274%; - } - .row-fluid .offset11:first-child { - margin-left: 94.1988950276243%; - *margin-left: 94.09251204890089%; - } - .row-fluid .offset10 { - margin-left: 88.39779005524862%; - *margin-left: 88.2914070765252%; - } - .row-fluid .offset10:first-child { - margin-left: 85.6353591160221%; - *margin-left: 85.52897613729868%; - } - .row-fluid .offset9 { - margin-left: 79.8342541436464%; - *margin-left: 79.72787116492299%; - } - .row-fluid .offset9:first-child { - margin-left: 77.07182320441989%; - *margin-left: 76.96544022569647%; - } - .row-fluid .offset8 { - margin-left: 71.2707182320442%; - *margin-left: 71.16433525332079%; - } - .row-fluid .offset8:first-child { - margin-left: 68.50828729281768%; - *margin-left: 68.40190431409427%; - } - .row-fluid .offset7 { - margin-left: 62.70718232044199%; - *margin-left: 62.600799341718584%; - } - .row-fluid .offset7:first-child { - margin-left: 59.94475138121547%; - *margin-left: 59.838368402492065%; - } - .row-fluid .offset6 { - margin-left: 54.14364640883978%; - *margin-left: 54.037263430116376%; - } - .row-fluid .offset6:first-child { - margin-left: 51.38121546961326%; - *margin-left: 51.27483249088986%; - } - .row-fluid .offset5 { - margin-left: 45.58011049723757%; - *margin-left: 45.47372751851417%; - } - .row-fluid .offset5:first-child { - margin-left: 42.81767955801105%; - *margin-left: 42.71129657928765%; - } - .row-fluid .offset4 { - margin-left: 37.01657458563536%; - *margin-left: 36.91019160691196%; - } - .row-fluid .offset4:first-child { - margin-left: 34.25414364640884%; - *margin-left: 34.14776066768544%; - } - .row-fluid .offset3 { - margin-left: 28.45303867403315%; - *margin-left: 28.346655695309746%; - } - .row-fluid .offset3:first-child { - margin-left: 25.69060773480663%; - *margin-left: 25.584224756083227%; - } - .row-fluid .offset2 { - margin-left: 19.88950276243094%; - *margin-left: 19.783119783707537%; - } - .row-fluid .offset2:first-child { - margin-left: 17.12707182320442%; - *margin-left: 17.02068884448102%; - } - .row-fluid .offset1 { - margin-left: 11.32596685082873%; - *margin-left: 11.219583872105325%; - } - .row-fluid .offset1:first-child { - margin-left: 8.56353591160221%; - *margin-left: 8.457152932878806%; - } - input, - textarea, - .uneditable-input { - margin-left: 0; - } - .controls-row [class*="span"] + [class*="span"] { - margin-left: 20px; - } - input.span12, - textarea.span12, - .uneditable-input.span12 { - width: 710px; - } - input.span11, - textarea.span11, - .uneditable-input.span11 { - width: 648px; - } - input.span10, - textarea.span10, - .uneditable-input.span10 { - width: 586px; - } - input.span9, - textarea.span9, - .uneditable-input.span9 { - width: 524px; - } - input.span8, - textarea.span8, - .uneditable-input.span8 { - width: 462px; - } - input.span7, - textarea.span7, - .uneditable-input.span7 { - width: 400px; - } - input.span6, - textarea.span6, - .uneditable-input.span6 { - width: 338px; - } - input.span5, - textarea.span5, - .uneditable-input.span5 { - width: 276px; - } - input.span4, - textarea.span4, - .uneditable-input.span4 { - width: 214px; - } - input.span3, - textarea.span3, - .uneditable-input.span3 { - width: 152px; - } - input.span2, - textarea.span2, - .uneditable-input.span2 { - width: 90px; - } - input.span1, - textarea.span1, - .uneditable-input.span1 { - width: 28px; - } -} - -@media (max-width: 767px) { - body { - padding-right: 20px; - padding-left: 20px; - } - .navbar-fixed-top, - .navbar-fixed-bottom, - .navbar-static-top { - margin-right: -20px; - margin-left: -20px; - } - .container-fluid { - padding: 0; - } - .dl-horizontal dt { - float: none; - width: auto; - clear: none; - text-align: left; - } - .dl-horizontal dd { - margin-left: 0; - } - .container { - width: auto; - } - .row-fluid { - width: 100%; - } - .row, - .thumbnails { - margin-left: 0; - } - .thumbnails > li { - float: none; - margin-left: 0; - } - [class*="span"], - .uneditable-input[class*="span"], - .row-fluid [class*="span"] { - display: block; - float: none; - width: 100%; - margin-left: 0; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - .span12, - .row-fluid .span12 { - width: 100%; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - .row-fluid [class*="offset"]:first-child { - margin-left: 0; - } - .input-large, - .input-xlarge, - .input-xxlarge, - input[class*="span"], - select[class*="span"], - textarea[class*="span"], - .uneditable-input { - display: block; - width: 100%; - min-height: 30px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - } - .input-prepend input, - .input-append input, - .input-prepend input[class*="span"], - .input-append input[class*="span"] { - display: inline-block; - width: auto; - } - .controls-row [class*="span"] + [class*="span"] { - margin-left: 0; - } - .modal { - position: fixed; - top: 20px; - right: 20px; - left: 20px; - width: auto; - margin: 0; - } - .modal.fade { - top: -100px; - } - .modal.fade.in { - top: 20px; - } -} - -@media (max-width: 480px) { - .nav-collapse { - -webkit-transform: translate3d(0, 0, 0); - } - .page-header h1 small { - display: block; - line-height: 20px; - } - input[type="checkbox"], - input[type="radio"] { - border: 1px solid #ccc; - } - .form-horizontal .control-label { - float: none; - width: auto; - padding-top: 0; - text-align: left; - } - .form-horizontal .controls { - margin-left: 0; - } - .form-horizontal .control-list { - padding-top: 0; - } - .form-horizontal .form-actions { - padding-right: 10px; - padding-left: 10px; - } - .media .pull-left, - .media .pull-right { - display: block; - float: none; - margin-bottom: 10px; - } - .media-object { - margin-right: 0; - margin-left: 0; - } - .modal { - top: 10px; - right: 10px; - left: 10px; - } - .modal-header .close { - padding: 10px; - margin: -10px; - } - .carousel-caption { - position: static; - } -} - -@media (max-width: 979px) { - body { - padding-top: 0; - } - .navbar-fixed-top, - .navbar-fixed-bottom { - position: static; - } - .navbar-fixed-top { - margin-bottom: 20px; - } - .navbar-fixed-bottom { - margin-top: 20px; - } - .navbar-fixed-top .navbar-inner, - .navbar-fixed-bottom .navbar-inner { - padding: 5px; - } - .navbar .container { - width: auto; - padding: 0; - } - .navbar .brand { - padding-right: 10px; - padding-left: 10px; - margin: 0 0 0 -5px; - } - .nav-collapse { - clear: both; - } - .nav-collapse .nav { - float: none; - margin: 0 0 10px; - } - .nav-collapse .nav > li { - float: none; - } - .nav-collapse .nav > li > a { - margin-bottom: 2px; - } - .nav-collapse .nav > .divider-vertical { - display: none; - } - .nav-collapse .nav .nav-header { - color: #777777; - text-shadow: none; - } - .nav-collapse .nav > li > a, - .nav-collapse .dropdown-menu a { - padding: 9px 15px; - font-weight: bold; - color: #777777; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - } - .nav-collapse .btn { - padding: 4px 10px 4px; - font-weight: normal; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - } - .nav-collapse .dropdown-menu li + li a { - margin-bottom: 2px; - } - .nav-collapse .nav > li > a:hover, - .nav-collapse .nav > li > a:focus, - .nav-collapse .dropdown-menu a:hover, - .nav-collapse .dropdown-menu a:focus { - background-color: #f2f2f2; - } - .navbar-inverse .nav-collapse .nav > li > a, - .navbar-inverse .nav-collapse .dropdown-menu a { - color: #999999; - } - .navbar-inverse .nav-collapse .nav > li > a:hover, - .navbar-inverse .nav-collapse .nav > li > a:focus, - .navbar-inverse .nav-collapse .dropdown-menu a:hover, - .navbar-inverse .nav-collapse .dropdown-menu a:focus { - background-color: #111111; - } - .nav-collapse.in .btn-group { - padding: 0; - margin-top: 5px; - } - .nav-collapse .dropdown-menu { - position: static; - top: auto; - left: auto; - display: none; - float: none; - max-width: none; - padding: 0; - margin: 0 15px; - background-color: transparent; - border: none; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - } - .nav-collapse .open > .dropdown-menu { - display: block; - } - .nav-collapse .dropdown-menu:before, - .nav-collapse .dropdown-menu:after { - display: none; - } - .nav-collapse .dropdown-menu .divider { - display: none; - } - .nav-collapse .nav > li > .dropdown-menu:before, - .nav-collapse .nav > li > .dropdown-menu:after { - display: none; - } - .nav-collapse .navbar-form, - .nav-collapse .navbar-search { - float: none; - padding: 10px 15px; - margin: 10px 0; - border-top: 1px solid #f2f2f2; - border-bottom: 1px solid #f2f2f2; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); - } - .navbar-inverse .nav-collapse .navbar-form, - .navbar-inverse .nav-collapse .navbar-search { - border-top-color: #111111; - border-bottom-color: #111111; - } - .navbar .nav-collapse .nav.pull-right { - float: none; - margin-left: 0; - } - .nav-collapse, - .nav-collapse.collapse { - height: 0; - overflow: hidden; - } - .navbar .btn-navbar { - display: block; - } - .navbar-static .navbar-inner { - padding-right: 10px; - padding-left: 10px; - } -} - -@media (min-width: 980px) { - .nav-collapse.collapse { - height: auto !important; - overflow: visible !important; - } -} diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/asset/css/bootstrap-theme.css b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/asset/css/bootstrap-theme.css deleted file mode 100644 index a406992..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/asset/css/bootstrap-theme.css +++ /dev/null @@ -1,347 +0,0 @@ -/*! - * Bootstrap v3.1.1 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -.btn-default, -.btn-primary, -.btn-success, -.btn-info, -.btn-warning, -.btn-danger { - text-shadow: 0 -1px 0 rgba(0, 0, 0, .2); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075); -} -.btn-default:active, -.btn-primary:active, -.btn-success:active, -.btn-info:active, -.btn-warning:active, -.btn-danger:active, -.btn-default.active, -.btn-primary.active, -.btn-success.active, -.btn-info.active, -.btn-warning.active, -.btn-danger.active { - -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); - box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125); -} -.btn:active, -.btn.active { - background-image: none; -} -.btn-default { - text-shadow: 0 1px 0 #fff; - background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%); - background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #dbdbdb; - border-color: #ccc; -} -.btn-default:hover, -.btn-default:focus { - background-color: #e0e0e0; - background-position: 0 -15px; -} -.btn-default:active, -.btn-default.active { - background-color: #e0e0e0; - border-color: #dbdbdb; -} -.btn-primary { - background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%); - background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #2b669a; -} -.btn-primary:hover, -.btn-primary:focus { - background-color: #2d6ca2; - background-position: 0 -15px; -} -.btn-primary:active, -.btn-primary.active { - background-color: #2d6ca2; - border-color: #2b669a; -} -.btn-success { - background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%); - background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #3e8f3e; -} -.btn-success:hover, -.btn-success:focus { - background-color: #419641; - background-position: 0 -15px; -} -.btn-success:active, -.btn-success.active { - background-color: #419641; - border-color: #3e8f3e; -} -.btn-info { - background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%); - background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #28a4c9; -} -.btn-info:hover, -.btn-info:focus { - background-color: #2aabd2; - background-position: 0 -15px; -} -.btn-info:active, -.btn-info.active { - background-color: #2aabd2; - border-color: #28a4c9; -} -.btn-warning { - background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%); - background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #e38d13; -} -.btn-warning:hover, -.btn-warning:focus { - background-color: #eb9316; - background-position: 0 -15px; -} -.btn-warning:active, -.btn-warning.active { - background-color: #eb9316; - border-color: #e38d13; -} -.btn-danger { - background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%); - background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-color: #b92c28; -} -.btn-danger:hover, -.btn-danger:focus { - background-color: #c12e2a; - background-position: 0 -15px; -} -.btn-danger:active, -.btn-danger.active { - background-color: #c12e2a; - border-color: #b92c28; -} -.thumbnail, -.img-thumbnail { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); - box-shadow: 0 1px 2px rgba(0, 0, 0, .075); -} -.dropdown-menu > li > a:hover, -.dropdown-menu > li > a:focus { - background-color: #e8e8e8; - background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); - background-repeat: repeat-x; -} -.dropdown-menu > .active > a, -.dropdown-menu > .active > a:hover, -.dropdown-menu > .active > a:focus { - background-color: #357ebd; - background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%); - background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); - background-repeat: repeat-x; -} -.navbar-default { - background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%); - background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075); -} -.navbar-default .navbar-nav > .active > a { - background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%); - background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0); - background-repeat: repeat-x; - -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); - box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075); -} -.navbar-brand, -.navbar-nav > li > a { - text-shadow: 0 1px 0 rgba(255, 255, 255, .25); -} -.navbar-inverse { - background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%); - background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - background-repeat: repeat-x; -} -.navbar-inverse .navbar-nav > .active > a { - background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%); - background-image: linear-gradient(to bottom, #222 0%, #282828 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0); - background-repeat: repeat-x; - -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); - box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25); -} -.navbar-inverse .navbar-brand, -.navbar-inverse .navbar-nav > li > a { - text-shadow: 0 -1px 0 rgba(0, 0, 0, .25); -} -.navbar-static-top, -.navbar-fixed-top, -.navbar-fixed-bottom { - border-radius: 0; -} -.alert { - text-shadow: 0 1px 0 rgba(255, 255, 255, .2); - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05); -} -.alert-success { - background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); - background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); - background-repeat: repeat-x; - border-color: #b2dba1; -} -.alert-info { - background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%); - background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); - background-repeat: repeat-x; - border-color: #9acfea; -} -.alert-warning { - background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); - background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); - background-repeat: repeat-x; - border-color: #f5e79e; -} -.alert-danger { - background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); - background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); - background-repeat: repeat-x; - border-color: #dca7a7; -} -.progress { - background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); - background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar { - background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%); - background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-success { - background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%); - background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-info { - background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); - background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-warning { - background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); - background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); - background-repeat: repeat-x; -} -.progress-bar-danger { - background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%); - background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); - background-repeat: repeat-x; -} -.list-group { - border-radius: 4px; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075); - box-shadow: 0 1px 2px rgba(0, 0, 0, .075); -} -.list-group-item.active, -.list-group-item.active:hover, -.list-group-item.active:focus { - text-shadow: 0 -1px 0 #3071a9; - background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%); - background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0); - background-repeat: repeat-x; - border-color: #3278b3; -} -.panel { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05); - box-shadow: 0 1px 2px rgba(0, 0, 0, .05); -} -.panel-default > .panel-heading { - background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); - background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); - background-repeat: repeat-x; -} -.panel-primary > .panel-heading { - background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%); - background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); - background-repeat: repeat-x; -} -.panel-success > .panel-heading { - background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); - background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); - background-repeat: repeat-x; -} -.panel-info > .panel-heading { - background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); - background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); - background-repeat: repeat-x; -} -.panel-warning > .panel-heading { - background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); - background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); - background-repeat: repeat-x; -} -.panel-danger > .panel-heading { - background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%); - background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); - background-repeat: repeat-x; -} -.well { - background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%); - background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); - background-repeat: repeat-x; - border-color: #dcdcdc; - -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); - box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1); -} -/*# sourceMappingURL=bootstrap-theme.css.map */ diff --git a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/asset/css/bootstrap-theme.css.map b/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/asset/css/bootstrap-theme.css.map deleted file mode 100644 index b36fc9a..0000000 --- a/echarts_mavenweb/src/main/webapp/echarts-2.2.7/doc/asset/css/bootstrap-theme.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["less/theme.less","less/mixins.less"],"names":[],"mappings":"AAeA;AACA;AACA;AACA;AACA;AACA;EACE,wCAAA;ECoGA,2FAAA;EACQ,mFAAA;;ADhGR,YAAC;AAAD,YAAC;AAAD,YAAC;AAAD,SAAC;AAAD,YAAC;AAAD,WAAC;AACD,YAAC;AAAD,YAAC;AAAD,YAAC;AAAD,SAAC;AAAD,YAAC;AAAD,WAAC;EC8FD,wDAAA;EACQ,gDAAA;;ADnER,IAAC;AACD,IAAC;EACC,sBAAA;;AAKJ;EC4PI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;EAyB2C,yBAAA;EAA2B,kBAAA;;AAvBtE,YAAC;AACD,YAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,YAAC;AACD,YAAC;EACC,yBAAA;EACA,qBAAA;;AAeJ;EC2PI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,YAAC;AACD,YAAC;EACC,yBAAA;EACA,qBAAA;;AAgBJ;EC0PI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,YAAC;AACD,YAAC;EACC,yBAAA;EACA,qBAAA;;AAiBJ;ECyPI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,SAAC;AACD,SAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,SAAC;AACD,SAAC;EACC,yBAAA;EACA,qBAAA;;AAkBJ;ECwPI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,YAAC;AACD,YAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,YAAC;AACD,YAAC;EACC,yBAAA;EACA,qBAAA;;AAmBJ;ECuPI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EAEA,sHAAA;EAoCF,mEAAA;ED7TA,2BAAA;EACA,qBAAA;;AAEA,WAAC;AACD,WAAC;EACC,yBAAA;EACA,4BAAA;;AAGF,WAAC;AACD,WAAC;EACC,yBAAA;EACA,qBAAA;;AA2BJ;AACA;EC6CE,kDAAA;EACQ,0CAAA;;ADpCV,cAAe,KAAK,IAAG;AACvB,cAAe,KAAK,IAAG;ECmOnB,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EDpOF,yBAAA;;AAEF,cAAe,UAAU;AACzB,cAAe,UAAU,IAAG;AAC5B,cAAe,UAAU,IAAG;EC6NxB,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED9NF,yBAAA;;AAUF;ECiNI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EAoCF,mEAAA;EDrPA,kBAAA;ECaA,2FAAA;EACQ,mFAAA;;ADjBV,eAOE,YAAY,UAAU;EC0MpB,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EApMF,wDAAA;EACQ,gDAAA;;ADLV;AACA,WAAY,KAAK;EACf,8CAAA;;AAIF;EC+LI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EAoCF,mEAAA;;ADtOF,eAIE,YAAY,UAAU;EC2LpB,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;EApMF,uDAAA;EACQ,+CAAA;;ADCV,eASE;AATF,eAUE,YAAY,KAAK;EACf,yCAAA;;AAKJ;AACA;AACA;EACE,gBAAA;;AAUF;EACE,6CAAA;EChCA,0FAAA;EACQ,kFAAA;;AD2CV;ECqJI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED5JF,qBAAA;;AAKF;ECoJI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED5JF,qBAAA;;AAMF;ECmJI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED5JF,qBAAA;;AAOF;ECkJI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED5JF,qBAAA;;AAgBF;ECyII,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADlIJ;EC+HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADjIJ;EC8HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADhIJ;EC6HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;AD/HJ;EC4HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;AD9HJ;EC2HI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADtHJ;EACE,kBAAA;EC/EA,kDAAA;EACQ,0CAAA;;ADiFV,gBAAgB;AAChB,gBAAgB,OAAO;AACvB,gBAAgB,OAAO;EACrB,6BAAA;EC4GE,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED7GF,qBAAA;;AAUF;ECjGE,iDAAA;EACQ,yCAAA;;AD0GV,cAAe;ECsFX,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADxFJ,cAAe;ECqFX,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADvFJ,cAAe;ECoFX,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADtFJ,WAAY;ECmFR,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADrFJ,cAAe;ECkFX,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;ADpFJ,aAAc;ECiFV,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;;AD5EJ;ECyEI,kBAAkB,sDAAlB;EACA,kBAAkB,oDAAlB;EACA,2BAAA;EACA,sHAAA;ED1EF,qBAAA;EC1HA,yFAAA;EACQ,iFAAA","sourcesContent":["\n//\n// Load core variables and mixins\n// --------------------------------------------------\n\n@import \"variables.less\";\n@import \"mixins.less\";\n\n\n\n//\n// Buttons\n// --------------------------------------------------\n\n// Common styles\n.btn-default,\n.btn-primary,\n.btn-success,\n.btn-info,\n.btn-warning,\n.btn-danger {\n text-shadow: 0 -1px 0 rgba(0,0,0,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 1px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n // Reset the shadow\n &:active,\n &.active {\n .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n }\n}\n\n// Mixin for generating new styles\n.btn-styles(@btn-color: #555) {\n #gradient > .vertical(@start-color: @btn-color; @end-color: darken(@btn-color, 12%));\n .reset-filter(); // Disable gradients for IE9 because filter bleeds through rounded corners\n background-repeat: repeat-x;\n border-color: darken(@btn-color, 14%);\n\n &:hover,\n &:focus {\n background-color: darken(@btn-color, 12%);\n background-position: 0 -15px;\n }\n\n &:active,\n &.active {\n background-color: darken(@btn-color, 12%);\n border-color: darken(@btn-color, 14%);\n }\n}\n\n// Common styles\n.btn {\n // Remove the gradient for the pressed/active state\n &:active,\n &.active {\n background-image: none;\n }\n}\n\n// Apply the mixin to the buttons\n.btn-default { .btn-styles(@btn-default-bg); text-shadow: 0 1px 0 #fff; border-color: #ccc; }\n.btn-primary { .btn-styles(@btn-primary-bg); }\n.btn-success { .btn-styles(@btn-success-bg); }\n.btn-info { .btn-styles(@btn-info-bg); }\n.btn-warning { .btn-styles(@btn-warning-bg); }\n.btn-danger { .btn-styles(@btn-danger-bg); }\n\n\n\n//\n// Images\n// --------------------------------------------------\n\n.thumbnail,\n.img-thumbnail {\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n\n\n\n//\n// Dropdowns\n// --------------------------------------------------\n\n.dropdown-menu > li > a:hover,\n.dropdown-menu > li > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-hover-bg; @end-color: darken(@dropdown-link-hover-bg, 5%));\n background-color: darken(@dropdown-link-hover-bg, 5%);\n}\n.dropdown-menu > .active > a,\n.dropdown-menu > .active > a:hover,\n.dropdown-menu > .active > a:focus {\n #gradient > .vertical(@start-color: @dropdown-link-active-bg; @end-color: darken(@dropdown-link-active-bg, 5%));\n background-color: darken(@dropdown-link-active-bg, 5%);\n}\n\n\n\n//\n// Navbar\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n #gradient > .vertical(@start-color: lighten(@navbar-default-bg, 10%); @end-color: @navbar-default-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n border-radius: @navbar-border-radius;\n @shadow: inset 0 1px 0 rgba(255,255,255,.15), 0 1px 5px rgba(0,0,0,.075);\n .box-shadow(@shadow);\n\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: darken(@navbar-default-bg, 5%); @end-color: darken(@navbar-default-bg, 2%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.075));\n }\n}\n.navbar-brand,\n.navbar-nav > li > a {\n text-shadow: 0 1px 0 rgba(255,255,255,.25);\n}\n\n// Inverted navbar\n.navbar-inverse {\n #gradient > .vertical(@start-color: lighten(@navbar-inverse-bg, 10%); @end-color: @navbar-inverse-bg);\n .reset-filter(); // Remove gradient in IE<10 to fix bug where dropdowns don't get triggered\n\n .navbar-nav > .active > a {\n #gradient > .vertical(@start-color: @navbar-inverse-bg; @end-color: lighten(@navbar-inverse-bg, 2.5%));\n .box-shadow(inset 0 3px 9px rgba(0,0,0,.25));\n }\n\n .navbar-brand,\n .navbar-nav > li > a {\n text-shadow: 0 -1px 0 rgba(0,0,0,.25);\n }\n}\n\n// Undo rounded corners in static and fixed navbars\n.navbar-static-top,\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n border-radius: 0;\n}\n\n\n\n//\n// Alerts\n// --------------------------------------------------\n\n// Common styles\n.alert {\n text-shadow: 0 1px 0 rgba(255,255,255,.2);\n @shadow: inset 0 1px 0 rgba(255,255,255,.25), 0 1px 2px rgba(0,0,0,.05);\n .box-shadow(@shadow);\n}\n\n// Mixin for generating new styles\n.alert-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 7.5%));\n border-color: darken(@color, 15%);\n}\n\n// Apply the mixin to the alerts\n.alert-success { .alert-styles(@alert-success-bg); }\n.alert-info { .alert-styles(@alert-info-bg); }\n.alert-warning { .alert-styles(@alert-warning-bg); }\n.alert-danger { .alert-styles(@alert-danger-bg); }\n\n\n\n//\n// Progress bars\n// --------------------------------------------------\n\n// Give the progress background some depth\n.progress {\n #gradient > .vertical(@start-color: darken(@progress-bg, 4%); @end-color: @progress-bg)\n}\n\n// Mixin for generating new styles\n.progress-bar-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 10%));\n}\n\n// Apply the mixin to the progress bars\n.progress-bar { .progress-bar-styles(@progress-bar-bg); }\n.progress-bar-success { .progress-bar-styles(@progress-bar-success-bg); }\n.progress-bar-info { .progress-bar-styles(@progress-bar-info-bg); }\n.progress-bar-warning { .progress-bar-styles(@progress-bar-warning-bg); }\n.progress-bar-danger { .progress-bar-styles(@progress-bar-danger-bg); }\n\n\n\n//\n// List groups\n// --------------------------------------------------\n\n.list-group {\n border-radius: @border-radius-base;\n .box-shadow(0 1px 2px rgba(0,0,0,.075));\n}\n.list-group-item.active,\n.list-group-item.active:hover,\n.list-group-item.active:focus {\n text-shadow: 0 -1px 0 darken(@list-group-active-bg, 10%);\n #gradient > .vertical(@start-color: @list-group-active-bg; @end-color: darken(@list-group-active-bg, 7.5%));\n border-color: darken(@list-group-active-border, 7.5%);\n}\n\n\n\n//\n// Panels\n// --------------------------------------------------\n\n// Common styles\n.panel {\n .box-shadow(0 1px 2px rgba(0,0,0,.05));\n}\n\n// Mixin for generating new styles\n.panel-heading-styles(@color) {\n #gradient > .vertical(@start-color: @color; @end-color: darken(@color, 5%));\n}\n\n// Apply the mixin to the panel headings only\n.panel-default > .panel-heading { .panel-heading-styles(@panel-default-heading-bg); }\n.panel-primary > .panel-heading { .panel-heading-styles(@panel-primary-heading-bg); }\n.panel-success > .panel-heading { .panel-heading-styles(@panel-success-heading-bg); }\n.panel-info > .panel-heading { .panel-heading-styles(@panel-info-heading-bg); }\n.panel-warning > .panel-heading { .panel-heading-styles(@panel-warning-heading-bg); }\n.panel-danger > .panel-heading { .panel-heading-styles(@panel-danger-heading-bg); }\n\n\n\n//\n// Wells\n// --------------------------------------------------\n\n.well {\n #gradient > .vertical(@start-color: darken(@well-bg, 5%); @end-color: @well-bg);\n border-color: darken(@well-bg, 10%);\n @shadow: inset 0 1px 3px rgba(0,0,0,.05), 0 1px 0 rgba(255,255,255,.1);\n .box-shadow(@shadow);\n}\n","//\n// Mixins\n// --------------------------------------------------\n\n\n// Utilities\n// -------------------------\n\n// Clearfix\n// Source: http://nicolasgallagher.com/micro-clearfix-hack/\n//\n// For modern browsers\n// 1. The space content is one way to avoid an Opera bug when the\n// contenteditable attribute is included anywhere else in the document.\n// Otherwise it causes space to appear at the top and bottom of elements\n// that are clearfixed.\n// 2. The use of `table` rather than `block` is only necessary if using\n// `:before` to contain the top-margins of child elements.\n.clearfix() {\n &:before,\n &:after {\n content: \" \"; // 1\n display: table; // 2\n }\n &:after {\n clear: both;\n }\n}\n\n// WebKit-style focus\n.tab-focus() {\n // Default\n outline: thin dotted;\n // WebKit\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n\n// Center-align a block level element\n.center-block() {\n display: block;\n margin-left: auto;\n margin-right: auto;\n}\n\n// Sizing shortcuts\n.size(@width; @height) {\n width: @width;\n height: @height;\n}\n.square(@size) {\n .size(@size; @size);\n}\n\n// Placeholder text\n.placeholder(@color: @input-color-placeholder) {\n &::-moz-placeholder { color: @color; // Firefox\n opacity: 1; } // See https://github.com/twbs/bootstrap/pull/11526\n &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+\n &::-webkit-input-placeholder { color: @color; } // Safari and Chrome\n}\n\n// Text overflow\n// Requires inline-block or block for proper styling\n.text-overflow() {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n// CSS image replacement\n//\n// Heads up! v3 launched with with only `.hide-text()`, but per our pattern for\n// mixins being reused as classes with the same name, this doesn't hold up. As\n// of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`. Note\n// that we cannot chain the mixins together in Less, so they are repeated.\n//\n// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757\n\n// Deprecated as of v3.0.1 (will be removed in v4)\n.hide-text() {\n font: ~\"0/0\" a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n// New mixin to use as of v3.0.1\n.text-hide() {\n .hide-text();\n}\n\n\n\n// CSS3 PROPERTIES\n// --------------------------------------------------\n\n// Single side border-radius\n.border-top-radius(@radius) {\n border-top-right-radius: @radius;\n border-top-left-radius: @radius;\n}\n.border-right-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-top-right-radius: @radius;\n}\n.border-bottom-radius(@radius) {\n border-bottom-right-radius: @radius;\n border-bottom-left-radius: @radius;\n}\n.border-left-radius(@radius) {\n border-bottom-left-radius: @radius;\n border-top-left-radius: @radius;\n}\n\n// Drop shadows\n//\n// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's\n// supported browsers that have box shadow capabilities now support the\n// standard `box-shadow` property.\n.box-shadow(@shadow) {\n -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1\n box-shadow: @shadow;\n}\n\n// Transitions\n.transition(@transition) {\n -webkit-transition: @transition;\n transition: @transition;\n}\n.transition-property(@transition-property) {\n -webkit-transition-property: @transition-property;\n transition-property: @transition-property;\n}\n.transition-delay(@transition-delay) {\n -webkit-transition-delay: @transition-delay;\n transition-delay: @transition-delay;\n}\n.transition-duration(@transition-duration) {\n -webkit-transition-duration: @transition-duration;\n transition-duration: @transition-duration;\n}\n.transition-transform(@transition) {\n -webkit-transition: -webkit-transform @transition;\n -moz-transition: -moz-transform @transition;\n -o-transition: -o-transform @transition;\n transition: transform @transition;\n}\n\n// Transformations\n.rotate(@degrees) {\n -webkit-transform: rotate(@degrees);\n -ms-transform: rotate(@degrees); // IE9 only\n transform: rotate(@degrees);\n}\n.scale(@ratio; @ratio-y...) {\n -webkit-transform: scale(@ratio, @ratio-y);\n -ms-transform: scale(@ratio, @ratio-y); // IE9 only\n transform: scale(@ratio, @ratio-y);\n}\n.translate(@x; @y) {\n -webkit-transform: translate(@x, @y);\n -ms-transform: translate(@x, @y); // IE9 only\n transform: translate(@x, @y);\n}\n.skew(@x; @y) {\n -webkit-transform: skew(@x, @y);\n -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+\n transform: skew(@x, @y);\n}\n.translate3d(@x; @y; @z) {\n -webkit-transform: translate3d(@x, @y, @z);\n transform: translate3d(@x, @y, @z);\n}\n\n.rotateX(@degrees) {\n -webkit-transform: rotateX(@degrees);\n -ms-transform: rotateX(@degrees); // IE9 only\n transform: rotateX(@degrees);\n}\n.rotateY(@degrees) {\n -webkit-transform: rotateY(@degrees);\n -ms-transform: rotateY(@degrees); // IE9 only\n transform: rotateY(@degrees);\n}\n.perspective(@perspective) {\n -webkit-perspective: @perspective;\n -moz-perspective: @perspective;\n perspective: @perspective;\n}\n.perspective-origin(@perspective) {\n -webkit-perspective-origin: @perspective;\n -moz-perspective-origin: @perspective;\n perspective-origin: @perspective;\n}\n.transform-origin(@origin) {\n -webkit-transform-origin: @origin;\n -moz-transform-origin: @origin;\n -ms-transform-origin: @origin; // IE9 only\n transform-origin: @origin;\n}\n\n// Animations\n.animation(@animation) {\n -webkit-animation: @animation;\n animation: @animation;\n}\n.animation-name(@name) {\n -webkit-animation-name: @name;\n animation-name: @name;\n}\n.animation-duration(@duration) {\n -webkit-animation-duration: @duration;\n animation-duration: @duration;\n}\n.animation-timing-function(@timing-function) {\n -webkit-animation-timing-function: @timing-function;\n animation-timing-function: @timing-function;\n}\n.animation-delay(@delay) {\n -webkit-animation-delay: @delay;\n animation-delay: @delay;\n}\n.animation-iteration-count(@iteration-count) {\n -webkit-animation-iteration-count: @iteration-count;\n animation-iteration-count: @iteration-count;\n}\n.animation-direction(@direction) {\n -webkit-animation-direction: @direction;\n animation-direction: @direction;\n}\n\n// Backface visibility\n// Prevent browsers from flickering when using CSS 3D transforms.\n// Default value is `visible`, but can be changed to `hidden`\n.backface-visibility(@visibility){\n -webkit-backface-visibility: @visibility;\n -moz-backface-visibility: @visibility;\n backface-visibility: @visibility;\n}\n\n// Box sizing\n.box-sizing(@boxmodel) {\n -webkit-box-sizing: @boxmodel;\n -moz-box-sizing: @boxmodel;\n box-sizing: @boxmodel;\n}\n\n// User select\n// For selecting text on the page\n.user-select(@select) {\n -webkit-user-select: @select;\n -moz-user-select: @select;\n -ms-user-select: @select; // IE10+\n user-select: @select;\n}\n\n// Resize anything\n.resizable(@direction) {\n resize: @direction; // Options: horizontal, vertical, both\n overflow: auto; // Safari fix\n}\n\n// CSS3 Content Columns\n.content-columns(@column-count; @column-gap: @grid-gutter-width) {\n -webkit-column-count: @column-count;\n -moz-column-count: @column-count;\n column-count: @column-count;\n -webkit-column-gap: @column-gap;\n -moz-column-gap: @column-gap;\n column-gap: @column-gap;\n}\n\n// Optional hyphenation\n.hyphens(@mode: auto) {\n word-wrap: break-word;\n -webkit-hyphens: @mode;\n -moz-hyphens: @mode;\n -ms-hyphens: @mode; // IE10+\n -o-hyphens: @mode;\n hyphens: @mode;\n}\n\n// Opacity\n.opacity(@opacity) {\n opacity: @opacity;\n // IE8 filter\n @opacity-ie: (@opacity * 100);\n filter: ~\"alpha(opacity=@{opacity-ie})\";\n}\n\n\n\n// GRADIENTS\n// --------------------------------------------------\n\n#gradient {\n\n // Horizontal gradient, from left to right\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(left, color-stop(@start-color @start-percent), color-stop(@end-color @end-percent)); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n // Vertical gradient, from top to bottom\n //\n // Creates two color stops, start and end, by specifying a color and position for each color stop.\n // Color stops are not available in IE9 and below.\n .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {\n background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n background-repeat: repeat-x;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down\n }\n\n .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {\n background-repeat: repeat-x;\n background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+\n background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+\n }\n .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {\n background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);\n background-repeat: no-repeat;\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)\",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback\n }\n .radial(@inner-color: #555; @outer-color: #333) {\n background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);\n background-image: radial-gradient(circle, @inner-color, @outer-color);\n background-repeat: no-repeat;\n }\n .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {\n background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);\n }\n}\n\n// Reset filters for IE\n//\n// When you need to remove a gradient background, do not forget to use this to reset\n// the IE filter for IE9 and below.\n.reset-filter() {\n filter: e(%(\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"));\n}\n\n\n\n// Retina images\n//\n// Short retina mixin for setting background-image and -size\n\n.img-retina(@file-1x; @file-2x; @width-1x; @height-1x) {\n background-image: url(\"@{file-1x}\");\n\n @media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and ( min--moz-device-pixel-ratio: 2),\n only screen and ( -o-min-device-pixel-ratio: 2/1),\n only screen and ( min-device-pixel-ratio: 2),\n only screen and ( min-resolution: 192dpi),\n only screen and ( min-resolution: 2dppx) {\n background-image: url(\"@{file-2x}\");\n background-size: @width-1x @height-1x;\n }\n}\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n.img-responsive(@display: block) {\n display: @display;\n max-width: 100%; // Part 1: Set a maximum relative to the parent\n height: auto; // Part 2: Scale the height according to the width, otherwise you get stretching\n}\n\n\n// COMPONENT MIXINS\n// --------------------------------------------------\n\n// Horizontal dividers\n// -------------------------\n// Dividers (basically an hr) within dropdowns and nav lists\n.nav-divider(@color: #e5e5e5) {\n height: 1px;\n margin: ((@line-height-computed / 2) - 1) 0;\n overflow: hidden;\n background-color: @color;\n}\n\n// Panels\n// -------------------------\n.panel-variant(@border; @heading-text-color; @heading-bg-color; @heading-border) {\n border-color: @border;\n\n & > .panel-heading {\n color: @heading-text-color;\n background-color: @heading-bg-color;\n border-color: @heading-border;\n\n + .panel-collapse .panel-body {\n border-top-color: @border;\n }\n }\n & > .panel-footer {\n + .panel-collapse .panel-body {\n border-bottom-color: @border;\n }\n }\n}\n\n// Alerts\n// -------------------------\n.alert-variant(@background; @border; @text-color) {\n background-color: @background;\n border-color: @border;\n color: @text-color;\n\n hr {\n border-top-color: darken(@border, 5%);\n }\n .alert-link {\n color: darken(@text-color, 10%);\n }\n}\n\n// Tables\n// -------------------------\n.table-row-variant(@state; @background) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table > thead > tr,\n .table > tbody > tr,\n .table > tfoot > tr {\n > td.@{state},\n > th.@{state},\n &.@{state} > td,\n &.@{state} > th {\n background-color: @background;\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover > tbody > tr {\n > td.@{state}:hover,\n > th.@{state}:hover,\n &.@{state}:hover > td,\n &.@{state}:hover > th {\n background-color: darken(@background, 5%);\n }\n }\n}\n\n// List Groups\n// -------------------------\n.list-group-item-variant(@state; @background; @color) {\n .list-group-item-@{state} {\n color: @color;\n background-color: @background;\n\n a& {\n color: @color;\n\n .list-group-item-heading { color: inherit; }\n\n &:hover,\n &:focus {\n color: @color;\n background-color: darken(@background, 5%);\n }\n &.active,\n &.active:hover,\n &.active:focus {\n color: #fff;\n background-color: @color;\n border-color: @color;\n }\n }\n }\n}\n\n// Button variants\n// -------------------------\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n.button-variant(@color; @background; @border) {\n color: @color;\n background-color: @background;\n border-color: @border;\n\n &:hover,\n &:focus,\n &:active,\n &.active,\n .open .dropdown-toggle& {\n color: @color;\n background-color: darken(@background, 8%);\n border-color: darken(@border, 12%);\n }\n &:active,\n &.active,\n .open .dropdown-toggle& {\n background-image: none;\n }\n &.disabled,\n &[disabled],\n fieldset[disabled] & {\n &,\n &:hover,\n &:focus,\n &:active,\n &.active {\n background-color: @background;\n border-color: @border;\n }\n }\n\n .badge {\n color: @background;\n background-color: @color;\n }\n}\n\n// Button sizes\n// -------------------------\n.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n}\n\n// Pagination\n// -------------------------\n.pagination-size(@padding-vertical; @padding-horizontal; @font-size; @border-radius) {\n > li {\n > a,\n > span {\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n }\n &:first-child {\n > a,\n > span {\n .border-left-radius(@border-radius);\n }\n }\n &:last-child {\n > a,\n > span {\n .border-right-radius(@border-radius);\n }\n }\n }\n}\n\n// Labels\n// -------------------------\n.label-variant(@color) {\n background-color: @color;\n &[href] {\n &:hover,\n &:focus {\n background-color: darken(@color, 10%);\n }\n }\n}\n\n// Contextual backgrounds\n// -------------------------\n.bg-variant(@color) {\n background-color: @color;\n a&:hover {\n background-color: darken(@color, 10%);\n }\n}\n\n// Typography\n// -------------------------\n.text-emphasis-variant(@color) {\n color: @color;\n a&:hover {\n color: darken(@color, 10%);\n }\n}\n\n// Navbar vertical align\n// -------------------------\n// Vertically center elements in the navbar.\n// Example: an element has a height of 30px, so write out `.navbar-vertical-align(30px);` to calculate the appropriate top margin.\n.navbar-vertical-align(@element-height) {\n margin-top: ((@navbar-height - @element-height) / 2);\n margin-bottom: ((@navbar-height - @element-height) / 2);\n}\n\n// Progress bars\n// -------------------------\n.progress-bar-variant(@color) {\n background-color: @color;\n .progress-striped & {\n #gradient > .striped();\n }\n}\n\n// Responsive utilities\n// -------------------------\n// More easily include all the states for responsive-utilities.less.\n.responsive-visibility() {\n display: block !important;\n table& { display: table; }\n tr& { display: table-row !important; }\n th&,\n td& { display: table-cell !important; }\n}\n\n.responsive-invisibility() {\n display: none !important;\n}\n\n\n// Grid System\n// -----------\n\n// Centered container element\n.container-fixed() {\n margin-right: auto;\n margin-left: auto;\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n &:extend(.clearfix all);\n}\n\n// Creates a wrapper for a series of columns\n.make-row(@gutter: @grid-gutter-width) {\n margin-left: (@gutter / -2);\n margin-right: (@gutter / -2);\n &:extend(.clearfix all);\n}\n\n// Generate the extra small columns\n.make-xs-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n float: left;\n width: percentage((@columns / @grid-columns));\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n}\n.make-xs-column-offset(@columns) {\n @media (min-width: @screen-xs-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-xs-column-push(@columns) {\n @media (min-width: @screen-xs-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-xs-column-pull(@columns) {\n @media (min-width: @screen-xs-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the small columns\n.make-sm-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-sm-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-offset(@columns) {\n @media (min-width: @screen-sm-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-push(@columns) {\n @media (min-width: @screen-sm-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-sm-column-pull(@columns) {\n @media (min-width: @screen-sm-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the medium columns\n.make-md-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-md-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-offset(@columns) {\n @media (min-width: @screen-md-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-push(@columns) {\n @media (min-width: @screen-md-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-md-column-pull(@columns) {\n @media (min-width: @screen-md-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Generate the large columns\n.make-lg-column(@columns; @gutter: @grid-gutter-width) {\n position: relative;\n min-height: 1px;\n padding-left: (@gutter / 2);\n padding-right: (@gutter / 2);\n\n @media (min-width: @screen-lg-min) {\n float: left;\n width: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-offset(@columns) {\n @media (min-width: @screen-lg-min) {\n margin-left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-push(@columns) {\n @media (min-width: @screen-lg-min) {\n left: percentage((@columns / @grid-columns));\n }\n}\n.make-lg-column-pull(@columns) {\n @media (min-width: @screen-lg-min) {\n right: percentage((@columns / @grid-columns));\n }\n}\n\n\n// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `@grid-columns`.\n\n.make-grid-columns() {\n // Common styles for all sizes of grid columns, widths 1-12\n .col(@index) when (@index = 1) { // initial\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general; \"=<\" isn't a typo\n @item: ~\".col-xs-@{index}, .col-sm-@{index}, .col-md-@{index}, .col-lg-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n position: relative;\n // Prevent columns from collapsing when empty\n min-height: 1px;\n // Inner gutter via padding\n padding-left: (@grid-gutter-width / 2);\n padding-right: (@grid-gutter-width / 2);\n }\n }\n .col(1); // kickstart it\n}\n\n.float-grid-columns(@class) {\n .col(@index) when (@index = 1) { // initial\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), @item);\n }\n .col(@index, @list) when (@index =< @grid-columns) { // general\n @item: ~\".col-@{class}-@{index}\";\n .col((@index + 1), ~\"@{list}, @{item}\");\n }\n .col(@index, @list) when (@index > @grid-columns) { // terminal\n @{list} {\n float: left;\n }\n }\n .col(1); // kickstart it\n}\n\n.calc-grid-column(@index, @class, @type) when (@type = width) and (@index > 0) {\n .col-@{class}-@{index} {\n width: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = push) {\n .col-@{class}-push-@{index} {\n left: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = pull) {\n .col-@{class}-pull-@{index} {\n right: percentage((@index / @grid-columns));\n }\n}\n.calc-grid-column(@index, @class, @type) when (@type = offset) {\n .col-@{class}-offset-@{index} {\n margin-left: percentage((@index / @grid-columns));\n }\n}\n\n// Basic looping in LESS\n.loop-grid-columns(@index, @class, @type) when (@index >= 0) {\n .calc-grid-column(@index, @class, @type);\n // next iteration\n .loop-grid-columns((@index - 1), @class, @type);\n}\n\n// Create grid for specific class\n.make-grid(@class) {\n .float-grid-columns(@class);\n .loop-grid-columns(@grid-columns, @class, width);\n .loop-grid-columns(@grid-columns, @class, pull);\n .loop-grid-columns(@grid-columns, @class, push);\n .loop-grid-columns(@grid-columns, @class, offset);\n}\n\n// Form validation states\n//\n// Used in forms.less to generate the form validation CSS for warnings, errors,\n// and successes.\n\n.form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {\n // Color the label and help text\n .help-block,\n .control-label,\n .radio,\n .checkbox,\n .radio-inline,\n .checkbox-inline {\n color: @text-color;\n }\n // Set the border and box shadow on specific inputs to match\n .form-control {\n border-color: @border-color;\n .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work\n &:focus {\n border-color: darken(@border-color, 10%);\n @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);\n .box-shadow(@shadow);\n }\n }\n // Set validation states also for addons\n .input-group-addon {\n color: @text-color;\n border-color: @border-color;\n background-color: @background-color;\n }\n // Optional feedback icon\n .form-control-feedback {\n color: @text-color;\n }\n}\n\n// Form control focus state\n//\n// Generate a customized focus state and for any input with the specified color,\n// which defaults to the `@input-focus-border` variable.\n//\n// We highly encourage you to not customize the default value, but instead use\n// this to tweak colors on an as-needed basis. This aesthetic change is based on\n// WebKit's default styles, but applicable to a wider range of browsers. Its\n// usability and accessibility should be taken into account with any change.\n//\n// Example usage: change the default blue border and shadow to white for better\n// contrast against a dark gray background.\n\n.form-control-focus(@color: @input-border-focus) {\n @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);\n &:focus {\n border-color: @color;\n outline: 0;\n .box-shadow(~\"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}\");\n }\n}\n\n// Form control sizing\n//\n// Relative text size, padding, and border-radii changes for form controls. For\n// horizontal sizing, wrap controls in the predefined grid classes. ``\n// element gets special love because it's special, and that's a fact!\n\n.input-size(@input-height; @padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) {\n height: @input-height;\n padding: @padding-vertical @padding-horizontal;\n font-size: @font-size;\n line-height: @line-height;\n border-radius: @border-radius;\n\n select& {\n height: @input-height;\n line-height: @input-height;\n }\n\n textarea&,\n select[multiple]& {\n height: auto;\n }\n}\n","//\n// Variables\n// --------------------------------------------------\n\n\n//== Colors\n//\n//## Gray and brand colors for use across Bootstrap.\n\n@gray-darker: lighten(#000, 13.5%); // #222\n@gray-dark: lighten(#000, 20%); // #333\n@gray: lighten(#000, 33.5%); // #555\n@gray-light: lighten(#000, 60%); // #999\n@gray-lighter: lighten(#000, 93.5%); // #eee\n\n@brand-primary: #428bca;\n@brand-success: #5cb85c;\n@brand-info: #5bc0de;\n@brand-warning: #f0ad4e;\n@brand-danger: #d9534f;\n\n\n//== Scaffolding\n//\n// ## Settings for some of the most global styles.\n\n//** Background color for ``.\n@body-bg: #fff;\n//** Global text color on ``.\n@text-color: @gray-dark;\n\n//** Global textual link color.\n@link-color: @brand-primary;\n//** Link hover color set via `darken()` function.\n@link-hover-color: darken(@link-color, 15%);\n\n\n//== Typography\n//\n//## Font, line-height, and color for body text, headings, and more.\n\n@font-family-sans-serif: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n@font-family-serif: Georgia, \"Times New Roman\", Times, serif;\n//** Default monospace fonts for ``, ``, and `
`.\n@font-family-monospace:   Menlo, Monaco, Consolas, \"Courier New\", monospace;\n@font-family-base:        @font-family-sans-serif;\n\n@font-size-base:          14px;\n@font-size-large:         ceil((@font-size-base * 1.25)); // ~18px\n@font-size-small:         ceil((@font-size-base * 0.85)); // ~12px\n\n@font-size-h1:            floor((@font-size-base * 2.6)); // ~36px\n@font-size-h2:            floor((@font-size-base * 2.15)); // ~30px\n@font-size-h3:            ceil((@font-size-base * 1.7)); // ~24px\n@font-size-h4:            ceil((@font-size-base * 1.25)); // ~18px\n@font-size-h5:            @font-size-base;\n@font-size-h6:            ceil((@font-size-base * 0.85)); // ~12px\n\n//** Unit-less `line-height` for use in components like buttons.\n@line-height-base:        1.428571429; // 20/14\n//** Computed \"line-height\" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.\n@line-height-computed:    floor((@font-size-base * @line-height-base)); // ~20px\n\n//** By default, this inherits from the ``.\n@headings-font-family:    inherit;\n@headings-font-weight:    500;\n@headings-line-height:    1.1;\n@headings-color:          inherit;\n\n\n//-- Iconography\n//\n//## Specify custom locations of the include Glyphicons icon font. Useful for those including Bootstrap via Bower.\n\n@icon-font-path:          \"../fonts/\";\n@icon-font-name:          \"glyphicons-halflings-regular\";\n@icon-font-svg-id:        \"glyphicons_halflingsregular\";\n\n//== Components\n//\n//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).\n\n@padding-base-vertical:     6px;\n@padding-base-horizontal:   12px;\n\n@padding-large-vertical:    10px;\n@padding-large-horizontal:  16px;\n\n@padding-small-vertical:    5px;\n@padding-small-horizontal:  10px;\n\n@padding-xs-vertical:       1px;\n@padding-xs-horizontal:     5px;\n\n@line-height-large:         1.33;\n@line-height-small:         1.5;\n\n@border-radius-base:        4px;\n@border-radius-large:       6px;\n@border-radius-small:       3px;\n\n//** Global color for active items (e.g., navs or dropdowns).\n@component-active-color:    #fff;\n//** Global background color for active items (e.g., navs or dropdowns).\n@component-active-bg:       @brand-primary;\n\n//** Width of the `border` for generating carets that indicator dropdowns.\n@caret-width-base:          4px;\n//** Carets increase slightly in size for larger components.\n@caret-width-large:         5px;\n\n\n//== Tables\n//\n//## Customizes the `.table` component with basic values, each used across all table variations.\n\n//** Padding for ``s and ``s.\n@table-cell-padding:            8px;\n//** Padding for cells in `.table-condensed`.\n@table-condensed-cell-padding:  5px;\n\n//** Default background color used for all tables.\n@table-bg:                      transparent;\n//** Background color used for `.table-striped`.\n@table-bg-accent:               #f9f9f9;\n//** Background color used for `.table-hover`.\n@table-bg-hover:                #f5f5f5;\n@table-bg-active:               @table-bg-hover;\n\n//** Border color for table and cell borders.\n@table-border-color:            #ddd;\n\n\n//== Buttons\n//\n//## For each of Bootstrap's buttons, define text, background and border color.\n\n@btn-font-weight:                normal;\n\n@btn-default-color:              #333;\n@btn-default-bg:                 #fff;\n@btn-default-border:             #ccc;\n\n@btn-primary-color:              #fff;\n@btn-primary-bg:                 @brand-primary;\n@btn-primary-border:             darken(@btn-primary-bg, 5%);\n\n@btn-success-color:              #fff;\n@btn-success-bg:                 @brand-success;\n@btn-success-border:             darken(@btn-success-bg, 5%);\n\n@btn-info-color:                 #fff;\n@btn-info-bg:                    @brand-info;\n@btn-info-border:                darken(@btn-info-bg, 5%);\n\n@btn-warning-color:              #fff;\n@btn-warning-bg:                 @brand-warning;\n@btn-warning-border:             darken(@btn-warning-bg, 5%);\n\n@btn-danger-color:               #fff;\n@btn-danger-bg:                  @brand-danger;\n@btn-danger-border:              darken(@btn-danger-bg, 5%);\n\n@btn-link-disabled-color:        @gray-light;\n\n\n//== Forms\n//\n//##\n\n//** `` background color\n@input-bg:                       #fff;\n//** `` background color\n@input-bg-disabled:              @gray-lighter;\n\n//** Text color for ``s\n@input-color:                    @gray;\n//** `` border color\n@input-border:                   #ccc;\n//** `` border radius\n@input-border-radius:            @border-radius-base;\n//** Border color for inputs on focus\n@input-border-focus:             #66afe9;\n\n//** Placeholder text color\n@input-color-placeholder:        @gray-light;\n\n//** Default `.form-control` height\n@input-height-base:              (@line-height-computed + (@padding-base-vertical * 2) + 2);\n//** Large `.form-control` height\n@input-height-large:             (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);\n//** Small `.form-control` height\n@input-height-small:             (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);\n\n@legend-color:                   @gray-dark;\n@legend-border-color:            #e5e5e5;\n\n//** Background color for textual input addons\n@input-group-addon-bg:           @gray-lighter;\n//** Border color for textual input addons\n@input-group-addon-border-color: @input-border;\n\n\n//== Dropdowns\n//\n//## Dropdown menu container and contents.\n\n//** Background for the dropdown menu.\n@dropdown-bg:                    #fff;\n//** Dropdown menu `border-color`.\n@dropdown-border:                rgba(0,0,0,.15);\n//** Dropdown menu `border-color` **for IE8**.\n@dropdown-fallback-border:       #ccc;\n//** Divider color for between dropdown items.\n@dropdown-divider-bg:            #e5e5e5;\n\n//** Dropdown link text color.\n@dropdown-link-color:            @gray-dark;\n//** Hover color for dropdown links.\n@dropdown-link-hover-color:      darken(@gray-dark, 5%);\n//** Hover background for dropdown links.\n@dropdown-link-hover-bg:         #f5f5f5;\n\n//** Active dropdown menu item text color.\n@dropdown-link-active-color:     @component-active-color;\n//** Active dropdown menu item background color.\n@dropdown-link-active-bg:        @component-active-bg;\n\n//** Disabled dropdown menu item background color.\n@dropdown-link-disabled-color:   @gray-light;\n\n//** Text color for headers within dropdown menus.\n@dropdown-header-color:          @gray-light;\n\n// Note: Deprecated @dropdown-caret-color as of v3.1.0\n@dropdown-caret-color:           #000;\n\n\n//-- Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n//\n// Note: These variables are not generated into the Customizer.\n\n@zindex-navbar:            1000;\n@zindex-dropdown:          1000;\n@zindex-popover:           1010;\n@zindex-tooltip:           1030;\n@zindex-navbar-fixed:      1030;\n@zindex-modal-background:  1040;\n@zindex-modal:             1050;\n\n\n//== Media queries breakpoints\n//\n//## Define the breakpoints at which your layout will change, adapting to different screen sizes.\n\n// Extra small screen / phone\n// Note: Deprecated @screen-xs and @screen-phone as of v3.0.1\n@screen-xs:                  480px;\n@screen-xs-min:              @screen-xs;\n@screen-phone:               @screen-xs-min;\n\n// Small screen / tablet\n// Note: Deprecated @screen-sm and @screen-tablet as of v3.0.1\n@screen-sm:                  768px;\n@screen-sm-min:              @screen-sm;\n@screen-tablet:              @screen-sm-min;\n\n// Medium screen / desktop\n// Note: Deprecated @screen-md and @screen-desktop as of v3.0.1\n@screen-md:                  992px;\n@screen-md-min:              @screen-md;\n@screen-desktop:             @screen-md-min;\n\n// Large screen / wide desktop\n// Note: Deprecated @screen-lg and @screen-lg-desktop as of v3.0.1\n@screen-lg:                  1200px;\n@screen-lg-min:              @screen-lg;\n@screen-lg-desktop:          @screen-lg-min;\n\n// So media queries don't overlap when required, provide a maximum\n@screen-xs-max:              (@screen-sm-min - 1);\n@screen-sm-max:              (@screen-md-min - 1);\n@screen-md-max:              (@screen-lg-min - 1);\n\n\n//== Grid system\n//\n//## Define your custom responsive grid.\n\n//** Number of columns in the grid.\n@grid-columns:              12;\n//** Padding between columns. Gets divided in half for the left and right.\n@grid-gutter-width:         30px;\n// Navbar collapse\n//** Point at which the navbar becomes uncollapsed.\n@grid-float-breakpoint:     @screen-sm-min;\n//** Point at which the navbar begins collapsing.\n@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);\n\n\n//== Container sizes\n//\n//## Define the maximum width of `.container` for different screen sizes.\n\n// Small screen / tablet\n@container-tablet:             ((720px + @grid-gutter-width));\n//** For `@screen-sm-min` and up.\n@container-sm:                 @container-tablet;\n\n// Medium screen / desktop\n@container-desktop:            ((940px + @grid-gutter-width));\n//** For `@screen-md-min` and up.\n@container-md:                 @container-desktop;\n\n// Large screen / wide desktop\n@container-large-desktop:      ((1140px + @grid-gutter-width));\n//** For `@screen-lg-min` and up.\n@container-lg:                 @container-large-desktop;\n\n\n//== Navbar\n//\n//##\n\n// Basics of a navbar\n@navbar-height:                    50px;\n@navbar-margin-bottom:             @line-height-computed;\n@navbar-border-radius:             @border-radius-base;\n@navbar-padding-horizontal:        floor((@grid-gutter-width / 2));\n@navbar-padding-vertical:          ((@navbar-height - @line-height-computed) / 2);\n@navbar-collapse-max-height:       340px;\n\n@navbar-default-color:             #777;\n@navbar-default-bg:                #f8f8f8;\n@navbar-default-border:            darken(@navbar-default-bg, 6.5%);\n\n// Navbar links\n@navbar-default-link-color:                #777;\n@navbar-default-link-hover-color:          #333;\n@navbar-default-link-hover-bg:             transparent;\n@navbar-default-link-active-color:         #555;\n@navbar-default-link-active-bg:            darken(@navbar-default-bg, 6.5%);\n@navbar-default-link-disabled-color:       #ccc;\n@navbar-default-link-disabled-bg:          transparent;\n\n// Navbar brand label\n@navbar-default-brand-color:               @navbar-default-link-color;\n@navbar-default-brand-hover-color:         darken(@navbar-default-brand-color, 10%);\n@navbar-default-brand-hover-bg:            transparent;\n\n// Navbar toggle\n@navbar-default-toggle-hover-bg:           #ddd;\n@navbar-default-toggle-icon-bar-bg:        #888;\n@navbar-default-toggle-border-color:       #ddd;\n\n\n// Inverted navbar\n// Reset inverted navbar basics\n@navbar-inverse-color:                      @gray-light;\n@navbar-inverse-bg:                         #222;\n@navbar-inverse-border:                     darken(@navbar-inverse-bg, 10%);\n\n// Inverted navbar links\n@navbar-inverse-link-color:                 @gray-light;\n@navbar-inverse-link-hover-color:           #fff;\n@navbar-inverse-link-hover-bg:              transparent;\n@navbar-inverse-link-active-color:          @navbar-inverse-link-hover-color;\n@navbar-inverse-link-active-bg:             darken(@navbar-inverse-bg, 10%);\n@navbar-inverse-link-disabled-color:        #444;\n@navbar-inverse-link-disabled-bg:           transparent;\n\n// Inverted navbar brand label\n@navbar-inverse-brand-color:                @navbar-inverse-link-color;\n@navbar-inverse-brand-hover-color:          #fff;\n@navbar-inverse-brand-hover-bg:             transparent;\n\n// Inverted navbar toggle\n@navbar-inverse-toggle-hover-bg:            #333;\n@navbar-inverse-toggle-icon-bar-bg:         #fff;\n@navbar-inverse-toggle-border-color:        #333;\n\n\n//== Navs\n//\n//##\n\n//=== Shared nav styles\n@nav-link-padding:                          10px 15px;\n@nav-link-hover-bg:                         @gray-lighter;\n\n@nav-disabled-link-color:                   @gray-light;\n@nav-disabled-link-hover-color:             @gray-light;\n\n@nav-open-link-hover-color:                 #fff;\n\n//== Tabs\n@nav-tabs-border-color:                     #ddd;\n\n@nav-tabs-link-hover-border-color:          @gray-lighter;\n\n@nav-tabs-active-link-hover-bg:             @body-bg;\n@nav-tabs-active-link-hover-color:          @gray;\n@nav-tabs-active-link-hover-border-color:   #ddd;\n\n@nav-tabs-justified-link-border-color:            #ddd;\n@nav-tabs-justified-active-link-border-color:     @body-bg;\n\n//== Pills\n@nav-pills-border-radius:                   @border-radius-base;\n@nav-pills-active-link-hover-bg:            @component-active-bg;\n@nav-pills-active-link-hover-color:         @component-active-color;\n\n\n//== Pagination\n//\n//##\n\n@pagination-color:                     @link-color;\n@pagination-bg:                        #fff;\n@pagination-border:                    #ddd;\n\n@pagination-hover-color:               @link-hover-color;\n@pagination-hover-bg:                  @gray-lighter;\n@pagination-hover-border:              #ddd;\n\n@pagination-active-color:              #fff;\n@pagination-active-bg:                 @brand-primary;\n@pagination-active-border:             @brand-primary;\n\n@pagination-disabled-color:            @gray-light;\n@pagination-disabled-bg:               #fff;\n@pagination-disabled-border:           #ddd;\n\n\n//== Pager\n//\n//##\n\n@pager-bg:                             @pagination-bg;\n@pager-border:                         @pagination-border;\n@pager-border-radius:                  15px;\n\n@pager-hover-bg:                       @pagination-hover-bg;\n\n@pager-active-bg:                      @pagination-active-bg;\n@pager-active-color:                   @pagination-active-color;\n\n@pager-disabled-color:                 @pagination-disabled-color;\n\n\n//== Jumbotron\n//\n//##\n\n@jumbotron-padding:              30px;\n@jumbotron-color:                inherit;\n@jumbotron-bg:                   @gray-lighter;\n@jumbotron-heading-color:        inherit;\n@jumbotron-font-size:            ceil((@font-size-base * 1.5));\n\n\n//== Form states and alerts\n//\n//## Define colors for form feedback states and, by default, alerts.\n\n@state-success-text:             #3c763d;\n@state-success-bg:               #dff0d8;\n@state-success-border:           darken(spin(@state-success-bg, -10), 5%);\n\n@state-info-text:                #31708f;\n@state-info-bg:                  #d9edf7;\n@state-info-border:              darken(spin(@state-info-bg, -10), 7%);\n\n@state-warning-text:             #8a6d3b;\n@state-warning-bg:               #fcf8e3;\n@state-warning-border:           darken(spin(@state-warning-bg, -10), 5%);\n\n@state-danger-text:              #a94442;\n@state-danger-bg:                #f2dede;\n@state-danger-border:            darken(spin(@state-danger-bg, -10), 5%);\n\n\n//== Tooltips\n//\n//##\n\n//** Tooltip max width\n@tooltip-max-width:           200px;\n//** Tooltip text color\n@tooltip-color:               #fff;\n//** Tooltip background color\n@tooltip-bg:                  #000;\n@tooltip-opacity:             .9;\n\n//** Tooltip arrow width\n@tooltip-arrow-width:         5px;\n//** Tooltip arrow color\n@tooltip-arrow-color:         @tooltip-bg;\n\n\n//== Popovers\n//\n//##\n\n//** Popover body background color\n@popover-bg:                          #fff;\n//** Popover maximum width\n@popover-max-width:                   276px;\n//** Popover border color\n@popover-border-color:                rgba(0,0,0,.2);\n//** Popover fallback border color\n@popover-fallback-border-color:       #ccc;\n\n//** Popover title background color\n@popover-title-bg:                    darken(@popover-bg, 3%);\n\n//** Popover arrow width\n@popover-arrow-width:                 10px;\n//** Popover arrow color\n@popover-arrow-color:                 #fff;\n\n//** Popover outer arrow width\n@popover-arrow-outer-width:           (@popover-arrow-width + 1);\n//** Popover outer arrow color\n@popover-arrow-outer-color:           fadein(@popover-border-color, 5%);\n//** Popover outer arrow fallback color\n@popover-arrow-outer-fallback-color:  darken(@popover-fallback-border-color, 20%);\n\n\n//== Labels\n//\n//##\n\n//** Default label background color\n@label-default-bg:            @gray-light;\n//** Primary label background color\n@label-primary-bg:            @brand-primary;\n//** Success label background color\n@label-success-bg:            @brand-success;\n//** Info label background color\n@label-info-bg:               @brand-info;\n//** Warning label background color\n@label-warning-bg:            @brand-warning;\n//** Danger label background color\n@label-danger-bg:             @brand-danger;\n\n//** Default label text color\n@label-color:                 #fff;\n//** Default text color of a linked label\n@label-link-hover-color:      #fff;\n\n\n//== Modals\n//\n//##\n\n//** Padding applied to the modal body\n@modal-inner-padding:         20px;\n\n//** Padding applied to the modal title\n@modal-title-padding:         15px;\n//** Modal title line-height\n@modal-title-line-height:     @line-height-base;\n\n//** Background color of modal content area\n@modal-content-bg:                             #fff;\n//** Modal content border color\n@modal-content-border-color:                   rgba(0,0,0,.2);\n//** Modal content border color **for IE8**\n@modal-content-fallback-border-color:          #999;\n\n//** Modal backdrop background color\n@modal-backdrop-bg:           #000;\n//** Modal backdrop opacity\n@modal-backdrop-opacity:      .5;\n//** Modal header border color\n@modal-header-border-color:   #e5e5e5;\n//** Modal footer border color\n@modal-footer-border-color:   @modal-header-border-color;\n\n@modal-lg:                    900px;\n@modal-md:                    600px;\n@modal-sm:                    300px;\n\n\n//== Alerts\n//\n//## Define alert colors, border radius, and padding.\n\n@alert-padding:               15px;\n@alert-border-radius:         @border-radius-base;\n@alert-link-font-weight:      bold;\n\n@alert-success-bg:            @state-success-bg;\n@alert-success-text:          @state-success-text;\n@alert-success-border:        @state-success-border;\n\n@alert-info-bg:               @state-info-bg;\n@alert-info-text:             @state-info-text;\n@alert-info-border:           @state-info-border;\n\n@alert-warning-bg:            @state-warning-bg;\n@alert-warning-text:          @state-warning-text;\n@alert-warning-border:        @state-warning-border;\n\n@alert-danger-bg:             @state-danger-bg;\n@alert-danger-text:           @state-danger-text;\n@alert-danger-border:         @state-danger-border;\n\n\n//== Progress bars\n//\n//##\n\n//** Background color of the whole progress component\n@progress-bg:                 #f5f5f5;\n//** Progress bar text color\n@progress-bar-color:          #fff;\n\n//** Default progress bar color\n@progress-bar-bg:             @brand-primary;\n//** Success progress bar color\n@progress-bar-success-bg:     @brand-success;\n//** Warning progress bar color\n@progress-bar-warning-bg:     @brand-warning;\n//** Danger progress bar color\n@progress-bar-danger-bg:      @brand-danger;\n//** Info progress bar color\n@progress-bar-info-bg:        @brand-info;\n\n\n//== List group\n//\n//##\n\n//** Background color on `.list-group-item`\n@list-group-bg:                 #fff;\n//** `.list-group-item` border color\n@list-group-border:             #ddd;\n//** List group border radius\n@list-group-border-radius:      @border-radius-base;\n\n//** Background color of single list elements on hover\n@list-group-hover-bg:           #f5f5f5;\n//** Text color of active list elements\n@list-group-active-color:       @component-active-color;\n//** Background color of active list elements\n@list-group-active-bg:          @component-active-bg;\n//** Border color of active list elements\n@list-group-active-border:      @list-group-active-bg;\n@list-group-active-text-color:  lighten(@list-group-active-bg, 40%);\n\n@list-group-link-color:         #555;\n@list-group-link-heading-color: #333;\n\n\n//== Panels\n//\n//##\n\n@panel-bg:                    #fff;\n@panel-body-padding:          15px;\n@panel-border-radius:         @border-radius-base;\n\n//** Border color for elements within panels\n@panel-inner-border:          #ddd;\n@panel-footer-bg:             #f5f5f5;\n\n@panel-default-text:          @gray-dark;\n@panel-default-border:        #ddd;\n@panel-default-heading-bg:    #f5f5f5;\n\n@panel-primary-text:          #fff;\n@panel-primary-border:        @brand-primary;\n@panel-primary-heading-bg:    @brand-primary;\n\n@panel-success-text:          @state-success-text;\n@panel-success-border:        @state-success-border;\n@panel-success-heading-bg:    @state-success-bg;\n\n@panel-info-text:             @state-info-text;\n@panel-info-border:           @state-info-border;\n@panel-info-heading-bg:       @state-info-bg;\n\n@panel-warning-text:          @state-warning-text;\n@panel-warning-border:        @state-warning-border;\n@panel-warning-heading-bg:    @state-warning-bg;\n\n@panel-danger-text:           @state-danger-text;\n@panel-danger-border:         @state-danger-border;\n@panel-danger-heading-bg:     @state-danger-bg;\n\n\n//== Thumbnails\n//\n//##\n\n//** Padding around the thumbnail image\n@thumbnail-padding:           4px;\n//** Thumbnail background color\n@thumbnail-bg:                @body-bg;\n//** Thumbnail border color\n@thumbnail-border:            #ddd;\n//** Thumbnail border radius\n@thumbnail-border-radius:     @border-radius-base;\n\n//** Custom text color for thumbnail captions\n@thumbnail-caption-color:     @text-color;\n//** Padding around the thumbnail caption\n@thumbnail-caption-padding:   9px;\n\n\n//== Wells\n//\n//##\n\n@well-bg:                     #f5f5f5;\n@well-border:                 darken(@well-bg, 7%);\n\n\n//== Badges\n//\n//##\n\n@badge-color:                 #fff;\n//** Linked badge text color on hover\n@badge-link-hover-color:      #fff;\n@badge-bg:                    @gray-light;\n\n//** Badge text color in active nav link\n@badge-active-color:          @link-color;\n//** Badge background color in active nav link\n@badge-active-bg:             #fff;\n\n@badge-font-weight:           bold;\n@badge-line-height:           1;\n@badge-border-radius:         10px;\n\n\n//== Breadcrumbs\n//\n//##\n\n@breadcrumb-padding-vertical:   8px;\n@breadcrumb-padding-horizontal: 15px;\n//** Breadcrumb background color\n@breadcrumb-bg:                 #f5f5f5;\n//** Breadcrumb text color\n@breadcrumb-color:              #ccc;\n//** Text color of current page in the breadcrumb\n@breadcrumb-active-color:       @gray-light;\n//** Textual separator for between breadcrumb elements\n@breadcrumb-separator:          \"/\";\n\n\n//== Carousel\n//\n//##\n\n@carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6);\n\n@carousel-control-color:                      #fff;\n@carousel-control-width:                      15%;\n@carousel-control-opacity:                    .5;\n@carousel-control-font-size:                  20px;\n\n@carousel-indicator-active-bg:                #fff;\n@carousel-indicator-border-color:             #fff;\n\n@carousel-caption-color:                      #fff;\n\n\n//== Close\n//\n//##\n\n@close-font-weight:           bold;\n@close-color:                 #000;\n@close-text-shadow:           0 1px 0 #fff;\n\n\n//== Code\n//\n//##\n\n@code-color:                  #c7254e;\n@code-bg:                     #f9f2f4;\n\n@kbd-color:                   #fff;\n@kbd-bg:                      #333;\n\n@pre-bg:                      #f5f5f5;\n@pre-color:                   @gray-dark;\n@pre-border-color:            #ccc;\n@pre-scrollable-max-height:   340px;\n\n\n//== Type\n//\n//##\n\n//** Text muted color\n@text-muted:                  @gray-light;\n//** Abbreviations and acronyms border color\n@abbr-border-color:           @gray-light;\n//** Headings small color\n@headings-small-color:        @gray-light;\n//** Blockquote small color\n@blockquote-small-color:      @gray-light;\n//** Blockquote font size\n@blockquote-font-size:        (@font-size-base * 1.25);\n//** Blockquote border color\n@blockquote-border-color:     @gray-lighter;\n//** Page header border color\n@page-header-border-color:    @gray-lighter;\n\n\n//== Miscellaneous\n//\n//##\n\n//** Horizontal line color.\n@hr-border:                   @gray-lighter;\n\n//** Horizontal offset for forms and lists.\n@component-offset-horizontal: 180px;\n","//\n// Thumbnails\n// --------------------------------------------------\n\n\n// Mixin and adjust the regular image class\n.thumbnail {\n  display: block;\n  padding: @thumbnail-padding;\n  margin-bottom: @line-height-computed;\n  line-height: @line-height-base;\n  background-color: @thumbnail-bg;\n  border: 1px solid @thumbnail-border;\n  border-radius: @thumbnail-border-radius;\n  .transition(all .2s ease-in-out);\n\n  > img,\n  a > img {\n    &:extend(.img-responsive);\n    margin-left: auto;\n    margin-right: auto;\n  }\n\n  // Add a hover state for linked versions only\n  a&:hover,\n  a&:focus,\n  a&.active {\n    border-color: @link-color;\n  }\n\n  // Image captions\n  .caption {\n    padding: @thumbnail-caption-padding;\n    color: @thumbnail-caption-color;\n  }\n}\n","//\n// Carousel\n// --------------------------------------------------\n\n\n// Wrapper for the slide container and indicators\n.carousel {\n  position: relative;\n}\n\n.carousel-inner {\n  position: relative;\n  overflow: hidden;\n  width: 100%;\n\n  > .item {\n    display: none;\n    position: relative;\n    .transition(.6s ease-in-out left);\n\n    // Account for jankitude on images\n    > img,\n    > a > img {\n      &:extend(.img-responsive);\n      line-height: 1;\n    }\n  }\n\n  > .active,\n  > .next,\n  > .prev { display: block; }\n\n  > .active {\n    left: 0;\n  }\n\n  > .next,\n  > .prev {\n    position: absolute;\n    top: 0;\n    width: 100%;\n  }\n\n  > .next {\n    left: 100%;\n  }\n  > .prev {\n    left: -100%;\n  }\n  > .next.left,\n  > .prev.right {\n    left: 0;\n  }\n\n  > .active.left {\n    left: -100%;\n  }\n  > .active.right {\n    left: 100%;\n  }\n\n}\n\n// Left/right controls for nav\n// ---------------------------\n\n.carousel-control {\n  position: absolute;\n  top: 0;\n  left: 0;\n  bottom: 0;\n  width: @carousel-control-width;\n  .opacity(@carousel-control-opacity);\n  font-size: @carousel-control-font-size;\n  color: @carousel-control-color;\n  text-align: center;\n  text-shadow: @carousel-text-shadow;\n  // We can't have this transition here because WebKit cancels the carousel\n  // animation if you trip this while in the middle of another animation.\n\n  // Set gradients for backgrounds\n  &.left {\n    #gradient > .horizontal(@start-color: rgba(0,0,0,.5); @end-color: rgba(0,0,0,.0001));\n  }\n  &.right {\n    left: auto;\n    right: 0;\n    #gradient > .horizontal(@start-color: rgba(0,0,0,.0001); @end-color: rgba(0,0,0,.5));\n  }\n\n  // Hover/focus state\n  &:hover,\n  &:focus {\n    outline: none;\n    color: @carousel-control-color;\n    text-decoration: none;\n    .opacity(.9);\n  }\n\n  // Toggles\n  .icon-prev,\n  .icon-next,\n  .glyphicon-chevron-left,\n  .glyphicon-chevron-right {\n    position: absolute;\n    top: 50%;\n    z-index: 5;\n    display: inline-block;\n  }\n  .icon-prev,\n  .glyphicon-chevron-left {\n    left: 50%;\n  }\n  .icon-next,\n  .glyphicon-chevron-right {\n    right: 50%;\n  }\n  .icon-prev,\n  .icon-next {\n    width:  20px;\n    height: 20px;\n    margin-top: -10px;\n    margin-left: -10px;\n    font-family: serif;\n  }\n\n  .icon-prev {\n    &:before {\n      content: '\\2039';// SINGLE LEFT-POINTING ANGLE QUOTATION MARK (U+2039)\n    }\n  }\n  .icon-next {\n    &:before {\n      content: '\\203a';// SINGLE RIGHT-POINTING ANGLE QUOTATION MARK (U+203A)\n    }\n  }\n}\n\n// Optional indicator pips\n//\n// Add an unordered list with the following class and add a list item for each\n// slide your carousel holds.\n\n.carousel-indicators {\n  position: absolute;\n  bottom: 10px;\n  left: 50%;\n  z-index: 15;\n  width: 60%;\n  margin-left: -30%;\n  padding-left: 0;\n  list-style: none;\n  text-align: center;\n\n  li {\n    display: inline-block;\n    width:  10px;\n    height: 10px;\n    margin: 1px;\n    text-indent: -999px;\n    border: 1px solid @carousel-indicator-border-color;\n    border-radius: 10px;\n    cursor: pointer;\n\n    // IE8-9 hack for event handling\n    //\n    // Internet Explorer 8-9 does not support clicks on elements without a set\n    // `background-color`. We cannot use `filter` since that's not viewed as a\n    // background color by the browser. Thus, a hack is needed.\n    //\n    // For IE8, we set solid black as it doesn't support `rgba()`. For IE9, we\n    // set alpha transparency for the best results possible.\n    background-color: #000 \\9; // IE8\n    background-color: rgba(0,0,0,0); // IE9\n  }\n  .active {\n    margin: 0;\n    width:  12px;\n    height: 12px;\n    background-color: @carousel-indicator-active-bg;\n  }\n}\n\n// Optional captions\n// -----------------------------\n// Hidden by default for smaller viewports\n.carousel-caption {\n  position: absolute;\n  left: 15%;\n  right: 15%;\n  bottom: 20px;\n  z-index: 10;\n  padding-top: 20px;\n  padding-bottom: 20px;\n  color: @carousel-caption-color;\n  text-align: center;\n  text-shadow: @carousel-text-shadow;\n  & .btn {\n    text-shadow: none; // No shadow for button elements in carousel-caption\n  }\n}\n\n\n// Scale up controls for tablets and up\n@media screen and (min-width: @screen-sm-min) {\n\n  // Scale up the controls a smidge\n  .carousel-control {\n    .glyphicon-chevron-left,\n    .glyphicon-chevron-right,\n    .icon-prev,\n    .icon-next {\n      width: 30px;\n      height: 30px;\n      margin-top: -15px;\n      margin-left: -15px;\n      font-size: 30px;\n    }\n  }\n\n  // Show and left align the captions\n  .carousel-caption {\n    left: 20%;\n    right: 20%;\n    padding-bottom: 30px;\n  }\n\n  // Move up the indicators\n  .carousel-indicators {\n    bottom: 20px;\n  }\n}\n","//\n// Typography\n// --------------------------------------------------\n\n\n// Headings\n// -------------------------\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n  font-family: @headings-font-family;\n  font-weight: @headings-font-weight;\n  line-height: @headings-line-height;\n  color: @headings-color;\n\n  small,\n  .small {\n    font-weight: normal;\n    line-height: 1;\n    color: @headings-small-color;\n  }\n}\n\nh1, .h1,\nh2, .h2,\nh3, .h3 {\n  margin-top: @line-height-computed;\n  margin-bottom: (@line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 65%;\n  }\n}\nh4, .h4,\nh5, .h5,\nh6, .h6 {\n  margin-top: (@line-height-computed / 2);\n  margin-bottom: (@line-height-computed / 2);\n\n  small,\n  .small {\n    font-size: 75%;\n  }\n}\n\nh1, .h1 { font-size: @font-size-h1; }\nh2, .h2 { font-size: @font-size-h2; }\nh3, .h3 { font-size: @font-size-h3; }\nh4, .h4 { font-size: @font-size-h4; }\nh5, .h5 { font-size: @font-size-h5; }\nh6, .h6 { font-size: @font-size-h6; }\n\n\n// Body text\n// -------------------------\n\np {\n  margin: 0 0 (@line-height-computed / 2);\n}\n\n.lead {\n  margin-bottom: @line-height-computed;\n  font-size: floor((@font-size-base * 1.15));\n  font-weight: 200;\n  line-height: 1.4;\n\n  @media (min-width: @screen-sm-min) {\n    font-size: (@font-size-base * 1.5);\n  }\n}\n\n\n// Emphasis & misc\n// -------------------------\n\n// Ex: 14px base font * 85% = about 12px\nsmall,\n.small  { font-size: 85%; }\n\n// Undo browser default styling\ncite    { font-style: normal; }\n\n// Alignment\n.text-left           { text-align: left; }\n.text-right          { text-align: right; }\n.text-center         { text-align: center; }\n.text-justify        { text-align: justify; }\n\n// Contextual colors\n.text-muted {\n  color: @text-muted;\n}\n.text-primary {\n  .text-emphasis-variant(@brand-primary);\n}\n.text-success {\n  .text-emphasis-variant(@state-success-text);\n}\n.text-info {\n  .text-emphasis-variant(@state-info-text);\n}\n.text-warning {\n  .text-emphasis-variant(@state-warning-text);\n}\n.text-danger {\n  .text-emphasis-variant(@state-danger-text);\n}\n\n// Contextual backgrounds\n// For now we'll leave these alongside the text classes until v4 when we can\n// safely shift things around (per SemVer rules).\n.bg-primary {\n  // Given the contrast here, this is the only class to have its color inverted\n  // automatically.\n  color: #fff;\n  .bg-variant(@brand-primary);\n}\n.bg-success {\n  .bg-variant(@state-success-bg);\n}\n.bg-info {\n  .bg-variant(@state-info-bg);\n}\n.bg-warning {\n  .bg-variant(@state-warning-bg);\n}\n.bg-danger {\n  .bg-variant(@state-danger-bg);\n}\n\n\n// Page header\n// -------------------------\n\n.page-header {\n  padding-bottom: ((@line-height-computed / 2) - 1);\n  margin: (@line-height-computed * 2) 0 @line-height-computed;\n  border-bottom: 1px solid @page-header-border-color;\n}\n\n\n// Lists\n// --------------------------------------------------\n\n// Unordered and Ordered lists\nul,\nol {\n  margin-top: 0;\n  margin-bottom: (@line-height-computed / 2);\n  ul,\n  ol {\n    margin-bottom: 0;\n  }\n}\n\n// List options\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n.list-unstyled {\n  padding-left: 0;\n  list-style: none;\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n  .list-unstyled();\n  margin-left: -5px;\n\n  > li {\n    display: inline-block;\n    padding-left: 5px;\n    padding-right: 5px;\n  }\n}\n\n// Description Lists\ndl {\n  margin-top: 0; // Remove browser default\n  margin-bottom: @line-height-computed;\n}\ndt,\ndd {\n  line-height: @line-height-base;\n}\ndt {\n  font-weight: bold;\n}\ndd {\n  margin-left: 0; // Undo browser default\n}\n\n// Horizontal description lists\n//\n// Defaults to being stacked without any of the below styles applied, until the\n// grid breakpoint is reached (default of ~768px).\n\n@media (min-width: @grid-float-breakpoint) {\n  .dl-horizontal {\n    dt {\n      float: left;\n      width: (@component-offset-horizontal - 20);\n      clear: left;\n      text-align: right;\n      .text-overflow();\n    }\n    dd {\n      margin-left: @component-offset-horizontal;\n      &:extend(.clearfix all); // Clear the floated `dt` if an empty `dd` is present\n    }\n  }\n}\n\n// MISC\n// ----\n\n// Abbreviations and acronyms\nabbr[title],\n// Add data-* attribute to help out our tooltip plugin, per https://github.com/twbs/bootstrap/issues/5257\nabbr[data-original-title] {\n  cursor: help;\n  border-bottom: 1px dotted @abbr-border-color;\n}\n.initialism {\n  font-size: 90%;\n  text-transform: uppercase;\n}\n\n// Blockquotes\nblockquote {\n  padding: (@line-height-computed / 2) @line-height-computed;\n  margin: 0 0 @line-height-computed;\n  font-size: @blockquote-font-size;\n  border-left: 5px solid @blockquote-border-color;\n\n  p,\n  ul,\n  ol {\n    &:last-child {\n      margin-bottom: 0;\n    }\n  }\n\n  // Note: Deprecated small and .small as of v3.1.0\n  // Context: https://github.com/twbs/bootstrap/issues/11660\n  footer,\n  small,\n  .small {\n    display: block;\n    font-size: 80%; // back to default font-size\n    line-height: @line-height-base;\n    color: @blockquote-small-color;\n\n    &:before {\n      content: '\\2014 \\00A0'; // em dash, nbsp\n    }\n  }\n}\n\n// Opposite alignment of blockquote\n//\n// Heads up: `blockquote.pull-right` has been deprecated as of v3.1.0.\n.blockquote-reverse,\nblockquote.pull-right {\n  padding-right: 15px;\n  padding-left: 0;\n  border-right: 5px solid @blockquote-border-color;\n  border-left: 0;\n  text-align: right;\n\n  // Account for citation\n  footer,\n  small,\n  .small {\n    &:before { content: ''; }\n    &:after {\n      content: '\\00A0 \\2014'; // nbsp, em dash\n    }\n  }\n}\n\n// Quotes\nblockquote:before,\nblockquote:after {\n  content: \"\";\n}\n\n// Addresses\naddress {\n  margin-bottom: @line-height-computed;\n  font-style: normal;\n  line-height: @line-height-base;\n}\n","//\n// Code (inline and block)\n// --------------------------------------------------\n\n\n// Inline and block code styles\ncode,\nkbd,\npre,\nsamp {\n  font-family: @font-family-monospace;\n}\n\n// Inline code\ncode {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: @code-color;\n  background-color: @code-bg;\n  white-space: nowrap;\n  border-radius: @border-radius-base;\n}\n\n// User input typically entered via keyboard\nkbd {\n  padding: 2px 4px;\n  font-size: 90%;\n  color: @kbd-color;\n  background-color: @kbd-bg;\n  border-radius: @border-radius-small;\n  box-shadow: inset 0 -1px 0 rgba(0,0,0,.25);\n}\n\n// Blocks of code\npre {\n  display: block;\n  padding: ((@line-height-computed - 1) / 2);\n  margin: 0 0 (@line-height-computed / 2);\n  font-size: (@font-size-base - 1); // 14px to 13px\n  line-height: @line-height-base;\n  word-break: break-all;\n  word-wrap: break-word;\n  color: @pre-color;\n  background-color: @pre-bg;\n  border: 1px solid @pre-border-color;\n  border-radius: @border-radius-base;\n\n  // Account for some code outputs that place code tags in pre tags\n  code {\n    padding: 0;\n    font-size: inherit;\n    color: inherit;\n    white-space: pre-wrap;\n    background-color: transparent;\n    border-radius: 0;\n  }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n  max-height: @pre-scrollable-max-height;\n  overflow-y: scroll;\n}\n","//\n// Grid system\n// --------------------------------------------------\n\n\n// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n.container {\n  .container-fixed();\n\n  @media (min-width: @screen-sm-min) {\n    width: @container-sm;\n  }\n  @media (min-width: @screen-md-min) {\n    width: @container-md;\n  }\n  @media (min-width: @screen-lg-min) {\n    width: @container-lg;\n  }\n}\n\n\n// Fluid container\n//\n// Utilizes the mixin meant for fixed width containers, but without any defined\n// width for fluid, full width layouts.\n\n.container-fluid {\n  .container-fixed();\n}\n\n\n// Row\n//\n// Rows contain and clear the floats of your columns.\n\n.row {\n  .make-row();\n}\n\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n.make-grid-columns();\n\n\n// Extra small grid\n//\n// Columns, offsets, pushes, and pulls for extra small devices like\n// smartphones.\n\n.make-grid(xs);\n\n\n// Small grid\n//\n// Columns, offsets, pushes, and pulls for the small device range, from phones\n// to tablets.\n\n@media (min-width: @screen-sm-min) {\n  .make-grid(sm);\n}\n\n\n// Medium grid\n//\n// Columns, offsets, pushes, and pulls for the desktop device range.\n\n@media (min-width: @screen-md-min) {\n  .make-grid(md);\n}\n\n\n// Large grid\n//\n// Columns, offsets, pushes, and pulls for the large desktop device range.\n\n@media (min-width: @screen-lg-min) {\n  .make-grid(lg);\n}\n","//\n// Tables\n// --------------------------------------------------\n\n\ntable {\n  max-width: 100%;\n  background-color: @table-bg;\n}\nth {\n  text-align: left;\n}\n\n\n// Baseline styles\n\n.table {\n  width: 100%;\n  margin-bottom: @line-height-computed;\n  // Cells\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: @table-cell-padding;\n        line-height: @line-height-base;\n        vertical-align: top;\n        border-top: 1px solid @table-border-color;\n      }\n    }\n  }\n  // Bottom align for column headings\n  > thead > tr > th {\n    vertical-align: bottom;\n    border-bottom: 2px solid @table-border-color;\n  }\n  // Remove top border from thead by default\n  > caption + thead,\n  > colgroup + thead,\n  > thead:first-child {\n    > tr:first-child {\n      > th,\n      > td {\n        border-top: 0;\n      }\n    }\n  }\n  // Account for multiple tbody instances\n  > tbody + tbody {\n    border-top: 2px solid @table-border-color;\n  }\n\n  // Nesting\n  .table {\n    background-color: @body-bg;\n  }\n}\n\n\n// Condensed table w/ half padding\n\n.table-condensed {\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        padding: @table-condensed-cell-padding;\n      }\n    }\n  }\n}\n\n\n// Bordered version\n//\n// Add borders all around the table and between all the columns.\n\n.table-bordered {\n  border: 1px solid @table-border-color;\n  > thead,\n  > tbody,\n  > tfoot {\n    > tr {\n      > th,\n      > td {\n        border: 1px solid @table-border-color;\n      }\n    }\n  }\n  > thead > tr {\n    > th,\n    > td {\n      border-bottom-width: 2px;\n    }\n  }\n}\n\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n  > tbody > tr:nth-child(odd) {\n    > td,\n    > th {\n      background-color: @table-bg-accent;\n    }\n  }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n  > tbody > tr:hover {\n    > td,\n    > th {\n      background-color: @table-bg-hover;\n    }\n  }\n}\n\n\n// Table cell sizing\n//\n// Reset default table behavior\n\ntable col[class*=\"col-\"] {\n  position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)\n  float: none;\n  display: table-column;\n}\ntable {\n  td,\n  th {\n    &[class*=\"col-\"] {\n      position: static; // Prevent border hiding in Firefox and IE9/10 (see https://github.com/twbs/bootstrap/issues/11623)\n      float: none;\n      display: table-cell;\n    }\n  }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n// Generate the contextual variants\n.table-row-variant(active; @table-bg-active);\n.table-row-variant(success; @state-success-bg);\n.table-row-variant(info; @state-info-bg);\n.table-row-variant(warning; @state-warning-bg);\n.table-row-variant(danger; @state-danger-bg);\n\n\n// Responsive tables\n//\n// Wrap your tables in `.table-responsive` and we'll make them mobile friendly\n// by enabling horizontal scrolling. Only applies <768px. Everything above that\n// will display normally.\n\n@media (max-width: @screen-xs-max) {\n  .table-responsive {\n    width: 100%;\n    margin-bottom: (@line-height-computed * 0.75);\n    overflow-y: hidden;\n    overflow-x: scroll;\n    -ms-overflow-style: -ms-autohiding-scrollbar;\n    border: 1px solid @table-border-color;\n    -webkit-overflow-scrolling: touch;\n\n    // Tighten up spacing\n    > .table {\n      margin-bottom: 0;\n\n      // Ensure the content doesn't wrap\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th,\n          > td {\n            white-space: nowrap;\n          }\n        }\n      }\n    }\n\n    // Special overrides for the bordered tables\n    > .table-bordered {\n      border: 0;\n\n      // Nuke the appropriate borders so that the parent can handle them\n      > thead,\n      > tbody,\n      > tfoot {\n        > tr {\n          > th:first-child,\n          > td:first-child {\n            border-left: 0;\n          }\n          > th:last-child,\n          > td:last-child {\n            border-right: 0;\n          }\n        }\n      }\n\n      // Only nuke the last row's bottom-border in `tbody` and `tfoot` since\n      // chances are there will be only one `tr` in a `thead` and that would\n      // remove the border altogether.\n      > tbody,\n      > tfoot {\n        > tr:last-child {\n          > th,\n          > td {\n            border-bottom: 0;\n          }\n        }\n      }\n\n    }\n  }\n}\n","//\n// Forms\n// --------------------------------------------------\n\n\n// Normalize non-controls\n//\n// Restyle and baseline non-control form elements.\n\nfieldset {\n  padding: 0;\n  margin: 0;\n  border: 0;\n  // Chrome and Firefox set a `min-width: -webkit-min-content;` on fieldsets,\n  // so we reset that to ensure it behaves more like a standard block element.\n  // See https://github.com/twbs/bootstrap/issues/12359.\n  min-width: 0;\n}\n\nlegend {\n  display: block;\n  width: 100%;\n  padding: 0;\n  margin-bottom: @line-height-computed;\n  font-size: (@font-size-base * 1.5);\n  line-height: inherit;\n  color: @legend-color;\n  border: 0;\n  border-bottom: 1px solid @legend-border-color;\n}\n\nlabel {\n  display: inline-block;\n  margin-bottom: 5px;\n  font-weight: bold;\n}\n\n\n// Normalize form controls\n//\n// While most of our form styles require extra classes, some basic normalization\n// is required to ensure optimum display with or without those classes to better\n// address browser inconsistencies.\n\n// Override content-box in Normalize (* isn't specific enough)\ninput[type=\"search\"] {\n  .box-sizing(border-box);\n}\n\n// Position radios and checkboxes better\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n  margin: 4px 0 0;\n  margin-top: 1px \\9; /* IE8-9 */\n  line-height: normal;\n}\n\n// Set the height of file controls to match text inputs\ninput[type=\"file\"] {\n  display: block;\n}\n\n// Make range inputs behave like textual form controls\ninput[type=\"range\"] {\n  display: block;\n  width: 100%;\n}\n\n// Make multiple select elements height not fixed\nselect[multiple],\nselect[size] {\n  height: auto;\n}\n\n// Focus for file, radio, and checkbox\ninput[type=\"file\"]:focus,\ninput[type=\"radio\"]:focus,\ninput[type=\"checkbox\"]:focus {\n  .tab-focus();\n}\n\n// Adjust output element\noutput {\n  display: block;\n  padding-top: (@padding-base-vertical + 1);\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @input-color;\n}\n\n\n// Common form controls\n//\n// Shared size and type resets for form controls. Apply `.form-control` to any\n// of the following form controls:\n//\n// select\n// textarea\n// input[type=\"text\"]\n// input[type=\"password\"]\n// input[type=\"datetime\"]\n// input[type=\"datetime-local\"]\n// input[type=\"date\"]\n// input[type=\"month\"]\n// input[type=\"time\"]\n// input[type=\"week\"]\n// input[type=\"number\"]\n// input[type=\"email\"]\n// input[type=\"url\"]\n// input[type=\"search\"]\n// input[type=\"tel\"]\n// input[type=\"color\"]\n\n.form-control {\n  display: block;\n  width: 100%;\n  height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)\n  padding: @padding-base-vertical @padding-base-horizontal;\n  font-size: @font-size-base;\n  line-height: @line-height-base;\n  color: @input-color;\n  background-color: @input-bg;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid @input-border;\n  border-radius: @input-border-radius;\n  .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));\n  .transition(~\"border-color ease-in-out .15s, box-shadow ease-in-out .15s\");\n\n  // Customize the `:focus` state to imitate native WebKit styles.\n  .form-control-focus();\n\n  // Placeholder\n  .placeholder();\n\n  // Disabled and read-only inputs\n  //\n  // HTML5 says that controls under a fieldset > legend:first-child won't be\n  // disabled if the fieldset is disabled. Due to implementation difficulty, we\n  // don't honor that edge case; we style them as disabled anyway.\n  &[disabled],\n  &[readonly],\n  fieldset[disabled] & {\n    cursor: not-allowed;\n    background-color: @input-bg-disabled;\n    opacity: 1; // iOS fix for unreadable disabled content\n  }\n\n  // Reset height for `textarea`s\n  textarea& {\n    height: auto;\n  }\n}\n\n\n// Search inputs in iOS\n//\n// This overrides the extra rounded corners on search inputs in iOS so that our\n// `.form-control` class can properly style them. Note that this cannot simply\n// be added to `.form-control` as it's not specific enough. For details, see\n// https://github.com/twbs/bootstrap/issues/11586.\n\ninput[type=\"search\"] {\n  -webkit-appearance: none;\n}\n\n\n// Special styles for iOS date input\n//\n// In Mobile Safari, date inputs require a pixel line-height that matches the\n// given height of the input.\n\ninput[type=\"date\"] {\n  line-height: @input-height-base;\n}\n\n\n// Form groups\n//\n// Designed to help with the organization and spacing of vertical forms. For\n// horizontal forms, use the predefined grid classes.\n\n.form-group {\n  margin-bottom: 15px;\n}\n\n\n// Checkboxes and radios\n//\n// Indent the labels to position radios/checkboxes as hanging controls.\n\n.radio,\n.checkbox {\n  display: block;\n  min-height: @line-height-computed; // clear the floating input if there is no label text\n  margin-top: 10px;\n  margin-bottom: 10px;\n  padding-left: 20px;\n  label {\n    display: inline;\n    font-weight: normal;\n    cursor: pointer;\n  }\n}\n.radio input[type=\"radio\"],\n.radio-inline input[type=\"radio\"],\n.checkbox input[type=\"checkbox\"],\n.checkbox-inline input[type=\"checkbox\"] {\n  float: left;\n  margin-left: -20px;\n}\n.radio + .radio,\n.checkbox + .checkbox {\n  margin-top: -5px; // Move up sibling radios or checkboxes for tighter spacing\n}\n\n// Radios and checkboxes on same line\n.radio-inline,\n.checkbox-inline {\n  display: inline-block;\n  padding-left: 20px;\n  margin-bottom: 0;\n  vertical-align: middle;\n  font-weight: normal;\n  cursor: pointer;\n}\n.radio-inline + .radio-inline,\n.checkbox-inline + .checkbox-inline {\n  margin-top: 0;\n  margin-left: 10px; // space out consecutive inline controls\n}\n\n// Apply same disabled cursor tweak as for inputs\n//\n// Note: Neither radios nor checkboxes can be readonly.\ninput[type=\"radio\"],\ninput[type=\"checkbox\"],\n.radio,\n.radio-inline,\n.checkbox,\n.checkbox-inline {\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: not-allowed;\n  }\n}\n\n\n// Form control sizing\n//\n// Build on `.form-control` with modifier classes to decrease or increase the\n// height and font-size of form controls.\n\n.input-sm {\n  .input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n\n.input-lg {\n  .input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n\n\n// Form control feedback states\n//\n// Apply contextual and semantic states to individual form controls.\n\n.has-feedback {\n  // Enable absolute positioning\n  position: relative;\n\n  // Ensure icons don't overlap text\n  .form-control {\n    padding-right: (@input-height-base * 1.25);\n  }\n\n  // Feedback icon (requires .glyphicon classes)\n  .form-control-feedback {\n    position: absolute;\n    top: (@line-height-computed + 5); // Height of the `label` and its margin\n    right: 0;\n    display: block;\n    width: @input-height-base;\n    height: @input-height-base;\n    line-height: @input-height-base;\n    text-align: center;\n  }\n}\n\n// Feedback states\n.has-success {\n  .form-control-validation(@state-success-text; @state-success-text; @state-success-bg);\n}\n.has-warning {\n  .form-control-validation(@state-warning-text; @state-warning-text; @state-warning-bg);\n}\n.has-error {\n  .form-control-validation(@state-danger-text; @state-danger-text; @state-danger-bg);\n}\n\n\n// Static form control text\n//\n// Apply class to a `p` element to make any string of text align with labels in\n// a horizontal form layout.\n\n.form-control-static {\n  margin-bottom: 0; // Remove default margin from `p`\n}\n\n\n// Help text\n//\n// Apply to any element you wish to create light text for placement immediately\n// below a form control. Use for general help, formatting, or instructional text.\n\n.help-block {\n  display: block; // account for any element using help-block\n  margin-top: 5px;\n  margin-bottom: 10px;\n  color: lighten(@text-color, 25%); // lighten the text some for contrast\n}\n\n\n\n// Inline forms\n//\n// Make forms appear inline(-block) by adding the `.form-inline` class. Inline\n// forms begin stacked on extra small (mobile) devices and then go inline when\n// viewports reach <768px.\n//\n// Requires wrapping inputs and labels with `.form-group` for proper display of\n// default HTML form controls and our custom form controls (e.g., input groups).\n//\n// Heads up! This is mixin-ed into `.navbar-form` in navbars.less.\n\n.form-inline {\n\n  // Kick in the inline\n  @media (min-width: @screen-sm-min) {\n    // Inline-block all the things for \"inline\"\n    .form-group {\n      display: inline-block;\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // In navbar-form, allow folks to *not* use `.form-group`\n    .form-control {\n      display: inline-block;\n      width: auto; // Prevent labels from stacking above inputs in `.form-group`\n      vertical-align: middle;\n    }\n    // Input groups need that 100% width though\n    .input-group > .form-control {\n      width: 100%;\n    }\n\n    .control-label {\n      margin-bottom: 0;\n      vertical-align: middle;\n    }\n\n    // Remove default margin on radios/checkboxes that were used for stacking, and\n    // then undo the floating of radios and checkboxes to match (which also avoids\n    // a bug in WebKit: https://github.com/twbs/bootstrap/issues/1969).\n    .radio,\n    .checkbox {\n      display: inline-block;\n      margin-top: 0;\n      margin-bottom: 0;\n      padding-left: 0;\n      vertical-align: middle;\n    }\n    .radio input[type=\"radio\"],\n    .checkbox input[type=\"checkbox\"] {\n      float: none;\n      margin-left: 0;\n    }\n\n    // Validation states\n    //\n    // Reposition the icon because it's now within a grid column and columns have\n    // `position: relative;` on them. Also accounts for the grid gutter padding.\n    .has-feedback .form-control-feedback {\n      top: 0;\n    }\n  }\n}\n\n\n// Horizontal forms\n//\n// Horizontal forms are built on grid classes and allow you to create forms with\n// labels on the left and inputs on the right.\n\n.form-horizontal {\n\n  // Consistent vertical alignment of labels, radios, and checkboxes\n  .control-label,\n  .radio,\n  .checkbox,\n  .radio-inline,\n  .checkbox-inline {\n    margin-top: 0;\n    margin-bottom: 0;\n    padding-top: (@padding-base-vertical + 1); // Default padding plus a border\n  }\n  // Account for padding we're adding to ensure the alignment and of help text\n  // and other content below items\n  .radio,\n  .checkbox {\n    min-height: (@line-height-computed + (@padding-base-vertical + 1));\n  }\n\n  // Make form groups behave like rows\n  .form-group {\n    .make-row();\n  }\n\n  .form-control-static {\n    padding-top: (@padding-base-vertical + 1);\n  }\n\n  // Only right align form labels here when the columns stop stacking\n  @media (min-width: @screen-sm-min) {\n    .control-label {\n      text-align: right;\n    }\n  }\n\n  // Validation states\n  //\n  // Reposition the icon because it's now within a grid column and columns have\n  // `position: relative;` on them. Also accounts for the grid gutter padding.\n  .has-feedback .form-control-feedback {\n    top: 0;\n    right: (@grid-gutter-width / 2);\n  }\n}\n","//\n// Buttons\n// --------------------------------------------------\n\n\n// Base styles\n// --------------------------------------------------\n\n.btn {\n  display: inline-block;\n  margin-bottom: 0; // For input.btn\n  font-weight: @btn-font-weight;\n  text-align: center;\n  vertical-align: middle;\n  cursor: pointer;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  white-space: nowrap;\n  .button-size(@padding-base-vertical; @padding-base-horizontal; @font-size-base; @line-height-base; @border-radius-base);\n  .user-select(none);\n\n  &,\n  &:active,\n  &.active {\n    &:focus {\n      .tab-focus();\n    }\n  }\n\n  &:hover,\n  &:focus {\n    color: @btn-default-color;\n    text-decoration: none;\n  }\n\n  &:active,\n  &.active {\n    outline: 0;\n    background-image: none;\n    .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n  }\n\n  &.disabled,\n  &[disabled],\n  fieldset[disabled] & {\n    cursor: not-allowed;\n    pointer-events: none; // Future-proof disabling of clicks\n    .opacity(.65);\n    .box-shadow(none);\n  }\n}\n\n\n// Alternate buttons\n// --------------------------------------------------\n\n.btn-default {\n  .button-variant(@btn-default-color; @btn-default-bg; @btn-default-border);\n}\n.btn-primary {\n  .button-variant(@btn-primary-color; @btn-primary-bg; @btn-primary-border);\n}\n// Success appears as green\n.btn-success {\n  .button-variant(@btn-success-color; @btn-success-bg; @btn-success-border);\n}\n// Info appears as blue-green\n.btn-info {\n  .button-variant(@btn-info-color; @btn-info-bg; @btn-info-border);\n}\n// Warning appears as orange\n.btn-warning {\n  .button-variant(@btn-warning-color; @btn-warning-bg; @btn-warning-border);\n}\n// Danger and error appear as red\n.btn-danger {\n  .button-variant(@btn-danger-color; @btn-danger-bg; @btn-danger-border);\n}\n\n\n// Link buttons\n// -------------------------\n\n// Make a button look and behave like a link\n.btn-link {\n  color: @link-color;\n  font-weight: normal;\n  cursor: pointer;\n  border-radius: 0;\n\n  &,\n  &:active,\n  &[disabled],\n  fieldset[disabled] & {\n    background-color: transparent;\n    .box-shadow(none);\n  }\n  &,\n  &:hover,\n  &:focus,\n  &:active {\n    border-color: transparent;\n  }\n  &:hover,\n  &:focus {\n    color: @link-hover-color;\n    text-decoration: underline;\n    background-color: transparent;\n  }\n  &[disabled],\n  fieldset[disabled] & {\n    &:hover,\n    &:focus {\n      color: @btn-link-disabled-color;\n      text-decoration: none;\n    }\n  }\n}\n\n\n// Button Sizes\n// --------------------------------------------------\n\n.btn-lg {\n  // line-height: ensure even-numbered height of button next to large input\n  .button-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);\n}\n.btn-sm {\n  // line-height: ensure proper height of button next to small input\n  .button-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n.btn-xs {\n  .button-size(@padding-xs-vertical; @padding-xs-horizontal; @font-size-small; @line-height-small; @border-radius-small);\n}\n\n\n// Block button\n// --------------------------------------------------\n\n.btn-block {\n  display: block;\n  width: 100%;\n  padding-left: 0;\n  padding-right: 0;\n}\n\n// Vertically space out multiple block buttons\n.btn-block + .btn-block {\n  margin-top: 5px;\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n  &.btn-block {\n    width: 100%;\n  }\n}\n","//\n// Button groups\n// --------------------------------------------------\n\n// Make the div behave like a button\n.btn-group,\n.btn-group-vertical {\n  position: relative;\n  display: inline-block;\n  vertical-align: middle; // match .btn alignment given font-size hack above\n  > .btn {\n    position: relative;\n    float: left;\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active,\n    &.active {\n      z-index: 2;\n    }\n    &:focus {\n      // Remove focus outline when dropdown JS adds it after closing the menu\n      outline: none;\n    }\n  }\n}\n\n// Prevent double borders when buttons are next to each other\n.btn-group {\n  .btn + .btn,\n  .btn + .btn-group,\n  .btn-group + .btn,\n  .btn-group + .btn-group {\n    margin-left: -1px;\n  }\n}\n\n// Optional: Group multiple button groups together for a toolbar\n.btn-toolbar {\n  margin-left: -5px; // Offset the first child's margin\n  &:extend(.clearfix all);\n\n  .btn-group,\n  .input-group {\n    float: left;\n  }\n  > .btn,\n  > .btn-group,\n  > .input-group {\n    margin-left: 5px;\n  }\n}\n\n.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {\n  border-radius: 0;\n}\n\n// Set corners individual because sometimes a single button can be in a .btn-group and we need :first-child and :last-child to both match\n.btn-group > .btn:first-child {\n  margin-left: 0;\n  &:not(:last-child):not(.dropdown-toggle) {\n    .border-right-radius(0);\n  }\n}\n// Need .dropdown-toggle since :last-child doesn't apply given a .dropdown-menu immediately after it\n.btn-group > .btn:last-child:not(:first-child),\n.btn-group > .dropdown-toggle:not(:first-child) {\n  .border-left-radius(0);\n}\n\n// Custom edits for including btn-groups within btn-groups (useful for including dropdown buttons within a btn-group)\n.btn-group > .btn-group {\n  float: left;\n}\n.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group > .btn-group:first-child {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    .border-right-radius(0);\n  }\n}\n.btn-group > .btn-group:last-child > .btn:first-child {\n  .border-left-radius(0);\n}\n\n// On active and open, don't show outline\n.btn-group .dropdown-toggle:active,\n.btn-group.open .dropdown-toggle {\n  outline: 0;\n}\n\n\n// Sizing\n//\n// Remix the default button sizing classes into new ones for easier manipulation.\n\n.btn-group-xs > .btn { &:extend(.btn-xs); }\n.btn-group-sm > .btn { &:extend(.btn-sm); }\n.btn-group-lg > .btn { &:extend(.btn-lg); }\n\n\n// Split button dropdowns\n// ----------------------\n\n// Give the line between buttons some depth\n.btn-group > .btn + .dropdown-toggle {\n  padding-left: 8px;\n  padding-right: 8px;\n}\n.btn-group > .btn-lg + .dropdown-toggle {\n  padding-left: 12px;\n  padding-right: 12px;\n}\n\n// The clickable button for toggling the menu\n// Remove the gradient and set the same inset shadow as the :active state\n.btn-group.open .dropdown-toggle {\n  .box-shadow(inset 0 3px 5px rgba(0,0,0,.125));\n\n  // Show no shadow for `.btn-link` since it has no other button styles.\n  &.btn-link {\n    .box-shadow(none);\n  }\n}\n\n\n// Reposition the caret\n.btn .caret {\n  margin-left: 0;\n}\n// Carets in other button sizes\n.btn-lg .caret {\n  border-width: @caret-width-large @caret-width-large 0;\n  border-bottom-width: 0;\n}\n// Upside down carets for .dropup\n.dropup .btn-lg .caret {\n  border-width: 0 @caret-width-large @caret-width-large;\n}\n\n\n// Vertical button groups\n// ----------------------\n\n.btn-group-vertical {\n  > .btn,\n  > .btn-group,\n  > .btn-group > .btn {\n    display: block;\n    float: none;\n    width: 100%;\n    max-width: 100%;\n  }\n\n  // Clear floats so dropdown menus can be properly placed\n  > .btn-group {\n    &:extend(.clearfix all);\n    > .btn {\n      float: none;\n    }\n  }\n\n  > .btn + .btn,\n  > .btn + .btn-group,\n  > .btn-group + .btn,\n  > .btn-group + .btn-group {\n    margin-top: -1px;\n    margin-left: 0;\n  }\n}\n\n.btn-group-vertical > .btn {\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n  &:first-child:not(:last-child) {\n    border-top-right-radius: @border-radius-base;\n    .border-bottom-radius(0);\n  }\n  &:last-child:not(:first-child) {\n    border-bottom-left-radius: @border-radius-base;\n    .border-top-radius(0);\n  }\n}\n.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {\n  border-radius: 0;\n}\n.btn-group-vertical > .btn-group:first-child:not(:last-child) {\n  > .btn:last-child,\n  > .dropdown-toggle {\n    .border-bottom-radius(0);\n  }\n}\n.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {\n  .border-top-radius(0);\n}\n\n\n\n// Justified button groups\n// ----------------------\n\n.btn-group-justified {\n  display: table;\n  width: 100%;\n  table-layout: fixed;\n  border-collapse: separate;\n  > .btn,\n  > .btn-group {\n    float: none;\n    display: table-cell;\n    width: 1%;\n  }\n  > .btn-group .btn {\n    width: 100%;\n  }\n}\n\n\n// Checkbox and radio options\n[data-toggle=\"buttons\"] > .btn > input[type=\"radio\"],\n[data-toggle=\"buttons\"] > .btn > input[type=\"checkbox\"] {\n  display: none;\n}\n","//\n// Component animations\n// --------------------------------------------------\n\n// Heads up!\n//\n// We don't use the `.opacity()` mixin here since it causes a bug with text\n// fields in IE7-8. Source: https://github.com/twitter/bootstrap/pull/3552.\n\n.fade {\n  opacity: 0;\n  .transition(opacity .15s linear);\n  &.in {\n    opacity: 1;\n  }\n}\n\n.collapse {\n  display: none;\n  &.in {\n    display: block;\n  }\n}\n.collapsing {\n  position: relative;\n  height: 0;\n  overflow: hidden;\n  .transition(height .35s ease);\n}\n","//\n// Glyphicons for Bootstrap\n//\n// Since icons are fonts, they can be placed anywhere text is placed and are\n// thus automatically sized to match the surrounding child. To use, create an\n// inline element with the appropriate classes, like so:\n//\n//  Star\n\n// Import the fonts\n@font-face {\n  font-family: 'Glyphicons Halflings';\n  src: ~\"url('@{icon-font-path}@{icon-font-name}.eot')\";\n  src: ~\"url('@{icon-font-path}@{icon-font-name}.eot?#iefix') format('embedded-opentype')\",\n       ~\"url('@{icon-font-path}@{icon-font-name}.woff') format('woff')\",\n       ~\"url('@{icon-font-path}@{icon-font-name}.ttf') format('truetype')\",\n       ~\"url('@{icon-font-path}@{icon-font-name}.svg#@{icon-font-svg-id}') format('svg')\";\n}\n\n// Catchall baseclass\n.glyphicon {\n  position: relative;\n  top: 1px;\n  display: inline-block;\n  font-family: 'Glyphicons Halflings';\n  font-style: normal;\n  font-weight: normal;\n  line-height: 1;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n\n// Individual icons\n.glyphicon-asterisk               { &:before { content: \"\\2a\"; } }\n.glyphicon-plus                   { &:before { content: \"\\2b\"; } }\n.glyphicon-euro                   { &:before { content: \"\\20ac\"; } }\n.glyphicon-minus                  { &:before { content: \"\\2212\"; } }\n.glyphicon-cloud                  { &:before { content: \"\\2601\"; } }\n.glyphicon-envelope               { &:before { content: \"\\2709\"; } }\n.glyphicon-pencil                 { &:before { content: \"\\270f\"; } }\n.glyphicon-glass                  { &:before { content: \"\\e001\"; } }\n.glyphicon-music                  { &:before { content: \"\\e002\"; } }\n.glyphicon-search                 { &:before { content: \"\\e003\"; } }\n.glyphicon-heart                  { &:before { content: \"\\e005\"; } }\n.glyphicon-star                   { &:before { content: \"\\e006\"; } }\n.glyphicon-star-empty             { &:before { content: \"\\e007\"; } }\n.glyphicon-user                   { &:before { content: \"\\e008\"; } }\n.glyphicon-film                   { &:before { content: \"\\e009\"; } }\n.glyphicon-th-large               { &:before { content: \"\\e010\"; } }\n.glyphicon-th                     { &:before { content: \"\\e011\"; } }\n.glyphicon-th-list                { &:before { content: \"\\e012\"; } }\n.glyphicon-ok                     { &:before { content: \"\\e013\"; } }\n.glyphicon-remove                 { &:before { content: \"\\e014\"; } }\n.glyphicon-zoom-in                { &:before { content: \"\\e015\"; } }\n.glyphicon-zoom-out               { &:before { content: \"\\e016\"; } }\n.glyphicon-off                    { &:before { content: \"\\e017\"; } }\n.glyphicon-signal                 { &:before { content: \"\\e018\"; } }\n.glyphicon-cog                    { &:before { content: \"\\e019\"; } }\n.glyphicon-trash                  { &:before { content: \"\\e020\"; } }\n.glyphicon-home                   { &:before { content: \"\\e021\"; } }\n.glyphicon-file                   { &:before { content: \"\\e022\"; } }\n.glyphicon-time                   { &:before { content: \"\\e023\"; } }\n.glyphicon-road                   { &:before { content: \"\\e024\"; } }\n.glyphicon-download-alt           { &:before { content: \"\\e025\"; } }\n.glyphicon-download               { &:before { content: \"\\e026\"; } }\n.glyphicon-upload                 { &:before { content: \"\\e027\"; } }\n.glyphicon-inbox                  { &:before { content: \"\\e028\"; } }\n.glyphicon-play-circle            { &:before { content: \"\\e029\"; } }\n.glyphicon-repeat                 { &:before { content: \"\\e030\"; } }\n.glyphicon-refresh                { &:before { content: \"\\e031\"; } }\n.glyphicon-list-alt               { &:before { content: \"\\e032\"; } }\n.glyphicon-lock                   { &:before { content: \"\\e033\"; } }\n.glyphicon-flag                   { &:before { content: \"\\e034\"; } }\n.glyphicon-headphones             { &:before { content: \"\\e035\"; } }\n.glyphicon-volume-off             { &:before { content: \"\\e036\"; } }\n.glyphicon-volume-down            { &:before { content: \"\\e037\"; } }\n.glyphicon-volume-up              { &:before { content: \"\\e038\"; } }\n.glyphicon-qrcode                 { &:before { content: \"\\e039\"; } }\n.glyphicon-barcode                { &:before { content: \"\\e040\"; } }\n.glyphicon-tag                    { &:before { content: \"\\e041\"; } }\n.glyphicon-tags                   { &:before { content: \"\\e042\"; } }\n.glyphicon-book                   { &:before { content: \"\\e043\"; } }\n.glyphicon-bookmark               { &:before { content: \"\\e044\"; } }\n.glyphicon-print                  { &:before { content: \"\\e045\"; } }\n.glyphicon-camera                 { &:before { content: \"\\e046\"; } }\n.glyphicon-font                   { &:before { content: \"\\e047\"; } }\n.glyphicon-bold                   { &:before { content: \"\\e048\"; } }\n.glyphicon-italic                 { &:before { content: \"\\e049\"; } }\n.glyphicon-text-height            { &:before { content: \"\\e050\"; } }\n.glyphicon-text-width             { &:before { content: \"\\e051\"; } }\n.glyphicon-align-left             { &:before { content: \"\\e052\"; } }\n.glyphicon-align-center           { &:before { content: \"\\e053\"; } }\n.glyphicon-align-right            { &:before { content: \"\\e054\"; } }\n.glyphicon-align-justify          { &:before { content: \"\\e055\"; } }\n.glyphicon-list                   { &:before { content: \"\\e056\"; } }\n.glyphicon-indent-left            { &:before { content: \"\\e057\"; } }\n.glyphicon-indent-right           { &:before { content: \"\\e058\"; } }\n.glyphicon-facetime-video         { &:before { content: \"\\e059\"; } }\n.glyphicon-picture                { &:before { content: \"\\e060\"; } }\n.glyphicon-map-marker             { &:before { content: \"\\e062\"; } }\n.glyphicon-adjust                 { &:before { content: \"\\e063\"; } }\n.glyphicon-tint                   { &:before { content: \"\\e064\"; } }\n.glyphicon-edit                   { &:before { content: \"\\e065\"; } }\n.glyphicon-share                  { &:before { content: \"\\e066\"; } }\n.glyphicon-check                  { &:before { content: \"\\e067\"; } }\n.glyphicon-move                   { &:before { content: \"\\e068\"; } }\n.glyphicon-step-backward          { &:before { content: \"\\e069\"; } }\n.glyphicon-fast-backward          { &:before { content: \"\\e070\"; } }\n.glyphicon-backward               { &:before { content: \"\\e071\"; } }\n.glyphicon-play                   { &:before { content: \"\\e072\"; } }\n.glyphicon-pause                  { &:before { content: \"\\e073\"; } }\n.glyphicon-stop                   { &:before { content: \"\\e074\"; } }\n.glyphicon-forward                { &:before { content: \"\\e075\"; } }\n.glyphicon-fast-forward           { &:before { content: \"\\e076\"; } }\n.glyphicon-step-forward           { &:before { content: \"\\e077\"; } }\n.glyphicon-eject                  { &:before { content: \"\\e078\"; } }\n.glyphicon-chevron-left           { &:before { content: \"\\e079\"; } }\n.glyphicon-chevron-right          { &:before { content: \"\\e080\"; } }\n.glyphicon-plus-sign              { &:before { content: \"\\e081\"; } }\n.glyphicon-minus-sign             { &:before { content: \"\\e082\"; } }\n.glyphicon-remove-sign            { &:before { content: \"\\e083\"; } }\n.glyphicon-ok-sign                { &:before { content: \"\\e084\"; } }\n.glyphicon-question-sign          { &:before { content: \"\\e085\"; } }\n.glyphicon-info-sign              { &:before { content: \"\\e086\"; } }\n.glyphicon-screenshot             { &:before { content: \"\\e087\"; } }\n.glyphicon-remove-circle          { &:before { content: \"\\e088\"; } }\n.glyphicon-ok-circle              { &:before { content: \"\\e089\"; } }\n.glyphicon-ban-circle             { &:before { content: \"\\e090\"; } }\n.glyphicon-arrow-left             { &:before { content: \"\\e091\"; } }\n.glyphicon-arrow-right            { &:before { content: \"\\e092\"; } }\n.glyphicon-arrow-up               { &:before { content: \"\\e093\"; } }\n.glyphicon-arrow-down             { &:before { content: \"\\e094\"; } }\n.glyphicon-share-alt              { &:before { content: \"\\e095\"; } }\n.glyphicon-resize-full            { &:before { content: \"\\e096\"; } }\n.glyphicon-resize-small           { &:before { content: \"\\e097\"; } }\n.glyphicon-exclamation-sign       { &:before { content: \"\\e101\"; } }\n.glyphicon-gift                   { &:before { content: \"\\e102\"; } }\n.glyphicon-leaf                   { &:before { content: \"\\e103\"; } }\n.glyphicon-fire                   { &:before { content: \"\\e104\"; } }\n.glyphicon-eye-open               { &:before { content: \"\\e105\"; } }\n.glyphicon-eye-close              { &:before { content: \"\\e106\"; } }\n.glyphicon-warning-sign           { &:before { content: \"\\e107\"; } }\n.glyphicon-plane                  { &:before { content: \"\\e108\"; } }\n.glyphicon-calendar               { &:before { content: \"\\e109\"; } }\n.glyphicon-random                 { &:before { content: \"\\e110\"; } }\n.glyphicon-comment                { &:before { content: \"\\e111\"; } }\n.glyphicon-magnet                 { &:before { content: \"\\e112\"; } }\n.glyphicon-chevron-up             { &:before { content: \"\\e113\"; } }\n.glyphicon-chevron-down           { &:before { content: \"\\e114\"; } }\n.glyphicon-retweet                { &:before { content: \"\\e115\"; } }\n.glyphicon-shopping-cart          { &:before { content: \"\\e116\"; } }\n.glyphicon-folder-close           { &:before { content: \"\\e117\"; } }\n.glyphicon-folder-open            { &:before { content: \"\\e118\"; } }\n.glyphicon-resize-vertical        { &:before { content: \"\\e119\"; } }\n.glyphicon-resize-horizontal      { &:before { content: \"\\e120\"; } }\n.glyphicon-hdd                    { &:before { content: \"\\e121\"; } }\n.glyphicon-bullhorn               { &:before { content: \"\\e122\"; } }\n.glyphicon-bell                   { &:before { content: \"\\e123\"; } }\n.glyphicon-certificate            { &:before { content: \"\\e124\"; } }\n.glyphicon-thumbs-up              { &:before { content: \"\\e125\"; } }\n.glyphicon-thumbs-down            { &:before { content: \"\\e126\"; } }\n.glyphicon-hand-right             { &:before { content: \"\\e127\"; } }\n.glyphicon-hand-left              { &:before { content: \"\\e128\"; } }\n.glyphicon-hand-up                { &:before { content: \"\\e129\"; } }\n.glyphicon-hand-down              { &:before { content: \"\\e130\"; } }\n.glyphicon-circle-arrow-right     { &:before { content: \"\\e131\"; } }\n.glyphicon-circle-arrow-left      { &:before { content: \"\\e132\"; } }\n.glyphicon-circle-arrow-up        { &:before { content: \"\\e133\"; } }\n.glyphicon-circle-arrow-down      { &:before { content: \"\\e134\"; } }\n.glyphicon-globe                  { &:before { content: \"\\e135\"; } }\n.glyphicon-wrench                 { &:before { content: \"\\e136\"; } }\n.glyphicon-tasks                  { &:before { content: \"\\e137\"; } }\n.glyphicon-filter                 { &:before { content: \"\\e138\"; } }\n.glyphicon-briefcase              { &:before { content: \"\\e139\"; } }\n.glyphicon-fullscreen             { &:before { content: \"\\e140\"; } }\n.glyphicon-dashboard              { &:before { content: \"\\e141\"; } }\n.glyphicon-paperclip              { &:before { content: \"\\e142\"; } }\n.glyphicon-heart-empty            { &:before { content: \"\\e143\"; } }\n.glyphicon-link                   { &:before { content: \"\\e144\"; } }\n.glyphicon-phone                  { &:before { content: \"\\e145\"; } }\n.glyphicon-pushpin                { &:before { content: \"\\e146\"; } }\n.glyphicon-usd                    { &:before { content: \"\\e148\"; } }\n.glyphicon-gbp                    { &:before { content: \"\\e149\"; } }\n.glyphicon-sort                   { &:before { content: \"\\e150\"; } }\n.glyphicon-sort-by-alphabet       { &:before { content: \"\\e151\"; } }\n.glyphicon-sort-by-alphabet-alt   { &:before { content: \"\\e152\"; } }\n.glyphicon-sort-by-order          { &:before { content: \"\\e153\"; } }\n.glyphicon-sort-by-order-alt      { &:before { content: \"\\e154\"; } }\n.glyphicon-sort-by-attributes     { &:before { content: \"\\e155\"; } }\n.glyphicon-sort-by-attributes-alt { &:before { content: \"\\e156\"; } }\n.glyphicon-unchecked              { &:before { content: \"\\e157\"; } }\n.glyphicon-expand                 { &:before { content: \"\\e158\"; } }\n.glyphicon-collapse-down          { &:before { content: \"\\e159\"; } }\n.glyphicon-collapse-up            { &:before { content: \"\\e160\"; } }\n.glyphicon-log-in                 { &:before { content: \"\\e161\"; } }\n.glyphicon-flash                  { &:before { content: \"\\e162\"; } }\n.glyphicon-log-out                { &:before { content: \"\\e163\"; } }\n.glyphicon-new-window             { &:before { content: \"\\e164\"; } }\n.glyphicon-record                 { &:before { content: \"\\e165\"; } }\n.glyphicon-save                   { &:before { content: \"\\e166\"; } }\n.glyphicon-open                   { &:before { content: \"\\e167\"; } }\n.glyphicon-saved                  { &:before { content: \"\\e168\"; } }\n.glyphicon-import                 { &:before { content: \"\\e169\"; } }\n.glyphicon-export                 { &:before { content: \"\\e170\"; } }\n.glyphicon-send                   { &:before { content: \"\\e171\"; } }\n.glyphicon-floppy-disk            { &:before { content: \"\\e172\"; } }\n.glyphicon-floppy-saved           { &:before { content: \"\\e173\"; } }\n.glyphicon-floppy-remove          { &:before { content: \"\\e174\"; } }\n.glyphicon-floppy-save            { &:before { content: \"\\e175\"; } }\n.glyphicon-floppy-open            { &:before { content: \"\\e176\"; } }\n.glyphicon-credit-card            { &:before { content: \"\\e177\"; } }\n.glyphicon-transfer               { &:before { content: \"\\e178\"; } }\n.glyphicon-cutlery                { &:before { content: \"\\e179\"; } }\n.glyphicon-header                 { &:before { content: \"\\e180\"; } }\n.glyphicon-compressed             { &:before { content: \"\\e181\"; } }\n.glyphicon-earphone               { &:before { content: \"\\e182\"; } }\n.glyphicon-phone-alt              { &:before { content: \"\\e183\"; } }\n.glyphicon-tower                  { &:before { content: \"\\e184\"; } }\n.glyphicon-stats                  { &:before { content: \"\\e185\"; } }\n.glyphicon-sd-video               { &:before { content: \"\\e186\"; } }\n.glyphicon-hd-video               { &:before { content: \"\\e187\"; } }\n.glyphicon-subtitles              { &:before { content: \"\\e188\"; } }\n.glyphicon-sound-stereo           { &:before { content: \"\\e189\"; } }\n.glyphicon-sound-dolby            { &:before { content: \"\\e190\"; } }\n.glyphicon-sound-5-1              { &:before { content: \"\\e191\"; } }\n.glyphicon-sound-6-1              { &:before { content: \"\\e192\"; } }\n.glyphicon-sound-7-1              { &:before { content: \"\\e193\"; } }\n.glyphicon-copyright-mark         { &:before { content: \"\\e194\"; } }\n.glyphicon-registration-mark      { &:before { content: \"\\e195\"; } }\n.glyphicon-cloud-download         { &:before { content: \"\\e197\"; } }\n.glyphicon-cloud-upload           { &:before { content: \"\\e198\"; } }\n.glyphicon-tree-conifer           { &:before { content: \"\\e199\"; } }\n.glyphicon-tree-deciduous         { &:before { content: \"\\e200\"; } }\n","//\n// Dropdown menus\n// --------------------------------------------------\n\n\n// Dropdown arrow/caret\n.caret {\n  display: inline-block;\n  width: 0;\n  height: 0;\n  margin-left: 2px;\n  vertical-align: middle;\n  border-top:   @caret-width-base solid;\n  border-right: @caret-width-base solid transparent;\n  border-left:  @caret-width-base solid transparent;\n}\n\n// The dropdown wrapper (div)\n.dropdown {\n  position: relative;\n}\n\n// Prevent the focus on the dropdown toggle when closing dropdowns\n.dropdown-toggle:focus {\n  outline: 0;\n}\n\n// The dropdown menu (ul)\n.dropdown-menu {\n  position: absolute;\n  top: 100%;\n  left: 0;\n  z-index: @zindex-dropdown;\n  display: none; // none by default, but block on \"open\" of the menu\n  float: left;\n  min-width: 160px;\n  padding: 5px 0;\n  margin: 2px 0 0; // override default ul\n  list-style: none;\n  font-size: @font-size-base;\n  background-color: @dropdown-bg;\n  border: 1px solid @dropdown-fallback-border; // IE8 fallback\n  border: 1px solid @dropdown-border;\n  border-radius: @border-radius-base;\n  .box-shadow(0 6px 12px rgba(0,0,0,.175));\n  background-clip: padding-box;\n\n  // Aligns the dropdown menu to right\n  //\n  // Deprecated as of 3.1.0 in favor of `.dropdown-menu-[dir]`\n  &.pull-right {\n    right: 0;\n    left: auto;\n  }\n\n  // Dividers (basically an hr) within the dropdown\n  .divider {\n    .nav-divider(@dropdown-divider-bg);\n  }\n\n  // Links within the dropdown menu\n  > li > a {\n    display: block;\n    padding: 3px 20px;\n    clear: both;\n    font-weight: normal;\n    line-height: @line-height-base;\n    color: @dropdown-link-color;\n    white-space: nowrap; // prevent links from randomly breaking onto new lines\n  }\n}\n\n// Hover/Focus state\n.dropdown-menu > li > a {\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    color: @dropdown-link-hover-color;\n    background-color: @dropdown-link-hover-bg;\n  }\n}\n\n// Active state\n.dropdown-menu > .active > a {\n  &,\n  &:hover,\n  &:focus {\n    color: @dropdown-link-active-color;\n    text-decoration: none;\n    outline: 0;\n    background-color: @dropdown-link-active-bg;\n  }\n}\n\n// Disabled state\n//\n// Gray out text and ensure the hover/focus state remains gray\n\n.dropdown-menu > .disabled > a {\n  &,\n  &:hover,\n  &:focus {\n    color: @dropdown-link-disabled-color;\n  }\n}\n// Nuke hover/focus effects\n.dropdown-menu > .disabled > a {\n  &:hover,\n  &:focus {\n    text-decoration: none;\n    background-color: transparent;\n    background-image: none; // Remove CSS gradient\n    .reset-filter();\n    cursor: not-allowed;\n  }\n}\n\n// Open state for the dropdown\n.open {\n  // Show the menu\n  > .dropdown-menu {\n    display: block;\n  }\n\n  // Remove the outline when :focus is triggered\n  > a {\n    outline: 0;\n  }\n}\n\n// Menu positioning\n//\n// Add extra class to `.dropdown-menu` to flip the alignment of the dropdown\n// menu with the parent.\n.dropdown-menu-right {\n  left: auto; // Reset the default from `.dropdown-menu`\n  right: 0;\n}\n// With v3, we enabled auto-flipping if you have a dropdown within a right\n// aligned nav component. To enable the undoing of that, we provide an override\n// to restore the default dropdown menu alignment.\n//\n// This is only for left-aligning a dropdown menu within a `.navbar-right` or\n// `.pull-right` nav component.\n.dropdown-menu-left {\n  left: 0;\n  right: auto;\n}\n\n// Dropdown section headers\n.dropdown-header {\n  display: block;\n  padding: 3px 20px;\n  font-size: @font-size-small;\n  line-height: @line-height-base;\n  color: @dropdown-header-color;\n}\n\n// Backdrop to catch body clicks on mobile, etc.\n.dropdown-backdrop {\n  position: fixed;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  top: 0;\n  z-index: (@zindex-dropdown - 10);\n}\n\n// Right aligned dropdowns\n.pull-right > .dropdown-menu {\n  right: 0;\n  left: auto;\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n//\n// Just add .dropup after the standard .dropdown class and you're set, bro.\n// TODO: abstract this so that the navbar fixed styles are not placed here?\n\n.dropup,\n.navbar-fixed-bottom .dropdown {\n  // Reverse the caret\n  .caret {\n    border-top: 0;\n    border-bottom: @caret-width-base solid;\n    content: \"\";\n  }\n  // Different positioning for bottom up menu\n  .dropdown-menu {\n    top: auto;\n    bottom: 100%;\n    margin-bottom: 1px;\n  }\n}\n\n\n// Component alignment\n//\n// Reiterate per navbar.less and the modified component alignment there.\n\n@media (min-width: @grid-float-breakpoint) {\n  .navbar-right {\n    .dropdown-menu {\n      .dropdown-menu-right();\n    }\n    // Necessary for overrides of the default right aligned menu.\n    // Will remove come v4 in all likelihood.\n    .dropdown-menu-left {\n      .dropdown-menu-left();\n    }\n  }\n}\n\n","//\n// Input groups\n// --------------------------------------------------\n\n// Base styles\n// -------------------------\n.input-group {\n  position: relative; // For dropdowns\n  display: table;\n  border-collapse: separate; // prevent input groups from inheriting border styles from table cells when placed within a table\n\n  // Undo padding and float of grid classes\n  &[class*=\"col-\"] {\n    float: none;\n    padding-left: 0;\n    padding-right: 0;\n  }\n\n  .form-control {\n    // Ensure that the input is always above the *appended* addon button for\n    // proper border colors.\n    position: relative;\n    z-index: 2;\n\n    // IE9 fubars the placeholder attribute in text inputs and the arrows on\n    // select elements in input groups. To fix it, we float the input. Details:\n    // https://github.com/twbs/bootstrap/issues/11561#issuecomment-28936855\n    float: left;\n\n    width: 100%;\n    margin-bottom: 0;\n  }\n}\n\n// Sizing options\n//\n// Remix the default form control sizing classes into new ones for easier\n// manipulation.\n\n.input-group-lg > .form-control,\n.input-group-lg > .input-group-addon,\n.input-group-lg > .input-group-btn > .btn { .input-lg(); }\n.input-group-sm > .form-control,\n.input-group-sm > .input-group-addon,\n.input-group-sm > .input-group-btn > .btn { .input-sm(); }\n\n\n// Display as table-cell\n// -------------------------\n.input-group-addon,\n.input-group-btn,\n.input-group .form-control {\n  display: table-cell;\n\n  &:not(:first-child):not(:last-child) {\n    border-radius: 0;\n  }\n}\n// Addon and addon wrapper for buttons\n.input-group-addon,\n.input-group-btn {\n  width: 1%;\n  white-space: nowrap;\n  vertical-align: middle; // Match the inputs\n}\n\n// Text input groups\n// -------------------------\n.input-group-addon {\n  padding: @padding-base-vertical @padding-base-horizontal;\n  font-size: @font-size-base;\n  font-weight: normal;\n  line-height: 1;\n  color: @input-color;\n  text-align: center;\n  background-color: @input-group-addon-bg;\n  border: 1px solid @input-group-addon-border-color;\n  border-radius: @border-radius-base;\n\n  // Sizing\n  &.input-sm {\n    padding: @padding-small-vertical @padding-small-horizontal;\n    font-size: @font-size-small;\n    border-radius: @border-radius-small;\n  }\n  &.input-lg {\n    padding: @padding-large-vertical @padding-large-horizontal;\n    font-size: @font-size-large;\n    border-radius: @border-radius-large;\n  }\n\n  // Nuke default margins from checkboxes and radios to vertically center within.\n  input[type=\"radio\"],\n  input[type=\"checkbox\"] {\n    margin-top: 0;\n  }\n}\n\n// Reset rounded corners\n.input-group .form-control:first-child,\n.input-group-addon:first-child,\n.input-group-btn:first-child > .btn,\n.input-group-btn:first-child > .btn-group > .btn,\n.input-group-btn:first-child > .dropdown-toggle,\n.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {\n  .border-right-radius(0);\n}\n.input-group-addon:first-child {\n  border-right: 0;\n}\n.input-group .form-control:last-child,\n.input-group-addon:last-child,\n.input-group-btn:last-child > .btn,\n.input-group-btn:last-child > .btn-group > .btn,\n.input-group-btn:last-child > .dropdown-toggle,\n.input-group-btn:first-child > .btn:not(:first-child),\n.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {\n  .border-left-radius(0);\n}\n.input-group-addon:last-child {\n  border-left: 0;\n}\n\n// Button input groups\n// -------------------------\n.input-group-btn {\n  position: relative;\n  // Jankily prevent input button groups from wrapping with `white-space` and\n  // `font-size` in combination with `inline-block` on buttons.\n  font-size: 0;\n  white-space: nowrap;\n\n  // Negative margin for spacing, position for bringing hovered/focused/actived\n  // element above the siblings.\n  > .btn {\n    position: relative;\n    + .btn {\n      margin-left: -1px;\n    }\n    // Bring the \"active\" button to the front\n    &:hover,\n    &:focus,\n    &:active {\n      z-index: 2;\n    }\n  }\n\n  // Negative margin to only have a 1px border between the two\n  &:first-child {\n    > .btn,\n    > .btn-group {\n      margin-right: -1px;\n    }\n  }\n  &:last-child {\n    > .btn,\n    > .btn-group {\n      margin-left: -1px;\n    }\n  }\n}\n","//\n// Navs\n// --------------------------------------------------\n\n\n// Base class\n// --------------------------------------------------\n\n.nav {\n  margin-bottom: 0;\n  padding-left: 0; // Override default ul/ol\n  list-style: none;\n  &:extend(.clearfix all);\n\n  > li {\n    position: relative;\n    display: block;\n\n    > a {\n      position: relative;\n      display: block;\n      padding: @nav-link-padding;\n      &:hover,\n      &:focus {\n        text-decoration: none;\n        background-color: @nav-link-hover-bg;\n      }\n    }\n\n    // Disabled state sets text to gray and nukes hover/tab effects\n    &.disabled > a {\n      color: @nav-disabled-link-color;\n\n      &:hover,\n      &:focus {\n        color: @nav-disabled-link-hover-color;\n        text-decoration: none;\n        background-color: transparent;\n        cursor: not-allowed;\n      }\n    }\n  }\n\n  // Open dropdowns\n  .open > a {\n    &,\n    &:hover,\n    &:focus {\n      background-color: @nav-link-hover-bg;\n      border-color: @link-color;\n    }\n  }\n\n  // Nav dividers (deprecated with v3.0.1)\n  //\n  // This should have been removed in v3 with the dropping of `.nav-list`, but\n  // we missed it. We don't currently support this anywhere, but in the interest\n  // of maintaining backward compatibility in case you use it, it's deprecated.\n  .nav-divider {\n    .nav-divider();\n  }\n\n  // Prevent IE8 from misplacing imgs\n  //\n  // See https://github.com/h5bp/html5-boilerplate/issues/984#issuecomment-3985989\n  > li > a > img {\n    max-width: none;\n  }\n}\n\n\n// Tabs\n// -------------------------\n\n// Give the tabs something to sit on\n.nav-tabs {\n  border-bottom: 1px solid @nav-tabs-border-color;\n  > li {\n    float: left;\n    // Make the list-items overlay the bottom border\n    margin-bottom: -1px;\n\n    // Actual tabs (as links)\n    > a {\n      margin-right: 2px;\n      line-height: @line-height-base;\n      border: 1px solid transparent;\n      border-radius: @border-radius-base @border-radius-base 0 0;\n      &:hover {\n        border-color: @nav-tabs-link-hover-border-color @nav-tabs-link-hover-border-color @nav-tabs-border-color;\n      }\n    }\n\n    // Active state, and its :hover to override normal :hover\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @nav-tabs-active-link-hover-color;\n        background-color: @nav-tabs-active-link-hover-bg;\n        border: 1px solid @nav-tabs-active-link-hover-border-color;\n        border-bottom-color: transparent;\n        cursor: default;\n      }\n    }\n  }\n  // pulling this in mainly for less shorthand\n  &.nav-justified {\n    .nav-justified();\n    .nav-tabs-justified();\n  }\n}\n\n\n// Pills\n// -------------------------\n.nav-pills {\n  > li {\n    float: left;\n\n    // Links rendered as pills\n    > a {\n      border-radius: @nav-pills-border-radius;\n    }\n    + li {\n      margin-left: 2px;\n    }\n\n    // Active state\n    &.active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @nav-pills-active-link-hover-color;\n        background-color: @nav-pills-active-link-hover-bg;\n      }\n    }\n  }\n}\n\n\n// Stacked pills\n.nav-stacked {\n  > li {\n    float: none;\n    + li {\n      margin-top: 2px;\n      margin-left: 0; // no need for this gap between nav items\n    }\n  }\n}\n\n\n// Nav variations\n// --------------------------------------------------\n\n// Justified nav links\n// -------------------------\n\n.nav-justified {\n  width: 100%;\n\n  > li {\n    float: none;\n     > a {\n      text-align: center;\n      margin-bottom: 5px;\n    }\n  }\n\n  > .dropdown .dropdown-menu {\n    top: auto;\n    left: auto;\n  }\n\n  @media (min-width: @screen-sm-min) {\n    > li {\n      display: table-cell;\n      width: 1%;\n      > a {\n        margin-bottom: 0;\n      }\n    }\n  }\n}\n\n// Move borders to anchors instead of bottom of list\n//\n// Mixin for adding on top the shared `.nav-justified` styles for our tabs\n.nav-tabs-justified {\n  border-bottom: 0;\n\n  > li > a {\n    // Override margin from .nav-tabs\n    margin-right: 0;\n    border-radius: @border-radius-base;\n  }\n\n  > .active > a,\n  > .active > a:hover,\n  > .active > a:focus {\n    border: 1px solid @nav-tabs-justified-link-border-color;\n  }\n\n  @media (min-width: @screen-sm-min) {\n    > li > a {\n      border-bottom: 1px solid @nav-tabs-justified-link-border-color;\n      border-radius: @border-radius-base @border-radius-base 0 0;\n    }\n    > .active > a,\n    > .active > a:hover,\n    > .active > a:focus {\n      border-bottom-color: @nav-tabs-justified-active-link-border-color;\n    }\n  }\n}\n\n\n// Tabbable tabs\n// -------------------------\n\n// Hide tabbable panes to start, show them when `.active`\n.tab-content {\n  > .tab-pane {\n    display: none;\n  }\n  > .active {\n    display: block;\n  }\n}\n\n\n// Dropdowns\n// -------------------------\n\n// Specific dropdowns\n.nav-tabs .dropdown-menu {\n  // make dropdown border overlap tab border\n  margin-top: -1px;\n  // Remove the top rounded corners here since there is a hard edge above the menu\n  .border-top-radius(0);\n}\n","//\n// Navbars\n// --------------------------------------------------\n\n\n// Wrapper and base class\n//\n// Provide a static navbar from which we expand to create full-width, fixed, and\n// other navbar variations.\n\n.navbar {\n  position: relative;\n  min-height: @navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)\n  margin-bottom: @navbar-margin-bottom;\n  border: 1px solid transparent;\n\n  // Prevent floats from breaking the navbar\n  &:extend(.clearfix all);\n\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: @navbar-border-radius;\n  }\n}\n\n\n// Navbar heading\n//\n// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy\n// styling of responsive aspects.\n\n.navbar-header {\n  &:extend(.clearfix all);\n\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n  }\n}\n\n\n// Navbar collapse (body)\n//\n// Group your navbar content into this for easy collapsing and expanding across\n// various device sizes. By default, this content is collapsed when <768px, but\n// will expand past that for a horizontal display.\n//\n// To start (on mobile devices) the navbar links, forms, and buttons are stacked\n// vertically and include a `max-height` to overflow in case you have too much\n// content for the user's viewport.\n\n.navbar-collapse {\n  max-height: @navbar-collapse-max-height;\n  overflow-x: visible;\n  padding-right: @navbar-padding-horizontal;\n  padding-left:  @navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  box-shadow: inset 0 1px 0 rgba(255,255,255,.1);\n  &:extend(.clearfix all);\n  -webkit-overflow-scrolling: touch;\n\n  &.in {\n    overflow-y: auto;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    width: auto;\n    border-top: 0;\n    box-shadow: none;\n\n    &.collapse {\n      display: block !important;\n      height: auto !important;\n      padding-bottom: 0; // Override default setting\n      overflow: visible !important;\n    }\n\n    &.in {\n      overflow-y: visible;\n    }\n\n    // Undo the collapse side padding for navbars with containers to ensure\n    // alignment of right-aligned contents.\n    .navbar-fixed-top &,\n    .navbar-static-top &,\n    .navbar-fixed-bottom & {\n      padding-left: 0;\n      padding-right: 0;\n    }\n  }\n}\n\n\n// Both navbar header and collapse\n//\n// When a container is present, change the behavior of the header and collapse.\n\n.container,\n.container-fluid {\n  > .navbar-header,\n  > .navbar-collapse {\n    margin-right: -@navbar-padding-horizontal;\n    margin-left:  -@navbar-padding-horizontal;\n\n    @media (min-width: @grid-float-breakpoint) {\n      margin-right: 0;\n      margin-left:  0;\n    }\n  }\n}\n\n\n//\n// Navbar alignment options\n//\n// Display the navbar across the entirety of the page or fixed it to the top or\n// bottom of the page.\n\n// Static top (unfixed, but 100% wide) navbar\n.navbar-static-top {\n  z-index: @zindex-navbar;\n  border-width: 0 0 1px;\n\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n\n// Fix the top/bottom navbars when screen real estate supports it\n.navbar-fixed-top,\n.navbar-fixed-bottom {\n  position: fixed;\n  right: 0;\n  left: 0;\n  z-index: @zindex-navbar-fixed;\n\n  // Undo the rounded corners\n  @media (min-width: @grid-float-breakpoint) {\n    border-radius: 0;\n  }\n}\n.navbar-fixed-top {\n  top: 0;\n  border-width: 0 0 1px;\n}\n.navbar-fixed-bottom {\n  bottom: 0;\n  margin-bottom: 0; // override .navbar defaults\n  border-width: 1px 0 0;\n}\n\n\n// Brand/project name\n\n.navbar-brand {\n  float: left;\n  padding: @navbar-padding-vertical @navbar-padding-horizontal;\n  font-size: @font-size-large;\n  line-height: @line-height-computed;\n  height: @navbar-height;\n\n  &:hover,\n  &:focus {\n    text-decoration: none;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    .navbar > .container &,\n    .navbar > .container-fluid & {\n      margin-left: -@navbar-padding-horizontal;\n    }\n  }\n}\n\n\n// Navbar toggle\n//\n// Custom button for toggling the `.navbar-collapse`, powered by the collapse\n// JavaScript plugin.\n\n.navbar-toggle {\n  position: relative;\n  float: right;\n  margin-right: @navbar-padding-horizontal;\n  padding: 9px 10px;\n  .navbar-vertical-align(34px);\n  background-color: transparent;\n  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214\n  border: 1px solid transparent;\n  border-radius: @border-radius-base;\n\n  // We remove the `outline` here, but later compensate by attaching `:hover`\n  // styles to `:focus`.\n  &:focus {\n    outline: none;\n  }\n\n  // Bars\n  .icon-bar {\n    display: block;\n    width: 22px;\n    height: 2px;\n    border-radius: 1px;\n  }\n  .icon-bar + .icon-bar {\n    margin-top: 4px;\n  }\n\n  @media (min-width: @grid-float-breakpoint) {\n    display: none;\n  }\n}\n\n\n// Navbar nav links\n//\n// Builds on top of the `.nav` components with its own modifier class to make\n// the nav the full height of the horizontal nav (above 768px).\n\n.navbar-nav {\n  margin: (@navbar-padding-vertical / 2) -@navbar-padding-horizontal;\n\n  > li > a {\n    padding-top:    10px;\n    padding-bottom: 10px;\n    line-height: @line-height-computed;\n  }\n\n  @media (max-width: @grid-float-breakpoint-max) {\n    // Dropdowns get custom display when collapsed\n    .open .dropdown-menu {\n      position: static;\n      float: none;\n      width: auto;\n      margin-top: 0;\n      background-color: transparent;\n      border: 0;\n      box-shadow: none;\n      > li > a,\n      .dropdown-header {\n        padding: 5px 15px 5px 25px;\n      }\n      > li > a {\n        line-height: @line-height-computed;\n        &:hover,\n        &:focus {\n          background-image: none;\n        }\n      }\n    }\n  }\n\n  // Uncollapse the nav\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n    margin: 0;\n\n    > li {\n      float: left;\n      > a {\n        padding-top:    @navbar-padding-vertical;\n        padding-bottom: @navbar-padding-vertical;\n      }\n    }\n\n    &.navbar-right:last-child {\n      margin-right: -@navbar-padding-horizontal;\n    }\n  }\n}\n\n\n// Component alignment\n//\n// Repurpose the pull utilities as their own navbar utilities to avoid specificity\n// issues with parents and chaining. Only do this when the navbar is uncollapsed\n// though so that navbar contents properly stack and align in mobile.\n\n@media (min-width: @grid-float-breakpoint) {\n  .navbar-left  { .pull-left(); }\n  .navbar-right { .pull-right(); }\n}\n\n\n// Navbar form\n//\n// Extension of the `.form-inline` with some extra flavor for optimum display in\n// our navbars.\n\n.navbar-form {\n  margin-left: -@navbar-padding-horizontal;\n  margin-right: -@navbar-padding-horizontal;\n  padding: 10px @navbar-padding-horizontal;\n  border-top: 1px solid transparent;\n  border-bottom: 1px solid transparent;\n  @shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1);\n  .box-shadow(@shadow);\n\n  // Mixin behavior for optimum display\n  .form-inline();\n\n  .form-group {\n    @media (max-width: @grid-float-breakpoint-max) {\n      margin-bottom: 5px;\n    }\n  }\n\n  // Vertically center in expanded, horizontal navbar\n  .navbar-vertical-align(@input-height-base);\n\n  // Undo 100% width for pull classes\n  @media (min-width: @grid-float-breakpoint) {\n    width: auto;\n    border: 0;\n    margin-left: 0;\n    margin-right: 0;\n    padding-top: 0;\n    padding-bottom: 0;\n    .box-shadow(none);\n\n    // Outdent the form if last child to line up with content down the page\n    &.navbar-right:last-child {\n      margin-right: -@navbar-padding-horizontal;\n    }\n  }\n}\n\n\n// Dropdown menus\n\n// Menu position and menu carets\n.navbar-nav > li > .dropdown-menu {\n  margin-top: 0;\n  .border-top-radius(0);\n}\n// Menu position and menu caret support for dropups via extra dropup class\n.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {\n  .border-bottom-radius(0);\n}\n\n\n// Buttons in navbars\n//\n// Vertically center a button within a navbar (when *not* in a form).\n\n.navbar-btn {\n  .navbar-vertical-align(@input-height-base);\n\n  &.btn-sm {\n    .navbar-vertical-align(@input-height-small);\n  }\n  &.btn-xs {\n    .navbar-vertical-align(22);\n  }\n}\n\n\n// Text in navbars\n//\n// Add a class to make any element properly align itself vertically within the navbars.\n\n.navbar-text {\n  .navbar-vertical-align(@line-height-computed);\n\n  @media (min-width: @grid-float-breakpoint) {\n    float: left;\n    margin-left: @navbar-padding-horizontal;\n    margin-right: @navbar-padding-horizontal;\n\n    // Outdent the form if last child to line up with content down the page\n    &.navbar-right:last-child {\n      margin-right: 0;\n    }\n  }\n}\n\n// Alternate navbars\n// --------------------------------------------------\n\n// Default navbar\n.navbar-default {\n  background-color: @navbar-default-bg;\n  border-color: @navbar-default-border;\n\n  .navbar-brand {\n    color: @navbar-default-brand-color;\n    &:hover,\n    &:focus {\n      color: @navbar-default-brand-hover-color;\n      background-color: @navbar-default-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: @navbar-default-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: @navbar-default-link-color;\n\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-hover-color;\n        background-color: @navbar-default-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-active-color;\n        background-color: @navbar-default-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-default-link-disabled-color;\n        background-color: @navbar-default-link-disabled-bg;\n      }\n    }\n  }\n\n  .navbar-toggle {\n    border-color: @navbar-default-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: @navbar-default-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: @navbar-default-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: @navbar-default-border;\n  }\n\n  // Dropdown menu items\n  .navbar-nav {\n    // Remove background color from open dropdown\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        background-color: @navbar-default-link-active-bg;\n        color: @navbar-default-link-active-color;\n      }\n    }\n\n    @media (max-width: @grid-float-breakpoint-max) {\n      // Dropdowns get custom display when collapsed\n      .open .dropdown-menu {\n        > li > a {\n          color: @navbar-default-link-color;\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-hover-color;\n            background-color: @navbar-default-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-active-color;\n            background-color: @navbar-default-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-default-link-disabled-color;\n            background-color: @navbar-default-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n\n  // Links in navbars\n  //\n  // Add a class to ensure links outside the navbar nav are colored correctly.\n\n  .navbar-link {\n    color: @navbar-default-link-color;\n    &:hover {\n      color: @navbar-default-link-hover-color;\n    }\n  }\n\n}\n\n// Inverse navbar\n\n.navbar-inverse {\n  background-color: @navbar-inverse-bg;\n  border-color: @navbar-inverse-border;\n\n  .navbar-brand {\n    color: @navbar-inverse-brand-color;\n    &:hover,\n    &:focus {\n      color: @navbar-inverse-brand-hover-color;\n      background-color: @navbar-inverse-brand-hover-bg;\n    }\n  }\n\n  .navbar-text {\n    color: @navbar-inverse-color;\n  }\n\n  .navbar-nav {\n    > li > a {\n      color: @navbar-inverse-link-color;\n\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-hover-color;\n        background-color: @navbar-inverse-link-hover-bg;\n      }\n    }\n    > .active > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-active-color;\n        background-color: @navbar-inverse-link-active-bg;\n      }\n    }\n    > .disabled > a {\n      &,\n      &:hover,\n      &:focus {\n        color: @navbar-inverse-link-disabled-color;\n        background-color: @navbar-inverse-link-disabled-bg;\n      }\n    }\n  }\n\n  // Darken the responsive nav toggle\n  .navbar-toggle {\n    border-color: @navbar-inverse-toggle-border-color;\n    &:hover,\n    &:focus {\n      background-color: @navbar-inverse-toggle-hover-bg;\n    }\n    .icon-bar {\n      background-color: @navbar-inverse-toggle-icon-bar-bg;\n    }\n  }\n\n  .navbar-collapse,\n  .navbar-form {\n    border-color: darken(@navbar-inverse-bg, 7%);\n  }\n\n  // Dropdowns\n  .navbar-nav {\n    > .open > a {\n      &,\n      &:hover,\n      &:focus {\n        background-color: @navbar-inverse-link-active-bg;\n        color: @navbar-inverse-link-active-color;\n      }\n    }\n\n    @media (max-width: @grid-float-breakpoint-max) {\n      // Dropdowns get custom display\n      .open .dropdown-menu {\n        > .dropdown-header {\n          border-color: @navbar-inverse-border;\n        }\n        .divider {\n          background-color: @navbar-inverse-border;\n        }\n        > li > a {\n          color: @navbar-inverse-link-color;\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-hover-color;\n            background-color: @navbar-inverse-link-hover-bg;\n          }\n        }\n        > .active > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-active-color;\n            background-color: @navbar-inverse-link-active-bg;\n          }\n        }\n        > .disabled > a {\n          &,\n          &:hover,\n          &:focus {\n            color: @navbar-inverse-link-disabled-color;\n            background-color: @navbar-inverse-link-disabled-bg;\n          }\n        }\n      }\n    }\n  }\n\n  .navbar-link {\n    color: @navbar-inverse-link-color;\n    &:hover {\n      color: @navbar-inverse-link-hover-color;\n    }\n  }\n\n}\n","//\n// Utility classes\n// --------------------------------------------------\n\n\n// Floats\n// -------------------------\n\n.clearfix {\n  .clearfix();\n}\n.center-block {\n  .center-block();\n}\n.pull-right {\n  float: right !important;\n}\n.pull-left {\n  float: left !important;\n}\n\n\n// Toggling content\n// -------------------------\n\n// Note: Deprecated .hide in favor of .hidden or .sr-only (as appropriate) in v3.0.1\n.hide {\n  display: none !important;\n}\n.show {\n  display: block !important;\n}\n.invisible {\n  visibility: hidden;\n}\n.text-hide {\n  .text-hide();\n}\n\n\n// Hide from screenreaders and browsers\n//\n// Credit: HTML5 Boilerplate\n\n.hidden {\n  display: none !important;\n  visibility: hidden !important;\n}\n\n\n// For Affix plugin\n// -------------------------\n\n.affix {\n  position: fixed;\n}\n","//\n// Breadcrumbs\n// --------------------------------------------------\n\n\n.breadcrumb {\n  padding: @breadcrumb-padding-vertical @breadcrumb-padding-horizontal;\n  margin-bottom: @line-height-computed;\n  list-style: none;\n  background-color: @breadcrumb-bg;\n  border-radius: @border-radius-base;\n\n  > li {\n    display: inline-block;\n\n    + li:before {\n      content: \"@{breadcrumb-separator}\\00a0\"; // Unicode space added since inline-block means non-collapsing white-space\n      padding: 0 5px;\n      color: @breadcrumb-color;\n    }\n  }\n\n  > .active {\n    color: @breadcrumb-active-color;\n  }\n}\n","//\n// Pagination (multiple pages)\n// --------------------------------------------------\n.pagination {\n  display: inline-block;\n  padding-left: 0;\n  margin: @line-height-computed 0;\n  border-radius: @border-radius-base;\n\n  > li {\n    display: inline; // Remove list-style and block-level defaults\n    > a,\n    > span {\n      position: relative;\n      float: left; // Collapse white-space\n      padding: @padding-base-vertical @padding-base-horizontal;\n      line-height: @line-height-base;\n      text-decoration: none;\n      color: @pagination-color;\n      background-color: @pagination-bg;\n      border: 1px solid @pagination-border;\n      margin-left: -1px;\n    }\n    &:first-child {\n      > a,\n      > span {\n        margin-left: 0;\n        .border-left-radius(@border-radius-base);\n      }\n    }\n    &:last-child {\n      > a,\n      > span {\n        .border-right-radius(@border-radius-base);\n      }\n    }\n  }\n\n  > li > a,\n  > li > span {\n    &:hover,\n    &:focus {\n      color: @pagination-hover-color;\n      background-color: @pagination-hover-bg;\n      border-color: @pagination-hover-border;\n    }\n  }\n\n  > .active > a,\n  > .active > span {\n    &,\n    &:hover,\n    &:focus {\n      z-index: 2;\n      color: @pagination-active-color;\n      background-color: @pagination-active-bg;\n      border-color: @pagination-active-border;\n      cursor: default;\n    }\n  }\n\n  > .disabled {\n    > span,\n    > span:hover,\n    > span:focus,\n    > a,\n    > a:hover,\n    > a:focus {\n      color: @pagination-disabled-color;\n      background-color: @pagination-disabled-bg;\n      border-color: @pagination-disabled-border;\n      cursor: not-allowed;\n    }\n  }\n}\n\n// Sizing\n// --------------------------------------------------\n\n// Large\n.pagination-lg {\n  .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large);\n}\n\n// Small\n.pagination-sm {\n  .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small);\n}\n","//\n// Pager pagination\n// --------------------------------------------------\n\n\n.pager {\n  padding-left: 0;\n  margin: @line-height-computed 0;\n  list-style: none;\n  text-align: center;\n  &:extend(.clearfix all);\n  li {\n    display: inline;\n    > a,\n    > span {\n      display: inline-block;\n      padding: 5px 14px;\n      background-color: @pager-bg;\n      border: 1px solid @pager-border;\n      border-radius: @pager-border-radius;\n    }\n\n    > a:hover,\n    > a:focus {\n      text-decoration: none;\n      background-color: @pager-hover-bg;\n    }\n  }\n\n  .next {\n    > a,\n    > span {\n      float: right;\n    }\n  }\n\n  .previous {\n    > a,\n    > span {\n      float: left;\n    }\n  }\n\n  .disabled {\n    > a,\n    > a:hover,\n    > a:focus,\n    > span {\n      color: @pager-disabled-color;\n      background-color: @pager-bg;\n      cursor: not-allowed;\n    }\n  }\n\n}\n","//\n// Labels\n// --------------------------------------------------\n\n.label {\n  display: inline;\n  padding: .2em .6em .3em;\n  font-size: 75%;\n  font-weight: bold;\n  line-height: 1;\n  color: @label-color;\n  text-align: center;\n  white-space: nowrap;\n  vertical-align: baseline;\n  border-radius: .25em;\n\n  // Add hover effects, but only for links\n  &[href] {\n    &:hover,\n    &:focus {\n      color: @label-link-hover-color;\n      text-decoration: none;\n      cursor: pointer;\n    }\n  }\n\n  // Empty labels collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for labels in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n}\n\n// Colors\n// Contextual variations (linked labels get darker on :hover)\n\n.label-default {\n  .label-variant(@label-default-bg);\n}\n\n.label-primary {\n  .label-variant(@label-primary-bg);\n}\n\n.label-success {\n  .label-variant(@label-success-bg);\n}\n\n.label-info {\n  .label-variant(@label-info-bg);\n}\n\n.label-warning {\n  .label-variant(@label-warning-bg);\n}\n\n.label-danger {\n  .label-variant(@label-danger-bg);\n}\n","//\n// Badges\n// --------------------------------------------------\n\n\n// Base classes\n.badge {\n  display: inline-block;\n  min-width: 10px;\n  padding: 3px 7px;\n  font-size: @font-size-small;\n  font-weight: @badge-font-weight;\n  color: @badge-color;\n  line-height: @badge-line-height;\n  vertical-align: baseline;\n  white-space: nowrap;\n  text-align: center;\n  background-color: @badge-bg;\n  border-radius: @badge-border-radius;\n\n  // Empty badges collapse automatically (not available in IE8)\n  &:empty {\n    display: none;\n  }\n\n  // Quick fix for badges in buttons\n  .btn & {\n    position: relative;\n    top: -1px;\n  }\n  .btn-xs & {\n    top: 0;\n    padding: 1px 5px;\n  }\n}\n\n// Hover state, but only for links\na.badge {\n  &:hover,\n  &:focus {\n    color: @badge-link-hover-color;\n    text-decoration: none;\n    cursor: pointer;\n  }\n}\n\n// Account for counters in navs\na.list-group-item.active > .badge,\n.nav-pills > .active > a > .badge {\n  color: @badge-active-color;\n  background-color: @badge-active-bg;\n}\n.nav-pills > li > a > .badge {\n  margin-left: 3px;\n}\n","//\n// Jumbotron\n// --------------------------------------------------\n\n\n.jumbotron {\n  padding: @jumbotron-padding;\n  margin-bottom: @jumbotron-padding;\n  color: @jumbotron-color;\n  background-color: @jumbotron-bg;\n\n  h1,\n  .h1 {\n    color: @jumbotron-heading-color;\n  }\n  p {\n    margin-bottom: (@jumbotron-padding / 2);\n    font-size: @jumbotron-font-size;\n    font-weight: 200;\n  }\n\n  .container & {\n    border-radius: @border-radius-large; // Only round corners at higher resolutions if contained in a container\n  }\n\n  .container {\n    max-width: 100%;\n  }\n\n  @media screen and (min-width: @screen-sm-min) {\n    padding-top:    (@jumbotron-padding * 1.6);\n    padding-bottom: (@jumbotron-padding * 1.6);\n\n    .container & {\n      padding-left:  (@jumbotron-padding * 2);\n      padding-right: (@jumbotron-padding * 2);\n    }\n\n    h1,\n    .h1 {\n      font-size: (@font-size-base * 4.5);\n    }\n  }\n}\n","//\n// Alerts\n// --------------------------------------------------\n\n\n// Base styles\n// -------------------------\n\n.alert {\n  padding: @alert-padding;\n  margin-bottom: @line-height-computed;\n  border: 1px solid transparent;\n  border-radius: @alert-border-radius;\n\n  // Headings for larger alerts\n  h4 {\n    margin-top: 0;\n    // Specified for the h4 to prevent conflicts of changing @headings-color\n    color: inherit;\n  }\n  // Provide class for links that match alerts\n  .alert-link {\n    font-weight: @alert-link-font-weight;\n  }\n\n  // Improve alignment and spacing of inner content\n  > p,\n  > ul {\n    margin-bottom: 0;\n  }\n  > p + p {\n    margin-top: 5px;\n  }\n}\n\n// Dismissable alerts\n//\n// Expand the right padding and account for the close button's positioning.\n\n.alert-dismissable {\n padding-right: (@alert-padding + 20);\n\n  // Adjust close link position\n  .close {\n    position: relative;\n    top: -2px;\n    right: -21px;\n    color: inherit;\n  }\n}\n\n// Alternate styles\n//\n// Generate contextual modifier classes for colorizing the alert.\n\n.alert-success {\n  .alert-variant(@alert-success-bg; @alert-success-border; @alert-success-text);\n}\n.alert-info {\n  .alert-variant(@alert-info-bg; @alert-info-border; @alert-info-text);\n}\n.alert-warning {\n  .alert-variant(@alert-warning-bg; @alert-warning-border; @alert-warning-text);\n}\n.alert-danger {\n  .alert-variant(@alert-danger-bg; @alert-danger-border; @alert-danger-text);\n}\n","//\n// Progress bars\n// --------------------------------------------------\n\n\n// Bar animations\n// -------------------------\n\n// WebKit\n@-webkit-keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n// Spec and IE10+\n@keyframes progress-bar-stripes {\n  from  { background-position: 40px 0; }\n  to    { background-position: 0 0; }\n}\n\n\n\n// Bar itself\n// -------------------------\n\n// Outer container\n.progress {\n  overflow: hidden;\n  height: @line-height-computed;\n  margin-bottom: @line-height-computed;\n  background-color: @progress-bg;\n  border-radius: @border-radius-base;\n  .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));\n}\n\n// Bar of progress\n.progress-bar {\n  float: left;\n  width: 0%;\n  height: 100%;\n  font-size: @font-size-small;\n  line-height: @line-height-computed;\n  color: @progress-bar-color;\n  text-align: center;\n  background-color: @progress-bar-bg;\n  .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));\n  .transition(width .6s ease);\n}\n\n// Striped bars\n.progress-striped .progress-bar {\n  #gradient > .striped();\n  background-size: 40px 40px;\n}\n\n// Call animation for the active one\n.progress.active .progress-bar {\n  .animation(progress-bar-stripes 2s linear infinite);\n}\n\n\n\n// Variations\n// -------------------------\n\n.progress-bar-success {\n  .progress-bar-variant(@progress-bar-success-bg);\n}\n\n.progress-bar-info {\n  .progress-bar-variant(@progress-bar-info-bg);\n}\n\n.progress-bar-warning {\n  .progress-bar-variant(@progress-bar-warning-bg);\n}\n\n.progress-bar-danger {\n  .progress-bar-variant(@progress-bar-danger-bg);\n}\n","// Media objects\n// Source: http://stubbornella.org/content/?p=497\n// --------------------------------------------------\n\n\n// Common styles\n// -------------------------\n\n// Clear the floats\n.media,\n.media-body {\n  overflow: hidden;\n  zoom: 1;\n}\n\n// Proper spacing between instances of .media\n.media,\n.media .media {\n  margin-top: 15px;\n}\n.media:first-child {\n  margin-top: 0;\n}\n\n// For images and videos, set to block\n.media-object {\n  display: block;\n}\n\n// Reset margins on headings for tighter default spacing\n.media-heading {\n  margin: 0 0 5px;\n}\n\n\n// Media image alignment\n// -------------------------\n\n.media {\n  > .pull-left {\n    margin-right: 10px;\n  }\n  > .pull-right {\n    margin-left: 10px;\n  }\n}\n\n\n// Media list variation\n// -------------------------\n\n// Undo default ul/ol styles\n.media-list {\n  padding-left: 0;\n  list-style: none;\n}\n","//\n// List groups\n// --------------------------------------------------\n\n\n// Base class\n//\n// Easily usable on