Java调用echarts提供的地图压缩方法来压缩地图
今天小编就为大家分享一篇关于Java调用echarts提供的地图压缩方法来压缩地图,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧由于默认情况下的 geojson 文件太大,echarts 提供了方法可以压缩地图。
geojson 介绍:http://geojson.org/
echarts 提供了压缩算法,但是代码是 javascript 的,参考代码写个 java 的也可以,但是通过 java 提供的脚本引擎可以很方便的直接执行 js。
本文压缩代码参考下面的项目:
https://github.com/giscafer/mapshaper-plus
这里的算法也是来源于 echarts
从该项目提取出压缩地图的 js 代码,简化后如下:
function convert2echarts(rawstr,filename,type){
var results="";
var json = json.parse(rawstr);
// meta tag
json.utf8encoding = true;
var features = json.features;
if (!features) {
return;
}
features.foreach(function (feature){
var encodeoffsets = feature.geometry.encodeoffsets = [];
var coordinates = feature.geometry.coordinates;
if (feature.geometry.type === 'polygon') {
coordinates.foreach(function (coordinate, idx){
coordinates = encodepolygon(
coordinate, encodeoffsets = []
);
});
} else if(feature.geometry.type === 'multipolygon') {
coordinates.foreach(function (polygon, idx1){
encodeoffsets = [];
polygon.foreach(function (coordinate, idx2) {
coordinates = encodepolygon(
coordinate, encodeoffsets = []
);
});
});
}
});
if(type==='json'){
results=json.stringify(json);
}else{
results=addechartsjswrapper(json.stringify(json), filename);
}
return results;
};
function encodepolygon(coordinate, encodeoffsets) {
var result = '';
var prevx = quantize(coordinate);
var prevy = quantize(coordinate);
// store the origin offset
encodeoffsets = prevx;
encodeoffsets = prevy;
for (var i = 0; i < coordinate.length; i++) {
var point = coordinate;
result+=encode(point, prevx);
result+=encode(point, prevy);
prevx = quantize(point);
prevy = quantize(point);
}
return result;
}
function addamdwrapper(jsonstr) {
return ['define(function() {',
'return ' + jsonstr + ';',
'});'].join('\n');
}
function addechartsjswrapper(jsonstr,filename) {
return ['(function (root, factory) {',
"if (typeof define === 'function' && define.amd) {",
" define(['exports', 'echarts'], factory);",
"} else if (typeof exports === 'object' && typeof exports.nodename !== 'string') {",
" factory(exports, require('echarts'));",
"} else {",
" factory({}, root.echarts);",
"}",
" }(this, function (exports, echarts) {",
" var log = function (msg) {",
" if (typeof console !== 'undefined') {",
" console && console.error && console.error(msg);",
" }",
" }",
" if (!echarts) {",
" log('echarts is not loaded');",
" return;",
" }",
" if (!echarts.registermap) {",
" log('echarts map is not loaded')",
" return;",
" }",
" echarts.registermap('"+filename+"',"+ jsonstr,
' )}));'].join('\n');
}
function encode(val, prev){
// quantization
val = quantize(val);
// var tmp = val;
// delta
val = val - prev;
if (((val << 1) ^ (val >> 15)) + 64 === 8232) {
//wtf, 8232 will get syntax error in js code
val--;
}
// zigzag
val = (val << 1) ^ (val >> 15);
// add offset and get unicode
return string.fromcharcode(val+64);
// var tmp = {'tmp' : str};
// try{
// eval("(" + json.stringify(tmp) + ")");
// }catch(e) {
// console.log(val + 64);
// }
}
function quantize(val) {
return math.ceil(val * 1024);
}
一个河北省的 geojson 示例(文件大小为 55 kb):
{"type": "featurecollection",
"cp":,
"size":"1300",
"features":
[
{"type": "feature","properties":{"id":"1308","name":"承德市","cp":,"childnum":11},"geometry":{"type":"polygon","coordinates":[[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]]}},
{"type": "feature","properties":{"id":"1307","name":"张家口市","cp":,"childnum":15},"geometry":{"type":"polygon","coordinates":[[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]]}},
{"type": "feature","properties":{"id":"1306","name":"保定市","cp":,"childnum":23},"geometry":{"type":"polygon","coordinates":[[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]]}},
{"type": "feature","properties":{"id":"1302","name":"唐山市","cp":,"childnum":11},"geometry":{"type":"polygon","coordinates":[[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]]}},
{"type": "feature","properties":{"id":"1309","name":"沧州市","cp":,"childnum":15},"geometry":{"type":"polygon","coordinates":[[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]]}},
{"type": "feature","properties":{"id":"1301","name":"石家庄市","cp":,"childnum":19},"geometry":{"type":"polygon","coordinates":[[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]]}},
{"type": "feature","properties":{"id":"1305","name":"邢台市","cp":,"childnum":18},"geometry":{"type":"polygon","coordinates":[[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]]}},
{"type": "feature","properties":{"id":"1304","name":"邯郸市","cp":,"childnum":18},"geometry":{"type":"polygon","coordinates":[[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]]}},
{"type": "feature","properties":{"id":"1303","name":"秦皇岛市","cp":,"childnum":5},"geometry":{"type":"polygon","coordinates":[[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]]}},
{"type": "feature","properties":{"id":"1311","name":"衡水市","cp":,"childnum":11},"geometry":{"type":"polygon","coordinates":[[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]]}},
{"type": "feature","properties":{"id":"1310","name":"廊坊市","cp":,"childnum":9},"geometry":{"type":"multipolygon","coordinates":[[[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]],[[,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]]]}}
]
}
下面使用 java 8 中的脚本引擎执行该代码。
package tk.mybatis;
import javax.script.invocable;
import javax.script.scriptengine;
import javax.script.scriptenginemanager;
import javax.script.scriptexception;
import java.io.filenotfoundexception;
import java.io.filereader;
public class encoder {
public static final scriptengine engine = new scriptenginemanager().getenginebyname("nashorn");
static {
try {
//注意这里的 encode.js 路径,文件内容就是上面的 js 代码
engine.eval(new filereader(encoder.class.getresource("/encode.js").getpath()));
} catch (scriptexception e) {
e.printstacktrace();
} catch (filenotfoundexception e) {
e.printstacktrace();
}
}
public static final invocable invocable = (invocable) engine;
/**
* 压缩为 echarts 格式的地图
* @param geojson
* @param filename
* @param type json 或 其他(按js处理)
* @return
*/
public static string convert2echarts(string geojson, string filename, string type) {
try {
return (string) invocable.invokefunction("convert2echarts", geojson, filename, type);
} catch (scriptexception e) {
throw new runtimeexception(e);
} catch (nosuchmethodexception e) {
throw new runtimeexception(e);
}
}
}
用法:
string json = encoder.convert2echarts(
"上面提供的河北省的geojson内容", "河北省", "json");
压缩后的结果如下(文件大小为 9 kb):
{
"type": "featurecollection",
"cp": [115.4004,
39.4688],
"size": "1300",
"features": [{
"type": "feature",
"properties": {
"id": "1308",
"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@„alwuvy„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@amkwƒ@mxukkÿƒ£@a„kl@um°uxwla„al@nmlxnw°znw@aƒwv™@ƒakbĉ¥vmu@ƒiƒvƒuƒjkumwu™kbmkuaƒkkuvu@kv@@klw—™wau@kmƒxvènbmluuƒkƒx¯jkbƒi@jmiuwu@ƒlml@xkj@u™kƒk@avkwwa—iwwƒmuƒ@mu@j@uaċu™auuƒvki±ƒk@uuƒ@ubvvm@uvkƒ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",
"properties": {
"id": "1307",
"name": "张家口市",
"cp": [115.1477,
40.8527],
"childnum": 15
},
"geometry": {
"type": "polygon",
"coordinates": ["@@k™ġû™al¥@wn@nml¹uwlavknuvƒ„kla„@„ušƒ@_ma@ƒœ¥wwnau‚wnƒmw@kxavuvašunmwuk°™lƒnuvuxwvw™iwvókui@wxƒxuu@mma@kukwlkw@yk@ƒavkuuċauu@wk@unm@uvmlm±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ƒww@awuƒbu@kbç@kwƒ@makvuk™u@aƒm@au@mxkuƒbƒkuxuƒ±kxvwluk@wku@v™@wxua@wbuxƒjiƒŽ@|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`ƒux™kw@uvkl™km¼@lunujvnv„xv@vm@@lv„klƒikl@vƒwlŽulwkul@mj„@blbuvulmzujuxm@uubċük@ub@všlvv„|ôbvŽmšukuku@m„„@vlvn¼wbuj¯@@„°šnillèl˜@nxšwllœk‚j@bkxlxkxlxulkljƒš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@vmbvblvxmvnlš@Ť|„nn@üŽ@bšl„@@xv`„unb@vllvb²j‚xn¥æñ@¥þ@"],
"encodeoffsets": [[118868,
42784]]
}
},
{
"type": "feature",
"properties": {
"id": "1306",
"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ƒ_ƒjnƒaƒww@ivauama@wƒuƒmu@mvw@axk@mwa@£km@aƒ_kvmunww@¯bƒkumk@ƒvçm@@kuu™kuu™@uvuamvuawikb@xu@@amukkƒvkam@@kvukuwmkmuklub@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ƒunƒ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",
"properties": {
"id": "1302",
"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™lw°@ĸ™x@vvvulvlkl@v@xƒ`ub@xm@uwbƒk@ævbnlwv@lnxubl‚@x¯lmu™vkkwlkk@_uk@u@ummuxmvxlwvulku@`w@uluk@xljxzv@@xml@vu@ux@kk@wbuk@xn`ƒxmjnšmškxuvbuvlvvxubv@nkll„kvkþbvkxi°kvšmvuiukulvxvjvlkv@vƒ@ubu@wuu@ubuk@b@nƒv@vklmb@b"],
"encodeoffsets": [[120398,
41159]]
}
},
{
"type": "feature",
"properties": {
"id": "1309",
"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@aliul„a„vvbš@„n@a„u@wuiv@mun@mkxml@ll@lnwšb@xv@@a„vvb„v„@vv„ivwèb˜i軃ǟlwšavuåuƒƒ™um@kvu™wvkauwmaó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—vwvl@vw@uum@"],
"encodeoffsets": [[118485,
39280]]
}
},
{
"type": "feature",
"properties": {
"id": "1301",
"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@ukawaunamm@u„a¯wwu@ukƒl@Žun@x™v™luxvjub™lmu@auwukmkkluum@mw—xƒaƒmmkkwum@@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@`llx@nwvxl@‚°wlxnlb„kvk„xvb@˜x@l_lj@v@xnŽ„i"],
"encodeoffsets": [[116562,
39691]]
}
},
{
"type": "feature",
"properties": {
"id": "1305",
"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@„kvuumvlaxul@lm@kxwýñnkƒ™±™k@wğ›@@u@mkĉlmvj@zmlnŽwluýju_ƒ@@šmjkxuvlbklý@ýa™b¯@¯±jåwġauu@ƒku™@mvi±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",
"properties": {
"id": "1304",
"name": "邯郸市",
"cp": [114.4775,
36.535],
"childnum": 18
},
"geometry": {
"type": "polygon",
"coordinates": ["@@„bvklvninm‚@@a„kvnk@al@nmllvuxavkôl„klb„ivwšx„kvl²a‚jnuš@lv@„vvĢbæx²i°Ž°@šaþbþ@lkkavulwni@™„@v`þi‚vxkmnk@y‚inuĊkƒçkuuamuukƒƒ@au@u™ƒk@wuwvkvjvkkw°a@„mk@ux@vv„lvw@wšwva@¯xm@@luiwau@uwkxwmu@uwmukkmn@lkvƒ²™vƒauluvmjuuuwƒlma@™umkium›l—mvšmx@b™luamkål@vmbku¯kýamzkjub±vkb™l@lu@wikjƒzkkmkƒnualwkkkw@@nkbk@ww¯xuvuj@xlj@xƒ@xlwlkuƒ`vunawa„uv@uviƒauxuumvƒk@i@w@ç„u@@u@bƒ‚@nmkxmx™@uxkvwux„@`vlll@`™zx‚ýb@b‚„@vuvkiujvz°kvlnllknl„xllvvuvlxuj@nn‚„i@mvulbn@@Žm„@bv„nv"],
"encodeoffsets": [[116528,
37885]]
}
},
{
"type": "feature",
"properties": {
"id": "1303",
"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",
"properties": {
"id": "1311",
"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„wvnk@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@kxƒl™l¯kv`unv|°@"],
"encodeoffsets": [[118024,
38549]]
}
},
{
"type": "feature",
"properties": {
"id": "1310",
"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@valaa@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
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对CodeAE代码之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/isea533/article/details/79194819
http://www.zzvips.com/article/173087.html
页:
[1]