兩個問題:
- 指定正確的順序座標。無論何時指定座標,都需要檢查ArcGIS Runtime文檔(10.2.x,Quartz)以查看要使用的訂單。在創建
Point
時,首先指定X(經度),然後指定Y(緯度)。 149.083404不是有效的緯度,所以我認爲你的意思是經度。切換它們。
- 除非文檔中提到「經度」和「緯度」,否則假定地圖座標。這意味着您需要使用
GeometryEngine.project
將您的要點投影到地圖的空間參考中,除非您調用參數爲longitude
和latitude
而不是x
和y
的方法。
我不能告訴你是否使用10.2.x或Quartz Beta - 你使用的是每個元素 - 所以這裏是一個使用每個API的工作示例。
石英(假定您已經聲明在佈局XML一個MapView
):
public class MainActivity extends AppCompatActivity {
private MapView mMapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMapView = (MapView) findViewById(R.id.mapView);
// ArcGISMap constructor takes latitude (Y) first
ArcGISMap map = new ArcGISMap(Basemap.Type.TOPOGRAPHIC,
-35.238019, 149.083404, 10);
mMapView.setMap(map);
GraphicsOverlay graphicsLayer= new GraphicsOverlay();
mMapView.getGraphicsOverlays().add(graphicsLayer);
SimpleMarkerSymbol simpleMarker = new SimpleMarkerSymbol(
SimpleMarkerSymbol.Style.CIRCLE, Color.RED, 5);
// Point constructor takes X (longitude) first
Point pointGeometry = new Point(
149.083404, -35.238019, 0, SpatialReference.create(4326));
Graphic pointGraphic = new Graphic(pointGeometry, simpleMarker);
graphicsLayer.getGraphics().add(pointGraphic);
}
@Override
protected void onPause(){
mMapView.pause();
super.onPause();
}
@Override
protected void onResume(){
super.onResume();
mMapView.resume();
}
}
10.2.x中(假定您已經聲明的佈局XML文件中MapOptions
一個MapView
):
public class MainActivity extends AppCompatActivity {
private MapView mMapView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mMapView = (MapView) findViewById(R.id.mapView);
mMapView.setOnStatusChangedListener(new OnStatusChangedListener() {
@Override
public void onStatusChanged(Object o, STATUS status) {
if (STATUS.INITIALIZED.equals(status)) {
// MapOptions constructor takes latitude (Y) first
MapOptions mapOptions = new MapOptions(
MapOptions.MapType.TOPO, -35.238019, 149.083404, 10);
mMapView.setMapOptions(mapOptions);
GraphicsLayer graphicsLayer = new GraphicsLayer();
mMapView.addLayer(graphicsLayer);
SimpleMarkerSymbol simpleMarker = new SimpleMarkerSymbol(
Color.RED, 5, SimpleMarkerSymbol.STYLE.CIRCLE);
// GeometryEngine.project takes X (longitude) first
Point pointGeometry = GeometryEngine.project(
149.083404, -35.238019, mMapView.getSpatialReference());
Graphic pointGraphic = new Graphic(pointGeometry, simpleMarker);
graphicsLayer.addGraphic(pointGraphic);
}
}
});
}
@Override
protected void onPause(){
mMapView.pause();
super.onPause();
}
@Override
protected void onResume(){
super.onResume();
mMapView.unpause();
}
}
經度(x),緯度(y)....你有他們的後向 – NaN
ps。你真的應該在這裏尋找答案https://geonet.esri.com/welcome有部分語言和api – NaN
我的問題是,不使用WKID._WGS84並使用任何默認值 – blackhawkfound