GADM (http://gadm.org/) 全称为 Global Administrative Areas,就是全球行政区域边界数据,至于是做什么用的。比如绘制每个城市或国家的边界,但对于我,更重要的作用是通过经纬度查询它在哪个行政区域中。
按照它网站上的说法(2018-02-12):
当前版本是2.8,预计在去年八月份就上第3版,然而并没有,不过这都不重要,有数据才是最重要。最初走了一大堆弯路去找全球的边界数据,搜索的关键字一直是geojson,现实也很给力,找到了很多数据,但是都不完全,缺失了大量的数据。
这个网站提供了全球254个国家或地区的数据,并提供了好几种格式数据,相对来说这几种格式我都不太熟悉,ESRI什么的,第一次听说,毕竟不是专业处理地理位置数据的。然后我需要的是shp格式的数据,因为后续我将使用postgres数据库处理空间坐标相关的数据。
第一段脚本,用于获取全部国家和地区的数据,当然这里直接复制都是可以的,甚至更加简单。
具体脚本参见:https://github.com/loveyu/BlogCodeSegment/blob/master/GEO/gadm/download/cli_country_list.php
require_once __DIR__."/../../../init.php";
$client = new GuzzleHttp\Client();
$res = $client->get("http://gadm.org/country", [
'proxy' => HTTP_PROXY_URL
]);
$body = $res->getBody();
if(empty($body)) {
echo "Empty Response.";
return;
}
preg_match("/<select name="cnt">([\s\S]+?)<\\/select>/", $body, $match);
if(empty($match) || empty($match[1])) {
echo "No Country Match.";
return;
}
preg_match_all("/<option value="(.*?)">(.*?)<\\/option>/", $match[1], $matches, PREG_SET_ORDER);
if(empty($matches)) {
echo "Empty list.";
return;
}
$county_list = [];
foreach($matches as $match) {
$county_list[] = [
'key' => $match[1],
'name' => $match[2],
];
}
file_put_contents(BCS_DATA."geo_gadm_country_list.json", json_encode($county_list, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
echo "Output:".count($county_list);
该段脚本会获取到如下类似的内容:
[
{
"key": "AFG_Afghanistan_3",
"name": "Afghanistan"
},
{
"key": "XAD_Akrotiri and Dhekelia_2",
"name": "Akrotiri and Dhekelia"
},
{
"key": "ALA_Åland_2",
"name": "Åland"
},
{
"key": "ALB_Albania_4",
"name": "Albania"
}
]
读取到列表后,后续的逻辑的为寻找下载地址,这个网站有点绕,使用的是POST提交后获取数据,实际更科学的方式也有,这就不讨论了。在写这个之前,特意用,GuzzleHttp的库,重写了部分内容。不得不说,还真是有点不习惯。
读取全部下载地址:
详见:https://github.com/loveyu/BlogCodeSegment/blob/master/GEO/gadm/download/cli_download_file_list.php
use function GuzzleHttp\Promise\settle;
require_once __DIR__."/../../../init.php";
$raw_list = json_decode(file_get_contents(BCS_DATA."geo_gadm_country_list.json"), true);
$list = $raw_list;
$map_url = [];
while(!empty($list)) {
$i = 0;
$gc_list = array_chunk($list, 20);
$c = count($gc_list);
$error_list = [];
foreach($gc_list as $items) {
echo sprintf("%d/%d\n", ++$i, $c);
$client = new \GuzzleHttp\Client();
$promises = [];
foreach($items as $item) {
$promises[] = $client->postAsync("http://gadm.org/download", [
'form_params' => [
'cnt' => $item['key'],
'thm' => 'shp#shapefile',
'OK' => 'OK',
'_submit_check' => '1'
],
"proxy" => HTTP_PROXY_URL
]);
}
$results = settle($promises)->wait();
foreach($results as $K => $result) {
if(empty($result['value'])) {
echo "Error KEY:{$K}\n";
$error_list[] = $items[$K];
continue;
}
$res = $result['value'];
if(empty($res)) {
$error_list[] = $items[$K];
continue;
}
/**
* @var \GuzzleHttp\Psr7\Response $res
*/
$body = $res->getBody()->getContents();
preg_match("/href=(http:\\/\\/.*?\\.zip)><h3><b>download/", $body, $matches);
if(!empty($matches) && isset($matches[1])) {
$map_url[$items[$K]['key']] = $matches[1];
} else {
echo "{$K} => None\n";
}
}
// print_r($results);
// break;
}
$list = $error_list;
}
//print_r($map_url);
file_put_contents(BCS_DATA."geo_gadm_country_download_url_list.txt", implode("\n", $map_url));
foreach($raw_list as &$item) {
$item['url'] = isset($map_url[$item['key']]) ? $map_url[$item['key']] : "None";
}
unset($item);
file_put_contents(BCS_DATA."geo_gadm_country_download_url_map.json", json_encode($raw_list, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
代码中用了一段非常恶心的循环来解决并发下载出错的问题,幸运的是这种方式非常靠谱,最终得到了254个有效的下载地址,不输出额外的内容,我直接贴出254个文件的下载地址以及对应的文件大小。
同样可以参考地址:https://github.com/loveyu/BlogCodeSegment/blob/master/Data/geo_gadm_country_download_url_list.txt 仅包含下载地址
total 844M
9.9k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ABW_adm_shp.zip
481k http://biogeo.ucdavis.edu/data/gadm2.8/shp/AFG_adm_shp.zip
1.5M http://biogeo.ucdavis.edu/data/gadm2.8/shp/AGO_adm_shp.zip
11k http://biogeo.ucdavis.edu/data/gadm2.8/shp/AIA_adm_shp.zip
346k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ALA_adm_shp.zip
737k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ALB_adm_shp.zip
10k http://biogeo.ucdavis.edu/data/gadm2.8/shp/AND_adm_shp.zip
711k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ARE_adm_shp.zip
3.8M http://biogeo.ucdavis.edu/data/gadm2.8/shp/ARG_adm_shp.zip
32k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ARM_adm_shp.zip
91k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ASM_adm_shp.zip
3.7M http://biogeo.ucdavis.edu/data/gadm2.8/shp/ATA_adm_shp.zip
660k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ATF_adm_shp.zip
53k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ATG_adm_shp.zip
29M http://biogeo.ucdavis.edu/data/gadm2.8/shp/AUS_adm_shp.zip
1.6M http://biogeo.ucdavis.edu/data/gadm2.8/shp/AUT_adm_shp.zip
194k http://biogeo.ucdavis.edu/data/gadm2.8/shp/AZE_adm_shp.zip
2.8M http://biogeo.ucdavis.edu/data/gadm2.8/shp/BDI_adm_shp.zip
685k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BEL_adm_shp.zip
154k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BEN_adm_shp.zip
28k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BES_adm_shp.zip
1.3M http://biogeo.ucdavis.edu/data/gadm2.8/shp/BFA_adm_shp.zip
4.5M http://biogeo.ucdavis.edu/data/gadm2.8/shp/BGD_adm_shp.zip
1.0M http://biogeo.ucdavis.edu/data/gadm2.8/shp/BGR_adm_shp.zip
75k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BHR_adm_shp.zip
1.6M http://biogeo.ucdavis.edu/data/gadm2.8/shp/BHS_adm_shp.zip
330k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BIH_adm_shp.zip
6.9k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BLM_adm_shp.zip
417k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BLR_adm_shp.zip
271k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BLZ_adm_shp.zip
33k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BMU_adm_shp.zip
1.5M http://biogeo.ucdavis.edu/data/gadm2.8/shp/BOL_adm_shp.zip
17M http://biogeo.ucdavis.edu/data/gadm2.8/shp/BRA_adm_shp.zip
24k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BRB_adm_shp.zip
112k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BRN_adm_shp.zip
954k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BTN_adm_shp.zip
4.3k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BVT_adm_shp.zip
841k http://biogeo.ucdavis.edu/data/gadm2.8/shp/BWA_adm_shp.zip
339k http://biogeo.ucdavis.edu/data/gadm2.8/shp/CAF_adm_shp.zip
89M http://biogeo.ucdavis.edu/data/gadm2.8/shp/CAN_adm_shp.zip
9.2k http://biogeo.ucdavis.edu/data/gadm2.8/shp/CCK_adm_shp.zip
3.4M http://biogeo.ucdavis.edu/data/gadm2.8/shp/CHE_adm_shp.zip
25M http://biogeo.ucdavis.edu/data/gadm2.8/shp/CHL_adm_shp.zip
20M http://biogeo.ucdavis.edu/data/gadm2.8/shp/CHN_adm_shp.zip
1.1M http://biogeo.ucdavis.edu/data/gadm2.8/shp/CIV_adm_shp.zip
1.6M http://biogeo.ucdavis.edu/data/gadm2.8/shp/CMR_adm_shp.zip
1.2M http://biogeo.ucdavis.edu/data/gadm2.8/shp/COD_adm_shp.zip
286k http://biogeo.ucdavis.edu/data/gadm2.8/shp/COG_adm_shp.zip
47k http://biogeo.ucdavis.edu/data/gadm2.8/shp/COK_adm_shp.zip
2.0M http://biogeo.ucdavis.edu/data/gadm2.8/shp/COL_adm_shp.zip
79k http://biogeo.ucdavis.edu/data/gadm2.8/shp/COM_adm_shp.zip
186k http://biogeo.ucdavis.edu/data/gadm2.8/shp/CPV_adm_shp.zip
662k http://biogeo.ucdavis.edu/data/gadm2.8/shp/CRI_adm_shp.zip
3.2M http://biogeo.ucdavis.edu/data/gadm2.8/shp/CUB_adm_shp.zip
20k http://biogeo.ucdavis.edu/data/gadm2.8/shp/CUW_adm_shp.zip
7.0k http://biogeo.ucdavis.edu/data/gadm2.8/shp/CXR_adm_shp.zip
36k http://biogeo.ucdavis.edu/data/gadm2.8/shp/CYM_adm_shp.zip
85k http://biogeo.ucdavis.edu/data/gadm2.8/shp/CYP_adm_shp.zip
469k http://biogeo.ucdavis.edu/data/gadm2.8/shp/CZE_adm_shp.zip
25M http://biogeo.ucdavis.edu/data/gadm2.8/shp/DEU_adm_shp.zip
149k http://biogeo.ucdavis.edu/data/gadm2.8/shp/DJI_adm_shp.zip
37k http://biogeo.ucdavis.edu/data/gadm2.8/shp/DMA_adm_shp.zip
2.0M http://biogeo.ucdavis.edu/data/gadm2.8/shp/DNK_adm_shp.zip
939k http://biogeo.ucdavis.edu/data/gadm2.8/shp/DOM_adm_shp.zip
6.8M http://biogeo.ucdavis.edu/data/gadm2.8/shp/DZA_adm_shp.zip
5.2M http://biogeo.ucdavis.edu/data/gadm2.8/shp/ECU_adm_shp.zip
1.3M http://biogeo.ucdavis.edu/data/gadm2.8/shp/EGY_adm_shp.zip
930k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ERI_adm_shp.zip
226k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ESH_adm_shp.zip
7.8M http://biogeo.ucdavis.edu/data/gadm2.8/shp/ESP_adm_shp.zip
16M http://biogeo.ucdavis.edu/data/gadm2.8/shp/EST_adm_shp.zip
878k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ETH_adm_shp.zip
4.7M http://biogeo.ucdavis.edu/data/gadm2.8/shp/FIN_adm_shp.zip
1.6M http://biogeo.ucdavis.edu/data/gadm2.8/shp/FJI_adm_shp.zip
670k http://biogeo.ucdavis.edu/data/gadm2.8/shp/FLK_adm_shp.zip
11M http://biogeo.ucdavis.edu/data/gadm2.8/shp/FRA_adm_shp.zip
114k http://biogeo.ucdavis.edu/data/gadm2.8/shp/FRO_adm_shp.zip
185k http://biogeo.ucdavis.edu/data/gadm2.8/shp/FSM_adm_shp.zip
664k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GAB_adm_shp.zip
4.0M http://biogeo.ucdavis.edu/data/gadm2.8/shp/GBR_adm_shp.zip
353k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GEO_adm_shp.zip
36k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GGY_adm_shp.zip
576k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GHA_adm_shp.zip
5.3k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GIB_adm_shp.zip
940k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GIN_adm_shp.zip
130k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GLP_adm_shp.zip
149k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GMB_adm_shp.zip
876k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GNB_adm_shp.zip
3.2M http://biogeo.ucdavis.edu/data/gadm2.8/shp/GNQ_adm_shp.zip
8.3M http://biogeo.ucdavis.edu/data/gadm2.8/shp/GRC_adm_shp.zip
44k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GRD_adm_shp.zip
7.5M http://biogeo.ucdavis.edu/data/gadm2.8/shp/GRL_adm_shp.zip
404k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GTM_adm_shp.zip
266k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GUF_adm_shp.zip
48k http://biogeo.ucdavis.edu/data/gadm2.8/shp/GUM_adm_shp.zip
1.1M http://biogeo.ucdavis.edu/data/gadm2.8/shp/GUY_adm_shp.zip
156k http://biogeo.ucdavis.edu/data/gadm2.8/shp/HKG_adm_shp.zip
12k http://biogeo.ucdavis.edu/data/gadm2.8/shp/HMD_adm_shp.zip
1.7M http://biogeo.ucdavis.edu/data/gadm2.8/shp/HND_adm_shp.zip
2.9M http://biogeo.ucdavis.edu/data/gadm2.8/shp/HRV_adm_shp.zip
1.7M http://biogeo.ucdavis.edu/data/gadm2.8/shp/HTI_adm_shp.zip
755k http://biogeo.ucdavis.edu/data/gadm2.8/shp/HUN_adm_shp.zip
28M http://biogeo.ucdavis.edu/data/gadm2.8/shp/IDN_adm_shp.zip
89k http://biogeo.ucdavis.edu/data/gadm2.8/shp/IMN_adm_shp.zip
14M http://biogeo.ucdavis.edu/data/gadm2.8/shp/IND_adm_shp.zip
24k http://biogeo.ucdavis.edu/data/gadm2.8/shp/IOT_adm_shp.zip
1.1M http://biogeo.ucdavis.edu/data/gadm2.8/shp/IRL_adm_shp.zip
1.6M http://biogeo.ucdavis.edu/data/gadm2.8/shp/IRN_adm_shp.zip
215k http://biogeo.ucdavis.edu/data/gadm2.8/shp/IRQ_adm_shp.zip
897k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ISL_adm_shp.zip
61k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ISR_adm_shp.zip
9.1M http://biogeo.ucdavis.edu/data/gadm2.8/shp/ITA_adm_shp.zip
145k http://biogeo.ucdavis.edu/data/gadm2.8/shp/JAM_adm_shp.zip
28k http://biogeo.ucdavis.edu/data/gadm2.8/shp/JEY_adm_shp.zip
77k http://biogeo.ucdavis.edu/data/gadm2.8/shp/JOR_adm_shp.zip
10M http://biogeo.ucdavis.edu/data/gadm2.8/shp/JPN_adm_shp.zip
315k http://biogeo.ucdavis.edu/data/gadm2.8/shp/KAZ_adm_shp.zip
17M http://biogeo.ucdavis.edu/data/gadm2.8/shp/KEN_adm_shp.zip
214k http://biogeo.ucdavis.edu/data/gadm2.8/shp/KGZ_adm_shp.zip
6.6M http://biogeo.ucdavis.edu/data/gadm2.8/shp/KHM_adm_shp.zip
200k http://biogeo.ucdavis.edu/data/gadm2.8/shp/KIR_adm_shp.zip
33k http://biogeo.ucdavis.edu/data/gadm2.8/shp/KNA_adm_shp.zip
3.0M http://biogeo.ucdavis.edu/data/gadm2.8/shp/KOR_adm_shp.zip
136k http://biogeo.ucdavis.edu/data/gadm2.8/shp/KWT_adm_shp.zip
1.4M http://biogeo.ucdavis.edu/data/gadm2.8/shp/LAO_adm_shp.zip
3.1M http://biogeo.ucdavis.edu/data/gadm2.8/shp/LBN_adm_shp.zip
467k http://biogeo.ucdavis.edu/data/gadm2.8/shp/LBR_adm_shp.zip
1.3M http://biogeo.ucdavis.edu/data/gadm2.8/shp/LBY_adm_shp.zip
38k http://biogeo.ucdavis.edu/data/gadm2.8/shp/LCA_adm_shp.zip
89k http://biogeo.ucdavis.edu/data/gadm2.8/shp/LIE_adm_shp.zip
2.6M http://biogeo.ucdavis.edu/data/gadm2.8/shp/LKA_adm_shp.zip
361k http://biogeo.ucdavis.edu/data/gadm2.8/shp/LSO_adm_shp.zip
331k http://biogeo.ucdavis.edu/data/gadm2.8/shp/LTU_adm_shp.zip
253k http://biogeo.ucdavis.edu/data/gadm2.8/shp/LUX_adm_shp.zip
358k http://biogeo.ucdavis.edu/data/gadm2.8/shp/LVA_adm_shp.zip
18k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MAC_adm_shp.zip
6.9k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MAF_adm_shp.zip
2.1M http://biogeo.ucdavis.edu/data/gadm2.8/shp/MAR_adm_shp.zip
3.2k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MCO_adm_shp.zip
222k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MDA_adm_shp.zip
16M http://biogeo.ucdavis.edu/data/gadm2.8/shp/MDG_adm_shp.zip
154k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MDV_adm_shp.zip
9.1M http://biogeo.ucdavis.edu/data/gadm2.8/shp/MEX_adm_shp.zip
174k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MHL_adm_shp.zip
96k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MKD_adm_shp.zip
1.8M http://biogeo.ucdavis.edu/data/gadm2.8/shp/MLI_adm_shp.zip
18k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MLT_adm_shp.zip
6.8M http://biogeo.ucdavis.edu/data/gadm2.8/shp/MMR_adm_shp.zip
115k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MNE_adm_shp.zip
345k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MNG_adm_shp.zip
51k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MNP_adm_shp.zip
3.2M http://biogeo.ucdavis.edu/data/gadm2.8/shp/MOZ_adm_shp.zip
416k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MRT_adm_shp.zip
12k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MSR_adm_shp.zip
107k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MTQ_adm_shp.zip
103k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MUS_adm_shp.zip
6.7M http://biogeo.ucdavis.edu/data/gadm2.8/shp/MWI_adm_shp.zip
3.5M http://biogeo.ucdavis.edu/data/gadm2.8/shp/MYS_adm_shp.zip
47k http://biogeo.ucdavis.edu/data/gadm2.8/shp/MYT_adm_shp.zip
1.4M http://biogeo.ucdavis.edu/data/gadm2.8/shp/NAM_adm_shp.zip
767k http://biogeo.ucdavis.edu/data/gadm2.8/shp/NCL_adm_shp.zip
325k http://biogeo.ucdavis.edu/data/gadm2.8/shp/NER_adm_shp.zip
5.8k http://biogeo.ucdavis.edu/data/gadm2.8/shp/NFK_adm_shp.zip
2.5M http://biogeo.ucdavis.edu/data/gadm2.8/shp/NGA_adm_shp.zip
954k http://biogeo.ucdavis.edu/data/gadm2.8/shp/NIC_adm_shp.zip
8.5k http://biogeo.ucdavis.edu/data/gadm2.8/shp/NIU_adm_shp.zip
650k http://biogeo.ucdavis.edu/data/gadm2.8/shp/NLD_adm_shp.zip
6.7M http://biogeo.ucdavis.edu/data/gadm2.8/shp/NOR_adm_shp.zip
1.6M http://biogeo.ucdavis.edu/data/gadm2.8/shp/NPL_adm_shp.zip
16k http://biogeo.ucdavis.edu/data/gadm2.8/shp/NRU_adm_shp.zip
6.5M http://biogeo.ucdavis.edu/data/gadm2.8/shp/NZL_adm_shp.zip
783k http://biogeo.ucdavis.edu/data/gadm2.8/shp/OMN_adm_shp.zip
1.6M http://biogeo.ucdavis.edu/data/gadm2.8/shp/PAK_adm_shp.zip
3.6M http://biogeo.ucdavis.edu/data/gadm2.8/shp/PAN_adm_shp.zip
8.3k http://biogeo.ucdavis.edu/data/gadm2.8/shp/PCN_adm_shp.zip
8.1M http://biogeo.ucdavis.edu/data/gadm2.8/shp/PER_adm_shp.zip
21M http://biogeo.ucdavis.edu/data/gadm2.8/shp/PHL_adm_shp.zip
121k http://biogeo.ucdavis.edu/data/gadm2.8/shp/PLW_adm_shp.zip
5.0M http://biogeo.ucdavis.edu/data/gadm2.8/shp/PNG_adm_shp.zip
751k http://biogeo.ucdavis.edu/data/gadm2.8/shp/POL_adm_shp.zip
192k http://biogeo.ucdavis.edu/data/gadm2.8/shp/PRI_adm_shp.zip
1.8M http://biogeo.ucdavis.edu/data/gadm2.8/shp/PRK_adm_shp.zip
33M http://biogeo.ucdavis.edu/data/gadm2.8/shp/PRT_adm_shp.zip
839k http://biogeo.ucdavis.edu/data/gadm2.8/shp/PRY_adm_shp.zip
42k http://biogeo.ucdavis.edu/data/gadm2.8/shp/PSE_adm_shp.zip
1019k http://biogeo.ucdavis.edu/data/gadm2.8/shp/PYF_adm_shp.zip
148k http://biogeo.ucdavis.edu/data/gadm2.8/shp/QAT_adm_shp.zip
101k http://biogeo.ucdavis.edu/data/gadm2.8/shp/REU_adm_shp.zip
7.1M http://biogeo.ucdavis.edu/data/gadm2.8/shp/ROU_adm_shp.zip
29M http://biogeo.ucdavis.edu/data/gadm2.8/shp/RUS_adm_shp.zip
27M http://biogeo.ucdavis.edu/data/gadm2.8/shp/RWA_adm_shp.zip
1.2M http://biogeo.ucdavis.edu/data/gadm2.8/shp/SAU_adm_shp.zip
844k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SDN_adm_shp.zip
2.0M http://biogeo.ucdavis.edu/data/gadm2.8/shp/SEN_adm_shp.zip
110k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SGP_adm_shp.zip
81k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SGS_adm_shp.zip
234k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SHN_adm_shp.zip
1.2M http://biogeo.ucdavis.edu/data/gadm2.8/shp/SJM_adm_shp.zip
2.5M http://biogeo.ucdavis.edu/data/gadm2.8/shp/SLB_adm_shp.zip
840k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SLE_adm_shp.zip
731k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SLV_adm_shp.zip
46k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SMR_adm_shp.zip
1.1M http://biogeo.ucdavis.edu/data/gadm2.8/shp/SOM_adm_shp.zip
33k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SPM_adm_shp.zip
563k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SRB_adm_shp.zip
269k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SSD_adm_shp.zip
88k http://biogeo.ucdavis.edu/data/gadm2.8/shp/STP_adm_shp.zip
320k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SUR_adm_shp.zip
435k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SVK_adm_shp.zip
137k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SVN_adm_shp.zip
4.7M http://biogeo.ucdavis.edu/data/gadm2.8/shp/SWE_adm_shp.zip
65k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SWZ_adm_shp.zip
5.1k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SXM_adm_shp.zip
228k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SYC_adm_shp.zip
248k http://biogeo.ucdavis.edu/data/gadm2.8/shp/SYR_adm_shp.zip
122k http://biogeo.ucdavis.edu/data/gadm2.8/shp/TCA_adm_shp.zip
362k http://biogeo.ucdavis.edu/data/gadm2.8/shp/TCD_adm_shp.zip
93k http://biogeo.ucdavis.edu/data/gadm2.8/shp/TGO_adm_shp.zip
33M http://biogeo.ucdavis.edu/data/gadm2.8/shp/THA_adm_shp.zip
351k http://biogeo.ucdavis.edu/data/gadm2.8/shp/TJK_adm_shp.zip
24k http://biogeo.ucdavis.edu/data/gadm2.8/shp/TKL_adm_shp.zip
72k http://biogeo.ucdavis.edu/data/gadm2.8/shp/TKM_adm_shp.zip
1.7M http://biogeo.ucdavis.edu/data/gadm2.8/shp/TLS_adm_shp.zip
143k http://biogeo.ucdavis.edu/data/gadm2.8/shp/TON_adm_shp.zip
154k http://biogeo.ucdavis.edu/data/gadm2.8/shp/TTO_adm_shp.zip
937k http://biogeo.ucdavis.edu/data/gadm2.8/shp/TUN_adm_shp.zip
3.0M http://biogeo.ucdavis.edu/data/gadm2.8/shp/TUR_adm_shp.zip
46k http://biogeo.ucdavis.edu/data/gadm2.8/shp/TUV_adm_shp.zip
657k http://biogeo.ucdavis.edu/data/gadm2.8/shp/TWN_adm_shp.zip
11M http://biogeo.ucdavis.edu/data/gadm2.8/shp/TZA_adm_shp.zip
17M http://biogeo.ucdavis.edu/data/gadm2.8/shp/UGA_adm_shp.zip
2.0M http://biogeo.ucdavis.edu/data/gadm2.8/shp/UKR_adm_shp.zip
39k http://biogeo.ucdavis.edu/data/gadm2.8/shp/UMI_adm_shp.zip
508k http://biogeo.ucdavis.edu/data/gadm2.8/shp/URY_adm_shp.zip
32M http://biogeo.ucdavis.edu/data/gadm2.8/shp/USA_adm_shp.zip
408k http://biogeo.ucdavis.edu/data/gadm2.8/shp/UZB_adm_shp.zip
3.4k http://biogeo.ucdavis.edu/data/gadm2.8/shp/VAT_adm_shp.zip
51k http://biogeo.ucdavis.edu/data/gadm2.8/shp/VCT_adm_shp.zip
1.9M http://biogeo.ucdavis.edu/data/gadm2.8/shp/VEN_adm_shp.zip
49k http://biogeo.ucdavis.edu/data/gadm2.8/shp/VGB_adm_shp.zip
87k http://biogeo.ucdavis.edu/data/gadm2.8/shp/VIR_adm_shp.zip
25M http://biogeo.ucdavis.edu/data/gadm2.8/shp/VNM_adm_shp.zip
895k http://biogeo.ucdavis.edu/data/gadm2.8/shp/VUT_adm_shp.zip
37k http://biogeo.ucdavis.edu/data/gadm2.8/shp/WLF_adm_shp.zip
162k http://biogeo.ucdavis.edu/data/gadm2.8/shp/WSM_adm_shp.zip
17k http://biogeo.ucdavis.edu/data/gadm2.8/shp/XAD_adm_shp.zip
35k http://biogeo.ucdavis.edu/data/gadm2.8/shp/XCA_adm_shp.zip
3.4k http://biogeo.ucdavis.edu/data/gadm2.8/shp/XCL_adm_shp.zip
80k http://biogeo.ucdavis.edu/data/gadm2.8/shp/XKO_adm_shp.zip
126k http://biogeo.ucdavis.edu/data/gadm2.8/shp/XNC_adm_shp.zip
1.2M http://biogeo.ucdavis.edu/data/gadm2.8/shp/YEM_adm_shp.zip
28M http://biogeo.ucdavis.edu/data/gadm2.8/shp/ZAF_adm_shp.zip
457k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ZMB_adm_shp.zip
366k http://biogeo.ucdavis.edu/data/gadm2.8/shp/ZWE_adm_shp.zip

一个地理盲都发现了下载的数据不准确,辽宁省的营口市写成了铁岭市,盘锦市的地图与实际不符合,请问博主有更好的数据源吗?
如有要准确,请使用天地图的数据,需要自己手动爬取,但精度较低
下载了一个中国的 发现里面没有台湾
历史问题,人工加上