ArcGIS for Android中坐标的转换

本文探讨了在GIS项目中如何使用ArcGIS for Android库进行坐标转换,特别是从WGS84坐标系转换到其他坐标系。在不拥有七参数或者对精度要求不高的情况下,可以利用库内置的方法`performTransformation`,该方法接受输入对象、源空间参考和目标空间参考作为参数,返回转换后的矢量对象。示例代码展示了如何将WGS84坐标转换为MapVie加载图层的坐标系。
摘要由CSDN通过智能技术生成

      在我们的GIS应用项目里,常常遇见坐标转换的问题。最常见的就是WGS84坐标转其他坐标系,原因是WGS84坐标系是目前GPS数据采集所用的坐标系,而我国实际生产项目里常用的地图却是北京54坐标系,西安80坐标系以及中国大地2000坐标系等。所以当我们用设备采集到GPS经纬度以后,需要将其进行坐标转换才可以正确显示到我们使用的地图上。

      对于坐标转换,有一种高精度而且任何时候都可以采用的方法是七参数坐标转换法,对于这种方法,我在之前一篇博客进行了详细的说明,地址是:http://blog.csdn.net/bit_kaki/article/details/52733429 。

      但是在实际情况下,我们不一定拥有七参数,而且对采集的精度要求也并不那么高。在这个时候,其实ArcGIS for Android的库里已经给我们封装了个一个方法,我们可以直接调用就可以。这个方法就是

public static Geometry project(Geometry geometry, SpatialReference inputSR, SpatialReference outputSR) {
    return GeometryEngineCore.project(geometry, inputSR, outputSR);
}

      这个方法里三个参数分别是需要转换矢量对象(点、线、面),输入对象的空间参考坐标系,输出对象的空间参考坐标系。最后得到一个转换后的矢量对象。

      比如我们程序里的MapView参数为mMapView,那么要将一个点从WGS84坐标系转换为MapView上加载图层的坐标系,我们只需要:

Point point=(Point) GeometryEngine.project(wgs, SpatialReference.create(4326),mMapView.getSpatialReference());

      其中wgs是一个WGS84坐标系上的点的坐标,SpatialReference.create(4326)指的是输入点的空间坐标系mMapView.getSpatialReference()是mMapView目前加载图层所使用的坐标系。

      方法挺简单的,但是对于这个方法我们可以稍作一下研究里面SpatialReference参数的意义。

      SpatialReference在指的ArcGIS里的地理坐标系对象,里面主要包含了五个参数:

  • WKID:空间参考系统编号。
  • WKT:空间参考系统文本。
  • Unit:空间参考系统单位。
  • Tolerance:系统容差。
  • GCS:地理坐标系。
      这五个参数里第一个或者第二个是必须存在的,根据编号或者文本就可以获取到对应的空间坐标系。其中通过WKID来建立地理坐标系对象是最常见的,WKID,全称是Well Known ID,即ArcGIS对众多的空间坐标系进行的编号。只要我们知道空间参考坐标系所对应的编号,就可以通过这个编号获取到该控件参考坐标系。比如上个例子用到的SpatialReference.create(4326),4326对应的是WGS84坐标系,所以SpatialReference.create(4326)就是WGS85地理坐标系对象了。
      通过阅读Esri官方SDK文档,可以知道投影坐标枚举esriSRProjCSType包含1442个WKID,esriSRProjCS4Type包含1224个WKID。在这里将国内常用坐标系统的WKID整理如下:
类别 WKID  名称
地理坐标 4214  GCS_Beijing_1954 
地理坐标 4326  GCS_WGS_1984 
地理坐标 4490  GCS_China_Geodetic_Coordinate_System_2000 
地理坐标 4555  GCS_New_Beijing 
地理坐标 4610  GCS_Xian_1980 
投影坐标 2327  Xian_1980_GK_Zone_13 
投影坐标 2328  Xian_1980_GK_Zone_14
投影坐标 2329  Xian_1980_GK_Zone_15 
投影坐标 2330  Xian_1980_GK_Zone_16 
投影坐标 2331  Xian_1980_GK_Zone_17 
投影坐标 2332  Xian_1980_GK_Zone_18 
投影坐标 2333  Xian_1980_GK_Zone_19 
投影坐标 2334  Xian_1980_GK_Zone_20 
投影坐标 2335  Xian_1980_GK_Zone_21 
投影坐标 2336  Xian_1980_GK_Zone_22
投影坐标 2337  Xian_1980_GK_Zone_23 
投影坐标 2338  Xian_1980_GK_CM_75E 
投影坐标 2339  Xian_1980_GK_CM_81E 
投影坐标 2340  Xian_1980_GK_CM_87E 
投影坐标 2341  Xian_1980_GK_CM_93E 
投影坐标 2342  Xian_1980_GK_CM_99E 
投影坐标 2343  Xian_1980_GK_CM_105E 
投影坐标 2344  Xian_1980_GK_CM_111E
投影坐标 2345  Xian_1980_GK_CM_117E 
投影坐标 2346  Xian_1980_GK_CM_123E 
投影坐标 2347  Xian_1980_GK_CM_129E 
投影坐标 2348  Xian_1980_GK_CM_135E 
投影坐标 2349  Xian_1980_3_Degree_GK_Zone_25 
投影坐标 2350  Xian_1980_3_Degree_GK_Zone_26 
投影坐标 2351  Xian_1980_3_Degree_GK_Zone_27 
投影坐标 2352  Xian_1980_3_Degree_GK_Zone_28 
投影坐标 2353  Xian_1980_3_Degree_GK_Zone_29 
投影坐标 2354  Xian_1980_3_Degree_GK_Zone_30 
投影坐标 2355  Xian_1980_3_Degree_GK_Zone_31 
投影坐标 2356  Xian_1980_3_Degree_GK_Zone_32 
投影坐标 2357  Xian_1980_3_Degree_GK_Zone_33 
投影坐标 2358  Xian_1980_3_Degree_GK_Zone_34
投影坐标 2359  Xian_1980_3_Degree_GK_Zone_35 
投影坐标 2360  Xian_1980_3_Degree_GK_Zone_36 
投影坐标 2361  Xian_1980_3_Degree_GK_Zone_37 
投影坐标 2362  Xian_1980_3_Degree_GK_Zone_38 
投影坐标 2363  Xian_1980_3_Degree_GK_Zone_39 
投影坐标 2364  Xian_1980_3_Degree_GK_Zone_40
投影坐标 2365  Xian_1980_3_Degree_GK_Zone_41 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值