2013-11-05 2 views
0

안녕하세요,기본 위도/경도 위치를 쓸 ArcgisMap

저는 ArcGIS지도를 개발하는 초보자입니다. 현재지도를 표시 할 수 있습니다. 하지만 위도와 위도를 사용하여 기본 위치를 만들고이를 코드에 구현하려면 어떻게해야합니까?

예를 들어 다음 좌표를 설정하고 싶습니다. (1.3002, 103.8641). 지도를 열면 자동으로 좌표가 확대됩니다.

미리 감사드립니다.

내 코드입니다 :

public class HelloWorld extends Activity { 
MapView mMapView = null; 
ArcGISTiledMapServiceLayer tileLayer; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // Retrieve the map and initial extent from XML layout 
    mMapView = (MapView)findViewById(R.id.map); 
    /* create a @ArcGISTiledMapServiceLayer */ 
    tileLayer = new ArcGISTiledMapServiceLayer(
      "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"); 
    // Add tiled layer to MapView 
    mMapView.addLayer(tileLayer); 

} 


@Override 
protected void onPause() { 
    super.onPause(); 
    mMapView.pause(); 
    } 

@Override 
protected void onResume() { 
    super.onResume(); 
    mMapView.unpause(); 
} 

    } 
+0

나는 코드를 구현하려고했지만 내 코드에 쓸 때. 그것은 내가 클래스를 생성하라고 요청했습니다. 그리고 기하학 엔진 라인과 mMapview.centerat에 에러가 있습니다. – FaridAvesko

+0

'import com.esri.core.geometry.GeometryEngine;' 또는 Ctrl + Shift + O를 눌러 가져 오기를 수정합니다. –

답변

0

MapView 모든 레이어를 추가하기 전에, 그 OnStatusChangedListener을 설정합니다. 지도 좌표에서 projects the longitude/latitude coordinates to map coordinatescenters the map이라는 청취자에게 코드를 추가합니다.

당신은 이런 식으로 할 수 있었다 : 당신이 중심까지 모두를 원하는 경우에

mMapView = (MapView)findViewById(R.id.map); 

final double longitude = 103.8641; 
final double latitude = 1.3002; 
mMapView.setOnStatusChangedListener(new OnStatusChangedListener() { 

    @Override 
    public void onStatusChanged(Object source, STATUS status) { 
     if (STATUS.INITIALIZED.equals(status)) { 
      Point mapPoint = GeometryEngine.project(longitude, latitude, mMapView.getSpatialReference()); 
      mMapView.centerAt(mapPoint, false); 
     } 
    } 

}); 

/* create a @ArcGISTiledMapServiceLayer */ 
tileLayer = new ArcGISTiledMapServiceLayer(
     "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"); 
// Add tiled layer to MapView 
mMapView.addLayer(tileLayer); 

및 일정 규모로 확대, 당신은 zoomToScale 대신 centerAt 호출 할 수 있습니다.