Swift에서 Google Maps Elevation API를 사용하여 지점 고도 얻기

7212 단어 iOSSwiftGoogleMapsAPI

개요



Google Maps Elevation API에 요청하여 고도 정보를 검색하는 구현 메모입니다.

Elevation API 정보


Google Maps Elevation API のシンプルなインターフェースを使用すると、
地球上の任意の地点における標高データを問い合わせることができます。
さらに、任意のルート上で標高データをサンプリングするようリクエストして、
そのルートに沿った標高の変化を計算することもできます。

이런 일을 할 수 있습니다.
공식 개발자 가이드는 여기입니다.

구현해보기



준비: API 키 가져오기



API 요청에는 API 키가 필요합니다.
이 페이지를 열고 , 「키를 취득한다」버튼으로부터 취득합니다.



구현



간단한 예로 ViewController가 표시되는 시점에서 API 요청을 수행하도록 구현했습니다.
import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()

        request()
    }

    private func request() {
        let configuration = URLSessionConfiguration.default
        let session = URLSession(configuration: configuration)

        let apiKey = "<YOUR_API_KEY>"
        let url = "https://maps.googleapis.com/maps/api/elevation/json?key=\(apiKey)&locations=35.360556,138.727778"
        let task = session.dataTask(with: URL(string: url)!) { (data, response, error) in
            if let error = error {
                print(error)
            } else {
                let json = try! JSONSerialization.jsonObject(with: data!, options: []) as! [String: Any]
                if let results = json["results"] as? [[String: Any]] {
                    for result in results {
                        if let location = result["location"] as? [String: Double] {
                            print(location["lat"])
                            print(location["lng"])
                        }
                        print(result["elevation"] as? Double)
                    }
                }
            }
        }
        task.resume()
    }
}

의 부분을 사전 준비로 취득한 자신의 API 키로 바꾸면 API 요청이 성공한다고 생각합니다.locations에는 고도를 얻고자하는 지점의 위도와 경도를 지정하십시오.
위의 예에서는 후지산이 지정되어 있습니다(위도:35.360556, 경도:138.727778)

여러 위치 정보 요청



여러 지점의 고도를 얻으려면 요청 매개 변수의 위치에 여러 위도 경도를 전달합니다.
  • locations=40.714728,-73.998672|-34.397,150.644

  • 지점과 지점은 | (파이프)로 연결됩니다.

    API 응답


    {
       "results" : [
          {
             "elevation" : 1608.637939453125,
             "location" : {
                "lat" : 39.73915360,
                "lng" : -104.98470340
             },
             "resolution" : 4.771975994110107
          }
       ],
       "status" : "OK"
    }
    

    문서대로입니다만, 이런 느낌으로 돌아옵니다.

    이상, Google Maps Elevation API를 사용해 고도 정보를 취득하는 구현의 메모였습니다.

    좋은 웹페이지 즐겨찾기