如何从Python获取地址坐标

16 投票
5 回答
50313 浏览
提问于 2025-04-16 16:31

我需要把一个地址转换成经纬度,以便在谷歌地图上显示,但我想在Django的服务器端完成这个操作。我只找到关于JavaScript V3 API的资料。请问我该如何用Python来实现呢?

5 个回答

6

谷歌地图有一个地图的接口,这个接口是一种RESTful接口,而且他们还已经有一个专门为Python准备的库,可以直接使用。

26

我强烈推荐使用 geopy 这个库。它可以给你返回经度和纬度,之后你可以在Google的JavaScript客户端中使用这些数据。

>>> from geopy.geocoders import Nominatim
>>> geolocator = Nominatim()
>>> location = geolocator.geocode("175 5th Avenue NYC")
>>> print(location.address)
Flatiron Building, 175, 5th Avenue, Flatiron, New York, NYC, New York, ...
>>> print((location.latitude, location.longitude))
(40.7410861, -73.9896297241625)

另外,你可以通过使用 GoogleV3 这个类来明确指定你想使用Google的服务作为地理定位工具。

>>> from geopy.geocoders import GoogleV3
>>> geolocator = GoogleV3()
19

我建议你使用 Py-Googlemaps 这个工具。使用起来很简单:

from googlemaps import GoogleMaps
gmaps = GoogleMaps(API_KEY)
lat, lng = gmaps.address_to_latlng(address)

补充一下:如果需要的话,可以通过以下命令安装 Py-Googlemapssudo easy_install googlemaps

撰写回答