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