1
dejavuwind 2018-11-08 11:06:23 +08:00
|
2
aec4d 2018-11-08 11:32:12 +08:00 1
如果只是中国省份的话,大概一个小时吧
http://webapi.amap.com/ui/1.0/ui/geo/DistrictExplorer/examples/index.html?guide=1 从高德 API 拿到省份边界数据,数据库用 PG+postgis 然后 st_contains |
3
jiezhi OP |
4
Mzs 2018-11-08 11:57:24 +08:00 1
|
5
alienx717 2018-11-08 13:42:22 +08:00 1
geoip 就可以,我记得我用 python 的库查过
|
6
x7395759 2018-11-08 17:56:38 +08:00 1
可以自己做一个呀,感觉只要拿到所有的省份边界 gps 信息然后做一个围栏就 OK。
就是不知道所有的 gps 信息有多少 23333 |
7
alamak76 2018-11-09 09:51:10 +08:00 1
免付费:
https://www.ipinfodb.com (上线) https://lite.ip2location.com (下线) 付费: https://www.ip2location.com (上线 /下线) |
8
jiezhi OP @aec4d #2 请教一下,花了几天时间学习了 postgis,然后把高德上这个行政区相关的接口数据也抓取下来了,但是之前是通过 shp 文件导入到 postgis 中的。
现在这个抓取下来的数据有很多字段不是很明白,按我目前的理解是边界信息存在了 topo-arcs 中的字段,里面数据为边界的各个坐标点(但不是经纬度),所以能否提示下怎么把相关的信息导入到 postgis 中? 这边放一个文件: https://gist.githubusercontent.com/Jiezhi/45493eb747026862f1e459d2ca388517/raw/d1634b1be032eaa081e517c8f9ca929b7c9b286d/js.json |
9
aec4d 2018-11-14 09:48:44 +08:00 1
@jiezhi 不太清楚你请求的高德的哪个 api
https://lbs.amap.com/api/webservice/guide/api/district/ 这里有示例,返回的是 polyline 格式的文本。简单处理一下就能得到 MultiPolygon 格式的数据 from shapely.geometry import MultiPolygon import shapely.wkt def decode_polyline(data): multi = [] for i in data.split('|'): x = ','.join([' '.join(i.split(',')) for i in i.split(';')]) a = shapely.wkt.loads('POLYGON (({}))'.format(x)) multi.append(a) return MultiPolygon(multi) 导入到 postgis 中.....正常 SQL 语句写入就好了 |