FreeGoIP.NET và các điểm cuối API.ipstack.com dường như sử dụng vị trí của Nhà cung cấp dịch vụ Internet [ISP], không phải là vị trí của thiết bị của tôi. Tôi đã thử Curl //api.ipstack.com/check?access_key=your_key, và những gì tôi nhận được là
{"ip":"106.51.151.31","type":"ipv4","continent_code":"AS","continent_name":"Asia","country_code":"IN","country_name":"India","region_code":"KA","region_name":"Karnataka","city":"Bengaluru","zip":"560008","latitude":12.9833,"longitude":77.5833,"location":{"geoname_id":1277333,"capital":"New Delhi","languages":[{"code":"hi","name":"Hindi","native":"\u0939\u093f\u0928\u094d\u0926\u0940"},{"code":"en","name":"English","native":"English"}],"country_flag":"\/\/assets.ipstack.com\/flags\/in.svg","country_flag_emoji":"\ud83c\uddee\ud83c\uddf3","country_flag_emoji_unicode":"U+1F1EE U+1F1F3","calling_code":"91","is_eu":false}}
Kiểm tra vị trí LAT, dài trên Google Maps cho biết đây là vị trí của nhà cung cấp dịch vụ, không phải vị trí của máy chủ/thiết bị.
Giải pháp này vẫn có thể sử dụng được, nhưng có lẽ chỉ có độ chi tiết của một thành phố hoặc quốc gia, dựa trên cách ISP tổ chức và định vị các cổng của nó.
Cải thiện bài viết
Lưu bài viết
Trong bài viết này, chúng tôi sẽ thảo luận về cách định vị địa lý khi bạn nhập bất kỳ tên vị trí nào và nó cung cấp tất cả các thông tin hữu ích như mã bưu chính, thành phố, tiểu bang, quốc gia, v.v. với các vĩ độ và kinh độ [tọa độ cụ thể] và phó -versa trong đó chúng tôi cung cấp các tọa độ để có được tên vị trí.
Điều này có thể được thực hiện bằng cách sử dụng thư viện địa lý trong Python. Thư viện này được tích hợp vào Python và do đó cần phải được cài đặt một cách rõ ràng.
Cài đặt
Trong thiết bị đầu cuối của bạn, chỉ cần chạy lệnh đã cho:
PIP Cài đặt Geopy
Phương pháp 1: Nhận tọa độ từ tên vị trí
Với vị trí được cung cấp, có thể sử dụng địa chất để trích xuất tọa độ có nghĩa là vĩ độ và kinh độ của nó. Do đó, nó có thể được sử dụng để thể hiện vị trí theo tọa độ.
Cách tiếp cận
- Nhập mô -đun
- Gọi công cụ nominatim
- Vượt qua vĩ độ và kinh độ để đảo ngược []user_agent you can give any name as it considers it to be the name of the app to which it is providing its services.
- In tên vị trí geocode[] function accepts the location name and returns a geodataframe that has all the details and since it’s a dataframe we can get the address, latitude and longitude by simply calling it with the given syntax
Syntax:
variablename.address
variablename.latitude
variablename.longitude.
Example:
Python3
from
geopy.geocoders
import
Nominatim
loc
=
Nominatim[user_agent
=
"GetLoc"
from
0
from
1=
from
3from
4from
0
from
6from
7
from
6from
9geopy.geocoders
0geopy.geocoders
1geopy.geocoders
2from
0
from
6from
9geopy.geocoders
6geopy.geocoders
7
Output:
Phương pháp 2: Lấy tên vị trí từ vĩ độ và kinh độ
Trong phương pháp này, tất cả mọi thứ đều giống như ở trên, sự khác biệt duy nhất là thay vì sử dụng hàm mã địa lý mà chúng ta sẽ sử dụng phương thức đảo ngược [] chấp nhận tọa độ [vĩ độ và kinh độ] làm đối số, phương thức này đưa ra địa chỉ saucung cấp nó với các tọa độ.reverse[] method which accepts the coordinates [latitude and longitude] as the argument, this method gives the address after providing it with the coordinates.
Syntax:
reverse[latitude,longitude]
Cách tiếp cận
- Nhập mô -đun
- Gọi công cụ nominatim
- Vượt qua vĩ độ và kinh độ để đảo ngược []
- In tên vị trí
Example:
Python3
from
geopy.geocoders
import
Nominatim
import
2=
Nominatim[user_agent
=
"GetLoc"
____10
import
8=
Nominatim
0Nominatim
1from
0
from
6Nominatim
4
Output: