为什么投影无法使用我的MapView空间参考? (适用于Android的ArcGIS SDK)

时间:2015-05-15 03:30:02

标签: android arcgis

我有MapView名为mMapView。我想在地图上添加一个点图形。这是我做的:

Point p1 = new Point(66.9969, 6.65428); //I took this coordinate from my GPS device for demonstration
Point p2 = (Point) GeometryEngine.project(
    p1,
    SpatialReference.create(4326),
    mMapView.getSpatialReference());
Graphic graphic = new Graphic(
    p2,
    new SimpleMarkerSymbol(Color.RED, 10, SimpleMarkerSymbol.STYLE.DIAMOND));
mGraphicsLayer.addGraphic(graphic);//mGraphicsLayer is my GraphicsLayer on my MapView

当我运行我的程序时,我的MapView上没有标记。但当我用mMapView.getSpatialReference()替换SpatialReference.create(32637)时,图形出现在我想要的正确位置。为什么会这样?我检查了MapView空间参考idlatestid,分别是 102100 3857

1 个答案:

答案 0 :(得分:1)

我的猜测是,当你致电project时,地图还没有空间参考。这很难说,因为你没有说明你的代码片段在应用程序中的位置。但是,如果您将其放在Activity的{​​{1}}方法中,则地图的空间参考可能仍为onCreate。试试null,如下所示:

OnStatusChangedListener

另一种可能性是您的坐标不在纬度和经度上。如上所述,lon = 66.9969和lat = 6.65428,它应该在印度附近的海洋中。如果你的意思是lon = 6.65428和lat = 66.9969,它将会在挪威附近的海洋中。如果您不是指这些位置中的任何一个,那么您的坐标在纬度和经度上是不正确的。