标签:
和其他地图一样,都要先去官网注册成为开发者,然后获取Key。下面直接上代码。
效果图:
package com.example.gaodemap; import com.amap.api.maps.AMap; import com.amap.api.maps.CameraUpdate; import com.amap.api.maps.CameraUpdateFactory; import com.amap.api.maps.MapView; import com.amap.api.maps.model.LatLng; import com.amap.api.maps.model.Marker; import com.amap.api.maps.model.MarkerOptions; import android.app.Activity; import android.content.Context; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.widget.CompoundButton; import android.widget.ToggleButton; public class MainActivity extends Activity { private MapView mMapView; private AMap aMap; private MapView mapView; private LocationManager locationManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); mMapView = (MapView) findViewById(R.id.map); mMapView.onCreate(savedInstanceState); init(); //GPRS提供的定位信息改变 locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 300, 8, new LocationListener() { @Override public void onStatusChanged(String provider, int status, Bundle extras) { // TODO Auto-generated method stub } @Override public void onProviderEnabled(String provider) { // 使用GPRS提供的定位信息来更新位置 updatePosition(locationManager.getLastKnownLocation(provider)); } @Override public void onProviderDisabled(String provider) { // TODO Auto-generated method stub } @Override public void onLocationChanged(Location location) { // TODO Auto-generated method stub updatePosition(location); } }); ToggleButton tb = (ToggleButton) findViewById(R.id.tb); tb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener(){ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub if(isChecked){ aMap.setMapType(AMap.MAP_TYPE_SATELLITE); }else{ aMap.setMapType(AMap.MAP_TYPE_NORMAL); } } }); } //初始化AMap对象 private void init(){ if(aMap == null){ aMap = mMapView.getMap(); } } @Override protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); mMapView.onDestroy(); } @Override protected void onPause() { // TODO Auto-generated method stub super.onPause(); mMapView.onPause(); } @Override protected void onResume() { // TODO Auto-generated method stub super.onResume(); mMapView.onResume(); } @Override protected void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub super.onSaveInstanceState(outState); mMapView.onSaveInstanceState(outState); } private void updatePosition(Location location){ LatLng pos = new LatLng(location.getLatitude(), location.getLongitude()); //创建一个设置经纬度的CameraUpdate CameraUpdate cu = CameraUpdateFactory.changeLatLng(pos); //更新地图的显示区域 aMap.moveCamera(cu); //清除所有的Marker等覆盖物 aMap.clear(); //创建一个MarkerOptions对象 MarkerOptions markOptions = new MarkerOptions(); markOptions.position(pos); //添加MarkerOptions(实际上是添加Marker) Marker marker = aMap.addMarker(markOptions); } }
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <com.amap.api.maps.MapView android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent"> </com.amap.api.maps.MapView> <ToggleButton android:id="@+id/tb" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="top|right" android:textOff="普通地图" android:textOn="卫星地图" android:checked="false" android:background="@android:color/transparent" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:orientation="horizontal" > <Button android:id="@+id/near" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="附近" android:layout_weight="1" android:background="@android:color/transparent" /> <Button android:id="@+id/route" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="路线" android:background="@android:color/transparent" android:layout_weight="1" /> <Button android:id="@+id/my" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我的" android:background="@android:color/transparent" android:layout_weight="1" /> </LinearLayout> </FrameLayout>
标签:
原文地址:http://blog.csdn.net/chaoyu168/article/details/51375159