diff --git a/suites/test-linux/scripts/overlay.py b/suites/test-linux/scripts/overlay.py index fc4e6c9..ff102e3 100644 --- a/suites/test-linux/scripts/overlay.py +++ b/suites/test-linux/scripts/overlay.py @@ -30,8 +30,10 @@ def main(): sys.exit(1) # 确保坐标系一致 - target_crs = province.crs or "EPSG:4326" - province = province.to_crs(target_crs) + source_crs = province.crs or "EPSG:4326" + # 使用投影坐标系(墨卡托)计算中心点以避免 geographic CRS 警告 + projected_crs = "EPSG:3857" + province_proj = province.to_crs(projected_crs) # 查找所有城市 SHP city_shp_files = glob.glob(os.path.join(cities_dir, "*.shp")) @@ -54,14 +56,14 @@ def main(): "reason": "数据为空", "status": "跳过"}) continue - city = city.to_crs(target_crs) + city = city.to_crs(projected_crs) - # 空间判断:城市中心点是否在省界内 + # 空间判断:城市中心点是否在省界内(使用投影坐标系避免 CRS 警告) city_centroid = city.geometry.centroid.iloc[0] - in_province = province.geometry.contains(city_centroid).any() + in_province = province_proj.geometry.contains(city_centroid).any() # 也检查 intersect 作为辅助判断 - intersects = province.geometry.intersects(city.geometry).any() + intersects = province_proj.geometry.intersects(city.geometry).any() status = "通过 ✅" if in_province else "不通过 ❌"