文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景

目前项目上如果要使用百度地图,得加载百度的开发包,然后通过百度提供的接口来调用百度地图以及将需要标记的点显示在百度地图中等等。

此方案存在明显劣势:

a.对原系统的破坏。一套从底层开发的系统,其地图的加载方式均是从底层通过换算行列号来进行加载的。而百度地图却必须脱离此方案通过调用百度API来实现,破坏了整个系统的架构,并且导致很多基于原架构的功能无法使用。

b.自身发布的矢量服务等无法使用。因为百度采用的是非标准火星坐标,自己采集的大量shp数据如果不纠正到百度坐标系下,是无法正确叠加到百度地图上的。这同时导致了,当我们将shp数据进行矢量发布后,由于从百度获取的坐标不是该矢量服务对应的坐标系下的坐标,从而无法进行准确的查询等功能。

c.要素展示等功能无法定制。要素展示等必须使用百度API,将要素坐标等作为参数然后在百度地图上标记出来。这限制了要素的定制展示。

d.其他诸多问题。由于必须使用百度开发包,限制了AGS JS或OL的有效使用。

那么,我们是否能不使用百度API,实现百度地图的准确加载,以及实现自身图层可以准确叠加到百度地图上,从而使自身图层对应的矢量服务可以正确使用?

下面我跟大家大致介绍下目前我和一个同事这两周的研究成果。

2.解决方案

2.1 百度地图非API引用

如果我们能够算出百度地图的地图级别、切图原点、瓦片大小。我们便可以不使用百度的API来调用百度地图了。

通过对百度代码的解析,以及对标准横轴墨卡托投影的研究,我们成功获取了百度地图的各个参数。

2.2 坐标转换

我们将坐标转换分为了在线转换和离线转换,并开发了相关工具。

工具的功能是:将shp图层导入到工具后,能将shp图层转换成百度坐标系下的shp图层。

工具的原理是:建立控制点库,利用算法,实现坐标转换。

3.成果展示

4.问题

目前该成果还未用到项目中,有诸多地方需要改进或研究或实现:比如工具效率、精度厘米级上的提升、自制的百度瓦片下载工具等。

而且目前均是将坐标转到百度地图坐标系下。通过算法,我们应该是可以将百度坐标转换到通用坐标系下,但是这里又涉及到如何将百度地图瓦片(栅格图片)纠正到通用地图下,此难度比单纯的矢量数据转换难很多。

就目前应用来看,如果要使用百度地图,除我们GIS部分,需要手机组、MIS组、实景组等,均需保存的数据为百度坐标系下的坐标,如此各组对接起来才更方便。但是,此时保存的数据为百度坐标系下的数据,该数据如果要给其他公司使用,还得进行再次反算为通用坐标系下坐标。

可见,大项目上使用还是有诸多不便的。不过,这个问题是使用百度地图的通用问题,跟我们是否进行了去百度API化无关。

-----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                  

去百度API的百度地图准确叠加和坐标转换的解决方案研究的更多相关文章

  1. 百度API实例——google地图数据转化为百度地图数据

    前段时间做的项目前端都是用Google地图,最近在一个地方需要用到百度地图,因为不同地图都有自己的处理,同一个经纬度在不同地图上显示的位置并不相同,因此,要把以前的数据直接拿过来用需要做一个转换.查阅 ...

  2. 根据经纬度获取位置描述:百度API与高德API的区别

    百度API 使用百度坐标 1.访问方式一 http://api.map.baidu.com/geocoder/v2/?location=35.063592,118.38513&output=j ...

  3. 【百度地图API】百度API卫星图使用方法和卫星图对比工具

    原文:[百度地图API]百度API卫星图使用方法和卫星图对比工具 百度地图API推出卫星图接口也有一个月啦~ 本文除了介绍如何使用百度地图API来操作卫星图外,还顺带制作了个卫星图对比工具. 一.百度 ...

  4. 百度地图热力图--批量地址转换应用(基于百度api)

    需求:把外卖订餐地址做个用户分布热力图 思路分析:第一步去百度地图api开放平台找例子 http://lbsyun.baidu.com/jsdemo.htm#c1_15 首先从百度API的demo例子 ...

  5. 如何在网中使用百度地图API自定义个性化地图

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  6. HTM L百度地图API 自定义工具地图实例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 百度地图API和高德地图API资料集锦

    [高德地图API]从零开始学高德JS API(五)路线规划——驾车|公交|步行   [高德地图API]从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自 ...

  8. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能

    权声明:本文为博主原创文章,未经博主允许不得转载. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内.以及两点间的测距功能. 绘制多边形(蓝色) ...

  9. 记录开发基于百度地图API实现在地图上绘制轨迹并拾取轨迹对应经纬度的工具说明

    前言: 最近一直在做数据可视化方面的工作,其中平面可视化没什么难度,毕竟已经有很多成熟的可供使用的框架,比如百度的echart.js,highcharts.js等.还有就是3D可视化了,整体来说难度也 ...

随机推荐

  1. xamarin 学习

    http://www.cnblogs.com/lonelyxmas/p/5174934.html http://www.cnblogs.com/phytan/p/xamarincrack2.html ...

  2. ios获取左右眼图片景深图

    cv::Mat leftMat,rightMat,depthMapMat; UIImageToMat(leftImage, leftMat); UIImageToMat(rightImage, rig ...

  3. tcpdump的简单使用

    tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析 1.tcpdump host 192.168.8.49         获取主机192.168.8.49接收到和发出的所有分组 2. ...

  4. Centos 使用YUM安装MariaDB

    1.在 /etc/yum.repos.d/ 下建立 MariaDB.repo,内容如下: [azureuser@mono etc]$ cd /etc/yum.repos.d [azureuser@mo ...

  5. 为什么google bazel构建工具流行不起来

    作者Jack47 转载请保留作者和原文出处 之前博主写了系列文章Google软件构建工具Bazel原理及使用方法介绍.最近使用了一段时间后,觉得这个东西不是一种通用的构建工具,很难对接到情况复杂的大的 ...

  6. 人生苦短,我用python——当我在玩python的时候我玩些什么

    文章背景 家里的第一台电脑是在2006年夏天买的,10年上大学之后基本上就没人用,过没两年就当二手卖给一个熟人. 弟弟小我10岁,今年刚上初一.他在我毕业前半年就整天用妈妈的手机发短信给我,问我什么时 ...

  7. php性能优化

    序   很长时间没有写博文了,最近换了工作,长时间加班,根本没有时间做其他事情!今天闲下来了,想一想php性能方面的事情.这也是我2014年的第一篇博文! 推荐阅读:初学者到中级者应该掌握的!   p ...

  8. 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型

    第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...

  9. Eclipse 调试技巧

    条件断点 顾名思义,是指当发生某种情况或者触发某种条件的情况下命中断点.常用的情形就是for循环中某个变量为xx值的时候命中断点类似的. 做法1:在debug视图中,BreakPoint View将所 ...

  10. spark参数调优

    摘要 1.num-executors 2.executor-memory 3.executor-cores 4.driver-memory 5.spark.default.parallelism 6. ...