实现经纬度是否是中国国内

GA666666 2023-04-30 AM 36℃ 0条
附件中为中国的边境线数据集,-full包含所有省份的边界数据集,目前这个方法的处理速度还不是很理想,可以将中国的经纬度范围作为前置条件,快速过滤掉大部分的非境内坐标再使用函数进行判断,大大提高了处理速度
from shapely.geometry import Point, Polygon
import json

# 读取中国边境线的数据
with open('/Users/ga666666/Desktop/data/中华人民共和国/100000.json') as f:
    border_data = json.load(f)

# 获取边境线的多边形对象
border_polygons = []
for feature in border_data['features']:
    for coord in feature['geometry']['coordinates']:
        border_polygons.append(Polygon(coord))


# 定义一个函数用于判断经纬度是否在中国境内
def is_point_in_china(lon, lat):
    point = Point(lon, lat)
    for polygon in border_polygons:
        if polygon.contains(point):
            return True
    return False

# # 使用示例
# lon, lat = 116.417959,39.901739 # 北京市的经纬度
# if is_point_in_china(lon, lat):
#     print('在中国境内')
# else:
#     print('不在中国境内')
标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~