中條 美冬

1639639386

Pythonを使用して必要なアドレスを見つける方法

ジオロケーションを必要としない、使用しない、またはユーザーの住所を処理しないアプリケーションを見つけるのは難しいかもしれません。それは確かに便利な機能であり、あなた自身のサービスにそれを追加したいという願望は理解できます。

そこで、地理データとのやり取りを容易にするPythonパッケージのペアからいくつかのコマンドを紹介します。

1.現在地を取得する

IPアドレス処理用のシンプルなインターフェイスを備えているため、Geocoderパッケージを使用して現在地を取得します。

import geocoder
g = geocoder.ip('me')
g.latlng
Out[1]: [48.4593, 35.0386]
g.address
Out[2]: 'Dnipro, Dnipropetrovsk, UA'

そして、私の場所に近い都市地域の座標、私の母国の都市名、および国コードがあります。これまでのところ、すべての情報は正しいです。ただし、g.geojsonプロパティでより多くを見ることができます。

2.ジオコードによる場所

私にとって、ジオコーダーは住所の操作を少し混乱させます。代わりに、膨大な数のジオコーディングサービスとAPIを備えたGeoPyライブラリで運試しをします。

座標を再度取得するために、Nominatimと呼ばれるデフォルトのものを試してみましょう。

from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="user",timeout=10)
location = geolocator.geocode("Dnipro, Dnipropetrovsk, UA")
(location.latitude, location.longitude)
Out[3]: (48.4680221, 35.0417711)

市内中心部に近い場所が見えます。

3.場所別の地理コード

サービスを逆に試すこともできます—場所ごとにバインドされたジオタグを取得します。GeoPyがまさにそのような機能を提供するという私たちの幸運。

location = geolocator.reverse("48.4680221, 35.0417711")
location.address
Out[4]: 'Галерея, Дмитра Яворницького проспект, Дніпро, Центральний район, Дніпровська міська рада, Дніпропетровська область, 49000-49489, Україна'

さらに良い—現在の地域の言語で住所を取得しました(私にとっては良いことです)。

4.距離を測定します

サービスが旅行を対象としている場合、位置座標の知識は十分ではありません。それらの間の距離が欠けています。

ありがたいことに、GeoPyには距離計算のための機能が組み込まれています。それで、私がエッフェル塔を見たいとしましょう:

loc_paris = geolocator.geocode('Eiffel tower, Paris, France')
loc_paris.address
Out[5]: 'Tour Eiffel, 5, Avenue Anatole France, Quartier du Gros-Caillou, Paris 7e Arrondissement, Paris, Île-de-France, France métropolitaine, 75007, France'

私が故郷の町から始めた場合:

loc_dnipro = geolocator.geocode("Dnipro, Dnipropetrovsk, UA")

どこまで行けばいいですか?

from geopy import distance
coords_1 = (loc_paris.latitude, loc_paris.longitude)
coords_2 = (loc_dnipro.latitude, loc_dnipro.longitude)
distance.distance(coords_1, coords_2).km
Out[6]: 2393.931548459712

または、必要に応じてマイル単位で:

Out[7]: 1487.520100400978

私には遠すぎますが、かなり正確な測定値があります。また、ライブラリには計算用のアルゴリズムがさらにあります。

結論

これは短いイントロでしたが、両方のパッケージのドキュメントに飛び込んで詳細を調べることができます。

読んでくれてありがとう!

What is GEEK

Buddha Community

中條 美冬

1639639386

Pythonを使用して必要なアドレスを見つける方法

ジオロケーションを必要としない、使用しない、またはユーザーの住所を処理しないアプリケーションを見つけるのは難しいかもしれません。それは確かに便利な機能であり、あなた自身のサービスにそれを追加したいという願望は理解できます。

そこで、地理データとのやり取りを容易にするPythonパッケージのペアからいくつかのコマンドを紹介します。

1.現在地を取得する

IPアドレス処理用のシンプルなインターフェイスを備えているため、Geocoderパッケージを使用して現在地を取得します。

import geocoder
g = geocoder.ip('me')
g.latlng
Out[1]: [48.4593, 35.0386]
g.address
Out[2]: 'Dnipro, Dnipropetrovsk, UA'

そして、私の場所に近い都市地域の座標、私の母国の都市名、および国コードがあります。これまでのところ、すべての情報は正しいです。ただし、g.geojsonプロパティでより多くを見ることができます。

2.ジオコードによる場所

私にとって、ジオコーダーは住所の操作を少し混乱させます。代わりに、膨大な数のジオコーディングサービスとAPIを備えたGeoPyライブラリで運試しをします。

座標を再度取得するために、Nominatimと呼ばれるデフォルトのものを試してみましょう。

from geopy.geocoders import Nominatim
geolocator = Nominatim(user_agent="user",timeout=10)
location = geolocator.geocode("Dnipro, Dnipropetrovsk, UA")
(location.latitude, location.longitude)
Out[3]: (48.4680221, 35.0417711)

市内中心部に近い場所が見えます。

3.場所別の地理コード

サービスを逆に試すこともできます—場所ごとにバインドされたジオタグを取得します。GeoPyがまさにそのような機能を提供するという私たちの幸運。

location = geolocator.reverse("48.4680221, 35.0417711")
location.address
Out[4]: 'Галерея, Дмитра Яворницького проспект, Дніпро, Центральний район, Дніпровська міська рада, Дніпропетровська область, 49000-49489, Україна'

さらに良い—現在の地域の言語で住所を取得しました(私にとっては良いことです)。

4.距離を測定します

サービスが旅行を対象としている場合、位置座標の知識は十分ではありません。それらの間の距離が欠けています。

ありがたいことに、GeoPyには距離計算のための機能が組み込まれています。それで、私がエッフェル塔を見たいとしましょう:

loc_paris = geolocator.geocode('Eiffel tower, Paris, France')
loc_paris.address
Out[5]: 'Tour Eiffel, 5, Avenue Anatole France, Quartier du Gros-Caillou, Paris 7e Arrondissement, Paris, Île-de-France, France métropolitaine, 75007, France'

私が故郷の町から始めた場合:

loc_dnipro = geolocator.geocode("Dnipro, Dnipropetrovsk, UA")

どこまで行けばいいですか?

from geopy import distance
coords_1 = (loc_paris.latitude, loc_paris.longitude)
coords_2 = (loc_dnipro.latitude, loc_dnipro.longitude)
distance.distance(coords_1, coords_2).km
Out[6]: 2393.931548459712

または、必要に応じてマイル単位で:

Out[7]: 1487.520100400978

私には遠すぎますが、かなり正確な測定値があります。また、ライブラリには計算用のアルゴリズムがさらにあります。

結論

これは短いイントロでしたが、両方のパッケージのドキュメントに飛び込んで詳細を調べることができます。

読んでくれてありがとう!