CLGeocoder

Panther·2021년 8월 24일
0

https://developer.apple.com/documentation/corelocation/clgeocoder

"An interface for converting between geographic coordinates and place names."

지리적 좌표와 장소명 사이를 변환하는 인터페이스입니다.

Declaration

class CLGeocoder : NSObject

Overview

CLGeocoder 클래스는 좌표(경도 및 위도로 구체화되는)와 해당 좌표의 사용자 친화적 표현 사이를 변환하는 서비스를 제공합니다. 좌표의 사용자 친화적 표현은 주어진 지역에 상응하는 거리, 도시, 주, 국가 및 지역 정보로 구성되지만, 관심 지점, 랜드마크, 기타 식별할 수 있는 정보 또한 포함합니다. 지오코더 객체는 구체화된 좌표 값에서 장소표시 정보를 찾기 위한 네트워크 기반 서비스로 작동하는 single-shot 객체입니다.

지오코더 객체를 사용하려면 객체를 생성하고, 요청을 시작하기 위해 포워드 혹은 리버스 지오코딩 메소드를 호출해야 한비다. 리버스 지오코딩 요청은 위도 및 경도 값을 받고, 사용자가 읽을 수 있는 주소를 찾습니다. 포워드 지오코딩 요청은 사용자가 읽을 수 있는 주소를 받고 상응하는 위도 및 경도 값을 찾습니다. 포워드 지오코딩 요청은 관심의 지점, 해당 위치의 빌딩과 같은 구체화된 위치에 대한 추가적 정보를 반환할 것입니다. 요청의 두 타입의 경우 결과는 CLPlacemark 객체를 사용해서 반환됩니다. 포워드 지오코딩 요청의 경우 제공된 정보가 다양한 위치를 산출하면 여러 장소표시 객체가 반환될 것입니다.

반환할 정보의 타입이 무엇인지에 대해 현명한 결정을 하기 위해 지오코더 서버는 요청 처리 시 제공받은 모든 정보를 사용합니다. 예를 들어 사용자가 고속도로를 따라 빠르게 이동하면 전체적인 지역을 반환하고, 사용자가 지나가는 작은 공원의 이름은 반환하지 않습니다.

Tips for Using a Geocoder Object

앱은 어떻게 앱이 지오코딩을 사용하는지 의식하고 있어야 합니다. 지오코딩 요청은 rate 제한된 앱입니다. 그렇기 때문에 짧은 시간 안에 너무 많은 요청을 만드는 것은 요청 실패가 나타나게 됩니다. (최대 rate가 초과되면 지오코더는 관련 컴플리션 핸들러에 CLError.Code.network 오류를 포함한 오류 객체를 반환합니다.) 아래 내용은 이 클래스를 효과적으로 사용하기 위한 몇 가지 경험 규칙입니다.

  • 하나의 사용자 액션에 대해 하나의 지오코딩 요청을 보냅니다.
  • 사용자가 같은 위치에 지오코딩 관련 여러 액션을 수행하면, 각 액션에 대한 개별적인 요청을 시작하는 것 대신 초기 지오코딩 요청으로부터 결과를 재사용합니다.
  • 사용자의 현재 위치를 자동으로 업데이트하길 원하는 경우(사용자가 움직이는 경우처럼) 사용자가 유의한 거리만큼 이동했으며 합리적인 시간이 지났을 때에만 새 지오코딩 요청을 발행합니다. 예를 들어 일반적인 상황에서 1분에 한 번이 넘는 지오코딩 요청을 보내지 않아야 합니다.
  • 사용자가 결과를 즉시 볼 것 같지 않은 때에는 지오코딩 요청을 시작하지 않아야 합니다. 예를 들어 애플리케이션이 비활성화이거나 백그라운드에 있을 때 요청을 시작하지 않아야 합니다.

컴퓨터 혹은 기기는 지오코더 객체가 자세한 장소표시 정보를 가져올 수 있도록 네트워크에 접근할 수 있어야 합니다. 지오코더는 지역화된 국가 혹은 지역명 및 ISO 국가 코드를 알려주기 위해 충분한 지역적 정보를 저장합니다. 정보가 특정 위치에 사용할 수 없다면 지오코더는 컴플리션 블록에서 오류를 알려줄 것입니다.

지오코더 객체를 MapKit 프레임워크의 클래스와 함께 사용할 수 있으며, 독립적으로 사용할 수도 있습니다.

See Also


Geocoding

Converting Between Coordinates and User-Friendly Place Names

위도/경도 쌍과 해당 위치의 더 사용자 친화적 설명 사이를 변환합니다.

https://developer.apple.com/documentation/corelocation/converting_between_coordinates_and_user-friendly_place_names
https://velog.io/@panther222128/Converting-Between-Coordinates-and-User-Friendly-Place-Names

CLPlacemark

지리적 좌표의 사용자 친화적 설명이며, 장소명, 주소, 기타 관련 정보를 포함할 수 있습니다.

https://developer.apple.com/documentation/corelocation/clplacemark
https://velog.io/@panther222128/CLPlacemark


0개의 댓글