和其他地图一样,都要先去官网注册成为开发者,然后获取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