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();
}