我需要从iso-3166-1 / iso-3166-2代码转换为经度/纬度
示例:
我一直在寻找,但未能找到完整的列表,或者理想情况下,找不到Java库。
This Github project很有前景,但很多地区缺少很多地理位置信息。
请注意,与问题Need a list of all countries in the world, with a longitude and latitude coordinate不同,此问题涉及区域细分(iso-3166-2)。
答案 0 :(得分:2)
由于我没有得到任何答案,我将解释我是如何解决的。
我找到了iso-3166-1国家代码质心的这个csv列表:curl(我不得不做一些手动调整)
至于iso-3166-2区域质心,我最终创建了一个shell脚本,它使用Google Maps API以csv格式打印区域质心(请注意,我没有验证完整输出但是我检查的案例是正确的)。这是使用jq和Apache Commons CSV处理API输出的脚本的简化版本:
#!/bin/bash
# Example list of regions (full list can be obtained from https://www.ip2location.com/free/iso3166-2 )
REGIONS="VE-O GB-BKM GB-CAM GB-CMA"
for REGION in $REGIONS; do
LATLON=$(curl -s "maps.googleapis.com/maps/api/geocode/json?sensor=false&address=$REGION" | jq -r '.results[0].geometry.location.lat,@text ",",.results[0].geometry.location.lng')
echo $REGION , $LATLON | tr -d ' '
done
然后我使用{{3}}
在我的java代码中导入了csv列表答案 1 :(得分:0)
这是我在解决这个问题时找到的最好的资源:
国家/地区坐标: http://dev.maxmind.com/geoip/legacy/codes/country_latlon/
ISO 3166-2坐标: https://github.com/oodavid/iso-3166-2/blob/master/iso_3166_2.js