介绍

本文以腾讯位置服务为例,介绍一下在开发地图位置服务的一些思路和想法。
 
腾讯位置服务,提供了地点搜索,地址解析,逆地址解析,路线规划,距离计算,行政区划,坐标转换,IP定位的相关接口供大家使用。
 
使用之前需要注册自己的key,在这里,大家点击下面链接,就可以直接注册免费使用了。
 
邀请码: GUZRFLG
邀请链接: https://lbs.qq.com?lbs_invite=GUZRFLG

 
如果是个人开发测试学习,免费的调用次数已经足够我们使用了,如果需要商业使用,可以付费购买。
 
本篇文章只着重介绍路线规划服务,其他的模块,在后面一系列文章里会分别介绍。

路线规划

开发路线规划,提前需要准备的东西一定要有路网数据,如果想计算的准确,路网数据要尽可能的全和精确,不同等级的道路和相关道路属性都要有。
 
以腾讯为例,腾讯地图API给我们提供了驾车,步行,骑行,公交四种路线规划方式,具体可以在腾讯位置服务,WebService API下了解。

当道路数据准备好之后,所谓的路线规划,简单来说就是输入一个起始点,输入一个终止点,在地图上计算合理的路线,那么如何计算出合理的路线?
 
如果熟悉地图相关开发的,应该知道,计算两点直接的距离,需要的是俩个经纬度,而我们一般用地图的时候,起始点和终止点,输入的都是地址,所以在进行路线计算的时候,首先要用的一个就是地址解析。
 
地址解析不了解的同学,我在这里简单说一下,地址解析主要就是将输入的地址,转换成地图上对应的经纬度,反过来逆地址解析就是,将输入的经纬度转换成当前位置对应的地址。
 
对于地址解析和逆地址解析,听起来容易,但做起来其实是需要大量的地址数据作为支撑的,大体说一下需要用到的东西,地址数据库行政区划区分字典分词权重值(很多地址并不是我们想象的那么规范,所以解析的时候需要有取舍),POI数据等等,其中在分词的时候,要对行政区划和具体的门址地址库进行区分,解析。这里先简单了解了解,后续文章详细介绍这一块的时候,会重点说这些东西。
 
我们回到路线规划上去,在得到起始点和终止点的经纬度的时候,下一步要做的就是算路了,这个时候不同的分类,对应了不同的算路算法,像驾车,步行,骑行等,所以这就需要我们的道路数据全而精了,如果你只有一级道路,二级道路和高速公路这些,那去计算步行,岂不是没什么意义。
 
我们以驾车为例,计算两点之间最优的路线,主要就是从一个点出发,开始找路,首先你可以匹配离你最近的道路,然后出发,在每遇到一个岔路口的时候,都分别去找路,目的就是一直找到可以到达终点的线路。
 
在这里有的人会说,如果两地较远,那么路会非常非常多,要一条一条去找吗,还有就是算路的时间问题,如何可以更快的算出想要的路线?
 
首先俩点之间的路确实非常多,包括近路、远路、走不通的路都有,而我们在开始的时候是无法确定的,所以在最开始肯定要每一条路都去找,而在找的过程中,可以对已经找到的路进行过滤,这里的因素可以有红绿灯的个数,收费站的个数,道路行驶花费的时间是否已经相对于其他道路超出一个阈值,通过设置各种因素条件,很多道路在找到一定程度上就会舍弃,节省了时间,也不需要每一条道路都去找一遍。
 
另外,找路不是从起止点开始不停的找,一直找到终点,我们可以从起始点和终点同时开始找路,两边同时进行,直到汇合的时候,算路完成。
 
所以这样做的话,就会发现在两点之间找路,基本就是以点为中心,离点越近的路会找的越多,越往外发散,匹配的道路越少,速度也会更快。
 
由于公司规定原因,我不能把自己开发的相关源码拿出来分享,后续我看是否可以提取一些公共通用的算法,分享给大家。
 
如果你是开发底层位置服务进行路线规划的,可以简单参考参考,如果只是需要直接在业务上调用使用相关接口的,那可以直接使用腾讯提供的web接口,只要申请了自己的key,就可以免费调用了(附申请地址:https://lbs.qq.com?lbs_invite=GUZRFLG)。
 
最后大家若还想了解更多关于位置服务开发,后面我会把我开发过的地址解析,逆地址解析,距离计算,行政区划,坐标转换,IP定位等这些相关东西分享给大家。

地图位置开发解析(一)相关推荐

  1. 微信 php 地图定位,微信公众号定位地图位置写入数据库,再显示地图的方法

    有一个表单,需要在填报过程中获取地理位置.定位方式有三种:H5,百度,公众号.因大家习惯了微信操作,最终选择通过微信公众号接口获取位置数据并写入数据库,再调用腾讯地图展示. 开发架构是laravel6 ...

  2. Google离线地图API概要解析

    Google离线地图API概要解析 发布时间:2018-01-17 版权: 1.说明 离线地图发布有多种方式均可以实现,可以利用ArcGis Server.GeoServer等构建地图Web服务器,还 ...

  3. 百度地图API开发指南

    百度地图API开发指南 本文为百度地图API官方版本的开发指南,供各位51CTO的网友进行参考. 简介什么是百度地图API? 百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮 ...

  4. iOS开发那些事-iOS6苹果地图有用开发

    在iOS 6之后,不再使用谷歌地图了,而是使用苹果自己的地图,可是API编程接口没有太大的变化.开发者不须要再学习非常多新东西就能开发地图应用,这是负责任的做法.因此本节介绍的内容也相同适用于iOS5 ...

  5. 基于百度地图sdk的地图app开发(七)——导航和模拟导航

    这是基于百度地图sdk的地图app开发系列博客第七篇 代码仓库位置:https://github.com/YanhuiLu89/lmap.git 上一篇 基于百度地图sdk的地图app开发(六)--路 ...

  6. 百度地图api开发详解(android版).pdf,百度地图API开发指南原版.pdf

    百度地图API开发指南原版 百度地图 API 开发指南 百度地图 API 开发指南 目录 简介 3 什么是百度地图 API 3 面向的读者 3 获取 API 3 开发移动平台上的地图应用 3 兼容性 ...

  7. 高德地图Amap开发实践

    一.简介: 高德开放平台是国内技术领先的LBS(Location Based Services,基于位置的服务)服务提供商,拥有先进的数据融合技术和海量的数据处理能力.高德开放平台向广大开发者提供覆盖 ...

  8. 地图编辑器开发(三)

    系列教程: 地图编辑器开发(一)加载地图 地图编辑器开发(二)编辑地图 地图编辑器开发(三)测试阻挡 地图编辑器开发(四)导出阻挡信息 地图编辑器开发(五)导出地图资源 上一节已经把地图信息编辑做好了 ...

  9. 地图APP开发日志 Day 1

    目录 地图APP开发日志 Day 1 前期准备 功能 地图显示 注意 定位失败 无法显示定位蓝点 手动定位 地图APP开发日志 Day 1 一个基于高德SDK个人地图项目 为什么要自己写? 不想要广告 ...

最新文章

  1. pythonapriori算法特点_Python --深入浅出Apriori关联分析算法(一)
  2. 机器人 海难饥荒_饥荒:这个人物后期轻松单挑Boss,缺点却很小,大力士都比不过...
  3. 服务器架构有哪些方式?—Vecloud微云
  4. 【opencv系列07】OpenCV4.X图像基本操作
  5. 更新系统后魔兽世界无法连接至服务器,《魔兽世界:熊猫人之谜》5.0launcher更新无法连接服务器解决方法...
  6. linux vnc 改端口号,RHEL6下配置vncserver服务(包括修改vnc端口)
  7. servlet 规范_Tomcat原理解析(壹)— Servlet
  8. C语言,功能一、利用一维数组和选择法对成绩高低排序,功能二、输出对应的学号,功能三、查找对应学生成绩
  9. json_decode和json_encode的区别
  10. sql分页查询与offset的使用
  11. 开源的屏幕画笔工具(基于WPF InkCanvas)
  12. itextpdf 超链接
  13. intelssd在linux固件升级,Intel固件升级教程修复320系列SSD 8M丢数据问题
  14. 【Beta】 第三次Daily Scrum Meeting
  15. k8s健康检查(七)--技术流ken
  16. 安全港到隐私护盾!美欧个人数据跨境流动20年政策变迁
  17. 精简 Windows10
  18. 基于Hopfield 混沌神经网络和压缩感知的可视化图像加密算法
  19. python模块,库
  20. HTML5文件夹隐藏了怎么打开,隐藏的文件夹怎么显示 打开隐藏文件夹方法【详解】...

热门文章

  1. java 登录界面加验证码_java 做登陆窗口,带有用户名和密码输入框和验证码。求修改...
  2. Java核心(集合类1-概述、Collection 接口 、List 集合)
  3. 威联通服务器无限重启,威联通NAS,时不时的读盘,无法休眠的问题
  4. 关于印发《2000国家大地坐标系推广使用技术指南》和《大地测量控制点坐标转换技术规程》的函
  5. 发明者电子实用宝典_人类发明电话后的第一次通话,竟然是来自发明者的求救声?...
  6. vue xlsx.js获取单元格数据类型的hooks 单元格类型处理
  7. c+primer 学习笔记 3
  8. HillTop (LocalScore) 算法
  9. python列表(list)
  10. iOS_基于百度地图的开发