python射线法-离线根据经纬度反向获取城市信息

python射线法-离线根据经纬度反向获取城市信息

  • 准备工作
  • 相关算法储备
  • 总结

目前能够使用 经纬度信息去逆解析经纬度的API有很多,各自可以根据业务需求和地理编码格式选择百度、谷歌、高德等API。但是对于大批量每天好几T的数据量再去掉API很突兀了。
这里简单写了射线法,用来判断当前经纬度是否在城市边界的多边形矩阵内。

准备工作

申请高德api key、Polygon、Pandas、Geohash
1.需要各省市经纬度信息城市边界信息组成多边形矩阵
2.对城市边界信息做矢量偏移
3.使用geohash加速算法

相关算法储备

射线法原理:https://blog.csdn.net/enweitech/article/details/80654420(参考大佬博客,写的很详细)
geohash空间索引:https://www.jianshu.com/p/7332dcb978b2

一、 高德网站网站申请key,以北京市为例。获取全国城市信息写个city list吧。

import request

city_name = '北京市'
resp = requests.get('http://restapi.amap.com/v3/config/district?key={}&keywords={}&subdistrict=0&extensions=all'.format(key,city_name))
lands = resp.json()['districts'][0]['polyline']

lands得到了北京市的多个经纬度信息,将多个经纬度合起来便可以组成多边形。

二、矢量偏移
由于高徳返回的经纬度点非常多,而且有些城市是沿海城市会形成岛屿。这里简单的进行调优,代码在上一步封装一下。

city_list = ['拉萨市','日喀则市','昌都市','林芝市','山南市','那曲市','阿里地区']

def city_split():
    global cl
    for city in cl:
        try:
            resp = requests.get('http://restapi.amap.com/v3/config/district?key={}&keywords={}&subdistrict=0&extensions=all'.format(key,city_name))
            lands = resp.json()['districts'][0]['polyline']

            points = []

            lands = lands.strip('\n').split('|')

            max_land = 0
            for land in lands: 
                points_str = land.split(';')
                if len(points_str) > max_land:
                    point = []
                    for p in points_str:
                        lon, lat = p.split(',')
                        point.append(
                            [
                                float(lon), float(lat)
                            ]
                        )
                    points.append(Polygon(point))
            polygon = MultiPolygon(points)
            s = polygon.buffer(0.06).simplify(0.02, preserve_topology=False)
            wgs_list = []
            for i in list(s.exterior.coords):
                wgs_list.append(gu.gcj02_to_wgs84(*i))
            wgs_list
            datas = pd.DataFrame(wgs_list,columns=['longitude','latitude']).reset_index()
            datas['index'] = city
            datas['province'] = '西藏自治区'
            datas.to_csv('./data/city_split.csv',index=False,mode='a',header=False)
        except:
            print(city)
            continue

city_split()

三、射线法判断是否在点内,并用geohash空间索引加速

import pandas as pd
import time
import geohash

pd.set_option('display.max_row', None)
city_df = pd.read_csv('./data/citys_split.csv')  # 城市边界数据
city_df['geohash'] = city_df.apply(lambda x: geohash.encode(x.lat, x.lng, precision=2), axis=1)

geohash映射索引后格式如下:

city_df.head()

city	lng	lat	province	geohash
0	重庆市	105.229149	29.537980	重庆市	wm6
1	重庆市	105.346298	29.724197	重庆市	wm6
2	重庆市	105.500943	29.781377	重庆市	wm7
3	重庆市	105.541257	29.868097	重庆市	wm7
4	重庆市	105.642070	29.907960	重庆市	wm7

射线法判断经纬度是否在城市多边形内

class GeoCoding(object):
    def __init__(self, df,lat_name,lng_name):
        self.df = df
        self.lat = lat_name
        self.lng = lng_name
        
    def isptinpoly(self, aLon, aLat, pointList):
        iSum = 0
        iCount = len(pointList)
        if (iCount < 3):
            return False
        for i in range(iCount):
            pLon1 = pointList[i][0]
            pLat1 = pointList[i][1]
            if (i == iCount - 1):
                pLon2 = pointList[0][0]
                pLat2 = pointList[0][1]
            else:
                pLon2 = pointList[i + 1][0]
                pLat2 = pointList[i + 1][1]
            if ((aLat >= pLat1) and (aLat < pLat2)) or ((aLat >= pLat2) and (aLat < pLat1)):
                if (abs(pLat1 - pLat2) > 0):
                    pLon = pLon1 - ((pLon1 - pLon2) * (pLat1 - aLat)) / (pLat1 - pLat2);
                    if (pLon < aLon):
                        iSum += 1
        if (iSum % 2 != 0):
            return True
        else:
            return False

    def hash_city(self, geohash_id, latitude, longitude):
        citys = ""
        prov = ""
        quert_city = city_df[city_df['geohash']==geohash_id]['city'].value_counts().index
        for i in quert_city:
            tmp_df = city_df[city_df['city']==i]
            line_matrix = tmp_df[["lng", "lat"]].values
            tmp_res = self.isptinpoly(longitude, latitude, line_matrix)
            if tmp_res is False:
                continue
            else:
                citys = i
                prov = tmp_df['province'].value_counts().index[0]
        return prov, citys

    def run(self):
        self.df['geohash'] = self.df.apply(lambda x: geohash.encode(x.device_info_family_latitude, x.device_info_family_longitude, precision=3), axis=1)
        self.df = pd.concat([self.df, pd.DataFrame(data=[i for i in self.df.apply(lambda row: self.hash_city(row['geohash'], row[self.lat], row[self.lng]), axis=1)], columns=['device_info_province', 'device_info_city'])], axis=1)
#         self.df.drop(['geohash'], axis=1, inplace=True)
        return self.df

四、验证测试集

test_df = pd.read_csv('./data/user_app_loc.csv').drop(['uid','name'], axis=1)
test_df = test_df.loc[:500,:]
test_df.head(10)

	dt	device_info_family_latitude	device_info_family_longitude
0	2019-12-01	34.598824	119.173946
1	2019-12-01	35.989018	104.001563
2	2019-12-01	40.004246	116.405563
3	2019-12-01	40.004270	116.405417
4	2019-12-01	30.587658	114.459403
5	2019-12-01	22.971863	113.330686
6	2019-12-01	44.156407	87.975227
7	2019-12-01	32.025581	118.786248
8	2019-12-01	31.965269	118.803891
9	2019-12-01	39.801384	116.427805
st = time.time()
# 传入df数据与latitude,longitude的列名

dataframe = GeoCoding(test_df,'device_info_family_latitude','device_info_family_longitude').run()
print(time.time()-st)

9.650320053100586

dataframe.head(500)

	dt	device_info_family_latitude	device_info_family_longitude	geohash	device_info_province	device_info_city
0	2019-12-01	34.598824	119.173946	wwh	江苏省	连云港市
1	2019-12-01	35.989018	104.001563	wq3	甘肃省	兰州市
2	2019-12-01	40.004246	116.405563	wx4	北京市	北京市
3	2019-12-01	40.004270	116.405417	wx4	北京市	北京市
4	2019-12-01	30.587658	114.459403	wt3	湖北省	武汉市
5	2019-12-01	22.971863	113.330686	ws0	广东省	广州市
6	2019-12-01	44.156407	87.975227	tzy	新疆维吾尔自治区	阜康市
7	2019-12-01	32.025581	118.786248	wts	江苏省	南京市
8	2019-12-01	31.965269	118.803891	wts	江苏省	南京市
9	2019-12-01	39.801384	116.427805	wx4	北京市	北京市
10	2019-12-01	31.225574	121.466778	wtw	上海市	上海市
11	2019-12-01	31.472795	120.272773	wtt	江苏省	无锡市
12	2019-12-01	31.293134	121.533883	wtw	上海市	上海市
13	2019-12-01	31.293184	121.533740	wtw	上海市	上海市
14	2019-12-01	31.215881	121.443554	wtw	上海市	上海市
15	2019-12-01	31.215890	121.443560	wtw	上海市	上海市
16	2019-12-01	31.215878	121.443553	wtw	上海市	上海市
17	2019-12-01	31.216081	121.443637	wtw	上海市	上海市
18	2019-12-01	25.251404	110.175516	wkq	广西壮族自治区	桂林市
19	2019-12-01	25.095757	102.925425	wk3	云南省	昆明市
20	2019-12-01	37.529644	121.433806	www	山东省	烟台市
21	2019-12-01	37.529648	121.433799	www	山东省	烟台市
22	2019-12-01	40.053439	116.325895	wx4	北京市	北京市
23	2019-12-01	29.861560	121.540492	wtq	浙江省	宁波市
24	2019-12-01	30.634386	104.108957	wm6	四川省	成都市
25	2019-12-01	30.648737	104.189701	wm6	四川省	成都市
26	2019-12-01	30.634365	104.108908	wm6	四川省	成都市
27	2019-12-01	31.242341	121.439109	wtw	上海市	上海市
28	2019-12-01	25.836750	119.582244	wst	福建省	福州市
29	2019-12-01	23.002340	113.383834	ws0	广东省	广州市
30	2019-12-01	22.708820	114.251928	ws1	广东省	东莞市
31	2019-12-01	31.224918	121.495594	wtw	上海市	上海市
32	2019-12-01	21.237683	110.401996	w7y	广东省	湛江市
33	2019-12-01	1.550142	103.796472	w23		
34	2019-12-01	39.954344	116.452692	wx4	北京市	北京市
35	2019-12-01	39.954344	116.452692	wx4	北京市	北京市
36	2019-12-01	39.954341	116.452709	wx4	北京市	北京市
37	2019-12-01	31.451075	104.718831	wmd	四川省	绵阳市
38	2019-12-01	31.450957	104.718930	wmd	四川省	绵阳市
39	2019-12-01	31.450980	104.718907	wmd	四川省	绵阳市
40	2019-12-01	36.535308	102.010747	wq2		
41	2019-12-01	40.086884	116.588964	wx4	北京市	北京市
42	2019-12-01	39.994050	116.336573	wx4	北京市	北京市
43	2019-12-01	39.976999	116.381219	wx4	北京市	北京市
44	2019-12-01	40.086884	116.588964	wx4	北京市	北京市
45	2019-12-01	39.994058	116.336506	wx4	北京市	北京市
46	2019-12-01	39.890769	116.331965	wx4	北京市	北京市
47	2019-12-01	40.054731	116.615530	wx4	北京市	北京市
48	2019-12-01	31.236122	121.515477	wtw	上海市	上海市
49	2019-12-01	31.236111	121.515483	wtw	上海市	上海市
50	2019-12-01	31.236235	121.516518	wtw	上海市	上海市
51	2019-12-01	31.236121	121.515458	wtw	上海市	上海市
52	2019-12-01	28.138034	113.058651	wt0	湖南省	长沙市
53	2019-12-01	38.465252	106.256757	wqg	宁夏回族自治区	银川市
54	2019-12-01	38.465293	106.256802	wqg	宁夏回族自治区	银川市
55	2019-12-01	25.018837	102.720063	wk3	云南省	昆明市
56	2019-12-01	25.019114	102.719813	wk3	云南省	昆明市
57	2019-12-01	25.085515	102.661030	wk3	云南省	昆明市
58	2019-12-01	25.085464	102.660831	wk3	云南省	昆明市
59	2019-12-01	25.085423	102.660722	wk3	云南省	昆明市
60	2019-12-01	25.056550	102.670950	wk3	云南省	昆明市
61	2019-12-01	25.085400	102.660666	wk3	云南省	昆明市
62	2019-12-01	22.215848	113.541491	web	广东省	中山市
63	2019-12-01	39.899356	116.107108	wx4	北京市	北京市
64	2019-12-01	22.607694	114.159687	ws1	广东省	东莞市
65	2019-12-01	28.704796	115.984545	wt4	江西省	南昌市
66	2019-12-01	46.627520	124.901711	yb2	黑龙江省	大庆市
67	2019-12-01	39.791442	116.508681	wx4	北京市	北京市
68	2019-12-01	39.791442	116.508681	wx4	北京市	北京市
69	2019-12-01	36.068792	120.316449	wwm	山东省	青岛市
70	2019-12-01	23.008310	113.738355	ws0	广东省	东莞市
71	2019-12-01	23.020651	113.779504	ws0	广东省	东莞市
72	2019-12-01	24.935051	98.482339	whq	云南省	腾冲市
73	2019-12-01	29.536019	106.560250	wm7	重庆市	重庆市
74	2019-12-01	39.931190	116.260323	wx4	北京市	北京市
75	2019-12-01	39.895320	116.335418	wx4	北京市	北京市
76	2019-12-01	49.144791	-123.129214	c28		
77	2019-12-01	49.325638	-123.126235	c2b		
78	2019-12-01	27.794187	114.425821	wsc	江西省	宜春市
79	2019-12-01	23.127920	113.279145	ws0	广东省	广州市
80	2019-12-01	22.969497	113.346437	ws0	广东省	广州市
81	2019-12-01	39.991531	116.338407	wx4	北京市	北京市
82	2019-12-01	31.798780	118.707915	wts	江苏省	南京市
83	2019-12-01	28.185437	113.217621	wt0	湖南省	长沙市
84	2019-12-01	23.160148	113.383739	ws0	广东省	广州市
85	2019-12-01	39.039633	117.665569	wwg	天津市	天津市
86	2019-12-01	22.782100	108.274418	wkh	广西壮族自治区	南宁市
87	2019-12-01	39.930229	116.582388	wx4	北京市	北京市
88	2019-12-01	29.346914	119.760118	wtj	浙江省	金华市
89	2019-12-01	29.346914	119.760118	wtj	浙江省	金华市
90	2019-12-01	31.403902	120.946213	wtw	江苏省	苏州市
91	2019-12-01	31.406763	120.962168	wtw	江苏省	苏州市
92	2019-12-01	29.822037	121.527296	wtq	浙江省	宁波市
93	2019-12-01	29.822039	121.527291	wtq	浙江省	宁波市
94	2019-12-01	29.822036	121.527297	wtq	浙江省	宁波市
95	2019-12-01	23.010456	113.095352	ws0	广东省	佛山市
96	2019-12-01	23.118932	113.334328	ws0	广东省	广州市
97	2019-12-01	23.014946	113.341068	ws0	广东省	广州市
98	2019-12-01	24.544055	111.315519	wkr	广西壮族自治区	贺州市
99	2019-12-01	22.611864	114.119742	ws1	广东省	深圳市
100	2019-12-01	39.868407	116.382519	wx4	北京市	北京市
101	2019-12-01	25.417238	119.016183	wss	福建省	莆田市
102	2019-12-01	25.417213	119.016202	wss	福建省	莆田市
103	2019-12-01	38.052693	114.524902	wwc	河北省	石家庄市
104	2019-12-01	38.045424	114.545760	wwc	河北省	石家庄市
105	2019-12-01	38.053419	114.524598	wwc	河北省	石家庄市
106	2019-12-01	39.864019	116.499259	wx4	北京市	北京市
107	2019-12-01	39.822709	116.503907	wx4	北京市	北京市
108	2019-12-01	39.857060	116.462415	wx4	北京市	北京市
109	2019-12-01	39.826303	116.517803	wx4	北京市	北京市
110	2019-12-01	39.882472	116.531682	wx4	北京市	北京市
111	2019-12-01	39.864156	116.499287	wx4	北京市	北京市
112	2019-12-01	39.908734	116.306063	wx4	北京市	北京市
113	2019-12-01	39.899749	116.400384	wx4	北京市	北京市
114	2019-12-01	41.633726	123.497533	wxr	辽宁省	沈阳市
115	2019-12-01	41.633643	123.497823	wxr	辽宁省	沈阳市
116	2019-12-01	22.647551	114.054814	ws1	广东省	深圳市
117	2019-12-01	24.519632	117.674279	ws7	福建省	漳州市
118	2019-12-01	24.521585	117.675189	ws7	福建省	漳州市
119	2019-12-01	24.519437	117.673961	ws7	福建省	漳州市
120	2019-12-01	24.519477	117.673898	ws7	福建省	漳州市
121	2019-12-01	24.521474	117.675151	ws7	福建省	漳州市
122	2019-12-01	34.198281	108.998694	wqj	陕西省	西安市
123	2019-12-01	30.194132	120.179866	wtm	浙江省	杭州市
124	2019-12-01	31.292709	121.472386	wtw	上海市	上海市
125	2019-12-01	31.292880	121.472427	wtw	上海市	上海市
126	2019-12-01	22.760486	108.275083	wkh	广西壮族自治区	南宁市
127	2019-12-01	31.189870	121.414886	wtw	上海市	上海市
128	2019-12-01	31.189881	121.414876	wtw	上海市	上海市
129	2019-12-01	28.669666	119.517316	wth	浙江省	金华市
130	2019-12-01	28.669892	119.518117	wth	浙江省	金华市
131	2019-12-01	28.669802	119.518179	wth	浙江省	金华市
132	2019-12-01	28.669844	119.517793	wth	浙江省	金华市
133	2019-12-01	29.554931	106.467537	wm7	重庆市	重庆市
134	2019-12-01	23.168088	113.264167	ws0	广东省	广州市
135	2019-12-01	30.490849	114.401380	wt3	湖北省	武汉市
136	2019-12-01	30.490853	114.401994	wt3	湖北省	武汉市
137	2019-12-01	22.597098	114.123387	ws1	广东省	深圳市
138	2019-12-01	39.940282	116.435003	wx4	北京市	北京市
139	2019-12-01	29.569850	106.501507	wm7	重庆市	重庆市
140	2019-12-01	31.256894	121.393839	wtw	上海市	上海市
141	2019-12-01	23.123504	113.389417	ws0	广东省	广州市
142	2019-12-01	23.124091	113.389327	ws0	广东省	广州市
143	2019-12-01	23.124453	113.389975	ws0	广东省	广州市
144	2019-12-01	23.211436	113.251581	ws0	广东省	广州市
145	2019-12-01	24.780590	118.704680	wsk	福建省	泉州市
146	2019-12-01	24.779983	118.704723	wsk	福建省	泉州市
147	2019-12-01	34.437516	108.759600	wqj	陕西省	咸阳市
148	2019-12-01	34.440824	108.760652	wqj	陕西省	咸阳市
149	2019-12-01	34.433621	108.759532	wqj	陕西省	咸阳市
150	2019-12-01	29.944204	121.500232	wtq	浙江省	宁波市
151	2019-12-01	29.952039	121.511077	wtq	浙江省	宁波市
152	2019-12-01	29.944145	121.500236	wtq	浙江省	宁波市
153	2019-12-01	36.846450	117.205460	wwe	山东省	济南市
154	2019-12-01	36.842117	117.208523	wwe	山东省	济南市
155	2019-12-01	29.087453	119.635924	wtj	浙江省	金华市
156	2019-12-01	32.896417	117.334584	wtg	安徽省	蚌埠市
157	2019-12-01	32.896459	117.334587	wtg	安徽省	蚌埠市
158	2019-12-01	39.980091	116.476721	wx4	北京市	北京市
159	2019-12-01	39.995020	116.448040	wx4	北京市	北京市
160	2019-12-01	39.940728	116.437049	wx4	北京市	北京市
161	2019-12-01	45.708027	126.687525	yb4	黑龙江省	哈尔滨市
162	2019-12-01	31.251819	121.477733	wtw	上海市	上海市
163	2019-12-01	25.094623	102.925599	wk3	云南省	昆明市
164	2019-12-01	23.034661	113.170021	ws0	广东省	广州市
165	2019-12-01	31.927511	118.824253	wts	江苏省	南京市
166	2019-12-01	40.042640	116.322551	wx4	北京市	北京市
167	2019-12-01	22.606222	108.192189	wkh	广西壮族自治区	南宁市
168	2019-12-01	22.562516	113.883762	ws0	广东省	深圳市
169	2019-12-01	30.234925	120.244497	wtm	浙江省	杭州市
170	2019-12-01	30.234184	120.227582	wtm	浙江省	杭州市
171	2019-12-01	39.809457	116.526361	wx4	北京市	北京市
172	2019-12-01	28.468624	119.932489	wtj	浙江省	丽水市
173	2019-12-01	39.858930	116.413868	wx4	北京市	北京市
174	2019-12-01	39.866362	116.424568	wx4	北京市	北京市
175	2019-12-01	39.866362	116.424568	wx4	北京市	北京市
176	2019-12-01	26.567335	106.668744	wke	贵州省	贵阳市
177	2019-12-01	31.181169	120.677089	wtt	江苏省	苏州市
178	2019-12-01	23.009411	113.148995	ws0	广东省	佛山市
179	2019-12-01	32.033788	118.744473	wts	江苏省	南京市
180	2019-12-01	23.079797	113.233809	ws0	广东省	广州市
181	2019-12-01	23.124253	113.415790	ws0	广东省	广州市
182	2019-12-01	39.793810	116.512181	wx4	北京市	北京市
183	2019-12-01	41.734031	123.440165	wxr	辽宁省	沈阳市
184	2019-12-01	31.318625	120.713311	wtt	江苏省	苏州市
185	2019-12-01	31.785709	117.147839	wte	安徽省	合肥市
186	2019-12-01	29.020225	111.709329	wmp	湖南省	常德市
187	2019-12-01	22.846525	113.625979	ws0	广东省	东莞市
188	2019-12-01	22.846396	113.626169	ws0	广东省	东莞市
189	2019-12-01	39.995571	116.336956	wx4	北京市	北京市
190	2019-12-01	23.180224	112.996874	ws0	广东省	佛山市
191	2019-12-01	23.189493	113.364735	ws0	广东省	广州市
192	2019-12-01	41.753417	123.519449	wxr	辽宁省	沈阳市
193	2019-12-01	31.465250	104.750642	wmd	四川省	绵阳市
194	2019-12-01	22.677799	113.825805	ws0	广东省	深圳市
195	2019-12-01	22.679654	113.803727	ws0	广东省	深圳市
196	2019-12-01	35.684715	139.730207	xn7		
197	2019-12-01	36.049970	103.838869	wq3	甘肃省	兰州市
198	2019-12-01	36.050062	103.838730	wq3	甘肃省	兰州市
199	2019-12-01	36.050039	103.838828	wq3	甘肃省	兰州市
200	2019-12-01	36.050050	103.838812	wq3	甘肃省	兰州市
201	2019-12-01	36.050060	103.838823	wq3	甘肃省	兰州市
202	2019-12-01	36.771433	118.501012	wws	山东省	潍坊市
203	2019-12-01	31.335023	120.628523	wtt	江苏省	苏州市
204	2019-12-01	31.335022	120.628522	wtt	江苏省	苏州市
205	2019-12-01	36.100825	103.616654	wq3	甘肃省	兰州市
206	2019-12-01	22.820185	108.402894	wkj	广西壮族自治区	南宁市
207	2019-12-01	44.162671	87.525599	tzy	新疆维吾尔自治区	昌吉市
208	2019-12-01	39.106566	117.223801	wwg	天津市	天津市
209	2019-12-01	39.106601	117.223569	wwg	天津市	天津市
210	2019-12-01	22.961665	113.087777	ws0	广东省	佛山市
211	2019-12-01	39.739454	116.551573	wx4	北京市	北京市
212	2019-12-01	29.269472	117.842560	wt5	江西省	上饶市
213	2019-12-01	43.797920	125.385421	wzc	吉林省	长春市
214	2019-12-01	22.989772	113.267797	ws0	广东省	广州市
215	2019-12-01	39.773042	116.593511	wx4	北京市	北京市
216	2019-12-01	39.773472	116.593730	wx4	北京市	北京市
217	2019-12-01	39.772824	116.593668	wx4	北京市	北京市
218	2019-12-01	39.773042	116.593513	wx4	北京市	北京市
219	2019-12-01	40.377219	116.845998	wx5	北京市	北京市
220	2019-12-01	27.239003	111.487381	wkz	湖南省	邵阳市
221	2019-12-01	24.525444	118.157303	wsk	福建省	厦门市
222	2019-12-01	25.673990	119.382263	wss	福建省	福州市
223	2019-12-01	30.646990	104.024652	wm3	四川省	成都市
224	2019-12-01	30.714844	104.062995	wm6	四川省	成都市
225	2019-12-01	31.239061	121.475282	wtw	上海市	上海市
226	2019-12-01	23.135164	113.591661	ws0	广东省	东莞市
227	2019-12-01	38.928932	121.607680	wwy	辽宁省	大连市
228	2019-12-01	38.928953	121.604503	wwy	辽宁省	大连市
229	2019-12-01	38.928972	121.607634	wwy	辽宁省	大连市
230	2019-12-01	28.904099	121.207427	wtn	浙江省	台州市
231	2019-12-01	23.112604	113.646286	ws0	广东省	东莞市
232	2019-12-01	39.841957	116.359981	wx4	北京市	北京市
233	2019-12-01	25.302136	98.520098	whq	云南省	腾冲市
234	2019-12-01	39.043799	117.260941	wwg	天津市	天津市
235	2019-12-01	22.824635	108.314318	wkj	广西壮族自治区	南宁市
236	2019-12-01	22.837780	108.305238	wkj	广西壮族自治区	南宁市
237	2019-12-01	22.831351	108.325723	wkj	广西壮族自治区	南宁市
238	2019-12-01	41.870266	123.428203	wxr	辽宁省	沈阳市
239	2019-12-01	34.556508	105.858202	wq5	甘肃省	天水市
240	2019-12-01	22.626322	114.081016	ws1	广东省	深圳市
241	2019-12-01	31.973519	118.809728	wts	江苏省	南京市
242	2019-12-01	32.070443	118.288322	wts	安徽省	滁州市
243	2019-12-01	32.063339	118.283413	wts	安徽省	滁州市
244	2019-12-01	34.433634	108.759596	wqj	陕西省	咸阳市
245	2019-12-01	36.154708	120.426186	wwm	山东省	青岛市
246	2019-12-01	27.840542	112.942876	wsb	湖南省	湘潭市
247	2019-12-01	34.232564	108.963147	wqj	陕西省	西安市
248	2019-12-01	34.232583	108.963022	wqj	陕西省	西安市
249	2019-12-01	34.233372	108.966371	wqj	陕西省	西安市
250	2019-12-01	34.232505	108.963107	wqj	陕西省	西安市
251	2019-12-01	28.244420	113.088114	wt0	湖南省	长沙市
252	2019-12-01	28.238061	113.093145	wt0	湖南省	长沙市
253	2019-12-01	43.929841	116.088759	wxf		
254	2019-12-01	39.759988	116.189086	wx4	北京市	北京市
255	2019-12-01	37.877640	112.621543	ww8	山西省	太原市
256	2019-12-01	34.243988	108.959969	wqj	陕西省	西安市
257	2019-12-01	34.243991	108.959944	wqj	陕西省	西安市
258	2019-12-01	24.466084	117.718764	ws7	福建省	漳州市
259	2019-12-01	24.554365	117.631771	ws7	福建省	漳州市
260	2019-12-01	34.755416	113.781899	ww0	河南省	郑州市
261	2019-12-01	31.282106	121.482776	wtw	上海市	上海市
262	2019-12-01	31.296544	121.488371	wtw	上海市	上海市
263	2019-12-01	23.099587	113.445503	ws0	广东省	广州市
264	2019-12-01	23.101125	113.442367	ws0	广东省	广州市
265	2019-12-01	23.099918	113.436998	ws0	广东省	广州市
266	2019-12-01	23.099705	113.436978	ws0	广东省	广州市
267	2019-12-01	23.424106	113.421504	ws0	广东省	广州市
268	2019-12-01	41.822866	123.489981	wxr	辽宁省	沈阳市
269	2019-12-01	41.822080	123.490287	wxr	辽宁省	沈阳市
270	2019-12-01	41.822970	123.490049	wxr	辽宁省	沈阳市
271	2019-12-01	41.822229	123.489923	wxr	辽宁省	沈阳市
272	2019-12-01	38.926523	121.622450	wwy	辽宁省	大连市
273	2019-12-01	27.794490	120.656315	wsv	浙江省	温州市
274	2019-12-01	27.793767	120.648010	wsv	浙江省	温州市
275	2019-12-01	27.794510	120.656318	wsv	浙江省	温州市
276	2019-12-01	31.159035	121.523700	wtw	上海市	上海市
277	2019-12-01	32.013396	119.671030	wtt	江苏省	镇江市
278	2019-12-01	32.653241	110.799138	wmy	湖北省	十堰市
279	2019-12-01	40.086924	116.390887	wx4	北京市	北京市
280	2019-12-01	23.240734	113.356357	ws0	广东省	广州市
281	2019-12-01	31.341090	117.177117	wte	安徽省	合肥市
282	2019-12-01	39.791389	116.508744	wx4	北京市	北京市
283	2019-12-01	39.922552	116.432933	wx4	北京市	北京市
284	2019-12-01	25.074893	102.945970	wk3	云南省	昆明市
285	2019-12-01	22.678683	114.225002	ws1	广东省	东莞市
286	2019-12-01	31.818973	117.177929	wte	安徽省	合肥市
287	2019-12-01	27.924513	110.083142	wky	湖南省	湘西
288	2019-12-01	40.154270	116.299291	wx4	北京市	北京市
289	2019-12-01	23.126680	113.283753	ws0	广东省	广州市
290	2019-12-01	23.126862	113.283409	ws0	广东省	广州市
291	2019-12-01	25.001571	102.668471	wk3	云南省	昆明市
292	2019-12-01	31.902740	117.171997	wte	安徽省	合肥市
293	2019-12-01	39.579799	116.616863	wx4	河北省	廊坊市
294	2019-12-01	31.271824	120.530941	wtt	江苏省	苏州市
295	2019-12-01	31.460270	120.595866	wtt	江苏省	苏州市
296	2019-12-01	31.031324	121.230840	wtw	上海市	上海市
297	2019-12-01	39.967867	116.325924	wx4	北京市	北京市
298	2019-12-01	31.409115	121.199986	wtw	上海市	上海市
299	2019-12-01	40.085298	116.373141	wx4	北京市	北京市
300	2019-12-01	40.079848	116.337253	wx4	北京市	北京市
301	2019-12-01	40.085599	116.329256	wx4	北京市	北京市
302	2019-12-01	23.116805	113.244293	ws0	广东省	广州市
303	2019-12-01	38.252163	101.959621	wqb	甘肃省	金昌市
304	2019-12-01	31.024041	113.106464	wt8	湖北省	荆门市
305	2019-12-01	31.024018	113.106487	wt8	湖北省	荆门市
306	2019-12-01	31.024061	113.106449	wt8	湖北省	荆门市
307	2019-12-01	39.916735	116.661580	wx4	北京市	北京市
308	2019-12-01	22.822860	108.271452	wkh	广西壮族自治区	南宁市
309	2019-12-01	39.908806	116.672765	wx4	北京市	北京市
310	2019-12-01	39.903457	116.616644	wx4	北京市	北京市
311	2019-12-01	39.908511	116.688177	wx4	北京市	北京市
312	2019-12-01	29.538435	106.504695	wm7	重庆市	重庆市
313	2019-12-01	29.538527	106.504667	wm7	重庆市	重庆市
314	2019-12-01	22.834067	108.290934	wkj	广西壮族自治区	南宁市
315	2019-12-01	22.842431	108.286537	wkj	广西壮族自治区	南宁市
316	2019-12-01	30.516101	104.054210	wm3	四川省	成都市
317	2019-12-01	30.516126	104.054463	wm3	四川省	成都市
318	2019-12-01	23.146431	113.259598	ws0	广东省	广州市
319	2019-12-01	23.180967	113.279126	ws0	广东省	广州市
320	2019-12-01	23.125673	113.258402	ws0	广东省	广州市
321	2019-12-01	39.750405	116.434449	wx4	北京市	北京市
322	2019-12-01	38.702886	115.205831	wwc	河北省	保定市
323	2019-12-01	22.598159	114.044159	ws1	广东省	深圳市
324	2019-12-01	22.598169	114.044037	ws1	广东省	深圳市
325	2019-12-01	30.624029	104.140958	wm6	四川省	成都市
326	2019-12-01	45.765599	126.617896	yb4	黑龙江省	哈尔滨市
327	2019-12-01	45.765587	126.617898	yb4	黑龙江省	哈尔滨市
328	2019-12-01	45.765836	126.617979	yb4	黑龙江省	哈尔滨市
329	2019-12-01	23.174556	113.204743	ws0	广东省	广州市
330	2019-12-01	23.174568	113.204668	ws0	广东省	广州市
331	2019-12-01	39.813750	117.012857	wx5	河北省	廊坊市
332	2019-12-01	29.168094	115.830747	wt4	江西省	九江市
333	2019-12-01	23.508310	113.058993	ws0	广东省	清远市
334	2019-12-01	30.823505	106.096161	wm7	四川省	南充市
335	2019-12-01	36.181281	120.386287	wwm	山东省	青岛市
336	2019-12-01	36.174599	120.378045	wwm	山东省	青岛市
337	2019-12-01	29.529957	106.523544	wm5	重庆市	重庆市
338	2019-12-01	36.791080	118.056556	wwe	山东省	淄博市
339	2019-12-01	36.797678	118.042765	wwe	山东省	淄博市
340	2019-12-01	40.005434	116.369992	wx4	北京市	北京市
341	2019-12-01	35.224444	115.496402	ww6	山东省	菏泽市
342	2019-12-01	18.309263	109.404998	w7m	海南省	三亚市
343	2019-12-01	18.309231	109.405036	w7m	海南省	三亚市
344	2019-12-01	30.700987	103.976866	wm3	四川省	成都市
345	2019-12-01	23.121700	113.384897	ws0	广东省	广州市
346	2019-12-01	23.123997	113.389425	ws0	广东省	广州市
347	2019-12-01	34.435094	108.764894	wqj	陕西省	咸阳市
348	2019-12-01	34.435100	108.764889	wqj	陕西省	咸阳市
349	2019-12-01	25.208821	110.049178	wkq	广西壮族自治区	桂林市
350	2019-12-01	25.217089	110.054261	wkq	广西壮族自治区	桂林市
351	2019-12-01	34.435087	108.764902	wqj	陕西省	咸阳市
352	2019-12-01	23.254426	113.285646	ws0	广东省	广州市
353	2019-12-01	23.160499	113.258051	ws0	广东省	广州市
354	2019-12-01	30.291193	120.457733	wtm	浙江省	嘉兴市
355	2019-12-01	39.843371	116.393910	wx4	北京市	北京市
356	2019-12-01	37.869271	112.532071	ww8	山西省	太原市
357	2019-12-01	22.250911	113.512195	web	广东省	中山市
358	2019-12-01	22.250807	113.512424	web	广东省	中山市
359	2019-12-01	22.250720	113.512199	web	广东省	中山市
360	2019-12-01	23.105784	113.181241	ws0	广东省	广州市
361	2019-12-01	22.577585	113.084974	ws0	广东省	江门市
362	2019-12-01	22.962183	113.890847	ws0	广东省	东莞市
363	2019-12-01	32.139707	118.991269	wts	江苏省	镇江市
364	2019-12-01	23.160787	113.235168	ws0	广东省	广州市
365	2019-12-01	30.274377	120.193470	wtm	浙江省	杭州市
366	2019-12-01	43.899263	87.475616	tzy	新疆维吾尔自治区	乌鲁木齐市
367	2019-12-01	26.644363	106.625699	wke	贵州省	贵阳市
368	2019-12-01	23.157784	114.445888	ws1	广东省	惠州市
369	2019-12-01	30.191806	120.205071	wtm	浙江省	杭州市
370	2019-12-01	34.736253	113.615667	ww0	河南省	郑州市
371	2019-12-01	39.231387	117.825549	wwg	天津市	天津市
372	2019-12-01	22.539690	114.018344	ws1	香港特别行政区	香港特别行政区
373	2019-12-01	28.082111	121.273184	wsy	浙江省	台州市
374	2019-12-01	28.082079	121.273154	wsy	浙江省	台州市
375	2019-12-01	28.122847	121.238619	wsy	浙江省	台州市
376	2019-12-01	28.122900	121.238814	wsy	浙江省	台州市
377	2019-12-01	28.082077	121.273211	wsy	浙江省	台州市
378	2019-12-01	28.082046	121.273133	wsy	浙江省	台州市
379	2019-12-01	27.912917	120.848852	wsv	浙江省	温州市
380	2019-12-01	27.828063	121.144167	wsy	浙江省	温州市
381	2019-12-01	34.615166	119.166840	wwh	江苏省	连云港市
382	2019-12-01	34.615118	119.166836	wwh	江苏省	连云港市
383	2019-12-01	34.609143	119.164263	wwh	江苏省	连云港市
384	2019-12-01	34.490115	119.546565	wwj	江苏省	连云港市
385	2019-12-01	41.803987	123.344676	wxr	辽宁省	沈阳市
386	2019-12-01	23.169760	113.268932	ws0	广东省	广州市
387	2019-12-01	22.540800	113.913296	ws1	广东省	深圳市
388	2019-12-01	30.286402	120.123885	wtm	浙江省	杭州市
389	2019-12-01	30.288094	120.123726	wtm	浙江省	杭州市
390	2019-12-01	23.043518	113.145440	ws0	广东省	广州市
391	2019-12-01	23.043553	113.145470	ws0	广东省	广州市
392	2019-12-01	23.043558	113.145404	ws0	广东省	广州市
393	2019-12-01	23.043126	113.145294	ws0	广东省	广州市
394	2019-12-01	23.043110	113.145297	ws0	广东省	广州市
395	2019-12-01	23.043129	113.145327	ws0	广东省	广州市
396	2019-12-01	23.042800	113.145148	ws0	广东省	广州市
397	2019-12-01	23.043544	113.145424	ws0	广东省	广州市
398	2019-12-01	23.043142	113.145268	ws0	广东省	广州市
399	2019-12-01	25.255938	110.324897	wkq	广西壮族自治区	桂林市
400	2019-12-01	31.283044	120.508142	wtt	江苏省	苏州市
401	2019-12-01	24.563638	118.052645	ws7	福建省	厦门市
402	2019-12-01	38.011801	114.487758	wwc	河北省	石家庄市
403	2019-12-01	38.011539	114.487561	wwc	河北省	石家庄市
404	2019-12-01	38.011798	114.487726	wwc	河北省	石家庄市
405	2019-12-01	24.071330	116.964023	ws7	广东省	潮州市
406	2019-12-01	24.072935	116.960483	ws7	广东省	潮州市
407	2019-12-01	39.107501	117.719293	wwg	天津市	天津市
408	2019-12-01	39.802793	116.287541	wx4	北京市	北京市
409	2019-12-01	39.802786	116.287506	wx4	北京市	北京市
410	2019-12-01	31.505916	120.434265	wtt	江苏省	苏州市
411	2019-12-01	22.533486	114.060139	ws1	香港特别行政区	香港特别行政区
412	2019-12-01	22.533189	114.060053	ws1	香港特别行政区	香港特别行政区
413	2019-12-01	22.285001	114.145023	wec	香港特别行政区	香港特别行政区
414	2019-12-01	22.449766	114.177413	wec	香港特别行政区	香港特别行政区
415	2019-12-01	22.285024	114.145003	wec	香港特别行政区	香港特别行政区
416	2019-12-01	34.297547	108.980125	wqj	陕西省	西安市
417	2019-12-01	32.063285	118.283783	wts	安徽省	滁州市
418	2019-12-01	32.063729	118.283248	wts	安徽省	滁州市
419	2019-12-01	32.086022	118.274345	wts	安徽省	滁州市
420	2019-12-01	31.185227	121.693325	wtw	上海市	上海市
421	2019-12-01	31.185245	121.693148	wtw	上海市	上海市
422	2019-12-01	31.183995	121.696364	wtw	上海市	上海市
423	2019-12-01	31.184026	121.696345	wtw	上海市	上海市
424	2019-12-01	31.184105	121.696373	wtw	上海市	上海市
425	2019-12-01	23.028542	113.367935	ws0	广东省	广州市
426	2019-12-01	31.061452	121.545099	wtw	上海市	上海市
427	2019-12-01	31.061451	121.545098	wtw	上海市	上海市
428	2019-12-01	22.835781	113.672017	ws0	广东省	东莞市
429	2019-12-01	22.846654	113.258846	ws0	广东省	广州市
430	2019-12-01	36.039389	103.855255	wq3	甘肃省	兰州市
431	2019-12-01	36.040131	103.855060	wq3	甘肃省	兰州市
432	2019-12-01	22.611978	113.184066	ws0	广东省	江门市
433	2019-12-01	22.551346	114.023179	ws1	香港特别行政区	香港特别行政区
434	2019-12-01	22.551622	114.022982	ws1	香港特别行政区	香港特别行政区
435	2019-12-01	38.945211	121.588265	wwy	辽宁省	大连市
436	2019-12-01	38.945139	121.587994	wwy	辽宁省	大连市
437	2019-12-01	39.772551	116.333405	wx4	北京市	北京市
438	2019-12-01	30.446914	114.010994	wt3	湖北省	武汉市
439	2019-12-01	37.750588	115.673233	wwd	河北省	衡水市
440	2019-12-01	30.230025	120.257374	wtm	浙江省	杭州市
441	2019-12-01	30.229579	120.257874	wtm	浙江省	杭州市
442	2019-12-01	31.124825	121.436102	wtw	上海市	上海市
443	2019-12-01	39.670821	106.807219	wr5	内蒙古自治区	乌海市
444	2019-12-01	39.667548	106.807876	wr5	内蒙古自治区	乌海市
445	2019-12-01	39.964320	116.529353	wx4	北京市	北京市
446	2019-12-01	40.757478	107.419416	wrh	内蒙古自治区	巴彦淖尔
447	2019-12-01	23.112919	113.213619	ws0	广东省	广州市
448	2019-12-01	25.095056	102.930440	wk3	云南省	昆明市
449	2019-12-01	25.096712	102.925998	wk3	云南省	昆明市
450	2019-12-01	30.067469	103.823783	wm3		
451	2019-12-01	29.976825	103.443291	wm3		
452	2019-12-01	28.592060	115.964241	wt4	江西省	南昌市
453	2019-12-01	39.917428	116.508704	wx4	北京市	北京市
454	2019-12-01	22.758032	114.499446	ws1	广东省	惠州市
455	2019-12-01	26.051011	119.296111	wss	福建省	福州市
456	2019-12-01	24.617067	118.246066	wsk	福建省	厦门市
457	2019-12-01	37.755130	112.631485	ww8	山西省	太原市
458	2019-12-01	38.921631	121.641270	wwy	辽宁省	大连市
459	2019-12-01	39.949675	116.407636	wx4	北京市	北京市
460	2019-12-01	39.973108	116.790033	wx5	北京市	北京市
461	2019-12-01	39.973233	116.790094	wx5	北京市	北京市
462	2019-12-01	40.070999	116.412565	wx4	北京市	北京市
463	2019-12-01	39.932443	116.324773	wx4	北京市	北京市
464	2019-12-01	39.791392	116.284305	wx4	北京市	北京市
465	2019-12-01	39.791375	116.284281	wx4	北京市	北京市
466	2019-12-01	29.568840	106.493214	wm7	重庆市	重庆市
467	2019-12-01	29.568666	106.493182	wm7	重庆市	重庆市
468	2019-12-01	20.007620	110.311584	w7w	海南省	海口市
469	2019-12-01	35.231131	115.499637	ww6	山东省	菏泽市
470	2019-12-01	35.532620	115.816370	ww6	山东省	菏泽市
471	2019-12-01	35.223992	115.495944	ww6	山东省	菏泽市
472	2019-12-01	35.425115	115.670813	ww6	山东省	菏泽市
473	2019-12-01	38.055092	114.500644	wwc	河北省	石家庄市
474	2019-12-01	39.915308	116.415252	wx4	北京市	北京市
475	2019-12-01	39.915308	116.415252	wx4	北京市	北京市
476	2019-12-01	39.915308	116.415252	wx4	北京市	北京市
477	2019-12-01	22.546793	114.083582	ws1	香港特别行政区	香港特别行政区
478	2019-12-01	38.034649	114.463347	wwc	河北省	石家庄市
479	2019-12-01	38.960033	121.542838	wwy	辽宁省	大连市
480	2019-12-01	18.239640	109.502804	w7j	海南省	三亚市
481	2019-12-01	24.112877	102.761036	wk3	云南省	玉溪市
482	2019-12-01	24.112716	102.761625	wk3	云南省	玉溪市
483	2019-12-01	24.077092	102.770451	wk3	云南省	玉溪市
484	2019-12-01	34.433365	108.759386	wqj	陕西省	咸阳市
485	2019-12-01	26.126018	119.179790	wss	福建省	福州市
486	2019-12-01	29.574099	103.463518	wm3	四川省	眉山市
487	2019-12-01	29.574240	103.463598	wm3	四川省	眉山市
488	2019-12-01	27.038769	114.921019	wsc	江西省	吉安市
489	2019-12-01	40.074422	113.319963	wx0	山西省	大同市
490	2019-12-01	23.013470	113.864178	ws0	广东省	东莞市
491	2019-12-01	22.795275	113.826544	ws0	广东省	深圳市
492	2019-12-01	35.383606	103.870968	wq3	甘肃省	定西市
493	2019-12-01	35.381282	103.868653	wq3	甘肃省	定西市
494	2019-12-01	35.383672	103.871029	wq3	甘肃省	定西市
495	2019-12-01	35.280397	104.071241	wq6	甘肃省	定西市
496	2019-12-01	22.593475	114.249754	ws1	香港特别行政区	香港特别行政区
497	2019-12-01	30.712836	103.992843	wm3	四川省	成都市
498	2019-12-01	39.873577	116.359222	wx4	北京市	北京市
499	2019-12-01	36.607258	101.752028	wq8	青海省	西宁市

总结

第一次写关于GIS的代码。代码很糙还有很多要改正的地方,例如有的经纬度不能识别问题,矢量偏移过大 有的用户定位在了两个城市边界内了。欢迎指正。谢谢

你可能感兴趣的:(python射线法-离线根据经纬度反向获取城市信息)