Skip to main content

中国行政区划四至点位获取、区划shp、geojson下载及流式裁剪链接

Project description

sizhi模块by:pianshilengyubing

项目描述:
1.作用:
此模块用来获取地图省市县乡镇四级行政区划的四至点位,默认左上右下,经度在前,纬度在后,请按该顺序编写代码。
利用该模块,可以省去爬虫等工作时需要手动获取四至点位并转换坐标系的过程,便于节省代码,批量使用,还可使得代码更为可控。
有获取行政区划的四至点位(包含全部区划的最小矩形即包络矩形)与自行输入俩种方式。
1.6版本返回为字典
2.0删除了api请求,全部更改为本地数据,并增加了乡镇级的四至获取。
3.0增加了api可以下载行政区划shp和geojson文件,并且提供url以方便使用gdal的api对数据进行流式裁剪。由于用的自己服务器,如果后续占用资源过多,可能会考虑放在github上
2.使用:
获取四至点位:
有获取行政区划的四至点位与自行输入俩种方式。
请求方式:

box=sizhi.box()  

①按行政区划输入:
需要下载的行政区划中文,请务必加上市、区、县、乡、镇、街道后缀。可输入省市县,以及乡镇街道。eg:北京市、东城区、石门街镇、北王力乡、荷花街道。
通过区划获取,只对中国城市有效。如果区划有变动,需要手动更新dic。
②自行输入:
自行在百度坐标拾取系统(http://api.map.baidu.com/lbsapi/getpoint/index.html)上拾取点位,左上右下,按提示输入。

无论通过哪种方式输入均会提示选择后续代码的坐标系,坐标基于百度地图请输入1,高德腾讯地图请输入2,无偏移地图请输入3。其中1输出坐标系为bd09,2输出坐标系为gcj02,3输出坐标系为wgs84.
获取shp、geojson和url:
请求方式:

bound=sizhi.bound()  

①获取shp、geojson:
需要下载的行政区划中文,请务必加上市、区、县、乡、镇、街道后缀。可输入省市县,以及乡镇街道。eg:北京市、东城区、石门街镇、北王力乡、荷花街道。
可以返回文件保存路径。
②获取url:
返回url,用于流式裁剪,可以裁剪栅格数据等。

clip_command = [
'gdalwarp',
'-cutline', '/vsimem/temp_boundary.geojson',  # 使用 gdalwarp 的内存文件系统
'-crop_to_cutline',
'-co', 'COMPRESS=LZW',
'-dstnodata', '0',
intermediate_tif,
output_tiff_path
]

# 首先将 GeoJSON 写入 /vsimem/temp_boundary.geojson
gdal.FileFromMemBuffer('/vsimem/temp_boundary.geojson', requests.get('http://api.ykghs.top/get_boundary/东城区').text)
subprocess.run(clip_command, check=True)

3.示例:

import sizhi  
box=sizhi.box()  

........
........
返回值:['北京市', [[115.42984813547287, 41.06702959551089], [117.5210935092895, 39.448668299439845]]]
左上右下,俩个点位的经纬度列表。
如果不想在运行后在命令行里输入序号进行选择,也可输入:

box(shurutype=None,ad_city=None,ditutp=None)

shurutype为输入方式,'1'为按区划输入,'2'为手动输入.
ad_city为城市名称,也可以是手动输入时的地块名称.
ditutp为坐标系选择,'1'为bd09,'2'为gcj02,'3'为wgs84.

bound=sizhi.bound()  

........
........
返回值: bound值为shp数据或geojson数据下载的保存路径
bound值为url链接
如果不想在运行后在命令行里输入序号进行选择,也可输入:

bound=sizhi.bound(city_name,down_load_type)

city_name为城市名,down_load_type为'1'时为下载shp,为'2'时为下载geojson,为'3'时返回url链接

4.适用:
基于python3.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sizhi-3.0.6.tar.gz (1.3 MB view hashes)

Uploaded Source

Built Distribution

sizhi-3.0.6-py3-none-any.whl (1.3 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page