Android studio 高德地图开发
gao’de1. 第一步,配置AndroidManifest.xml<!--允许程序打开网络套接字--><uses-permission android:name="android.permission.INTERNET" /><!--允许程序设置内置sd卡的写权限--><uses-permission android:name="android.perm
·
先看官网
链接: 高德官网.
1. 第一步,配置AndroidManifest.xml
<!--允许程序打开网络套接字-->
<uses-permission android:name="android.permission.INTERNET" />
<!--允许程序设置内置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" />
然后,设置高德Key
链接: 官网控制台获取key.
在application标签中加入如下内容:
<meta-data android:name="com.amap.api.v2.apikey" android:value="key">
//开发者申请的key
</meta-data>
2. 第二步,向工程中添加地图开发包
- 使用默认配置,不需要修改build.gradle。在 main 目录下创建文件夹 jniLibs (如果有就不需要创建了),将下载文件的 armeabi 文件夹复制到jniLibs这个目录下,如果已经有这个目录,将下载的 so 库复制 到这个目录即可
2.将jar包放入libs目录下。对于每个jar文件,右键-选择Add As Library,导入到工程中。或者使用菜单栏 选择 File ->Project Structure->Modules-> Dependencies。点击绿色的加号选择File dependency. 然后选择要添加的jar包即可
3. 第三步,初始化地图容器
- xml
<com.amap.api.maps.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
- Java
public class MainActivity extends Activity {
private MapView mMapView = null;
//初始化地图控制器对象
AMap aMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.map);
button = (Button) findViewById(R.id.button);
//在activity执行onCreate时执行mMapView.onCreate(savedInstanceState),创建地图
mMapView.onCreate(savedInstanceState);
if (aMap == null) {
aMap = mMapView.getMap();
}
//获取地图
initmap();
}
private void initmap() {
//加一个,再次执行
AMapLocationClient.setApiKey("你的key值")
LatLng latLng = new LatLng(27.987247,119.804769);//经纬度
aMap.getUiSettings().setLogoBottomMargin(-50);//logo移出可视界面
aMap.getUiSettings().setZoomGesturesEnabled(false);//禁用双击地图可以使缩放级别增加1 (放大)
aMap.getUiSettings().setZoomControlsEnabled(false);//禁用加减号控制缩放 管理缩放控件 + -
aMap.getUiSettings().setRotateGesturesEnabled(false);//禁用旋转手势
aMap.getUiSettings().setTiltGesturesEnabled(false);//禁用倾斜手势
aMap.moveCamera(CameraUpdateFactory.changeLatLng(latLng)); //设置中心点
aMap.moveCamera(CameraUpdateFactory.zoomTo(15f)); //设置缩放比例 f
//设置自定义地图样式
aMap.setCustomMapStyle(
new CustomMapStyleOptions()
.setEnable(true)
.setStyleData(GetAssetsStyle.getInstance().getAssetsStyle(MainActivity.this,"style.data"))
.setStyleExtraData(GetAssetsStyle.getInstance().getAssetsStyle(MainActivity.this,"style_extra.data"))
);
//绘制默认 Marker -- Marker 常用属性、 position 在地图上标记位置的经纬度值。必填参数、title 点标记的标题e、snippet 点标记的内容
// draggable 点标记是否可拖拽、 visible 点标记是否可见、anch 点标记的锚点、alpha 点的透明度
final Marker marker = aMap.addMarker(new MarkerOptions()
.position(latLng)//在地图上标记位置的经纬度值
.title("预警")//点标记的标题
.snippet("嘀嘀嘀"));//点标记的内容
marker.showInfoWindow();//显示自定义marker
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),销毁地图
mMapView.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView.onResume (),重新绘制加载地图
mMapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView.onPause (),暂停地图的绘制
mMapView.onPause();
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//在activity执行onSaveInstanceState时执行mMapView.onSaveInstanceState (outState),保存地图当前的状态
mMapView.onSaveInstanceState(outState);
}
}
4.自定义地图
- 下载离线 style.data style_extra.data
- 放在静态文件assets中
aMap.setCustomMapStyle(
new CustomMapStyleOptions()
.setEnable(true)
.setStyleData(GetAssetsStyle.getInstance().getAssetsStyle(MainActivity.this,"style.data"))
.setStyleExtraData(GetAssetsStyle.getInstance().getAssetsStyle(MainActivity.this,"style_extra.data"))
);
更多推荐
所有评论(0)