就是车辆卫星定位时,客户不用打开地图,就能知道车辆的地点,
就是根据经纬度获取地名的问题,
比如 读得地名:“广西省南宁市武鸣”
或者读得地名:“广西省南宁火车站”
或者读得地名:“广西省南宁友爱路宾华酒店”

这个很麻烦,
但分析一下,也就不是很麻烦了,
平面地图分三种图形:点、线、面
所以做三种测试就行:
1. 是否落在点上(或者点的周围)
2. 是否落在线上(或者线的左右)
3. 是否落在面上

第一步:点的测试,就是寻找 经纬度 最临近的点,

采用两点间坐标来测试的方式,但是全国的地名数量巨大,
一个一个测试速度存在问题,那如何优化呢?
那就是让测试的点尽可能少,但又要准确。
这里可以采用逐级搜索的方式,逐级搜索,
就是根据 经纬度 指定一个范围,在这个范围内搜索,没有搜索出结果,
再放大范围,这样一步一步放大。而范围的确定,却是靠经验值,
总之,准则是“测试的点尽可能少,而且不能遗漏”

第二步:线的测试

寻找 经纬度 最临近的线,

这里先要了解 地图 是如何表示线的,
因为 地图里的线,通常都是曲线,比如 公路、铁路、河流 等.
所以地图 是通过很多个连续的线段 来连接成一条线的,
线是由线段组成,所以存储 线段 的两个点坐标就行了。

线的测试,和点的测试一样,
先测试某一条线,
因为线是由很多线段组成,所以需要求落点与这些线段的垂直距离,
然后取得该线的所有线段中的最小的垂直距离。
这样计算出每一条线的最小垂直距离,
再对这些线的 最小垂直距离 进行比较,取最小值

线的测试也需要优化,
优化需要分两步,
第一步优化,就是从所有线中筛选指定范围的线,
只测试指定范围内的线,如果指定范围内没有线,再将范围扩大,扩大搜索,
第二步是同一条线寻找最小垂直距离的优化,
从这一条线中,筛选指定范围内的线段,只测试这些范围内的线段,
不在这个范围内的不做测试,

因为第二步是基于第一步的,所以第二步可以不做范围扩大,而是一次搜索就行。

第三步:是面的测试

其实面的测试是最先要做的,但考虑难度问题,从简到难,
所以第三步才说面的测试。

面的表示,与线是一样的,面就是描绘出面的轮廓就行了,
而面的轮廓,就是线。
面的测试,就是要测试是在面“里”还是“外”。

根据经纬度查询地名,相关推荐

  1. 利用GoogleApi根据经纬度查询地名,和根据地名查询经纬度

    推荐安卓开发神器(里面有各种UI特效和android代码库实例) 利用GoogleApi根据经纬度查询地名,和根据地名查询经纬度Java代码 import java.io.BufferedReader ...

  2. 经纬度在线查询,地名(批量)查询经纬度,经纬度(批量)查询地名

    http://map.yanue.net/geo.html 这是运用google map api v3开发的地图应用,使用谷歌地图地址解析服务,主要实现经纬度和地名之间相互解析功能,同时实现了批量解析 ...

  3. Python中使用高德API实现经纬度转地名

    场景 高德API提供给开发者们一些常用功能的接口,其中有一种叫地理/逆地理编码能实现 地名查询经纬度和经纬度查地名. 实现 高德API平台: https://lbs.amap.com/ 注册并登陆 找 ...

  4. sqlserver根据经纬度查询距离范围

    首先数据库里有坐标的经度和维度字段,然后根据选择的地点经纬度和有效范围(米)来进行查询 通过百度发现了sql有自带的经纬度算法 所以直接来过来使用就行 例子: 指定一个经纬度,给定一个范围值(单位:千 ...

  5. mysql根据经纬度查询范围内数据,并根据距离排序

    最近接到一个新需求,要根据经纬度查询指定范围内的数据,并且根据距离进行排序,网上找了找相关实现方法,记录一下. java代码如下 public final class DistanceUtils {/ ...

  6. PHP根据经纬度查询地理位置

    PHP根据经纬度查询地理位置 function getCity($longitude, $latitude){//调取百度接口,其中ak为百度帐号key,注意location纬度在前,经度在后$api ...

  7. 全国各区县经纬度查询困难?精度不够?试试自制市区县经纬度查询工具并将数据保存本地

    自制中国各区县经纬度查询工具 1. 引言 1.1 问题描述 1.2 基本思路 2. 获取全国市区县的名称 2.1 数据初阅 2.2 数据转移 2.3 数据去重 3. 获取全国市区县的经纬度数据 3.1 ...

  8. 一刀工具箱 - 经纬度查询

    一刀工具箱是一款集合多个实用工具的智能APP,包含100多种不同的功能,基本满足您在工作生活使用需求,只需要一个应用就可以解决日常小问题,不再需要下多个应用 1.打开一刀APP,进行APP首页,点击& ...

  9. 根据经纬度查询,mysql查询计算经纬度

    mysql经纬度查询并且计算2KM范围内附近用户的sql查询性能优化实例教程 https://www.cnblogs.com/mgbert/p/4146538.html 

最新文章

  1. 练习5.1更新——四则运算 测试与封装
  2. jenkins+maven+Tomcat+shell构建自动化部署
  3. JAVASCRIPT实现绚丽TAB选项卡
  4. MOCTF-Web-一道水题
  5. MATLAB快速拟合二组数据
  6. java爬虫-简单爬取网页图片
  7. #ifndef的作用
  8. IIS安装2个SSL_顶级域名0元撸-免费注册2个腾讯云域名 免费SSL证书
  9. MySQL字符集LATIN1转UTF8
  10. testng 定时构建_10自动化测试_持续集成篇
  11. TCP协议相关属性设置之SO_DONTLINGER属性
  12. stm32单片机屏幕一直闪_STM32物联网实战项目 - 项目需求
  13. 【OS】Process Thread
  14. Linux完全卸载mysql的方式
  15. 深入浅出设计模式之工厂模式
  16. java自定义生成js代码_基于JavaScript的代码自动生成工具
  17. oracle sqlplus命令登录数据库
  18. nbu里oracle备份al开头的,认识NBU备份Oracle时Code 29错误
  19. python 合并两个txt文件
  20. 想成为挣钱的游戏程序员要经历多少阶段?

热门文章

  1. 使用flying saucer将html文件转成PDF
  2. 注册昵称时限制 中文7个字 字母21个
  3. 选第二大算法(锦标赛算法)
  4. Jest 组件库单元测试【基础语法篇】
  5. word论文删除封面或前几页的页眉或横线
  6. unity的C#学习——标识符号、关键字与数据类型及其转换方式
  7. mysql语句按时间顺序排序_SQL语句怎么写?先按时间排序,再按姓名排序?
  8. 五年级上册《桂花雨》教案
  9. 台式电脑系统崩掉该如何?
  10. 【牛尔】【小p】这些美容强男的超级秘籍!!!丝般肌肤毛孔看不见,清透小面颊,丝滑小脸蛋儿,你难道不想拥有吗————【收缩毛孔的最佳方法】(一夜之间6万浏览量,大师的感召力和信服力就是强啊!)