university_location_fetch_osm.py
作者:字禹润
Overview
该子程序目前主要的地图数据获取方式。程序将通过谷歌API获取地点的格式化文本信息并存储为.json文件。然后用OSMnx查询目标地点的相关GIS数据,并保存为.gpkg文件。
下面的内容将对程序代码中一些重点部分进行解释
常量变量
google_api_url
google_api_url类型:string
该变量为Google Place API的请求URL,请求格式为:
https://maps.googleapis.com/maps/api/place/textsearch/json?query={query}&language=zh-CN&key={API_KEY}其中,query为地点名称,规定了获取信息的语言为zh-CN,并规定了使用的API_KEY
该变量内URL的详细使用方法详见:https://developers.google.com/maps/documentation/places/web-service/search-text
input_file_path
input_file_path类型:list
该变量存储了一系列文件地址,这些文件位于map_data/category中,为名录文件,例如:欲获取地点的地点名录
query_formal_name
query_formal_name类型:string
该变量为query变量中空格替换为下划线后的版本
存储目录
其中,gpkg_features_path为.gpkg文件的统一存储地址,gm_features_path为.graphml的统一存储地址,info_file_path为基本信息json文件的统一存储地址
谷歌数据获取部分
在这个部分中,将使用Google Place API获取地点的如下信息:
中文名
格式化地址 (formatted address)
评分
然后这些数据将被存储到info_file_path中为*_info.json文件,该文件示例如下:
路网数据获取部分
将使用OSMnx中的graph_from_address获取一个NetworkX中的MultiDiGraph对象,作为查询地点的路网数据集,该数据集将用于路径规划功能。
其中,dist参数规定了数据的获取半径,此处为2000m
根据OSMnx官方教程中的说法,该数据文件适合被存储为.graphml文件
区域获取
该部分会获取查询地点的所占区域,该功能目前展示没有作用
建筑物获取
将使用OSMnx中的features_from_place方法获取该请求地点内的所有建筑物,返回一个GeoDataFrame。为避免重新读取时造成GeoDataFrame构造器识别格式冲突,需修改当前GeoDataFrame
设施获取
同建筑获取,这里也需要修改当前GeoDataFrame
Last updated