去百度API的百度地图准确叠加和坐标转换的解决方案研究
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处: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的百度地图准确叠加和坐标转换的解决方案研究的更多相关文章
- 百度API实例——google地图数据转化为百度地图数据
前段时间做的项目前端都是用Google地图,最近在一个地方需要用到百度地图,因为不同地图都有自己的处理,同一个经纬度在不同地图上显示的位置并不相同,因此,要把以前的数据直接拿过来用需要做一个转换.查阅 ...
- 根据经纬度获取位置描述:百度API与高德API的区别
百度API 使用百度坐标 1.访问方式一 http://api.map.baidu.com/geocoder/v2/?location=35.063592,118.38513&output=j ...
- 【百度地图API】百度API卫星图使用方法和卫星图对比工具
原文:[百度地图API]百度API卫星图使用方法和卫星图对比工具 百度地图API推出卫星图接口也有一个月啦~ 本文除了介绍如何使用百度地图API来操作卫星图外,还顺带制作了个卫星图对比工具. 一.百度 ...
- 百度地图热力图--批量地址转换应用(基于百度api)
需求:把外卖订餐地址做个用户分布热力图 思路分析:第一步去百度地图api开放平台找例子 http://lbsyun.baidu.com/jsdemo.htm#c1_15 首先从百度API的demo例子 ...
- 如何在网中使用百度地图API自定义个性化地图
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- HTM L百度地图API 自定义工具地图实例
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 百度地图API和高德地图API资料集锦
[高德地图API]从零开始学高德JS API(五)路线规划——驾车|公交|步行 [高德地图API]从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自 ...
- 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内。以及两点间的测距功能
权声明:本文为博主原创文章,未经博主允许不得转载. 利用百度API(JavaScript 版)实现在地图上绘制任一多边形,并判断给定经纬度是否在多边形范围内.以及两点间的测距功能. 绘制多边形(蓝色) ...
- 记录开发基于百度地图API实现在地图上绘制轨迹并拾取轨迹对应经纬度的工具说明
前言: 最近一直在做数据可视化方面的工作,其中平面可视化没什么难度,毕竟已经有很多成熟的可供使用的框架,比如百度的echart.js,highcharts.js等.还有就是3D可视化了,整体来说难度也 ...
随机推荐
- 获取IP地址 & 伪装IP地址发送请求
//获取请求客户端IP地址 public final static String getIpAddress(HttpServletRequest request) throws IOExcepti ...
- webpack的配置
使用webpack工具需要配置一个根目录下的配置文件,文件名默认为webpack.condfig.js,配置文件导出一个模块对象,包含了webpack工具的相关配置参数,这个模块对象将会以参数形式被引 ...
- CSS3动画快速实现
在工作或者平时做demo中,经常会遇到做一些简单的动画.初级前端同学可能就会有些棘手了. 在这里我发现了一个网上笔记实用且简单易上手的动画库.与大家共享一下: 更多请查看:http://anicoll ...
- 一些iOS高效开源类库
因为iOS SDK相对比较底层,所以开发者就得受累多做一些体力活.不过幸运的是,有很多第三方的类库可以用来简化很多不必要的工作.笔者整理了一下在本人学习过程中用到的一些比较有用Objective-C开 ...
- C#如何测试代码运行时间
1.System.Diagnostics.Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // 开始监视代码运行时间 // 需要测试 ...
- SQL SERVER全面优化-------写出好语句是习惯
前几篇文章已经从整体提供了诊断数据库的各个方面问题的基本思路...也许对你很有用,也许你觉得离自己太远.那么今天我们从语句的一些优化写法及一些简单优化方法做一个介绍.这对于很多开发人员来说还是很有用的 ...
- ASP.NET Core 1.0中的管道-中间件模式
ASP.NET Core 1.0借鉴了Katana项目的管道设计(Pipeline).日志记录.用户认证.MVC等模块都以中间件(Middleware)的方式注册在管道中.显而易见这样的设计非常松耦合 ...
- 写一个脚本,自动启动tomcat
我的服务器是使用tomcat的,时不时tomcat的进程会突然结束掉,不知道为什么,从日志上看也没有任何可疑之处,貌似就这样突然没了,接下来的日志都是重新启动tomcat之后打印的了.原因找不到,但要 ...
- 获取Windows操作系统的CPU使用率以及内存使用率
此功能参考了ProcessHacker项目的代码. 声明定义 typedef struct _UINT64_DELTA { ULONG64 Value; ULONG64 Delta; } UINT64 ...
- SQL Server 2012 Managed Service Account
原创地址:http://www.cnblogs.com/jfzhu/p/4007472.html 转载请注明出处 (一)Windows服务使用的登陆帐号 Windows服务只有登录到某一帐户的情况下才 ...