Google地图误差纠正的方法-坐标误差说明(来自网络)

google的中国部分地图有政策性偏差.下面是我纠证的方法,首先google地图嵌到自己的网站上的方法网络上很多,这里就不介绍了.

方法是通过Getdata.asp读取接口http://www.anttna.com/goffset/goffset.php?lat=xxx&lon=xxx获得的修正经纬度数据 lat原纬度,lon是原经度, 再利用Ajax动态调用getdata.asp读到的地图修正数据给htm显示.

 

下面是htm java 纠正的部分程序.可参考http://maps.esitak.com/

showLocation()

{

var lat = getElementById(“txtLatitude”).value;//这里是文本框传递参数

var lng = getElementById(“txtLongitude”).value;//这里是文本框传递参数

var point = new GLatLng(lat,lng);//原经纬度点

//通过接口http://www.anttna.com/goffset/goffset.php?lat=xxx&lon=xxx获得的修正经纬度数据

zoom=null;

offset_x=null;

offset_y=null;

var oXmlHttp =createXMLHTTP();//利用Ajax动态调用误差数据网页.

var url=”http://www.anttna.com/goffset/goffset.php?lat=” + lat + ”&lon=” + lng

var my_url=”../getdata.asp?url=”+escape(url);

oXmlHttp.open(“POST”,my_url,false);//获得getdata.asp 读取的误差数据

oXmlHttp.send(null);

var getdata = oXmlHttp.responseText;

var data = getdata.split(“,”); //获取经度,纬度修正数据..还有地图的缩放度

if(data.length == 3)

{

zoom=+data[0];

offset_x=+data[1];

offset_y=+data[2];

//getElementById(“txtLatitude”).value =offset_x;

//getElementById(“txtLongitude”).value =offset_y;

}

else

return;

//修正经纬度

map.clearOverlays();

map.setCenter(new GLatLng(lat,lng),14);

point= convertCoord(point,zoom,offset_x,offset_y);

map.addOverlay(new GMarker(point));

//lastMarker=point;

}

getdata.asp部份程序:

<%

url=request.querystring(“url”) //htm传过来的网址

TransferHtmlPage(url)

TransferHtmlPage(url)

On Error Resume Next

dim oXmlHttp

dim r

set oXmlHttp=Server.createobject(“Microsoft.XMLHTTP”)

oXmlHttp.open ”POST”,url, false

oXmlHttp.send()

r = oXmlHttp.responseText

Response.Write(r)

End

%>

  • Google Earth中显示的坐标位置和GPS导航仪显示数值是一致的(可接受的误差内),而且是正确的,至少小数点后3位是相同的。
  • maps.google.com的“卫星”模式中对某位置获取的坐标与Google Earth获取的几乎是一样的。
  • Google Maps的卫星模式与Google Earth的图片是一样的。
  • 面向我国的Google地图(ditu.google.cn)中显示我国境内的、来自GPS设备或者GE的坐标位置是有偏差(向西偏离实际位置约200-600米不等),国外位置没有此类问题;上述问题在更换到maps.google.com消失,位置标注是准确的。
  • ditu.google.cn中“地图”和“卫星”模式一致的,有偏差都有偏差,尽管与实际坐标并不一致;maps.google.com里却是不一致,不过“卫星”模式下是正确,“地图”模式下却有明显偏移。
  • 上述偏差发生在我国境内位置,国外位置无论是在何种语言下标注都是正确的。
  • 最新测试ditu.google.cn表明,假如不考虑GE和GPS的实际坐标位置,单纯就考虑自身,其“地图”和“卫星”等模式已经完全自身匹配,获取的“坐标”重新定位也是自我匹配的,但拿这个得到的坐标放在GE上就向东偏移。因此,目前ditu.google.cn提供的坐标是“经过修正”的伪坐标,这是与GE和GPS设备比对的结果。上述偏差发生在我国境内位置,国外位置无论是在何种语言下标注都是正确的。因此,这个问题似乎是政策性不是技术性的,截至目前依然存在(2009年5月26日)。

Google公司的庞大服务器集群基于DNS负载或其他技术满足用户有效访问需要,其中面向我国的地图服务由ditu.google.cn提供,其服务器位于北京,其全球Maps由maps.google.com负责。Google类似我国区域服务一样,也提供比如日本、韩国、印度等区域国家服务。某些全球数据比如卫星图像是同步更新的,但地图却不一定,区域国家的地图更新比全球服务更新要快。比如我国城市新建的交通状况,ditu.google.cn数据比maps.google.com新。

由上面测试来看,使用ditu.google.cn服务,”自我封闭”状态下是完美的,“地图”和“卫星”模式是自洽的。但是当把这个状态下的“坐标”用在GE或GPS上,位置就偏离了,反之也是一样的。假如使用maps.google.com,本身不是自洽的,尽管“卫星”等模式下是可以正确标注坐标的,但“地图”模式不买账。上述情况就目前来看仅限于我国。

序号地点GE/GPS坐标GM地图坐标偏差谷歌地图
Google Maps
1国家天文台40.002886°
116.377959°
40.004451°
116.38563°
672米75°ditu.google.cn
maps.google.com
2上海天文台31.190398°
121.429197°
31.188528°
121.433832°
484米115°ditu.google.cn
maps.google.com
3紫金山天文台32.061714°
118.774836°
32.0594°
118.780457°
589米116°ditu.google.cn
maps.google.com
4云南天文台25.027231°
102.795816°
25.02427°
102.797259°
365米157°ditu.google.cn
maps.google.com
5长春人卫站43.790531°
125.443531°
43.7931°
125.449877°
580米61°ditu.google.cn
maps.google.com
6乌鲁木齐天文站43.864436°
87.569080°
43.865692°
87.572°
271米60°ditu.google.cn
maps.google.com

上述表中所展示的偏差已经远大于GPS未取消SA的100米误差级别。我们可称之为中国SA。

转载于:https://www.cnblogs.com/glf123/archive/2012/02/06/2340033.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值