diff --git a/README.md b/README.md index eb48b94..d9eaa25 100644 --- a/README.md +++ b/README.md @@ -10,13 +10,13 @@ ## 数据下载 -当前最新版本:**2022.230112.230202版**,数据在 **src/采集到的数据** 文件夹内,此数据更新于2023-02-02,整合了 `统计局2022-12-29`、`民政部2022-03-21`、`腾讯地图行政区划2023-01-12`、`高德地图行政区划采集当天` 数据。 +当前最新版本:**2022.230302.230403版**,数据在 **src/采集到的数据** 文件夹内,此数据更新于2023-04-03,整合了 `统计局2022-12-29`、`民政部2022-03-21`、`腾讯地图行政区划2023-03-02`、`高德地图行政区划采集当天` 数据。 文件名|大小|描述|下载地址 :--:|:--:|--|:-: -**ok_data_level3.csv**|230KB|【**区划三级**】省市区 三级行政区划 数据
- 支持在线预览、生成多级联动js代码,可用转换工具导入数据库、转成sql|[线路一](https://gitee.com/xiangyuecn/AreaCity-JsSpider-StatsGov/releases/download/2022.230112.230202/ok_data_level3-4.csv.7z) / [线路二](https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov/raw/master/src/采集到的数据/ok_data_level3-4.csv.7z) -**ok_data_level4.csv**|3MB|【**区划四级**】省市区乡镇 四级行政区划 数据
- 支持在线预览、生成多级联动js代码,可用转换工具导入数据库、转成sql|[线路一](https://gitee.com/xiangyuecn/AreaCity-JsSpider-StatsGov/releases/download/2022.230112.230202/ok_data_level3-4.csv.7z) / [线路二](https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov/raw/master/src/采集到的数据/ok_data_level3-4.csv.7z) -**ok_geo.csv.7z**|13MB|【**边界三级**】省市区 坐标和边界 数据,解压后130M+
- 支持在线预览,可用转换工具转成shp、geojson、sql格式、转换坐标系
- 使用本库开源的高性能查询工具,1秒可查1万个以上坐标对应的城市信息|[线路一](https://gitee.com/xiangyuecn/AreaCity-JsSpider-StatsGov/releases/download/2022.230112.230202/ok_geo.csv.7z) / [线路二](https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov/raw/master/src/采集到的数据/ok_geo.csv.7z) +**ok_data_level3.csv**|230KB|【**区划三级**】省市区 三级行政区划 数据
- 支持在线预览、生成多级联动js代码,可用转换工具导入数据库、转成sql|[线路一](https://gitee.com/xiangyuecn/AreaCity-JsSpider-StatsGov/releases/download/2022.230302.230403/ok_data_level3-4.csv.7z) / [线路二](https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov/raw/master/src/采集到的数据/ok_data_level3-4.csv.7z) +**ok_data_level4.csv**|3MB|【**区划四级**】省市区乡镇 四级行政区划 数据
- 支持在线预览、生成多级联动js代码,可用转换工具导入数据库、转成sql|[线路一](https://gitee.com/xiangyuecn/AreaCity-JsSpider-StatsGov/releases/download/2022.230302.230403/ok_data_level3-4.csv.7z) / [线路二](https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov/raw/master/src/采集到的数据/ok_data_level3-4.csv.7z) +**ok_geo.csv.7z**|13MB|【**边界三级**】省市区 坐标和边界 数据,解压后130M+
- 支持在线预览,可用转换工具转成shp、geojson、sql格式、转换坐标系
- 使用本库开源的高性能查询工具,1秒可查1万个以上坐标对应的城市信息|[线路一](https://gitee.com/xiangyuecn/AreaCity-JsSpider-StatsGov/releases/download/2022.230302.230403/ok_geo.csv.7z) / [线路二](https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov/raw/master/src/采集到的数据/ok_geo.csv.7z) **ok_geo4_*.csv** [AD]|109MB|【**边界四级**】乡镇级 坐标和边界 数据,导出后300M+
- 付费数据、广告、闭源,支持在线预览,提供了部分免费数据供测试|[点此下载](https://xiangyuecn.gitee.io/areacity-jsspider-statsgov/assets/geo-level4.html#xz) @@ -89,7 +89,7 @@ git clone --depth 1 https://github.com/xiangyuecn/AreaCity-JsSpider-StatsGov.git ## 数据源 -- [国家统计局](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/) :统计用区划和城乡划分代码,此数据比较齐全但是比较杂,并且数据是一年一更可能会存在滞后,需额外移除和处理开发区、经济区、高新区、国家级新区等区域;此数据源为省市区三级数据的主要数据源,乡镇级辅助数据源。 +- [国家统计局](http://www.stats.gov.cn/sj/tjbz/qhdm/) :统计用区划和城乡划分代码,此数据比较齐全但是比较杂,并且数据是一年一更可能会存在滞后,需额外移除和处理开发区、经济区、高新区、国家级新区等区域;此数据源为省市区三级数据的主要数据源,乡镇级辅助数据源。 - [民政部](http://www.mca.gov.cn/article/sj/xzqh/) :行政区划代码,提供省市区三级数据,以前一月一更,2022年大半年没更新;为辅助数据源。 @@ -155,15 +155,15 @@ polygon|string|行政区域边界,高德地图`GCJ-02`火星坐标系。格式 ## 数据更新日志 -- 2022.230112.230202版(更新时间: 2023-02-02)采集了4层,省、市、区、镇,来源:[统计局2022版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2022/index.html);省市区3级合并了[民政部2022-03-21数据](http://www.mca.gov.cn/article/sj/xzqh/1980/202203/20220300040708.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20230112](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 -- 2021.221019.221128版(更新时间: 2022-11-28)采集了4层,省、市、区、镇,来源:[统计局2021版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2021/index.html);省市区3级合并了[民政部2022-03-21数据](http://www.mca.gov.cn/article/sj/xzqh/1980/202203/20220300040708.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20221019](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 -- 2020.210510.1103版(2021)采集了4层,省、市、区、镇,来源:[统计局2020版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/index.html);省市区3级合并了[民政部2021-05-10数据](http://www.mca.gov.cn/article/sj/xzqh/1980/202105/20210500033655.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20211103](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 -- 2020.201120.0814版(2020)采集了4层,省、市、区、镇,来源:[统计局2020版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2020/index.html);省市区3级合并了[民政部2020-11-20数据](http://www.mca.gov.cn/article/sj/xzqh/2020/202011/20201100030582.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20200814](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 -- 2019.200925.0814版(2020)采集了4层,省、市、区、镇,来源:[统计局2019版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2019/index.html);省市区3级合并了[民政部2020-09-25数据](http://www.mca.gov.cn/article/sj/xzqh/2020/2020/2020092500801.html)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20200814](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 -- 2018版(2019)采集了4层,省、市、区、镇,来源:[统计局2018版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2018/index.html);省市区3级额外合并了[民政部2019-08-27数据](http://www.mca.gov.cn/article/sj/xzqh/2019/201908/201908271607.html)。采集高德省市区三级坐标和行政区域边界范围。 -- 2017版(2018)采集了3层,省、市、区,来源:[统计局2017版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2017/index.html)。 -- 2016版(2017)采集了3层,省、市、区,来源:[统计局2016版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2016/index.html)。 -- 2013版(2013)采集了4层,省、市、区、镇,来源:[统计局2013版数据](http://www.stats.gov.cn/tjsj/tjbz/tjyqhdmhcxhfdm/2013/index.html)。 +- 2022.230302.230403版(更新时间: 2023-04-03)采集了4层,省、市、区、镇,来源:[统计局2022版数据](http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2022/index.html);省市区3级合并了[民政部2022-03-21数据](http://www.mca.gov.cn/article/sj/xzqh/1980/202203/20220300040708.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20230302](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 +- 2021.221019.221128版(更新时间: 2022-11-28)采集了4层,省、市、区、镇,来源:[统计局2021版数据](http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2021/index.html);省市区3级合并了[民政部2022-03-21数据](http://www.mca.gov.cn/article/sj/xzqh/1980/202203/20220300040708.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20221019](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 +- 2020.210510.1103版(2021)采集了4层,省、市、区、镇,来源:[统计局2020版数据](http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2020/index.html);省市区3级合并了[民政部2021-05-10数据](http://www.mca.gov.cn/article/sj/xzqh/1980/202105/20210500033655.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20211103](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 +- 2020.201120.0814版(2020)采集了4层,省、市、区、镇,来源:[统计局2020版数据](http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2020/index.html);省市区3级合并了[民政部2020-11-20数据](http://www.mca.gov.cn/article/sj/xzqh/2020/202011/20201100030582.shtml)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20200814](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 +- 2019.200925.0814版(2020)采集了4层,省、市、区、镇,来源:[统计局2019版数据](http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2019/index.html);省市区3级合并了[民政部2020-09-25数据](http://www.mca.gov.cn/article/sj/xzqh/2020/2020/2020092500801.html)、[高德地图行政区域](https://lbs.amap.com/api/webservice/guide/api/district)、[腾讯地图行政区划v20200814](https://lbs.qq.com/webservice_v1/guide-region.html)数据;乡镇级采用腾讯地图行政区划作为主要数据,综合高德和统计局的乡镇级。采集高德省市区三级坐标和行政区域边界范围。 +- 2018版(2019)采集了4层,省、市、区、镇,来源:[统计局2018版数据](http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2018/index.html);省市区3级额外合并了[民政部2019-08-27数据](http://www.mca.gov.cn/article/sj/xzqh/2019/201908/201908271607.html)。采集高德省市区三级坐标和行政区域边界范围。 +- 2017版(2018)采集了3层,省、市、区,来源:[统计局2017版数据](http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2017/index.html)。 +- 2016版(2017)采集了3层,省、市、区,来源:[统计局2016版数据](http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2016/index.html)。 +- 2013版(2013)采集了4层,省、市、区、镇,来源:[统计局2013版数据](http://www.stats.gov.cn/sj/tjbz/tjyqhdmhcxhfdm/2013/index.html)。 @@ -223,7 +223,7 @@ ECharts + 高德地图四级下钻: 1. 将 ok_geo.csv坐标边界 转成 ESRI Shapefile (.shp) 文件。 2. 将 ok_geo.csv坐标边界 转成 GeoJSON (.json) 文件,支持按层级拆分成多级json文件。 3. 将 ok_geo.csv坐标边界 转成 SQL (.sql) 文件,支持多种数据库格式。 -4. 将 ok_geo.csv坐标边界 导入 MySQL 5.0+、SQL Server 2008+ 数据库。 +4. 将 ok_geo.csv坐标边界 导入 MySQL 5.0+、SQL Server 2008+、PostgreSQL 数据库。 5. 将 ok_data_level*.csv省市区镇行政区划 转成 SQL 文件、导入 数据库;可同时将坐标、边界范围附加到同一表中。 6. 支持坐标系转换,ok_geo默认为GCJ-02火星坐标系,支持转换成:BD-09、WGS-84 GPS、CGCS2000。 7. 可执行自定义 JavaScript 脚本,可扩展出丰富功能。 @@ -322,7 +322,7 @@ ECharts + 高德地图四级下钻: 10. 数据中不包含大部分[行政管理区](https://baike.baidu.com/item/%E8%A1%8C%E6%94%BF%E7%AE%A1%E7%90%86%E5%8C%BA/17184852),比如:雄安新区、天府新区、苏州工业园区等。 -11. 参考链接:[行政区划](https://baike.baidu.com/item/%E8%A1%8C%E6%94%BF%E5%8C%BA%E5%88%92/4655526),[统计用区划代码和城乡划分代码编制规则](http://www.stats.gov.cn/tjsj/tjbz/200911/t20091125_8667.html),[民政部发布的行政区划代码](http://www.mca.gov.cn/article/sj/xzqh/)。 +11. 参考链接:[行政区划](https://baike.baidu.com/item/%E8%A1%8C%E6%94%BF%E5%8C%BA%E5%88%92/4655526),[统计用区划代码和城乡划分代码编制规则](http://www.stats.gov.cn/xxgk/tjbz/gjtjbz/201310/t20131031_1758902.html),[民政部发布的行政区划代码](http://www.mca.gov.cn/article/sj/xzqh/)。 ## 为什么不直接用统计局的数据 diff --git a/assets/AGT/WebviewSettings.html b/assets/AGT/WebviewSettings.html index f7cb73e..436db04 100644 --- a/assets/AGT/WebviewSettings.html +++ b/assets/AGT/WebviewSettings.html @@ -3,7 +3,7 @@ - + AreaCity Geo格式转换工具 @@ -35,9 +35,20 @@ }; return null; } + ,customSQLConfig:function(){ + var rtv={error:"",config:{}}; + var fn=Runtime.AppCalls.customSQLConfig; + if(fn){ + fn(rtv); + }else{ + rtv.error="请先选择内置脚本《[插件] 通用自定义SQL配置》并配置完成后再进行自定义SQL操作"; + } + return JSON.stringify(rtv); + } ,onTransformStart:function(execName){ AppCalls.scope={execName:execName,tgEnable:"",tgCount:0,tgpCount:0}; Runtime.UpdateStatus(""); + Runtime.Log("[系统] 执行任务中:"+execName,"#bbb"); var fn=Runtime.AppCalls.onTransformStart; if(fn){ @@ -53,6 +64,7 @@ }; } ,onTransformEnd:function(){ + Runtime.Log("[系统] 执行任务结束","#bbb"); var fn=Runtime.AppCalls.onTransformEnd; if(fn){ fn(); @@ -61,7 +73,12 @@ }; } }; -var LM="2020-5-30 17:06:02"; + +var appFixLineClick=function(){ + alert("请先执行内置脚本 “"+$("option[value=fixline]").text()+"” 后,在来FixLine操作"); +}; + +var LM="2023-04-02 13:36"; \ +\ + '} + + ,{name:"完成配置",click:"runClick"} + ,{html:''} +]); + +$(".cscInText").each(function(k,v){ + var edit=v._edit=CodeMirror.fromTextArea(v,{ + mode:"javascript" + ,lineNumbers:true + ,lineWrapping:true + }); + edit.setSize($(v).width()+"px","auto"); +}); + +//配置被修改时,清理 +$(".cscIn").bind("input",function(){ inputChange(); }); +var inputChange=function(){ + Runtime.customSQLConfigDisable(); + $(".cscState").html('配置已修改,点击“完成配置”后生效'); +}; + +//填充模板内容 +var templList=["通用WKT纯文本格式(默认)","Oracle数据库格式","ST_GeomFromText兼容格式","通用CSV+WKT纯文本格式(Excel)"]; +var html=[]; +for(var i=0;i'+templList[i]+''); +$(".csc_templs").html(html.join(" | ")); + +window.setTempl=function(type,isInit){ + var charsetV="UTF-8",fileExtV="sql"; + var createV=[],insertV=[]; + var fail=function(){ + var tips="未知模板type="+type+",无法填充"; + AppCmds.showTips(tips,true);Runtime.Log(tips,1); + }; + + createV.push('//@ 模板:'+templList[type-1]); + createV.push('//@ “//@”后面的内容将会当做注释,在生成SQL文件的时候会删除'); + createV.push('//@ ${key|args}为变量的占位符,在生成SQL文件时会使用key对应的值代替,args为参数'); + createV.push('//@ 【请将以下SQL代码修改成你数据库支持的格式】'); + createV.push(''); + createV.push('/* This File Charset: ${Charset} '); + if(type==1){ + createV.push("通用WKT纯文本格式,绝大部分数据库都支持导入此SQL文件,包括SQLite"); + }else if(type==2){ + createV.push("Oracle数据库格式,请在Oracle中导入此SQL文件"); + }else if(type==3){ + createV.push("ST_GeomFromText兼容格式,适用于支持ST_GeomFromText函数的数据库,比如MySQL8+、PostgreSQL"); + }else if(type==4){ + //NOOP + }else{ return fail(); } + createV.push('${AppName}(Ver:${AppVer}) 于 ${Time} 使用通用自定义SQL配置生成'); + createV.push(''); + createV.push('${AppUrl}'); + createV.push('*/'); + createV.push(''); + createV.push('-- 创建表结构'); + if(type==1 || type==3){ + createV.push('//@ 如果你的表名有特殊字符,请用"或`或[]包裹起来(如:"${TableName}")'); + createV.push('DROP TABLE IF EXISTS ${TableName}; //@ 不支持的话就删除这句'); + }else if(type==2){ + createV.push('//@ 如果你的表名有特殊字符,请用"包裹起来(如:"${TableName}")'); + createV.push('declare num number; begin'); + createV.push(" select count(1) into num from user_tables where table_name = upper('${TableName}');"); + createV.push(" if num > 0 then execute immediate 'drop table ${TableName}'; end if;"); + createV.push('end;'); + }else if(type==4){ + //NOOP + }else{ return fail(); } + createV.push('CREATE TABLE ${TableName} ('); + createV.push(' ${Field_ID} int NOT NULL PRIMARY KEY,'); + createV.push(' ${OtherFields|int NOT NULL|varchar(250) NOT NULL}, //@ csv内更多要导出的非预定义字段,数字和字符串两种类型,后面两个参数为对应字段的类型声明'); + createV.push(' ${Field_ExtPath} varchar(255) NOT NULL,'); + if(type==1){ + createV.push(' ${Field_Geo} text NOT NULL, //@ text为长文本类型,应当使用此数据库支持的最长的类型,比如mysql为longtext'); + createV.push(' ${Field_Polygon} text NOT NULL'); + }else if(type==2){ + createV.push(' ${Field_Geo} SDO_GEOMETRY NOT NULL,'); + createV.push(' ${Field_Polygon} SDO_GEOMETRY NOT NULL'); + }else if(type==3){ + createV.push(' ${Field_Geo} geometry NOT NULL,'); + createV.push(' ${Field_Polygon} geometry NOT NULL'); + }else if(type==4){ + //NOOP + }else{ return fail(); } + createV.push(');'); + createV.push(''); + createV.push(''); + createV.push('-- 数据区'); + + insertV.push("INSERT INTO ${TableName} VALUES(${Value_ID},"); + insertV.push("${OtherValues|?|'?'},"); + insertV.push("'${Value_ExtPath}',"); + if(type==1){ + insertV.push("'${Value_Geo|POINT EMPTY}',"); + insertV.push("'${Value_Polygon|POLYGON EMPTY}'"); + }else if(type==2){ + insertV.push("SDO_GEOMETRY('${Value_Geo|POINT EMPTY}',0),"); + insertV.push("SDO_GEOMETRY('${Value_Polygon|POLYGON EMPTY}',0)"); + }else if(type==3){ + insertV.push("ST_GeomFromText('${Value_Geo|POINT EMPTY}',0),"); + insertV.push("ST_GeomFromText('${Value_Polygon|POLYGON EMPTY}',0)"); + }else if(type==4){ + //NOOP + }else{ return fail(); } + insertV.push(");"); + insertV.push("\n\n//@ 这些字段值的顺序必须和创建表的字段顺序一致"); + insertV.push("\n//@ OtherValues变量为:csv内更多要导出的非预定义字段值,数字和字符串两种类型,后面两个参数为对应字段的值格式,?为值的占位符"); + insertV.push("\n//@ Value_Geo和Value_Polygon后面的参数为图形为空时的WKT字符串,比如mysql只有GEOMETRYCOLLECTION EMPTY"); + + //csv格式单独重新弄一份 + if(type==4){ + createV=[];insertV=[];charsetV="GBK";fileExtV="csv"; + + createV.push('//@ 模板:'+templList[type-1]); + createV.push('//@ “//@”后面的内容将会当做注释,在生成CSV文件的时候会删除'); + createV.push('//@ ${key|args}为变量的占位符,在生成CSV文件时会使用key对应的值代替,args为参数'); + createV.push('//@ 注意:通过本配置生成的CSV文件和ok_geo.csv格式不同,无法通过本转换工具二次进行转换'); + createV.push(''); + createV.push('${Field_ID},${OtherFields},${Field_ExtPath},${Field_Geo},${Field_Polygon}'); + createV.push(''); + createV.push('//@ 上面这句是表头,会作为CSV文件的第一行,OtherFields变量为:更多要导出的非预定义字段,数字和字符串两种类型'); + + insertV.push('${Value_ID},${OtherValues|?|"?"},"${Value_ExtPath}","${Value_Geo|POINT EMPTY}","${Value_Polygon|POLYGON EMPTY}"'); + insertV.push("\n\n//@ 这些字段值的顺序必须和表头的字段顺序一致"); + insertV.push("\n//@ OtherValues变量为:更多要导出的非预定义字段值,数字和字符串两种类型,后面两个参数为对应字段的值格式,?为值的占位符"); + insertV.push("\n//@ Value_Geo和Value_Polygon后面的参数为图形为空时的WKT字符串"); + } + + + + var tableEl=$(".csc_in_tableSQL")[0]._edit,insertEl=$(".csc_in_insertSQL")[0]._edit; + var raw=CustomSQLConfigData.raw||{}; + + $(".csc_in_charset").val((isInit?raw.charset:"")||charsetV); + $(".csc_in_fileExt").val((isInit?raw.fileExt:"")||fileExtV); + tableEl.setValue((isInit?raw.tableSQL:"")||createV.join("\n")); tableEl.refresh(); + insertEl.setValue((isInit?raw.insertSQL:"")||insertV.join("")); insertEl.refresh(); + inputChange(); +}; +setTempl(1,1); + +//完成配置 +window.runClick=function(){ + if(Runtime.VersionLess("1.3.230403")){ + var tips="软件版本过低,请重新下载升级后再操作"; + AppCmds.showTips(tips,true);Runtime.Log(tips,1); + return; + }; + + inputChange(); + var clearNote=function(txt){ + return txt.replace(/[\r\n\s]*\/\/@.+/g,"").trim(); + } + var charset=$(".csc_in_charset").val().trim(); + var fileExt=$(".csc_in_fileExt").val().trim(); + var tableSQLRaw=$(".csc_in_tableSQL")[0]._edit.getValue().trim(); + var insertSQLRaw=$(".csc_in_insertSQL")[0]._edit.getValue().trim(); + var tableSQL=clearNote(tableSQLRaw), insertSQL=clearNote(insertSQLRaw); + if(!charset||!fileExt||!tableSQL||!insertSQL){ + var tips="配置项都是必填的,不能为空" + AppCmds.showTips(tips,true);Runtime.Log(tips,1); + return; + } + CustomSQLConfigData.raw={charset:charset,fileExt:fileExt,tableSQL:tableSQLRaw,insertSQL:insertSQLRaw}; + CustomSQLConfigData.val={charset:charset,fileExt:fileExt,tableSQL:tableSQL,insertSQL:insertSQL}; + + //实现转换接口给软件调用 + Runtime.AppCalls.customSQLConfig=function(ctx){ + var val=CustomSQLConfigData.val; + ctx.config.charset=val.charset; + ctx.config.fileExt=val.fileExt; + ctx.config.tableSQL=val.tableSQL; + ctx.config.insertSQL=val.insertSQL; + }; + Runtime.UpdateStatus(); + + $(".cscState").html('配置已生效'); + Runtime.Log("customSQLConfig: "+Runtime.ToPre(CustomSQLConfigData.val)); +}; + +})(); \ No newline at end of file diff --git a/assets/AGT/WebviewSettingsCodes/exec/city_to_db.js b/assets/AGT/WebviewSettingsCodes/exec/city_to_db.js index 9bd80bd..3cce166 100644 --- a/assets/AGT/WebviewSettingsCodes/exec/city_to_db.js +++ b/assets/AGT/WebviewSettingsCodes/exec/city_to_db.js @@ -63,7 +63,7 @@ Runtime.Ctrls([ //导入处理内核代码 window.CityToDBClick=function(){ AppCmds.config();//保存一下用户输入 - if(Runtime.VersionLess("1.2.201006")){ + if(Runtime.VersionLess("1.3.230403")){ AppCmds.showTips("软件版本过低,请重新下载升级后再操作",true); return; }; @@ -77,7 +77,7 @@ window.CityToDBClick=function(){ read("importGeo_",$(".input_set_import_geo")); read("setField_",$(".input_set_field")); - AppCmds.exec("C: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; S:IK/oEn5xeCdzBaEGGSmk+GSr/PLcqYSb1MN6SFqzel50PRHpFk3lTV8N7Pp648iy+c5Mc1gnW6DJNmbtzh9h/+hyFe6YL6HUu9jAsh7FrDxtZz5tX1C3YBhPIai1kxcExw/jxlgf/HkBJKykw6A8kgD1EyqSp/P8uPrXHdjb798=; N:23CPPyBkUhJkNkK9Ok8+lXAWfXaSEih8/fAxarZdmNXUvzJ89pCLZc452U8XtBGMaMTVplO74FE//askIMqA/bFooA1HymMBwBU5/GILWCcttNhQsodnQZQt4bbW8a1ZMQvsonmwhheHO7pG8tilpBfqdGw+r+7wev1pQGvRRvE=; NS:rKN46/cDICvgMKcAWPxtdhNAVzMVG6LnvXkvbMZgNYv8zvImWHHHaUMfqhEwIk4BBWfz4MUoKq6WiJa7dss7E2uveOn2EjlrFOY881KwXuLQuRFLNhmpNxTEALSSJFEzuQkHJNtNkrB71j8PJlAtKDh3RokOw9doB67YcYjWruY="); + AppCmds.exec("C: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; S:E3bXoenPE+HC9/Ux5u3ZQvq1T/oY8QeG4kZEQeFQ9DCXRfw07hB8zFf0gD5joSChvrB7LbUj+aFzKr9gva9/hJ1oIiLx6IcLwQyp7wjMFglFDXpKNoabXaoktQ4iERNCAp9btdUaqZTY/q8b1qXIX+ULKi2AkxkeVMT+p7L+tSc=; N:23CPPyBkUhJkNkK9Ok8+lXAWfXaSEih8/fAxarZdmNXUvzJ89pCLZc452U8XtBGMaMTVplO74FE//askIMqA/bFooA1HymMBwBU5/GILWCcttNhQsodnQZQt4bbW8a1ZMQvsonmwhheHO7pG8tilpBfqdGw+r+7wev1pQGvRRvE=; NS:rKN46/cDICvgMKcAWPxtdhNAVzMVG6LnvXkvbMZgNYv8zvImWHHHaUMfqhEwIk4BBWfz4MUoKq6WiJa7dss7E2uveOn2EjlrFOY881KwXuLQuRFLNhmpNxTEALSSJFEzuQkHJNtNkrB71j8PJlAtKDh3RokOw9doB67YcYjWruY="); }; diff --git a/assets/AGT/WebviewSettingsCodes/exec/city_to_sql.js b/assets/AGT/WebviewSettingsCodes/exec/city_to_sql.js index 6e64396..ee6737a 100644 --- a/assets/AGT/WebviewSettingsCodes/exec/city_to_sql.js +++ b/assets/AGT/WebviewSettingsCodes/exec/city_to_sql.js @@ -63,7 +63,7 @@ Runtime.Ctrls([ //转换处理内核代码 window.CityToSQLClick=function(){ AppCmds.config();//保存一下用户输入 - if(Runtime.VersionLess("1.2.201006")){ + if(Runtime.VersionLess("1.3.230403")){ AppCmds.showTips("软件版本过低,请重新下载升级后再操作",true); return; }; @@ -77,7 +77,7 @@ window.CityToSQLClick=function(){ read("importGeo_",$(".input_set_import_geo")); read("setField_",$(".input_set_field")); - AppCmds.exec("C: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; S:osyM6MIozTnjR3erMyFdA4cXgTdNJoPLehvDai+0mx6V6a2CAfNlCFeWqpngm1SBH+7UJNXr/PD6He5gleV5cBz6Xc7sM6v47hzOosT0JMx9Qd0W7fWe4V4S6Fn9SKfCQR5OH+dzOuXYsbWb/WBrvH9Wf14KnhJXk4VFDNsSp9M=; N:23CPPyBkUhJkNkK9Ok8+lXAWfXaSEih8/fAxarZdmNXUvzJ89pCLZc452U8XtBGMaMTVplO74FE//askIMqA/bFooA1HymMBwBU5/GILWCcttNhQsodnQZQt4bbW8a1ZMQvsonmwhheHO7pG8tilpBfqdGw+r+7wev1pQGvRRvE=; NS:rKN46/cDICvgMKcAWPxtdhNAVzMVG6LnvXkvbMZgNYv8zvImWHHHaUMfqhEwIk4BBWfz4MUoKq6WiJa7dss7E2uveOn2EjlrFOY881KwXuLQuRFLNhmpNxTEALSSJFEzuQkHJNtNkrB71j8PJlAtKDh3RokOw9doB67YcYjWruY="); + AppCmds.exec("C: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; S:KMJelH2MtQREABieZWjke3/Tk2Odx5dx4HeAcNXH9/2TjvFGMaL3cUkdqz8wGofGa+qe1mJFOmFHNob+TlpXkCiNEKF5SIM1v2tkUrkJFH6GqfJ63JIP+EY5v9iBFlSMYKc5CMeChwYxINsCJFf8RlGLce2uSdxtEYjyjG3BIsU=; N:23CPPyBkUhJkNkK9Ok8+lXAWfXaSEih8/fAxarZdmNXUvzJ89pCLZc452U8XtBGMaMTVplO74FE//askIMqA/bFooA1HymMBwBU5/GILWCcttNhQsodnQZQt4bbW8a1ZMQvsonmwhheHO7pG8tilpBfqdGw+r+7wev1pQGvRRvE=; NS:rKN46/cDICvgMKcAWPxtdhNAVzMVG6LnvXkvbMZgNYv8zvImWHHHaUMfqhEwIk4BBWfz4MUoKq6WiJa7dss7E2uveOn2EjlrFOY881KwXuLQuRFLNhmpNxTEALSSJFEzuQkHJNtNkrB71j8PJlAtKDh3RokOw9doB67YcYjWruY="); }; diff --git a/assets/AGT/WebviewSettingsCodes/geojson_level_split.js b/assets/AGT/WebviewSettingsCodes/geojson_level_split.js index 089ed74..c643153 100644 --- a/assets/AGT/WebviewSettingsCodes/geojson_level_split.js +++ b/assets/AGT/WebviewSettingsCodes/geojson_level_split.js @@ -6,7 +6,7 @@ 本代码用于将一个大的 geojson 文件,根据pid、ext_path字段自动拆分成单独的小文件,子级数据默认会放在父级id命名的文件夹内。 ``` Ref -全部数据将会拆分出:一个仅包含所有省份的文件;每个省份各一个文件,内容为此省份所有的市;每个市各一个文件,内容为此市所有的区县;每个区县各一个文件,内容为此区县所有的乡镇;[可选]每个省市区单独一个文件,内容为对应的一条边界数据;[可选]每个乡镇单独一个文件,内容为此乡镇一条边界数据。 +全部数据将会拆分出:一个仅包含所有省份的文件;每个省份各一个文件,内容为此省份所有的市;每个市各一个文件,内容为此市所有的区县;每个区县各一个文件,内容为此区县所有的乡镇;[可选]每个省市区单独一个文件,内容为对应的一条边界数据;[可选]每个乡镇单独一个文件,内容为此乡镇一条边界数据;[可选]只拆分到省级或市级,此级的内容会包含所有的子级数据。 【拆分规则演示】 1. 拆分出 全国 所有的省级到一个文件 @@ -24,7 +24,13 @@ 6. [可选]拆分出 黄鹤楼街道 到单独一个文件 得到 420106003_single.json 只含黄鹤楼街道 一个乡镇边界; - 7. 其他的省市区县乡镇按上面规则拆分得到对应文件; + 7. [可选]只拆分到省级或市级 这级会有一个或多个文件 + 得到 42.json* 包含湖北所有子级数据 + ----或---- + 得到 42_level_1.json 包含了湖北所有的市 + 得到 42_level_2.json 包含了湖北所有的区县 + 得到 42_level_3.json 包含了湖北所有的乡镇 + 8. 其他的省市区县乡镇按上面规则拆分得到对应文件; 【拆分子目录结构】 - /0.json @@ -51,8 +57,17 @@ 个区县均有一个文件夹,里面存放着此区县每个 乡镇的json文件,每个json内只含此乡镇。 + - /0/42.json* + ----或---- + /0/42_level_1.json + /0/42_level_2.json + /0/42_level_3.json + 可选只拆分到省级或市级,此级的内容会包含所 + 有的子级数据。 + - 当配置项勾选了“不要创建上级目录”时,所有子文件将放一个文件夹里面,不会出现本目录结构。 - 当配置勾选了“每条数据单独生成一个文件”时,才会将每个乡镇拆分到单独的一个文件,这些文件内只会有这个乡镇一条数据;省市区也会生成单独的一个默认用_single结尾的文件,只包这个城市一条数据;当同时勾选了“不要生成包含所有下一级数据的文件”时,不会生成不带_single结尾的那些上级文件。 + - 当配置勾选了“只拆分到省级或市级”时,将只拆分到指定的级别,此级别的文件内会包含所有的子级数据;支持子级所有级别的数据放同一个文件,或子级每一级的数据分别放一个文件(此时带有level_*后缀)。 - 上面路径中的 0、42、4201、420106 均为pid,实际为每个省市区的不同id值,当配置项勾选了“文件或目录使用城市名称”时,数将会被城市名称代替。 @@ -105,6 +120,27 @@ Runtime.Ctrls([ \ \ \ +
\ + \ +
\ +\ \ '} @@ -114,7 +150,12 @@ Runtime.Ctrls([ $(".splitToSingle").click(function(){ $(".splitToSingleMore")[this.checked?"show":"hide"](); }); -var childFolderDisable,pathUseName,splitToSingle,singleFileSuffix,singleFileOnly; +$(".splitLimitLevel").click(function(){ + $(".splitLimitLevelMore")[this.checked?"show":"hide"](); +}); +var childFolderDisable,pathUseName; +var splitToSingle,singleFileSuffix,singleFileOnly; +var splitLimitLevel,limitLevelN,limitLevelFile,limitLevelFileSuffix; var runStartTime=0; var runTimeTips=function(){ @@ -139,12 +180,24 @@ window.runClick=function(){ splitToSingle=$(".splitToSingle")[0].checked; singleFileSuffix=splitToSingle?$(".singleFileSuffix").val():""; singleFileOnly=splitToSingle?$(".singleFileOnly")[0].checked:false; + + splitLimitLevel=$(".splitLimitLevel")[0].checked; + limitLevelN=splitLimitLevel?($(".limitLevel1")[0].checked?1:2):0; + limitLevelFile=splitLimitLevel?$(".limitLevelFile")[0].checked:false; + limitLevelFileSuffix=splitLimitLevel?$(".limitLevelFileSuffix").val():""; + + var errTips=""; if(childFolderDisable && pathUseName){ - Runtime.Log("使用名称 和 不创建目录 选项不允许同时选择,否则可能导致同名冲突",1); - return; + errTips=errTips||"使用名称 和 不创建目录 选项不允许同时选择,否则可能导致同名冲突"; } if(splitToSingle && !singleFileSuffix && !singleFileOnly){ - Runtime.Log("文件名后缀为空时,必须勾选 不要生成包含所有下一级数据的文件,否则会文件名冲突",1); + errTips=errTips||"文件名后缀为空时,必须勾选 不要生成包含所有下一级数据的文件,否则会文件名冲突"; + } + if(splitLimitLevel && splitToSingle){ + errTips=errTips||"只拆分到省级或市级 和 每条数据单独生成一个文件 不能同时勾选"; + } + if(errTips){ + AppCmds.showTips(errTips,true);Runtime.Log(errTips,1); return; } Runtime.Log("拆分配置:"+JSON.stringify({ @@ -153,13 +206,18 @@ window.runClick=function(){ ,splitToSingle:splitToSingle ,singleFileSuffix:singleFileSuffix ,singleFileOnly:singleFileOnly + ,splitLimitLevel:splitLimitLevel + ,limitLevelN:limitLevelN + ,limitLevelFile:limitLevelFile + ,limitLevelFileSuffix:limitLevelFileSuffix })); //读取用户选择的文件路径 var config=JSON.parse(AppCmds.config()); var path=config.Input.input_webview_file; if(!path){ - Runtime.Log("请先点击顶部“通用-选择文件”按钮,选择待拆分的geojson文件",1); + var tips="请先点击顶部“通用-选择文件”按钮,选择待拆分的geojson文件" + AppCmds.showTips(tips,true);Runtime.Log(tips,1); return; } @@ -294,10 +352,14 @@ var analysisFile=function(path,Catch,OK){ } if(!isStart){ //等待开始标志 - if(line.indexOf('"features"')==0){ + var fIdx=line.indexOf('"features"'); + if(fIdx==0 || fIdx>0 && fIdx>=line.length-14){ if(!/\[$/.test(line)){ throw new Error("第"+lineNo+"行风格不对,不支持处理此文件"); } + if(fIdx!=0){//不是开头,加一个换行符 + line=line.substr(0,fIdx)+"\n"+line.substr(fIdx); + } isStart=true; } header.push(line);//geojson开头的内容 @@ -318,34 +380,51 @@ var analysisFile=function(path,Catch,OK){ var extPath=prop.ext_path.split(" ");//上级完整路径 下面会pop var deep=extPath.length-1-1;//上级的深度 -1:0级 0:省 1:市 2:区 var name=extPath.pop(); - var obj=pids[pid]||{childCount:0,lines:[],deep:deep,names:extPath}; - pids[pid]=obj; - - var id=prop.id||prop.unique_id; - if(splitToSingle && id==null){ - throw new Error("第"+lineNo+"行数据中无 id|unique_id 属性,不支持 每条数据单独生成一个文件"); - }; //固定的id格式,省去查找上级id麻烦,直接截取 + var ids=[]; if(deep==-1 && pid.length==1){ - obj.ids=[]; + ids=[]; }else if(deep==0 && pid.length==2){ - obj.ids=[pid]; + ids=[pid]; }else if(deep==1 && pid.length==4){ - obj.ids=[pid.substr(0,2),pid]; + ids=[pid.substr(0,2),pid]; }else if(deep==2 && pid.length==6){ - obj.ids=[pid.substr(0,2),pid.substr(0,4),pid]; + ids=[pid.substr(0,2),pid.substr(0,4),pid]; }else{ if(pid.length==6 && /^\d\d90/.test(pid)){//省直辖县级市是6位 - obj.ids=[pid.substr(0,2),pid]; + ids=[pid.substr(0,2),pid]; }else if(pid.length==9 && /^\d\d90\d\d000/.test(pid)){//省直辖县级市结尾000 - obj.ids=[pid.substr(0,2),pid.substr(0,6),pid]; + ids=[pid.substr(0,2),pid.substr(0,6),pid]; }else{ - deep=999;//未知的id + throw new Error("第"+lineNo+"行数据未知的pid="+pid); + } + } + + //只拆分到省级或市级 + if(splitLimitLevel){ + if(limitLevelN==1&&deep>=0){ + pid=ids[0]; + if(limitLevelFile)pid=pid+"_LF"+(deep+1);//子级每级数据分别放一个文件 + deep=0; extPath.length=1; ids.length=1; + } + if(limitLevelN==2&&deep>=1){ + pid=ids[1]; + if(limitLevelFile)pid=pid+"_LF"+(deep+1); + deep=1; extPath.length=2; ids.length=2; } } + + var obj=pids[pid]||{childCount:0,lines:[],deep:deep,names:extPath}; + pids[pid]=obj; + obj.ids=ids; if(obj.deep!=deep)throw new Error("第"+lineNo+"行数据的层级解析错误"); + var id=prop.id||prop.unique_id; + if(splitToSingle && id==null){ + throw new Error("第"+lineNo+"行数据中无 id|unique_id 属性,不支持 每条数据单独生成一个文件"); + }; + obj.lines.push({id:id+"", name:name, txt:line});//写入内存,如果是超大文件,内存不够的话处理不了,另外:超大文件循环fileReadLine一遍非常耗时,没有缓存的话,性能非常低 obj.childCount++; count++; @@ -464,6 +543,14 @@ var saveSpiltFile=function(meta,savePath,Catch,OK){ } //每条数据需单独拆分成一个文件,先生成文件夹 var singleFolder=folder; + //只拆分到省级或市级,子级每级数据分别放一个文件,增加文件名后缀 + var fileSuffix="",filePid=""; + if(limitLevelFile){ + if(/(\d+)_LF(\d+)/.test(pid)){ + filePid=RegExp.$1; + fileSuffix=limitLevelFileSuffix+"_"+RegExp.$2; + } + } var newFile=folder; if(pathUseName){ @@ -471,11 +558,11 @@ var saveSpiltFile=function(meta,savePath,Catch,OK){ newFile+="/全国.json"; !childFolderDisable&&(singleFolder+="/全国"); }else{ - newFile+="/"+pidObj.names[pidObj.deep]+".json"; + newFile+="/"+pidObj.names[pidObj.deep]+fileSuffix+".json"; !childFolderDisable&&(singleFolder+="/"+pidObj.names[pidObj.deep]); } }else{ - newFile+="/"+pid+".json"; + newFile+="/"+(filePid||pid)+fileSuffix+".json"; !childFolderDisable&&(singleFolder+="/"+pid); } diff --git a/assets/AGT/WebviewSettingsCodes/geojson_merge.js b/assets/AGT/WebviewSettingsCodes/geojson_merge.js index a67bed2..d89604b 100644 --- a/assets/AGT/WebviewSettingsCodes/geojson_merge.js +++ b/assets/AGT/WebviewSettingsCodes/geojson_merge.js @@ -5,7 +5,7 @@ 本代码用于将多个小的geojson 文件合并成一个大的,比如将多个城市零散的小geojson文件合并成一个大的文件。 -【注意】本代码只能合并固定的换行风格的geojson文件(类似本工具导出的json文件内容风格),因为要简化对文本的处理,本代码要求所有文件内每条数据文本均独占一行,所以如果一行有多条数据、一条数据占了多行,均不支持合并到一个文件。 +【注意】本代码只能合并固定的换行风格的geojson文件(类似本工具导出的json文件内容风格),因为要简化对文本的处理,本代码要求所有文件内每条数据文本均独占一行,所以如果一行有多条数据、一条数据占了多行,默认是不支持合并的,需要勾选“每个小文件一次性读取后再解析”才能处理。 ******************/ (function(){ @@ -31,12 +31,18 @@ Runtime.Ctrls([ 排除_single文件)\ \ +
\ + \ +
\ \ '} ,{name:"开始合并",click:"runClick"} ,{html:'本合并功能免费版、付费版均可无限制使用'} ]); +var fileFullRead; var runStartTime=0; var runTimeTips=function(){ @@ -56,6 +62,7 @@ window.runClick=function(){ }; runStartTime=Date.now(); + fileFullRead=$(".fileFullRead")[0].checked; var fileNameExp=$(".fileNameExp").val(); if(fileNameExp){ try{ @@ -226,6 +233,37 @@ var writeFile=function(scope,Catch,OK){ return; }; + //一次性读取文件内容,直接解析json + if(fileFullRead){ + var txt=AppCmds.fileRead(read); + try{ + var json=JSON.parse(txt); + json.features.length; + }catch(e){ + throw new Error("文件数据不能解析成geojson"); + } + if(scope.needHead){//geojson开头的内容 + var headCount=0; + for(var k in json){ + if(k!="features"){ + headCount++; + AppCmds.fileWrite(scope.write,(headCount>1?"\n":"{\n")+'"'+k+'": '+JSON.stringify(json[k])+","); + } + } + if(!headCount)throw new Error("未识别到geojson数据"); + AppCmds.fileWrite(scope.write,'\n"features": ['); + scope.needHead=false; + } + for(var i=0;i0?",":"")+"\n"+line); + scope.count++; + count++; + } + isStart=true; + break; + }; + line=AppCmds.fileReadLine(read); lineNo++; if(line==null){ @@ -245,10 +283,14 @@ var writeFile=function(scope,Catch,OK){ } if(!isStart){ //等待开始标志 - if(line.indexOf('"features"')==0){ + var fIdx=line.indexOf('"features"'); + if(fIdx==0 || fIdx>0 && fIdx>=line.length-14){ if(!/\[$/.test(line)){ throw new Error("第"+lineNo+"行风格不对,不支持合并此文件"); } + if(fIdx!=0){//不是开头,加一个换行符 + line=line.substr(0,fIdx)+"\n"+line.substr(fIdx); + } isStart=true; } diff --git a/assets/AreaCity-Geo-Transform-Tools.html b/assets/AreaCity-Geo-Transform-Tools.html index ff0f9d6..1f7a53b 100644 --- a/assets/AreaCity-Geo-Transform-Tools.html +++ b/assets/AreaCity-Geo-Transform-Tools.html @@ -157,6 +157,7 @@
  • GeoJSON 按省市区将下级拆分到多个文件
  • GeoJSON 多个文件合并成一个文件
  • +
  • GeoJSON 文件简化(Simplify) 20MB变成200KB
  • 用户自定义控制参数
  • @@ -174,7 +175,7 @@ ok_geo.csv 省市区三级坐标和边界范围csv文件(130M+) 转成其他格式,比如:shpgeojsonsql; - 或者直接导入数据库:SQL ServerMySQL。 + 或者直接导入数据库:SQL ServerMySQLPostgreSQL。 支持处理ok_geo4_*.csv乡镇第四级坐标边界数据(付费数据); @@ -194,8 +195,8 @@