初识高德地图API

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">使用MapView的方式</span>
一、引入布局文件
<com.amap.api.maps.MapView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

 

二、在Activity中的基本程序代码(高德官方demo)

public class BasicMapActivity extends Activity {
    private MapView mapView;
    private AMap aMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.basicmap_activity);
        mapView = (MapView) findViewById(R.id.map);
        mapView.onCreate(savedInstanceState);// 必须要写
        if (aMap == null) {
            aMap = mapView.getMap();
        }
    }

    /**
     * 方法必须重写
     */
    @Override
    protected void onResume() {
        super.onResume();
        mapView.onResume();
    }

    /**
     * 方法必须重写
     */
    @Override
    protected void onPause() {
        super.onPause();
        mapView.onPause();
    }
    
    /**
     * 方法必须重写
     */
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        mapView.onSaveInstanceState(outState);
    }

    /**
     * 方法必须重写
     */
    @Override
    protected void onDestroy() {
        super.onDestroy();
        mapView.onDestroy();
    }
}
三、地图操作
1,改变可视区域 :使用CameraUpdate类

aMap.moveCamera(update);//为没有动画
aMap.animateCamera(CameraUpdateFactory.newCameraPosition(new CameraPosition(Constants.ZHONGGUANCUN,18, 0, 30)),1000, callback);//第一个参数为CameraUpdate,一般使用CameraPosition生成好一些,第二个参数为动画时间,第三个参数为动画完成或取消监听接口
(CameraPostion创建:CameraPosition LUJIAZUI = new CameraPosition.Builder().target(Constants.SHANGHAI).zoom(18).bearing(0).tilt(30).build();
//target为LatLng位置,zoom为缩放级别,bearing为可视区域指向的方向,以角度为单位,正北方向为0度,tilt为目标可视区域的倾斜度,以角度为单位。)
2,放大缩小地图:还是使用CameraUpdate类

aMap.animateCamera(CameraUpdateFactory.zoomIn(),1000, callback);
aMap.animateCamera(CameraUpdateFactory.zoomOut(),1000, callback);
3,设置点击地图或移动回调监听接口
aMap.setOnMapClickListener(this);// 对amap添加单击地图事件监听器
aMap.setOnMapLongClickListener(this);// 对amap添加长按地图事件监听器
aMap.setOnCameraChangeListener(this);// 对amap添加移动地图事件监听器
4,设置地图模式:
aMap.setMapType(AMap.MAP_TYPE_NORMAL);// 矢量地图模式
5,显示交通状况:
aMap.setTrafficEnabled(false);// 显示实时交通状况
6,设置地图显示的相关属性
mUiSettings = aMap.getUiSettings();
mUiSettings.setLogoPosition(AMapOptions.LOGO_POSITION_BOTTOM_LEFT);// 设置地图logo显示在左下方
mUiSettings.setZoomControlsEnabled(false); //是否显示缩放按钮
mUiSettings.setCompassEnabled(false); //是否显示指南针
mUiSettings.setMyLocationButtonEnabled(true); // 是否显示默认的定位按钮
(一般设置为true时,配套的设置有    
     aMap.setMyLocationEnabled(true);// 是否可触发定位并显示定位层
     aMap.setLocationSource(this);// 设置定位监听
    监听接口
     @Override
     public void activate(OnLocationChangedListener listener) {
         mListener = listener;
         if (mAMapLocationManager == null) {
            mAMapLocationManager = LocationManagerProxy.getInstance(getActivity());
            mAMapLocationManager.setGpsEnable(true);
            mAMapLocationManager.requestLocationUpdates(LocationProviderProxy.AMapNetwork, 5000, 10, this);
        }
    }

    @Override
    public void deactivate() {
        mListener = null;
        if (mAMapLocationManager != null) {
            mAMapLocationManager.removeUpdates(this);
        }
        mAMapLocationManager = null;
    }
)

mUiSettings.setScrollGesturesEnabled(false);//是否允许滑动
mUiSettings.setZoomGesturesEnabled(true);//是否允许缩放手势
mUiSettings.setTiltGesturesEnabled(true);//是否允许倾斜手势
mUiSettings.setRotateGesturesEnabled(true);//是否允许旋转手势
7,  Marker部分:
(1)
aMap.setOnMarkerDragListener(this);// 设置marker可拖拽事件监听器
aMap.setOnMapLoadedListener(this);// 设置amap加载成功事件监听器
aMap.setOnMarkerClickListener(this);// 设置点击marker事件监听器
aMap.setOnInfoWindowClickListener(this);// 设置点击infoWindow事件监听器
aMap.setInfoWindowAdapter(this);// 设置自定义InfoWindow样式,可以在监听接口中返回自己的view

(2)

MarkerOptions markerOptions=new MarkerOptions();
markerOptions.position(someLatlng);
markerOptions.title("someTitle");
markerOptions.snippet("SomeSnippet");
markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.xx);
markerOptions..perspective(true).draggable(true);
Marker aMarker= aMap.addMarker(markerOptions);
//Marker是由aMap的addMarker时返回的,addMarker的参数是MarkerOptions,markerOptions可以设置position是指定位置,title和snippet是infowindow或infocontent中可以用到的title和snippet属性,icon一般是由BitmapDescriptorFactory.fromXXX系列工厂方法或BitmapDescriptorFactory.defaultMarker()方法获得,可以从view生成,但是view中的点击事件应该是不能执行,只能是地图点击事件,perspective是远小近大效果(2.1.0版本新增),draggable是是否可移动

aMarker.showInfoWindow();// 主动显示marker的infowinfow

(3)
aMap.clear();//清除地图上的所有Marker









  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值