vue获取元素距离顶部的距离_4种地图距离的获取方式

获取实际地图地址各个节点间距离4种方式比较实用的方式:

  1. 半正矢公式;
  2. 百度-批量算路;
  3. 高德-距离测算;
  4. Graphhopper-Routing API(开源代码);

百度和高德

半正矢公式百度-批量算路高德-距离测算Graphhopper-Routing API
支持模式1、直线1、驾车2、骑行3、步行1、直线2、驾车3、步行1、car2、bike3、foot4、hike5、mtb6、racingbike7、scooter8、truck9、small_truck
驾车策略1、不走高速(考虑路况)2、常规路线(考虑路况)3、距离较短1、考虑路况避拥堵1、不考虑路况
坐标系bd09llamapWGS84
资源使用1、公式简单,可毫秒级别生成距离矩阵;2、和现实场景相当不匹配1、每日配额有限;2、非企业级用户单次请求最大路线数50;3、有并发;4、较准确5、慢1、每日配额有限;2、单次请求最大路线数100;3、有并发;4、较准确5、慢1、开源代码,可离线部署不受资源限制, 需要改造接口;2、离线地图包对国内实际路况不全导致部分距离离谱,耗时很短

1. 半正矢公式

网上有很多关于公式的介绍,这里一袋而过了,公式如下所示:

其中,

分别是纬度和经度的弧度;
代表地球半径。

2. 百度-批量算路

  • 网址:Web服务API | 百度地图API SDK
  • 入口:搜索-百度地图API → 开发文档 → Web服务API → 批量算路

26b9974dda14c340b881f31015e2cce1.png

7a5a67f228bcf96a433d44b81a838557.png
  • 推荐:服务文档中介绍了接口文档,ak字段需要在控制台中新建应用获得,具体的内容文档中描述比较详细。对接口请求较陌生的话可以先用postman试一试,其次推荐使用python相比java的http请求的包装工具更简单。
  • 特色:提供是否考虑路况的选择,仿真的时候推荐使用不考虑路况,考虑路况每隔一段时间距离和耗时都会变。

3. 高德-距离测算

  • 网址:路径规划-API文档-开发指南-Web服务 API | 高德地图API
  • 入口:搜索-高德地图API → 开发支持 → Web服务API → 路径规划 → 距离测算

0ad2035020ed2ccdb788df3531574858.png

1cbb793a89c67e3192bd47f0cfa2a3d0.png
  • 推荐:同百度地图一样
  • 特色:高德地图的接口比较人性化,页面自带请求工具,可视化数据结构。自带origin_id和dest_id不用苦恼被阉割后的距离矩阵怎么拼接了。

b1f047bbe4ce5298332e193c3d9c1548.png

4. Graphhopper-Routing API(开源代码)

网址:https://github.com/graphhopper/graphhopper

Matrix API是专门用于TSP/VRP拼接距离邻接矩阵,虽说是收费,但是注册的时候国家没找到国内,体验不了试用版了。没关系Graphhopper提供了部分java的开源代码,其中就包含了Routing API,它能计算两个节点间的距离和耗时,这样就通过多次请求就可以拼装出距离矩阵了。假如我们有M个节点,请求该接口M*(M-1)次就可以了,但是考虑通信的耗时,建议在源码中提供的custom上做批量的二次开发(关于接口路径在下面图中)。速度嘛是比高德、百度快很多,不考虑网络的影响平均20ms处理一条线路,当然也可以开启加速模式开启turn_cost。

2c475c71edbefebfc5dd256f0fc48f09.png

79a79df38900df132ad08eaf01a94842.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值