V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jiezhi
V2EX  ›  问与答

哪里可以 找到/买到 根据经纬度查询所在省份的数据库

  •  
  •   jiezhi · 2018-11-08 09:55:28 +08:00 · 2870 次点击
    这是一个创建于 2232 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在业务上每天都有大量的 GPS 数据,现在想要判断所在省份,所以请教下哪里可以找到或买到国内省份相关的数据库?

    此外公路 GPS 相关的数据也需要。

    (先不考虑付费的第三方计次收费的那种,优先考虑可以离线查询的库)
    13 条回复    2018-12-22 11:26:32 +08:00
    dejavuwind
        1
    dejavuwind  
       2018-11-08 11:06:23 +08:00
    查是可以查的
    https://support.google.com/maps/answer/18539
    数据库不清楚
    aec4d
        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
    jiezhi
        3
    jiezhi  
    OP
       2018-11-08 11:49:57 +08:00 via iPhone
    @aec4d 下午研究下
    @dejavuwind 这种在线查的不适用大量数据啊
    Mzs
        4
    Mzs  
       2018-11-08 11:57:24 +08:00   ❤️ 1
    https://www.ipip.net/
    这个还不错
    线上环境用了一段时间 有免费的离线库
    alienx717
        5
    alienx717  
       2018-11-08 13:42:22 +08:00   ❤️ 1
    geoip 就可以,我记得我用 python 的库查过
    x7395759
        6
    x7395759  
       2018-11-08 17:56:38 +08:00   ❤️ 1
    可以自己做一个呀,感觉只要拿到所有的省份边界 gps 信息然后做一个围栏就 OK。

    就是不知道所有的 gps 信息有多少 23333
    alamak76
        7
    alamak76  
       2018-11-09 09:51:10 +08:00   ❤️ 1
    免付费:
    https://www.ipinfodb.com (上线)
    https://lite.ip2location.com (下线)

    付费:
    https://www.ip2location.com (上线 /下线)
    jiezhi
        8
    jiezhi  
    OP
       2018-11-13 14:31:39 +08:00
    @aec4d #2 请教一下,花了几天时间学习了 postgis,然后把高德上这个行政区相关的接口数据也抓取下来了,但是之前是通过 shp 文件导入到 postgis 中的。

    现在这个抓取下来的数据有很多字段不是很明白,按我目前的理解是边界信息存在了 topo-arcs 中的字段,里面数据为边界的各个坐标点(但不是经纬度),所以能否提示下怎么把相关的信息导入到 postgis 中?

    这边放一个文件:
    https://gist.githubusercontent.com/Jiezhi/45493eb747026862f1e459d2ca388517/raw/d1634b1be032eaa081e517c8f9ca929b7c9b286d/js.json
    aec4d
        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 语句写入就好了
    jiezhi
        10
    jiezhi  
    OP
       2018-11-14 09:57:09 +08:00
    @aec4d #9 感谢,我再研究下
    jiezhi
        11
    jiezhi  
    OP
       2018-11-14 15:43:25 +08:00
    @aec4d #9 再次感谢,主要通过之前#2 提供的接口拿回的围栏数据好像是 topology 的结构的,所以不知道怎么转为 GPS 的围栏数据,根据#9 的接口返回的是 GPS 围栏数据,然后导入到数据库中就可以查询了。
    ciii
        12
    ciii  
       2018-12-19 14:33:02 +08:00
    @jiezhi 所以 老哥 实现了吗
    jiezhi
        13
    jiezhi  
    OP
       2018-12-22 11:26:32 +08:00
    @ciii #12 嗯 根据 9 楼的方案实现了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4580 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 10:06 · PVG 18:06 · LAX 02:06 · JFK 05:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.