質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1054閲覧

Pythonのジオコーディングを教えてください

essa

総合スコア81

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

0クリップ

投稿2018/10/04 13:52

編集2018/10/04 14:20

都市名を入力したら緯度経度を出力することをしたいです。
色々ネットで調べているのですが、エラーが起きてしまいできません。

参考URL;
http://sanvarie.hatenablog.com/entry/2015/11/21/205733

上記URLのやり方はエラーが起きました。
エラー名は下記の通りです。
Error OVER_QUERY_LIMIT

どなたか、ジオコーディングをするために有効な方法を教えてください。

どうぞよろしくお願い致します。

以下、23:18に更新

★y_waiwai様

エラーが起きたコードは以下です。

python

1from pygeocoder import Geocoder 2result = Geocoder.geocode("tokyo")

★tachikoma様

queryは転送していないと思います。
上記2行のコードです。

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2018/10/04 13:58

エラーが起きたというコードを提示してください。コードは<code>ボタンで、’’’の枠の中に貼り付けてください
tachikoma

2018/10/04 14:04

queryを連送したりしてませんか。
essa

2018/10/04 14:20

加筆しましたのでご確認のほど、よろしくお願い致します。
guest

回答1

0

ベストアンサー

内部で使っているのは Google Map API ですよね。
何回か使って、API の利用制限に引っかかったのだと思います。

Usage Limits for Google Maps Platform Web Services
Google Map は無料だとあまり使わせてもらえないのかもしれません。

Github geocoder を見ると、他にも利用できる地図サービスはあるようなので、もう少し沢山使えるところで試してみてはどうでしょうか。


追記

確かに公式通りのサンプルを実行したら、1回目から OVER_QUERY_LIMIT になりました。issue 等みてもわからなかったのですが、ライブラリの問題もしくは Google 側の仕様が変わったりしたのかもしれません。

とりあえず OpenStreetMap というオープンで進められている地図プロジェクトのサービスで緯度/経度をとれました。

# -*- coding: utf-8 -*- import geocoder g = geocoder.osm('Tokyo') print('緯度: {}, 経度:{}'.format(*g.latlng))

投稿2018/10/04 14:05

編集2018/10/04 14:35
tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

essa

2018/10/04 14:21

おっしゃるとおり、GoogleMapAPIと理解しております。 ただ、最初の一回目で上記メッセージが出力されました。 githubの情報ありがとうございます。 確認してみます。
tiitoi

2018/10/04 14:35

追記しました。たしかに1回目からエラーになりました。 他のサービスで緯度経度はとれました。
essa

2018/10/04 14:39 編集

実際に動かして確認していただき、ありがとうございます。 私のほうでは、arcgisが提供しているgeocodingを動かしてみました。 >>> import geocoder >>> g = geocoder.arcgis('Redlands,CA') >>> print(g) <[OK] Arcgis - Geocode [Redlands, California]> >>> g.latlng [34.05538000000007, -117.18258999999995] ありがとうございました。
R.Shigemori

2018/10/04 17:16

GoogleMapの仕様が2018年9月から変更になったらしいです。 具体的にはAPI-Keyの発行が必須になったので、API-keyをもらって、コードに設定しないとならなくなりました。わたしは、いつもrequestモジュールでアクセスしているので、kEYをパラメータとして設定する実装になりますがgeocoderの場合はわかりません。 その昔はAPI-Keyが必要だった(そういう記事を見た記憶がある)ので、API-Keyを設定できるように思います。
essa

2018/10/04 23:57

★ R.Shigemori様 情報ありがとうございます。 先月から仕様変更があったのですね。参考にさせていただきます。 ★ opyon様 当該内容のQiita記事ありがとうございます。 Googleも無料で続けていくのは厳しいのですね。 参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問