使用osmnx下载英国边界出现轮廓变形问题
解决OSMnx下载英国边界轮廓变形的问题
问题原因
英国包含大量分散的海外领地,ox.geocode_to_gdf(['United Kingdom'])默认会返回所有关联的地理实体(包括本土、海峡群岛、直布罗陀、福克兰群岛等)。这些区域跨多个大洲,当使用ox.project_gdf()进行投影时,单一投影坐标系无法适配如此大范围的地理区域,最终导致边界轮廓严重变形。
解决方案
方案1:用精确关键词限定获取英国本土
直接使用更精准的地理编码词,只请求英国本土数据:
country = ox.geocode_to_gdf(['Great Britain']) ax = ox.project_gdf(country).plot()
方案2:下载全量数据后筛选本土区域
先获取完整的英国关联数据,再通过属性字段过滤掉海外领地:
country = ox.geocode_to_gdf(['United Kingdom']) # 筛选admin_level为2的本土区域(可根据实际返回数据调整字段值) mainland_uk = country[country['admin_level'] == '2'] ax = ox.project_gdf(mainland_uk).plot()
方案3:用经纬度范围裁剪数据
通过bbox参数限定英国本土的大致经纬度范围,只下载该区域内的边界:
# 英国本土大致经纬度范围:北纬50°-60°,西经8°-东经2° bbox = (50, -8, 60, 2) country = ox.geocode_to_gdf(['United Kingdom'], bbox=bbox) ax = ox.project_gdf(country).plot()
内容的提问来源于stack exchange,提问作者rpahne
相关产品推荐
相关产品推荐

