我有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
空间参考id
和latestid
,分别是 102100 和 3857 。
答案 0 :(得分:1)
我的猜测是,当你致电project
时,地图还没有空间参考。这很难说,因为你没有说明你的代码片段在应用程序中的位置。但是,如果您将其放在Activity
的{{1}}方法中,则地图的空间参考可能仍为onCreate
。试试null
,如下所示:
OnStatusChangedListener
另一种可能性是您的坐标不在纬度和经度上。如上所述,lon = 66.9969和lat = 6.65428,它应该在印度附近的海洋中。如果你的意思是lon = 6.65428和lat = 66.9969,它将会在挪威附近的海洋中。如果您不是指这些位置中的任何一个,那么您的坐标在纬度和经度上是不正确的。