一、获取离线数据:
       如果你只是想实现逆解析功能,那该步骤可以跳过,因为地图数据已经收集打包好了。直接文末找git路径就好了。

准备工作:python  numpy h5py   openpyxl  cython

申请高德key,参考:https://blog.csdn.net/qq_32444825/article/details/79441900

key 填入 getRegions.py amap_key变量中


import h5py
import urllib
import numpy as np
import json
import openpyxlamap_key = ''   #填入这里class CgetRegionsXls():

运行getRegions.py ,需要一段时间,可以生成离线地图数据,大约120M

二、离线逆解析经纬度信息:

使用射线法判断,参考https://blog.csdn.net/qq_27161673/article/details/52973866

核心算法并不复杂,主要做了两重优化:

1、先用每个区域的经纬度上下限进行粗筛,

2、使用cython对算法进行加速,如果采用python计算,光省级边界判断需要10s以上

在 isInPolygen目录下,执行python setup.py build_ext --inplace 命令即可

3、回到maps目录,运行 posToCity.py验证逆解析效果 实测解析速度

[root@centos-7 map]# time python posToCity.py
{'county': u'\u5357\u5eb7\u533a', 'prov': u'\u6c5f\u897f\u7701', 'city': u'\u8d63\u5dde\u5e02'}  # 江西省 赣州市 南康区
{'county': u'\u4e91\u5ca9\u533a', 'prov': u'\u8d35\u5dde\u7701', 'city': u'\u8d35\u9633\u5e02'}  # 贵州省 贵阳市 云岩区
{'county': u'\u6e05\u9547\u5e02', 'prov': u'\u8d35\u5dde\u7701', 'city': u'\u8d35\u9633\u5e02'}  # 贵州省 贵阳市 清镇市
{'county': u'\u897f\u79c0\u533a', 'prov': u'\u8d35\u5dde\u7701', 'city': u'\u5b89\u987a\u5e02'}  # 贵州省 安顺市 西秀区
{'county': u'\u897f\u79c0\u533a', 'prov': u'\u8d35\u5dde\u7701', 'city': u'\u5b89\u987a\u5e02'}  # 贵州省 安顺市 西秀区
{'county': u'\u9ed4\u897f\u5e02', 'prov': u'\u8d35\u5dde\u7701', 'city': u'\u6bd5\u8282\u5e02'}  # 贵州省 毕节市 黔西市real    0m0.526s
user    0m0.508s
sys     0m0.087s

4.应用方法

from posToCity import CposToCity

p = CposToCity('regions.h5')

print p.toCity(106.668744, 26.567335)

……

git链接 https://gitee.com/chuyansz/gps2city/tree/master

基于高德离线地图数据实现GPS经纬度逆解析城市信息相关推荐

  1. 高德离线地图TMS服务教程

    离线地图开发主要有两部分组成:1.获取离线地图数据:因为离线地图一般都是局域网,所以需要离线地图数据放在内网中使用:2.离线地图服务器搭建以及二次开发接口提供,离线地图是一种服务,就像我们Apache ...

  2. 如何下载高德离线地图瓦片数据

    离线地图分为两种:一种叫"金字塔瓦片"数据,一种叫"矢量地图数据".我们看的在线地图比如,百度,谷歌,高德等等网页上的地图,都是金字塔瓦片:另外一种是手机上用来 ...

  3. 基于Vue的高德离线地图开发--省市县

    基于Vue的高德离线地图 离线地图优势 环境需要 下载地图离线资源包 本项目功能 具体代码 离线地图优势 高德地图接口,个人每天免费调用次数为500次,渲染速度受网络波动影响,又或许项目部署在局域网, ...

  4. 高德离线地图vue-amap的api文档(2):创建地图,撒点等等

    前言: 高德离线地图的使用场景还是很多的,但是他的api在国外,想参考api对网络差的朋友来说不是一件容易的事,对我来说一样,在这里整理下他的api内容. 注:本文是将官网api挪动出来,网好的童鞋想 ...

  5. 3、 如何搭建高德离线地图服务

    谷歌(百度.高德)离线地图开发环境搭建 发布时间:2018-01-17 版权: 1.说明 离线地图开发环境支持谷歌地图.百度地图.高德地图等等所有常用地图类型,支持在局域网内的地图部署.二次开发. 2 ...

  6. BIGEMAP谷歌(百度、高德)离线地图开发环境搭建

    谷歌(百度.高德)离线地图开发环境搭建 发布时间:2018-01-17 版权: 1.说明 离线地图开发环境支持谷歌地图.百度地图.高德地图等等所有常用地图类型,支持在局域网内的地图部署.二次开发. 2 ...

  7. android 高德卫星地图数据,白马地图 Bmap for Android v7.3.81 强大高德百度地图应用|张小北...

    Bmap for Android 是一款集成高德地图百度地图为一体的第三方地图应用APP,Bmap for Android 又叫白马地图,采用高德/百度地图数据引擎,可任意切换百度地图.高德地图数据源 ...

  8. 百度、高德离线地图SDK开发工具,局域网内离线地图开发环境

       相关下载:For Linux版本下载 快速搭建离线地图开发环境     局域网地图服务   离线地图数据服务  二次开发 一.软件介绍     BIGEMAP离线地图服务器,提供一站式搭建离线/ ...

  9. 如何在高德离线地图上画面源代码

    离线地图开发主要有两部分组成:1.获取离线地图数据:因为离线地图一般都是局域网,所以需要离线地图数据放在内网中使用:2.离线地图服务器搭建以及二次开发接口提供,离线地图是一种服务,就像我们Apache ...

最新文章

  1. 技术总监到底要不要写代码?
  2. php页面上限制字符串长度,PHP如何限制字符串显示长度
  3. MobileIMSDK连接后频繁掉线重连,提示会话超时失效,对方非正常退出或网络故障
  4. 双级减速器优化matlab,基于MATLAB的双级齿轮减速器优化设计
  5. SpringCloud(三)之Feign实现负载均衡的使用
  6. java 32个面试问题
  7. Python天天美味(17) - open读写文件
  8. 格雷码 Gray Code
  9. 微信小程序分享至朋友圈功能
  10. 【Unity插件001】VRTK3.3.0的使用
  11. 20190301 小中大
  12. 如何才是一名优秀的好员工
  13. 『杭电1869』六度分离
  14. java打印数组的连续非空子集_Apriori算法求数组的非空子集java代码
  15. slf4j将日志写到单独的文件
  16. 2018年英语专升本英语阅读「Part II 阅读专区」【文章(图片)、答案、词汇记忆】
  17. Origin更改图的尺寸大小
  18. java form的时间格式_java date日期格式
  19. 浏览器支持什么字体?
  20. thinkserver ts530装centos7

热门文章

  1. 2023.4.6.吉林长春.雾霾.
  2. Windows10搭建ASP服务器
  3. 时尚与森系的碰撞,这样的妆容造型别样美!
  4. Windows Server 2012 域与活动目录基本概念理解
  5. 2020年现实社会语录,句句道尽人性
  6. Scanner调用next方法时报错NoSuchElementException原因,及对Scanner的一些总结
  7. 机器学习是什么?我对机器学习的理解
  8. 当前上下文不存在ScriptManager
  9. 实时帧数手机_旧手机实用改造:秒变PC游戏帧数监测神器
  10. 微信菜单 html页面添加的,微信公众号菜单进入的页面切换第二次失效