ArcGIS API for Silverlight 使用GoogleMap,BingMap等作为地图地图时应注意的坐标系问题————Web Mercator

来源:互联网 发布:spring 启动加载数据 编辑:程序博客网 时间:2024/05/21 08:43

坐标系在任何类型的地理信息系统中,都是十分重要的一个角色。坐标系统可以分类两种:即地理坐标和投影坐标。地理坐标中的坐标值都是以度分秒为单位,也就是常说到的经纬度坐标。投影坐标是经纬度坐标经过平面投影后的坐标,经常见到的7-8位(不包括小数点后的数位)那么大的数字就是投影坐标值了,以米为单位。

每一个坐标系都有一个统一的编号,这个编号称为wkid。在地理信息系统中,都可以通过指定wkid来创建或者指定坐标系。

常用坐标系

在WebGIS系统中,常见的坐标系有两种:一种wkid=102100(102113);一种wkid=4326.

  • 102100:GCS_WGS_1984_web_mercator是在线网络地图常用的坐标系统,它是投影坐标系的一种。百度地图和大多数ArcGIS提供的在线瓦片地图采用了这种投影方式。102113是GCS_WGS_1984_web_mercator_auxiliary_sphere,Google在线地图采用的是这种投影方式。调用不同的地图,要采用对应的地图投影,可以把投影想象成web应用中的编码,所有的地方,前台后台要能够一致,不能一致的地方要进行适当的转换。
  • 4326:GCS_WGS_1984是地理坐标系统的一种,一般GPS、遥感影像、外业测绘数据等都是采用的这种坐标系类型。(当然,beijing54,xian80也很多,4326只是一般的WebGIS系统中常用到的坐标系统,不是唯一)

如果,系统使用的地图坐标系和后台数据的坐标系不一样,就需要在添加后台数据到地图时,或者在地图范围传输到后台时,进行转换。比如地图坐标系是102100,后台数据是4326,这是最常见的一种场景。

对于中国地图,102100投影下看到的是立起的雄鸡,4326坐标系下看到的是伸长脖子的雄鸡。

    


看完了上面的简介:
在做WebGIS开发的时候   如做自己发布的地图服务的坐标系不管是任何地理坐标系或者投影坐标系只要不是GCS_WGS_1984_web_mercator(WKID:102100),那么在和Google地图,Bing地图,已经Esri发布的Online地图进行叠加的时候,一定会出现部分偏移的情况,或多或少,或者你没有注意看,这种时候在进行按QueryTask等查询的时候,查询出来的要素坐标的X,Y都是GCS_WGS_1984_web_mercator(WKID:102100)的坐标系,而不是原来自己发布服务的坐标系,在对这些要素进行渲染的时候,例如高亮闪烁显示,给要素加上Symbol,例如下面的代码:
      selectedFeature.Symbol = LayoutRoot.Resources["StrobeMarkerSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol;
      graphicsLayer.Graphics.Add(selectedFeature);
那么地图高亮显示的地方不会再原来自己发布的服务的要素点上高亮显示,而是出现了偏移,这个问题出现的原因就是   自己发布的地图服务的坐标系和WebGIS的坐标系不一致导致的问题。

解决办法:
把自己发布的地图服务的坐标系修改成GCS_WGS_1984_web_mercator(WKID:102100),然后重新发布,在和Google地图,Bing地图等叠加的时候,就不会出现这个问题了,坐标系转换   可以使用ArcToolbox里的  Data Management Tools--Projections and Transformations--Project 工具 



0 0
原创粉丝点击