123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- var _config = require("../../config");
- var __DEV__ = _config.__DEV__;
- var _util = require("zrender/lib/core/util");
- var createHashMap = _util.createHashMap;
- var isString = _util.isString;
- var isArray = _util.isArray;
- var each = _util.each;
- var assert = _util.assert;
- var _parseSVG = require("zrender/lib/tool/parseSVG");
- var parseXML = _parseSVG.parseXML;
- /*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
- var storage = createHashMap(); // For minimize the code size of common echarts package,
- // do not put too much logic in this module.
- var _default = {
- // The format of record: see `echarts.registerMap`.
- // Compatible with previous `echarts.registerMap`.
- registerMap: function (mapName, rawGeoJson, rawSpecialAreas) {
- var records;
- if (isArray(rawGeoJson)) {
- records = rawGeoJson;
- } else if (rawGeoJson.svg) {
- records = [{
- type: 'svg',
- source: rawGeoJson.svg,
- specialAreas: rawGeoJson.specialAreas
- }];
- } else {
- // Backward compatibility.
- if (rawGeoJson.geoJson && !rawGeoJson.features) {
- rawSpecialAreas = rawGeoJson.specialAreas;
- rawGeoJson = rawGeoJson.geoJson;
- }
- records = [{
- type: 'geoJSON',
- source: rawGeoJson,
- specialAreas: rawSpecialAreas
- }];
- }
- each(records, function (record) {
- var type = record.type;
- type === 'geoJson' && (type = record.type = 'geoJSON');
- var parse = parsers[type];
- parse(record);
- });
- return storage.set(mapName, records);
- },
- retrieveMap: function (mapName) {
- return storage.get(mapName);
- }
- };
- var parsers = {
- geoJSON: function (record) {
- var source = record.source;
- record.geoJSON = !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();
- },
- // Only perform parse to XML object here, which might be time
- // consiming for large SVG.
- // Although convert XML to zrender element is also time consiming,
- // if we do it here, the clone of zrender elements has to be
- // required. So we do it once for each geo instance, util real
- // performance issues call for optimizing it.
- svg: function (record) {
- record.svgXML = parseXML(record.source);
- }
- };
- module.exports = _default;
|