提供一个谷歌(腾讯)、百度地图纠偏数据库

丽水市汽车运输集团股份有限公司信息中心 苟安廷

    在天朝特有的加偏让开发人员不胜其烦,地图纠偏也就一直是开发人员头疼,关于加偏、纠偏的具体描写叙述网上一大堆,能够自己搜搜。这里简单介绍一下,就是我们接收到的GPS坐标假设直接显示到电子地图上,和实际位置有非常大的偏移,必须把GPS坐标加上一定的偏移量再显示到电子地图上才干反映真正的位置。

纠偏的方法主要有两种:

    1.      地图厂商(或第三方)提供的在线接口。一般是通过webservice服务供调用,传入GPS坐标,返回地图坐标,这样的方式的缺点非常明显:(1)速度慢,难以满足大量数据并发,且因为网络等原因easy失败。(2)无法在数据库直接操作,比方须要将车辆执行轨迹批量返回。

    2.      纠偏数据库,地图加偏不是线性的,没有公式可套用。但同一区域的偏移量差点儿相同,因此,我们按0.01度把中国版图划成不同的小区域。坐标落在哪个区域。就取出这个区域的偏移值,和GPS坐标相加就能够了,网上这类数据库一般是须要银子的。

    本人为工作方便,自己创建了谷歌(腾讯纠偏和谷歌全然一样)、百度两种地图的纠偏库,创建方法參考我的另外一篇博客构建自己的百度地图坐标纠偏数据库(http://blog.csdn.net/gatr/article/details/21520737)。覆盖范围从东经73.5度~135度,北纬18~54度,全然能够满足日常需求了,參考范围例如以下:


    数据库採用了sqlserver 2005备份,你能够还原到sqlserver 2005或sql server2008上,其它版本号的数据库那就无能为力了,仅仅有先导入到sql server。再通过链接服务器导入吧。

    数据库仅仅有一个表。结构包含经度、纬度、地图编号、经度偏移、纬度偏移几列,例如以下:

    经纬度均按百万分之中的一个度存放,typeno表示地图类型。0表示谷歌(腾讯)地图,1表示百度地图。后面是相应的经纬度偏移量,作为演示样例,我还写了一个存储过程,依据传入的GPS坐标和地图类型。返回地图坐标:

CREATE PROCEDURE [dbo].[GetMapCoordinate]

    @Lng       INT,   --GPS坐标经度,百万分之中的一个度

    @Lat       INT,   --GPS坐标纬度度,百万分之中的一个度

    @MapTypeNo TINYINT    --地图编号,0:谷歌/腾讯,1:百度

AS

BEGIN

    SET NOCOUNTON;

    SELECT @Lng=@Lng+LngOffset,@Lat=@Lat+LatOffset

    FROM dbo.Offset

    WHERE lng=@Lng/10000*10000      --转换成.01

       AND lat=@Lat/10000*10000 --转换成.01

       AND typeno=@MapTypeNo

    SELECT @LngAS Lng,@Lat AS Lat

END

使用效果:

传入经度(120.123456)、纬度(28.123456)和地图编号(谷歌腾讯地图),返回相应的地图坐标,注意,都是百万分之中的一个度,显示到地图上时,必须除以100万。

    假设你须要批量返回。能够用LEFT JOIN查询直接返回,你应该在自己的表中添加两个字段,存放GPS坐标相应的区域特征值,也就是将GPS坐标的经纬度分别精确到0.01度,或者说。你将GPS经纬度(百万分之中的一个度)/10000*10000就得到了特征值,字段示意例如以下:

GPS经度

GPS纬度

经度特征值

纬度特征值

其它字段

120123456

28123456

120120000

28120000

    须要返回相应的百度地图坐标。參照以下的语法:

SELECT A.*,

A.GPS经度+ISNULL(B.LngOffset,0) AS地图经度,

A.GPS纬度++ISNULL(B.LatOffset,0) AS地图纬度

FROM MyTable A LEFT JOIN LngLatOffset B

ON A.经度特征值=B.lng AND A.经度特征值=B.lat AND B.typeno=1

上传成功后,我将在评论中给出下载链接。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值