有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java国家/地区代码(iso31661/iso31662)到经度和纬度

我需要将iso-3166-1/iso-3166-2代码转换为经度/纬度

示例:

  • 输入:“US”,输出:(37.09024,-95.71289100000001)
  • 输入“VE-O”,输出:(10.9970723,-63.911329599999)

我一直在四处搜索,但没有找到完整的列表,或者理想的情况下,没有找到一个Java库

This Github project很有希望,但缺少许多地区的许多地理位置信息

请注意,与问题Need a list of all countries in the world, with a longitude and latitude coordinate不同,此问题涉及区域细分(iso-3166-2)


共 (2) 个答案

  1. # 2 楼答案

    由于我没有得到任何答案,我将解释我是如何解决的

    我为iso-3166-1国家代码质心找到了这个csv列表:http://dev.maxmind.com/geoip/legacy/codes/country_latlon/(我不得不进行一些手动调整)

    至于iso-3166-2区域质心,我最终创建了一个shell脚本,它使用Google Maps API以csv格式打印区域质心(请注意,我没有验证完整的输出,但我检查的案例是正确的)。下面是使用curljq处理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
    

    然后,我使用Apache Commons CSV将csv清单导入java代码中