在我们的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 | 名称 |
地理坐标 | 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 |