static/js/dncp/util/mapData/params.js
/**
* 地图参数
* key为地图类型: {
* getGeoJson: 地图数据加载
* }
*/
define(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]
);
}
}
}
}
// Has been decoded
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;
// ZigZag decoding
x = (x >> 1) ^ (-(x & 1));
y = (y >> 1) ^ (-(y & 1));
// Delta deocding
x += prevX;
y += prevY;
prevX = x;
prevY = y;
// Dequantize
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) {
// scale.x: width = 10.51 : 64
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
};
});