(自我学习篇之高德地图)使用与获取marker的点击事件

key值通过  sha1值的提取https://blog.csdn.net/wumeng5211314/article/details/83417722

获取之后下载SDK然后倒入libs用什么导什么我先简单说一个2D的实现与获取marker的点击事件  3d的多了一步

OK就可以使用了   注意权限


<uses-permission android:name="android.permission.INTERNET"></uses-permission>

    <!--允许程序设置内置sd卡的写权限-->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!--允许程序获取网络状态-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <!--允许程序访问WiFi网络信息-->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!--允许程序读写手机状态和身份-->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

 布局

    <com.amap.api.maps2d.MapView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/map"
        ></com.amap.api.maps2d.MapView>

 初始化

        mapView = findViewById(R.id.map);
//必须写的
        mapView.onCreate(savedInstanceState);
//初始化地图控制器对象
 //初始化地图控制器对象
        if (map == null) {
            map = mapView.getMap();
        }

//定位

 //定位
        MyLocationStyle myLocationStyle;
        myLocationStyle = new MyLocationStyle();//初始化定位蓝点样式类
        myLocationStyle.interval(2000); //设置连续定位模式下的定位间隔,只在连续定位模式下生效,单次定位模式下不会生效。单位为毫秒。
        map.setMyLocationStyle(myLocationStyle);//设置定位蓝点的Style
        myLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATE);
        map.getUiSettings().setMyLocationButtonEnabled(true);//设置默认定位按钮是否显示,非必需设置。
        map.setMyLocationEnabled(true);// 设置为true表示启动显示定位蓝点,false表示隐藏定位蓝点并不进行定位,默认是false。

//maker的创建

 //独立的方法
public void wan(String name,double x,double y)
{
    MarkerOptions options = new MarkerOptions();
    options.title(name).position(new LatLng(x,y));
    Marker marker = map.addMarker(options);
    marker.setObject(1);
}

//maker的点击事件

 map.setOnMarkerClickListener(new AMap.OnMarkerClickListener() {
            @Override
            public boolean onMarkerClick(Marker marker) {
                LatLng position = marker.getPosition();
                double x = position.latitude;
                double y = position.longitude;

                Toast.makeText(MainActivity.this, position+"", Toast.LENGTH_SHORT).show();
                Log.i("banjing",x+"");
                Log.i("banjing",y+"");
                //返回false为点击变为中心点  true是不用
                return false;
            }
        });

必须写方法


    /**
     * 方法必须重写
     */
    @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();
    }

猜你喜欢

转载自blog.csdn.net/wumeng5211314/article/details/83417929