django - 试图通过 IP 获取用户位置

标签 django geolocation maps

我试图通过他/她的 IP 地址定位用户,然后在谷歌 map 中显示他们。为此目的最好的方法是什么。或者有没有其他方法可以让用户获得纬度/经度并在谷歌 map 中显示它们而不是 IP 地址。

最佳答案

你的问题实际上是2个问题。第一部分是从 IP 地址获取 lat, lng。 AFAIK,谷歌 map api 不提供基于 IP 的地理定位。因此,要在谷歌 map 上显示 IP 地址,您必须首先获取地理位置(作为地址,或作为 lat、lng)。网络上有各种付费和非付费 API 允许您执行此操作,django 本身为此提供了一个实用程序。
文档是 here 。您的用例将实现为:

from django.contrib.gis.utils import GeoIP
g = GeoIP()
lat,lng = g.lat_lon(user_ip)

要么
address = g.city(user_ip)

注意:此实用程序或许多基于 IP 的免费地理定位 API 之一可能不太准确。

至于第二部分,要在谷歌 map 上显示这个位置,你可以查看这个应用程序:

http://code.google.com/p/django-googlemap/

关于django - 试图通过 IP 获取用户位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4091020/

相关文章:

django - 如何在 django 中设置自定义记录器过滤器

Django save() 方法不保存

maps - OpenLayers始终离线应用程序?

android - 我可以更改 map 叠加层中的点在 map 上绘制的顺序吗

django - Python : Using *args, **kwargs 在包装函数中

Django 休息框架 : redirect if unauthenticated for browsable API

ios - startUpdatingLocation 未在 iOS 中触发

javascript - Cordova:如何将多个 onSuccess 值解析为一个函数

javascript - onPause() 之后,地理位置在 WebView 上保持 Activity 状态

javascript - Leaflet map.fitBounds 错误的中心和缩放