2013-11-05 27 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讓Eclipse爲您解決導入問題。 –

回答

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