zoukankan      html  css  js  c++  java
  • Android学习笔记----ArcGIS在线地图服务(Android API)坐标纠偏

    仅限于如下ArcGIS在线地图服务(高德提供数据):

    //概述:彩色中文含兴趣点版中国基础地图
    //投影:WGS 1984 Web-Mercator
    //切片格式:MIXED90
    //服务类型:基础地图服务
    //数据提供商:高德软件有限公司
    //数据获取时间:2014年秋季
    //地图最后更新时间:2015年3月1日
    //版权所有:北京捷泰天域信息技术有限公司
    String chinaMapURL = "http://cache1.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer";

    在使用上述地图服务进行APP开发时,发现手机GPS定位后的位置在地图上存在较大偏差,想必这应该是地图审查后导致的问题。如下图:红圈中心红点处为真实位置,黄色图钉符号为未纠偏位置:

    采用了一个简单的方法进行局部区域(山东淄博)坐标纠偏:

    1、打开GPS,首先使用未纠偏的手机APP测出偏移后的坐标;

    2、在本地地图上找出真实的地理坐标;

    3、进行投影变换(经纬度到Web墨卡托);

    4、计算坐标差,进行局部参数纠偏,代码如下:

     1 package cn.edu.sdut.duchazhushou;
     2 
     3 import com.esri.core.geometry.GeometryEngine;
     4 import com.esri.core.geometry.Point;
     5 
     6 /**
     7  * Created by jeff on 2015/5/19.
     8  */
     9 public class ClsGeometryEngine_AdjustedWarpper {
    10     public static double adj_x = 649.3711175937206;
    11     public static double adj_y = 38.62131773866713;
    12 
    13     public static Point project_point_adjusted(Point geometry, com.esri.core.geometry.SpatialReference inputSR, com.esri.core.geometry.SpatialReference outputSR) {
    14         Point pnt = (Point) GeometryEngine.project(geometry,inputSR,outputSR);
    15         pnt.setXY(pnt.getX()+adj_x, pnt.getY()+adj_y);
    16         return pnt;
    17     }
    18 }

    实测该地图服务在山东淄博区域内,东西方向坐标偏差约为649.37米,南北方向坐标偏差约为38.62米。

    上述数据均为Android手机所带GPS功能测得,误差约为3~4米。

  • 相关阅读:
    洛谷1076 寻宝
    洛谷1349 广义斐波那契数列 【矩阵乘法】
    BZOJ1008 [HNOI2008]越狱
    vijosP1629 八
    vijosP1687 细菌总数
    vijosP1388 二叉树数
    怎么在windows上安装 ansible How to install ansible to my python at Windows
    阿里邮箱绑定Foxmail失败的解决办法
    Django html页面 'ascii' codec can't encode characters in position 8-10: ordinal not
    python2.X现在不能安装Django了:Collecting django Using cached Django-2.0.tar.gz
  • 原文地址:https://www.cnblogs.com/yeahgis/p/4609395.html
Copyright © 2011-2022 走看看