对于国外的POI数据而言,国内的一些地图api很难获取到其POI信息,解决的办法一般是两种,第一种是从谷歌地图api申请key,然后下载数据。这种方法是最好的,但是目前需要翻墙、以及注册账号(需要国外信用卡、且并不免费),如果只是做一些简单的研究可以采用第二种方法,通过osmnx去下载,直接贴代码
import osmnx as ox
import pandas as pd
import geopandas as gpd
# 定义曼哈顿区的边界框坐标
north, south, east, west = 40.882214, 40.682558, -73.907, -74.018
# 使用OSMnx下载曼哈顿区的地图数据
G = ox.graph_from_bbox(north, south, east, west, network_type='all', simplify=True)
# 提取曼哈顿区的POI数据
pois = ox.geometries_from_bbox(north, south, east, west, tags={'amenity': True})
# 创建GeoDataFrame
gdf = gpd.GeoDataFrame(pois)
# 设置坐标系
gdf.crs = "EPSG:4326"
# 将POI数据保存为shp文件
gdf.to_file(r'E:\taxi_data\POI\shp\manhattan_poi.shp')
#
# # 将POI数据保存为CSV文件
# pois_df = pd.DataFrame(pois)
#
# # 将POI数据保存为CSV文件
# pois.to_csv(r'E:\taxi_data\POI\manhattan_poi.csv', index=False)
print("POI数据已保存为CSV文件.")
得到的结果可以保存为shp文件,也能保存为csv文件,具体得到数据如下