이 무료 API를 사용하여 지구상의 모든 주소를 좌표로 변환

5239 단어 api
Google 지도에 주소를 입력할 때마다 주소가 지구상 어디에 있는지 즉시 알아냅니다. 우리는 때때로 그것을 당연하게 여기고 항상 완벽하지는 않지만 여전히 멋진 소프트웨어 엔지니어링 성과로 남아 있습니다. 주소를 위도/경도 좌표 쌍으로 변환하는 이 프로세스를 지오코딩이라고 합니다.

Google 지도 이외의 지오코딩에 대한 몇 가지 흥미로운 사용 사례가 있습니다. 음식 배달 서비스는 배달 주소와 식당 사이의 거리를 기준으로 배달 비용을 계산하기를 원할 수 있습니다. Google 지도는 타사 응용 프로그램에 지오코딩 API를 제공하지만 요청 1,000건당 약 $5cost you입니다.

하지만 지불할 필요는 없습니다. Positionstack에는 월 25,000개의 API 요청을 허용하는 generous free tier이 있습니다.



지리적 위치 서비스 사용을 시작하려면 먼저 계정create을 만드십시오. 가입을 마치면 an API key을 받게 됩니다.



아쉽게도 Positionstack에서는 각 프로젝트에 대해 추가 API 키를 발급할 수 없습니다. 프로젝트별 키는 키 중 하나가 유출될 경우 액세스 권한을 쉽게 취소할 수 있도록 하는 일반적인 보안 방법입니다. Positionstack은 무료 서비스이므로 발생할 수 있는 최악의 상황은 누군가가 키를 남용하면 계정이 정지되는 것입니다. 막대한 청구서보다 낫지만 여전히 키를 안전하게 보관해야 하는 좋은 이유입니다.

키를 손에 들고 요청을 시도하자! 아래의 뛰어난 명령줄 도구HTTPie를 사용하고 있지만 Postman 또는 cURL도 잘 작동합니다.

❯ http -b get 'http://api.positionstack.com/v1/forward?access_key=[your API key here]&limit=1&query=3%20abbey%20road,%20london'
{
    "data": [
        {
            "administrative_area": null,
            "confidence": 1,
            "continent": "Europe",
            "country": "United Kingdom",
            "country_code": "GBR",
            "county": null,
            "label": "3 Abbey Road, London, England, United Kingdom",
            "latitude": 51.53218,
            "locality": "London",
            "longitude": -0.177866,
            "name": "3 Abbey Road",
            "neighbourhood": "St. John's Wood",
            "number": "3",
            "postal_code": "NW8 9AY",
            "region": "Greater London",
            "region_code": null,
            "street": "Abbey Road",
            "type": "address"
        }
    ]
}


여기에 몇 가지 관찰 사항이 있습니다. 위도와 경도 외에도 조회한 주소의 정리된 버전을 파생할 수 있는 여러 다른 특성을 받게 됩니다. 이러한 속성은 지금은 관련이 없을 수 있지만 구조화되지 않은 주소를 거리, 번호, 우편 번호, 지역 및 국가로 분할해야 하는 경우 유용합니다.

기본적으로 최대 10개의 결과를 얻을 수 있습니다. limit 매개변수를 사용하면 필요에 따라 한도를 줄이거나 늘릴 수 있습니다.

방금 Positionstack의 포워드 지오코딩 서비스를 사용했습니다. 주소로 확인하려는 위도/경도 쌍이 있는 경우에도 가능합니다. 이를 위해 역지오코딩 API를 사용할 수 있습니다. 다음은 42.8130,-1.6475 에 대한 예입니다.

❯ http -b get 'http://api.positionstack.com/v1/reverse?access_key=[your API key]&limit=1&query=42.8130,-1.6475'
{
    "data": [
        {
            "administrative_area": "Pamplona/Iruña",
            "confidence": 0.8,
            "continent": "Europe",
            "country": "Spain",
            "country_code": "ESP",
            "county": null,
            "distance": 0.033,
            "label": "Entrada al Parking del Baluarte, Pamplona, NA, Spain",
            "latitude": 42.813258,
            "locality": "Pamplona",
            "longitude": -1.647702,
            "name": "Entrada al Parking del Baluarte",
            "neighbourhood": null,
            "number": null,
            "postal_code": null,
            "region": "Navarre",
            "region_code": "NA",
            "street": null,
            "type": "venue"
        }
    ]
}


Positionstack의 한 가지 주요 단점은 무료 버전이 HTTPS 요청을 허용하지 않는다는 것입니다. HTTPS 지원이 부족하면 제출하는 주소에 대한 개인 정보 보호 문제가 있습니다. 또는 Bing 지도에는 HTTPS를 지원하는 developer tier이 있지만 사용 제한이 재설정되지 않습니다. 즉, Bing의 대안은 무료 계층보다 평가판 계정에 가깝습니다. 반면에 Bing은 상업적 사용에 대한 라이선스가 있다는 이점이 있습니다. Positionstack의 무료 버전은 그렇지 않습니다. 고려할 가치가 있는 또 다른 무료 옵션은 OpenWeatherMap의 지오코더로, 지자체 수준까지는 작동하지만 거리 수준까지는 작동하지 않는 것으로 보입니다.

위에서 다루지 않은 Positionstack의 API에는 몇 가지 틈새 기능이 있으므로 흥미로운 정보가 있는지 확인하십시오their documentation. 필요한 경우 Positionstack을 사용하여 조회한 위치의 통화 또는 호출 코드를 검색할 수도 있습니다. 행복한 지오코딩!

좋은 웹페이지 즐겨찾기