2つの問題:
- 正しい順序で座標を指定します。座標を指定するときは、ArcGIS Runtimeのドキュメント(10.2.x、Quartz)を調べて、使用する順序を確認する必要があります。
Point
を作成するときは、最初にX(経度)を指定してからY(緯度)を指定します。 149.083404は有効な緯度ではありませんので、私はそれが経度であることを意味していると思います。それらを切り替えます。
- ドキュメンテーションに「経度」と「緯度」と表示されていない限り、マップの座標を仮定します。つまり、と
y
ではなく、longitude
とlatitude
のパラメータを持つメソッドを呼び出す場合を除き、GeometryEngine.project
を使用して、マップの空間参照にポイントを投影する必要があります。
あなたが10.2.xを使用しているのか、Quartz Betaを使用しているのかは分かりません。それぞれの要素を使用しているのかどうかはわかりません。
クォーツ(あなたはレイアウト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