Google Maps + 谷歌地图的mashup, 还是发一个吧, 谁让我喜欢搞技术呢…
Google Maps, 学习 July 23rd, 2007
前些天弄了个bookmarklet来切换google map和地图,但觉得还是有些不方便,今天抽空用GoogleMaps API添加了个Ditu layer. 呵呵,这样可以很爽的切换和拖来拖去了。:)
本来不想在这个blog上贴太多技术的东西,唉!还是发一个吧,谁让我喜欢搞技术呢。:)
不要指望卫星图和ditu是准确重叠的,为什么? 因为这是我们社会和谐的需要,某些人认为如果你居然知道你家门口的那个早茶店的经度纬度就可能破坏社会和谐,所以这些地图的位置座标全部都进行了“艺术加工”被“和谐化”了。
下面是效果(在rss阅读器中可能看不到,请来我的blog上看吧):
需要了解技术细节的可以去这里, 源代码在这里,自己view source(没几行代码…)


About








































































看了你的mashup, 再次确认了一个事实。google map 用的是wgs84坐标系。而google ditu 采用的地图来自mapabc.com , 用的是另一种坐标系(可能是北京54或西安80坐标系,这在国内的GIS中常用,但更可能是一种加密的wgs84坐标). 所以可以在你的地图上明显看出两者的误差有500到1000米左右。
一般认为,这种人工误差可以保障国家勘测数据的信息安全,地图数据不能和基与wgs84坐标的GPS采集数据直接配合使用。
以下引用一些地球空间坐标的介绍,文章来自 http://www.beijingit.gov.cn 北京信息化工作办公室
2. 空间坐标系及相互转换
2.1现有空间坐标系
现有主要坐标体系包括全球坐标系、国家坐标坐标系和地方坐标系统三类。
(1) 全球坐标系(WGS-84坐标系)
WGS-84坐标系WGS-84坐标系是美国国防部研制确定的大地坐标系,是一种协议地球坐标系,采用的是地心坐标系。
WGS-84坐标系的定义是:原点是地球的质心,空间直角坐标系的Z轴指向BIH(1984.0)定义的地极(CTP)方向,即国际协议原点CIO,它由IAU和IUGG共同推荐。X轴指向BIH定义的零度子午面和CTP赤道的交点,Y轴和Z,X轴构成右手坐标系。WGS-84椭球采用国际大地测量与地球物理联合会第17届大会测量常数推荐值,采用的两个常用基本几何参数:长半轴a=6378137m;扁率f=1:298.257223563。
该坐标系与投影无关,直接记录经纬度,常用于GPS应用系统。
(2) 国家坐标系
国家坐标系包括北京54和西安80两种坐标系。
北京54坐标系是指1954年我国在北京设立了大地坐标原点,采用克拉索夫斯基椭球体,依此计算出来的各大地控制点坐标的大地坐标系,其实质上是由原苏联普尔科沃为原点的1942年坐标系的延伸。
西安80坐标系是采用国际地理联合会(IGU)第十六届大会推荐的椭球参数,大地坐标原点在陕西省泾和县永乐镇的大地坐标系,又称西安坐标系
(3) 地方坐标系
地方坐标系是指各地根据测量工作的需要,自行设计的坐标系。如北京有北京地方坐标系,上海有上海地方坐标系。
上述三类坐标系统之间的差异主要体现在参考的地球椭球体、坐标原点和基准方向不一样。
2.2坐标系转换
由于WGS-84、北京54、西安80坐标系统的参数是公开的,因此在各大GIS软件平台上可以进行相互之间的自动转换。而各地地方坐标系与WGS-84、北京54、西安80坐标系统之间的转换,需要各地公开各自坐标系统的参数(为绝密信息),且基本上不能进行自动转换,需要编程实现。
目前,针对地方坐标与WGS-84、北京54、西安80坐标系统之间的转换存在的问题,国家测绘总局正在力推CGS 2000坐标系统,希望借此从根本上解决不同坐标系之间的转换问题。可以说,CGS 2000与WGS 84相类似,是中国版的WGS-84。
长见识啊,谢谢!
Robin, 我打算支持手工定位校准,你觉得这样可行吗?
做法是选中一个已知的地点,用户拖拽地图让已知地点位置重叠,然后计算出map, ditu给出的经纬度的差距,今后拖拽时就用这些差距来修正,你看如何呢?
我估计中国地图变形很厉害,估计得每个城市都校准一次。
看起来这个坐标转换公式不太可能是 y=a*x + b的简单一次线性公式。手工定位校准估计困难。我以前也看见网上有人用 51ditu.com 上的中国地图 API 来与 Google Maps Mashup,也有同样的问题。
关键是那个地图是否变形了,如果没有变形,那么局部offset可能还是可以手工校正的,但得一个一个城市单独来。
玩车载GPS的那群人好像已经自己校准制作OZI地图很久了,据说可以校的很准。但gmap上的图片没法拉升处理,只能位移…
[...] 郑州市的地图与卫星图的对照 这是一个google maps的mashup。从这里学习过来的,然后自己做了一个郑州的。不要指望卫星图和ditu是准确重叠的,因为要和谐。 This entry was written by quanmengli and posted on July 30, 2007 at 12:11 pm and filed under 郑州, Ditu, zhengzhou, maps, google. Bookmark the permalink. Follow any comments here with the RSS feed for this post. Post a comment or leave a trackback: Trackback URL. « Zooomr’s new avatar builder rocks! [...]
请问这样做算侵犯谷歌的权利么?
我也发现Google ditu/Mapabc.com 和Google Map的经纬度不同。那这样的话,中国境内的还是需要按照ditu的坐标来使用,港澳台和境外各地需要按照GMap的坐标来使用?数据库里面也需要使用一个字段来区别。
不知道51ditu和Mapabc.com是否采用同样坐标?
这里面还有标准差别,我首次知道。