高佬
址的经纬度可以选择两种方法:
方法一
建议使用xGeocoding工具,可以批量获得Google Earth/Google Map///等地图的经纬度。工具地址如下:链接
方案二
使用Python程序,直接嵌入即可。代码如下:(需要注意的是API获取的是墨卡托坐标,而实际使用的是WGS84坐标。代码已添加转换,只要设定语言一致即可实现。)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/usr/bin/python
#coding:utf-8
import xlrd
import xlwt
import requests
import lib
import math
import re
pattern_x=repile(r'"x":(".+?")')
pattern_y=repile(r'"y":(".+?")')
def mercator2wgs84(mercator):
#1=mercator.s()[0]
#2=mercator.s()[1]
nt_x=mercator[0]
nt_y=mercator[1]
x=nt_x/2003750
8.3427892*180
y=nt_y/2003750
8.3427892*180
y=180/math.pi*(2*math.atan(math.exp(y*math.pi/180))-math.pi/2)
return (x,y)
def get_mercator(addr):
quote_addr=lib.quote(addr.encode('utf8'))
city=lib.quote(u'齐齐哈尔市龙'.encode('utf8'))
province=lib.quote(u'黑龙江省'.encode('utf8'))
if quote_addr.startswith(city) or quote_addr.startswith(province):
pass
else:
quote_addr=city+quote_addr
s=lib.quote(u'北京市'.encode('utf8'))
_addr="链接"%(quote_addr
,s)
req=requests.get(_addr)
content=req.content
x=re.findall(pattern_x,content)
y=re.findall(pattern_y,content)
if x:
x=x[0]
y=y[0]
x=x[1:-1]
y=y[1:-1]
x=float(x)
y=float(y)
location=(x,y)
else:
location=()
return location
def run():
data=xlrd.open_workbook('Book
2.xls')
rtable=data.sheets()[0]
nrows=rtable.nrows
values=rtable.col_values(0)
workbook=xlwt.Workbook()
wtable=workbook.add_sheet('data',cell_overwrite_ok=True)
row=0
for value in values:
mercator=get_mercator(value)
if mercator:
wgs=mercator2wgs84(mercator)
else:
wgs=('NotFound','NotFound')
print "%s,%s,%s"%(value,wgs[0],wgs[1])
wtable.write(row,0,value)
wtable.write(row,1,wgs[0])
wtable.write(row,2,wgs[1])
row=row+1
workbook.save('data.xls')
if __name__=='__main__':
run()
2021-09-23 19:15:42