1639639386
ジオロケーションを必要としない、使用しない、またはユーザーの住所を処理しないアプリケーションを見つけるのは難しいかもしれません。それは確かに便利な機能であり、あなた自身のサービスにそれを追加したいという願望は理解できます。
そこで、地理データとのやり取りを容易にするPythonパッケージのペアからいくつかのコマンドを紹介します。
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
プロパティでより多くを見ることができます。
私にとって、ジオコーダーは住所の操作を少し混乱させます。代わりに、膨大な数のジオコーディングサービスと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)
市内中心部に近い場所が見えます。
サービスを逆に試すこともできます—場所ごとにバインドされたジオタグを取得します。GeoPyがまさにそのような機能を提供するという私たちの幸運。
location = geolocator.reverse("48.4680221, 35.0417711")
location.address
Out[4]: 'Галерея, Дмитра Яворницького проспект, Дніпро, Центральний район, Дніпровська міська рада, Дніпропетровська область, 49000-49489, Україна'
さらに良い—現在の地域の言語で住所を取得しました(私にとっては良いことです)。
サービスが旅行を対象としている場合、位置座標の知識は十分ではありません。それらの間の距離が欠けています。
ありがたいことに、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
私には遠すぎますが、かなり正確な測定値があります。また、ライブラリには計算用のアルゴリズムがさらにあります。
これは短いイントロでしたが、両方のパッケージのドキュメントに飛び込んで詳細を調べることができます。
読んでくれてありがとう!
1639639386
ジオロケーションを必要としない、使用しない、またはユーザーの住所を処理しないアプリケーションを見つけるのは難しいかもしれません。それは確かに便利な機能であり、あなた自身のサービスにそれを追加したいという願望は理解できます。
そこで、地理データとのやり取りを容易にするPythonパッケージのペアからいくつかのコマンドを紹介します。
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
プロパティでより多くを見ることができます。
私にとって、ジオコーダーは住所の操作を少し混乱させます。代わりに、膨大な数のジオコーディングサービスと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)
市内中心部に近い場所が見えます。
サービスを逆に試すこともできます—場所ごとにバインドされたジオタグを取得します。GeoPyがまさにそのような機能を提供するという私たちの幸運。
location = geolocator.reverse("48.4680221, 35.0417711")
location.address
Out[4]: 'Галерея, Дмитра Яворницького проспект, Дніпро, Центральний район, Дніпровська міська рада, Дніпропетровська область, 49000-49489, Україна'
さらに良い—現在の地域の言語で住所を取得しました(私にとっては良いことです)。
サービスが旅行を対象としている場合、位置座標の知識は十分ではありません。それらの間の距離が欠けています。
ありがたいことに、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
私には遠すぎますが、かなり正確な測定値があります。また、ライブラリには計算用のアルゴリズムがさらにあります。
これは短いイントロでしたが、両方のパッケージのドキュメントに飛び込んで詳細を調べることができます。
読んでくれてありがとう!