我正在开发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"));}
我在模拟器上计算如何在地图首次加载时设置缩放级别时迷失了,因为地图太小了。
有人可以帮我吗?
非常感谢任何帮助。
答案 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);
让我知道它是否适合您。