MapGuide和Google Maps集成常见问题

最近在MapGuide用户邮件组中频繁问到MapGuide和Google Maps等在线地图的集成问题,Jackie总结了一些FAQ,我翻译一下供大家参考。

 

Q: Google Maps能和MapGuide Ajax Viewer集成到一起吗?

A:不能。

因为:

1. Google Maps API对于如何使用它有很严格的限制。所以,如果你违反它的服务协议来hack他的代码从而视图把Google Maps和Ajax Viewer集成,发生一些不可预料的事也就不奇怪了

2.Ajax Viewer不使用OpenLayers 库,而OpenLayer是用来显示Google Maps的唯一的正统的类库。

所以,趁早放弃这个想法,移植到Fusion吧。

 

Q:那我可以在Fusion Viewer中显示Google Maps吗?

A: 可以。

 

Q:有什么要注意的吗?

A:有,你的地图(MapDefiniation)需要使用popular spherical mercator coordinate system (CS-Map code: WGS84.PseudoMercator, EPSG code: 3857).在MapGuide Studio里可以设定,在World/Continental目录下。如果你改了地图的坐标系,你还需要重新设定你的初始地图范围,MapGuide Studio可以帮你自动设定,当如果你用Maestro的话,需要你自己设定。

 

Q:哪些版本的MapGuide支持和Google Map集成?

A:MapGuide OpenSource 2.1或以上版本; MapGuide Enterprise 2010或以上版本。对于MGOS2.1和MGE2010,你需要手动自己来设置和Google Map的集成。可以参考http://www.cnblogs.com/junqilian/archive/2009/09/10/1554469.html 或者manually hacked in.

 

Q: 在MapGuide Studio或者Maestro中有相关界面可以设置吗?

A: 对于更新的MapGuide版本,MapGuide Studio和Maestro中有相关界面。MapGuide Studio的设置方法参考MapGuide Fusion viewer中如何用Google Map/Yahoo Map/Bing Map做底图, Maestro的界面也类似。

 

Q:为什么我在Fusion的[打印,保存地图]等功能里看不到Google Map底图? 不能打印?

A:这个就是这么设计的。同样的道理,对Bing Map、Yahoo Map也一样。那些Widget都是用MapGuide 渲染API,他们并不知道Google Maps底图。而且使用这些Widget来显示Google Maps也会违反Google Maps的使用协议。

 

Q:我选中一个地物时,怎么弄Google 风格的气泡?

A:在监听Fusion's MAP_SELECTION_ON 事件的函数中用一个OpenLayers.Popup来显示,具体怎么做你可以放狗自己搜。

 

Q:如果我不想用Fusion怎么办?

A:那你就用OpenLayers完全自己做吧,网上好多例子和讨论bajillions of differnent OpenLayers examples/blogs/discussions out there

 

还有,可以仔细阅读一下Google maps的使用协议

 

Jackie Ng 的原文:http://themapguyde.blogspot.com/2011/03/definitive-mapguidegoogle-maps.html

你可能感兴趣的:(google map)