場所を検索しているときに、Google Map Swift4の一部の住所にnil応答を取得する

ワリヤン

SearchControllerを使用して場所を検索しているときにSwift4を使用してプロジェクトにGoogleマップを統合し、URLを押してその場所への座標を取得し、一部のアドレスにnil応答を取得し、一部のアドレスが正しい応答を返します。なぜ起こっているのかわかりません。この問題について知っている人がいたら助けてください。前もって感謝します

これは、tableViewのdidSelectMethodでアドレスへの座標を(文字列形式で)取得するために使用するコードです。

     override func tableView(_ tableView: UITableView,
                        didSelectRowAt indexPath: IndexPath){
    // 1
    self.dismiss(animated: true, completion: nil)
    // 2
    let urlpath = "https://maps.googleapis.com/maps/api/geocode/json?address=\(self.searchResults[indexPath.row])&sensor=false".addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)

    let url = URL(string: urlpath!)
    print(url!)
    let task = URLSession.shared.dataTask(with: url! as URL) { (data, response, error) -> Void in
        // 3
        print(data!)
        print(response!)
        do {
            if data != nil{
                let dic = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableLeaves) as! NSDictionary
                let result = dic.value(forKey: "results") as! NSArray
                print(result)

                if result.count != 0 {

                let lat =   (((((dic.value(forKey: "results") as! NSArray).object(at: 0) as! NSDictionary).value(forKey: "geometry") as! NSDictionary).value(forKey: "location") as! NSDictionary).value(forKey: "lat")) as! Double

                let lon =   (((((dic.value(forKey: "results") as! NSArray).object(at: 0) as! NSDictionary).value(forKey: "geometry") as! NSDictionary).value(forKey: "location") as! NSDictionary).value(forKey: "lng")) as! Double
                // 4
                self.delegate.locateWithLongitude(lon, andLatitude: lat, andTitle: self.searchResults[indexPath.row])

                }else{

                    print("Data Not Found")
                }
            }

        }catch {
            print("Error")
        }
    }
    // 5
    task.resume()
}
xomena

リクエストにAPIキーがないようです。APIキーは必須になり、Googleはキーレスの使用を廃止します。現在、APIキーのないリクエストは一定期間ブロックされますが、将来的にはキーレスアクセスが完全にブロックされます。

6月11日以降、コア製品にアクセスするには、有効なAPIキーとGoogle CloudPlatformの課金アカウントが必要になります。

ソース:https//mapsplatform.googleblog.com/2018/05/introducing-google-maps-platform.html

ドキュメントに従ってAPIキーを作成し、httpsリクエストで使用する必要があります。

https://developers.google.com/maps/documentation/geocoding/get-api-key

また、WebサービスのAPIキーはIPアドレスの制限のみをサポートしているため、APIキーを保護し、応答をiOSアプリに返すために、中間サーバーからWebサービスリクエストを送信する必要があることにも注意してください。

APIキーの制限に関する次のドキュメントをご覧ください

https://developers.google.com/maps/faq#keysystem

これがお役に立てば幸いです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

google apiv3を使用して郵便番号を入力するときに場所を検索する

分類Dev

Laravel Eloquentは、持っていない場所を取得し、nullでないときに持っている場所を検索します

分類Dev

Swift4でビューの一部にGMSMapViewを追加する方法

分類Dev

1つの変数が関数の一部ではない場合にpurrr :: map2を使用する

分類Dev

下限と上限を使用してmap <pair <int、int>、...>を検索する

分類Dev

Map <String、Object>にキーとして存在するが、Set <String>には存在しないすべての文字列を検索します。Java

分類Dev

.map()を使用してリスト内の要素を検索すると、「未定義」の要素になります。

分類Dev

Javascriptを使用してAPIから大きな応答の一部を取得するにはどうすればよいですか?

分類Dev

mapとgrepを使用して、アンダースコア付きのファイル名を検索する

分類Dev

検索して sed: 所定の場所にあるファイルを置き換える方法は?

分類Dev

AngularHttpRequestは応答の一部を取得します

分類Dev

mapを使用しているときに<mapobject at0x0389DCD0>を取得するのはなぜですか

分類Dev

抽出と挿入を使用してstd :: mapの一部のキーを変更する方法

分類Dev

PHPからAJAXの応答の一部を抽出する方法

分類Dev

PythonでAPI応答の一部を完全なjsonに変換する方法

分類Dev

Google Places APIを使用して、場所がある場合とない場合の両方の検索リクエストを処理するにはどうすればよいですか。

分類Dev

Retrofitを使用するときに、応答の一部を手動で解析する

分類Dev

反応でjson応答の一部を表示するのが難しい

分類Dev

検索にvuejsを使用して入力しているときにのみ検索結果を表示する方法

分類Dev

map()は引数の一部のみを返します

分類Dev

コントローラの応答に基づいてビューの一部を動的に変更する

分類Dev

jmeterJSON応答でURL文字列の一部を抽出する

分類Dev

別のconststd :: mapからconststd :: mapの一部を初期化します

分類Dev

URL Google Map APIまたはSDKから検索エリアの機能IDから場所を取得しますか?

分類Dev

Map <String、List <Object >>の一部であるList <Object>から値を削除する

分類Dev

他の場所をクリックしたときに検索ボックスを閉じる

分類Dev

Xamarin.Forms.Mapで現在の場所を取得する方法または現在の場所に移動する方法

分類Dev

Angular2 と RxJS : Map を使用して、観測可能な応答を別の観測可能な応答に置き換える

分類Dev

反応が機能しないときにmap()を使用して画像を動的に表示する

Related 関連記事

  1. 1

    google apiv3を使用して郵便番号を入力するときに場所を検索する

  2. 2

    Laravel Eloquentは、持っていない場所を取得し、nullでないときに持っている場所を検索します

  3. 3

    Swift4でビューの一部にGMSMapViewを追加する方法

  4. 4

    1つの変数が関数の一部ではない場合にpurrr :: map2を使用する

  5. 5

    下限と上限を使用してmap <pair <int、int>、...>を検索する

  6. 6

    Map <String、Object>にキーとして存在するが、Set <String>には存在しないすべての文字列を検索します。Java

  7. 7

    .map()を使用してリスト内の要素を検索すると、「未定義」の要素になります。

  8. 8

    Javascriptを使用してAPIから大きな応答の一部を取得するにはどうすればよいですか?

  9. 9

    mapとgrepを使用して、アンダースコア付きのファイル名を検索する

  10. 10

    検索して sed: 所定の場所にあるファイルを置き換える方法は?

  11. 11

    AngularHttpRequestは応答の一部を取得します

  12. 12

    mapを使用しているときに<mapobject at0x0389DCD0>を取得するのはなぜですか

  13. 13

    抽出と挿入を使用してstd :: mapの一部のキーを変更する方法

  14. 14

    PHPからAJAXの応答の一部を抽出する方法

  15. 15

    PythonでAPI応答の一部を完全なjsonに変換する方法

  16. 16

    Google Places APIを使用して、場所がある場合とない場合の両方の検索リクエストを処理するにはどうすればよいですか。

  17. 17

    Retrofitを使用するときに、応答の一部を手動で解析する

  18. 18

    反応でjson応答の一部を表示するのが難しい

  19. 19

    検索にvuejsを使用して入力しているときにのみ検索結果を表示する方法

  20. 20

    map()は引数の一部のみを返します

  21. 21

    コントローラの応答に基づいてビューの一部を動的に変更する

  22. 22

    jmeterJSON応答でURL文字列の一部を抽出する

  23. 23

    別のconststd :: mapからconststd :: mapの一部を初期化します

  24. 24

    URL Google Map APIまたはSDKから検索エリアの機能IDから場所を取得しますか?

  25. 25

    Map <String、List <Object >>の一部であるList <Object>から値を削除する

  26. 26

    他の場所をクリックしたときに検索ボックスを閉じる

  27. 27

    Xamarin.Forms.Mapで現在の場所を取得する方法または現在の場所に移動する方法

  28. 28

    Angular2 と RxJS : Map を使用して、観測可能な応答を別の観測可能な応答に置き換える

  29. 29

    反応が機能しないときにmap()を使用して画像を動的に表示する

ホットタグ

アーカイブ