如何在onCreate()中设置MapView缩放级别?

时间:2011-12-29 09:57:27

标签: android zoom android-mapview

我正在开发OneMap Android应用程序,代码如下:

    private MapView map;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

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

        map.addLayer(new ArcGISTiledMapServiceLayer(Practice_3.this,
                "http://www.onemap.sg/ArcGIS/rest/services/BASEMAP/MapServer"));}

我在模拟器上计算如何在地图首次加载时设置缩放级别时迷失了,因为地图太小了。

有人可以帮我吗?

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:0)

public class MyMap_MapControllerActivity extends MapActivity {

    private MapView mapView;
    //private MapController mapController;
     MapView.LayoutParams lp;
     int y = 10;
        int x = 10;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        mapView = (MapView)findViewById(R.id.map_view);
        mapView.setSatellite(true);
        mapView.setStreetView(true);
        mapView.setTraffic(true);



    GeoPoint center = mapView.getMapCenter();
    int latSpan = mapView.getLatitudeSpan();
    int longSpan = mapView.getLongitudeSpan();




    lp = new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT,
    MapView.LayoutParams.WRAP_CONTENT,
    x, y,
    MapView.LayoutParams.TOP_LEFT);
    View zoomControls = mapView.getZoomControls();
    mapView.addView(zoomControls, lp);
    mapView.displayZoomControls(true);
    }



    @Override
    protected boolean isRouteDisplayed() {
        // TODO Auto-generated method stub
        return false;
    }
    }

答案 1 :(得分:0)

首先,你需要知道你当前的位置,现在你可以使用新的位置api,这里是guide。 然后你可以在Onconnect()

下添加以下命令
LatLng latlng = new LatLng(location.getLatitude(),location.getLongitude());         
map.moveCamera(CameraUpdateFactory.newLatLng(latlng));
map.animateCamera(CameraUpdateFactory.zoomTo(2.0f));

但请记住onCreate()下的.connect()LocationClient

如果您不关注,则会收到错误消息 Android: at com.google.android.gms.internal.u.y(Unknown Source)

答案 2 :(得分:0)

看起来你正在使用ArcGIS地图。 请使用以下示例代码在地图启动时设置缩放级别。

<com.esri.android.map.MapView
    android:id="@+id/map"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    mapoptions.MapType="Topo"
    mapoptions.ZoomLevel="13"
    mapoptions.center="33.666354, -117.903557" />

您也可以在活动文件中设置

 MapOptions options = new MapOptions(MapType.TOPO, 23, -110, 9);

让我知道它是否适合您。