Python 根据地址获取经纬度

方法一:

使用Geopy包 : https://github.com/geopy/geopy   (仅能精确到城镇,具体街道无结果返回)

from geopy.geocoders import Nominatim

#使用geopy查询
def geocodeN(address):
    gps=Nominatim()
    location=gps.geocode(address)
    return location.longitude,location.latitude

方法二:

使用高德地图或百度地图API,key可去官网申请替换

import requests

#使用高德API
def geocodeG(address):
    par = {‘address‘: address, ‘key‘: ‘cb649a25c1f81c1451adbeca73623251‘}
    base = ‘http://restapi.amap.com/v3/geocode/geo‘
    response = requests.get(base, par)
    answer = response.json()
    GPS=answer[‘geocodes‘][0][‘location‘].split(",")
    return GPS[0],GPS[1]

#使用百度API
def geocodeB(address):
    base = url = "http://api.map.baidu.com/geocoder?address=" + address + "&output=json&key=f247cdb592eb43ebac6ccd27f796e2d2"
    response = requests.get(base)
    answer = response.json()
    return answer[‘result‘][‘location‘][‘lng‘],answer[‘result‘][‘location‘][‘lat‘]

计算两个经纬度间距离:

from math import radians, cos, sin, asin, sqrt

#计算两点间距离-m
def geodistance(lng1,lat1,lng2,lat2):
    lng1, lat1, lng2, lat2 = map(radians, [lng1, lat1, lng2, lat2])
    dlon=lng2-lng1
    dlat=lat2-lat1
    a=sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
    dis=2*asin(sqrt(a))*6371*1000
    return dis
时间: 2024-12-28 15:02:30

Python 根据地址获取经纬度的相关文章

根据省份等地址获取经纬度,或根据经纬度获取地址信息

在web开发涉及地图操作的时候或者移动客户端开发中有时候有以下需求: 下面主要记录通过百度提供的API的一个解决方案: 在百度开发平台中提供了这样一个叫Geocoding 的API,这个API用于提供从地址到经纬度坐标或者从经纬度坐标到地址的转换服务,使用的是http协议,返回JSON或者XML数据. 地理编码:即地址解析,由详细到街道的结构化地址得到百度经纬度信息,例如:“北京市海淀区中关村南大街27号”地址解析的结果是“lng:116.31985,lat:39.959836”.同时,地理编码

利用百度API(js),怎样通过地址获取经纬度

根据经纬度找到具体地址:http://api.map.baidu.com/geocoder?location=纬度,经度&output=输出格式类型&key=用户密钥如:http://api.map.baidu.com/geocoder?location=31.407452,121.490523&output=json&key=6eea93095ae93db2c77be9ac910ff311 根据具体地址找到经纬度:http://api.map.baidu.com/geoc

JS 通过选择百度地图地址获取经纬度自动填充到文本框中的方法

首先要注册百度地图API. 1.登录百度地图开放平台http://lbsyun.baidu.com 注册账号,完善信息,点击网站右上角的"API控制台",点击,创建应用. 应用类型选择:"浏览器端",应用服务全选,Referer白名单:* 点击提交.会生成一个访问应用(AK). AK码记下来,后面页面中要用它来引出百度地图. 2.创建html网页.部分代码如下: <!DOCTYPE html> <html> <head> <

Java 通过地址获取经纬度 - 高德地图

一.添加依赖 <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>6.0</version> </dependency> 二.请求工具类 import com.github.kevinsawicki.http.HttpRequest; /** * 请求工具类 */

根据地址获取经纬度

进入网站:http://map.yanue.net/例如:地址:规划四号路北侧,规划1路西xx米规划四号路北侧,规划1路西xx米需要完善为(加前缀):天津泰达规划四号路北侧,规划1路西xx米天津泰达规划四号路北侧,规划六1路西xx米再作为输入参数,计算后会批量返回经纬度.注意:每行就是一个地址,会返回一个经纬度. 如图:

PHP通过地址获取经纬度【百度地图API】

/** * @param string $address 地址 * @param string $city 城市名 * @return array */ function getLatLng($address='',$city='') { $result = array(); $ak = '';//您的百度地图ak,可以去百度开发者中心去免费申请 $url ="http://api.map.baidu.com/geocoder/v2/?callback=renderOption&outp

jQuery通过地址获取经纬度demo

在开始之前,首先需要登录百度地图API控制台申请密钥ak. 1.登录百度地图开放平台http://lbsyun.baidu.com 注册账号,完善信息,点击网站右上角的"API控制台",点击,创建应用. 应用类型选择:"服务器端",IP白名单:0.0.0.0/0 点击提交.会生成一个访问应用(AK). 2.编写界面. <!DOCTYPE html> <html> <head> <meta charset="utf-

Android Google Maps API 网络服务用于网络定位、计算路线、获取经纬度、获取详细地址等

---恢复内容开始--- extends:http://blog.csdn.net/h7870181/article/details/12505883 Google Maps API 网络服务 官网地址 : https://developers.google.com/maps/documentation/webservices/?hl=zh-cn 其实就是一些接口,供我们调用,如: 1.根据地址获取经纬度 http://maps.google.com/maps/api/geocode/json?

Python通过百度地图API获取地址的经纬度

API 地址:http://developer.baidu.com/map/index.php?title=webapi/guide/webservice-geocoding 一个简单的API,可以通过地址(地名)获得经纬度,或者通过经纬度获取周边的位置信息. ak是百度开发者APIKEY,注册地址:http://developer.baidu.com/ #!/usr/bin/env python3 import requests import json def locatebyAddr(add