Bing Maps & Bing Maps Silverlight Control中访问WMS笔记

来源:互联网 发布:庚phone.知乎 编辑:程序博客网 时间:2024/05/21 09:10

    头疼了好几天,在网上找了不少关于的该方面的文章,终于搞定了。微软也真是让人火大,OGC WMS标准都出台几年了,应用也很广了,Bing Maps API也好,Bing Maps Silverlight Control也好,竟然都不支持对它的访问!!!

    好不容易搞定了,还是记下来笔记。

 

一、Bing Maps API访问WMS

 

    我用的是Bing Maps + OpenLayers,直接参照MSDN就可以搞定,地址如下:

    Integrating OGC Web Mapping Services:http://msdn.microsoft.com/en-us/library/cc161076.aspx

 

    前台JavaScript这样写即可:

    var tileSourceSpec = new VETileSourceSpecification(

          'WMSBavariaGeo',

          'WMSTileServer.ashx?id=%4&layer=Countries,Rivers,Country labels');

 

     tileSourceSpec.Bounds = bounds;

     tileSourceSpec.MinZoomLevel = 0;

     tileSourceSpec.MaxZoomLevel = 19;

     tileSourceSpec.Opacity      = 0.4;

 

     map.AddTileLayer(tileSourceSpec);

 

二、Bing Maps Silverlight Control访问WMS

 

    这个搞定起来曲折多了。

    最先找到的一种方法能够访问,但是返回的图片位置在屏幕随着ZoomLevel的改变上下漂移。因为偶急需要软件界面样图,所以该方法也曾解了燃眉之急,呵呵!我最先找到这种方法的地址如下:

    bing silverlight control and wms bounding box:http://cn.bing.com/community/forums/p/652190/9590047.aspx

 

    虽然解了燃眉之急,但问题还是没有解决啊。继续搜索……,突然:

    众里寻她千百度,蓦然回首,那人却在灯火阑珊处!!!

    急度汗颜!!!………………

    原来一直没有太注意的DeepEarth中就有类似的解决方案。原先总以为它跟微软的体系不同,应该不会兼容,所以没太在意。看了一个博客才知道,它现在正在逐渐改为对Bing Maps Silverlight Control的一种扩展,也颇好用!

    最先找到的解决方案网址如下:

    Overlay WMS on Google in Silverlight Bing:http://blog.sumbera.com/2010/02/25/overlay-wms-on-google-in-silverlight-bing/

    然后直上CodePlex网址的DeepEarth WMS解决方案源码页:http://deepearth.codeplex.com/sourcecontrol/changeset/view/37324?projectName=deepearth#583728

    修修改改,问题解决了,WMS返回的图像再也不发生“板块漂移”了,高兴啊!!!

 

    进一步改进:因为上面的解决方案需要引用DeepEarth动态库,偶是追求完美的人,所以希望能将方案可以直接改写为独立的C#类,不用再引用其他动态库。因为一凡查找,让俺找到了有心人,人家早已经实现到了这一步。仔细一看网址,这就是偶最初参考的那个网址……

    再次急度汗颜!!!………………

    看样子最初还是没完全搞懂啊!!!

    网址如下:Accessing WMS from Virtual Earth:http://vwl.nsquaredsolutions.com/Articles/VirtualEarth/AccessingWMSfromVirtualEarth.aspx

    实现中还差一个函数,不要紧,MSDN上有:http://msdn.microsoft.com/en-us/library/bb259689.aspx

 

    一切OK!淋浴中晨曦中一切看起来都那么的完美!^_^

 

    感谢天!感谢地!感谢阳光照耀着大地!感谢明月让我们相遇!感谢所有先行的网友………………

 

原创粉丝点击