高德地图
Dom简析
document.getElementsByTagName(“book”);//获取文件中所有节点名为book的内容,并打算将这些内容存入到nodeList中
getChildNodes()获得当前节点的所有子节点
get
Attributes()获取当前节点所有的属性和值
getTextContent()获得当前节点的文本
getNodeName() 获得当前节点的名称
高德地图
https://lbs.amap.com/ 注册
这里真是进行了一大坨操作,最后注册下来了一个api,在清单文件中要写几个这东西
<meta-data android:name="com.amap.api.v2.apikey"
android:value="939002dc818b4be4d10a9b6af6c70d9c">
然后加权限
<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" />
导入依赖
implementation ‘com.amap.api:location:4.2.0’
implementation’com.amap.api:map2d:5.2.0’
布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.amap.api.maps2d.MapView
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"></com.amap.api.maps2d.MapView>
</LinearLayout>
初始化数据
public class MainActivity extends AppCompatActivity implements AMapLocationListener {
private MapView mapView;
private AMap aMap;
private AMapLocationClient client;//负责定位
private AMapLocationClientOption clientOption;
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
client.stopLocation();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mapView= findViewById(R.id.map);
mapView.onCreate(savedInstanceState);//必须要写
initMap();
}
private void initMap() {
aMap=mapView.getMap();//获得地图对象
aMap.setMapType(AMap.MAP_TYPE_SATELLITE);//地图切换(普通,卫星)
client = new AMapLocationClient(this);
client.setLocationListener(this);//给定位加监听
clientOption = new AMapLocationClientOption();
clientOption.setInterval(1000);//每隔1000去定位一次
clientOption.setNeedAddress(true);//是否显示地址
clientOption.setMockEnable(true);//是否显示模拟定位
clientOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy);//高精度地位
client.setLocationOption(clientOption);
client.startLocation();//启动定位
// client.stopLocation();//关闭定位
handler.sendEmptyMessageDelayed(0,5000);//延长发送
}
/**
-
定位发生改变。要获得当前的位置
-
@param aMapLocation
*/
@Override
public void onLocationChanged(AMapLocation aMapLocation) {
if (aMapLocation.getErrorCode()==0) {
double lat = aMapLocation.getLatitude();//纬度
double lon = aMapLocation.getLongitude();//经度
LatLng latLng = new LatLng(lat, lon);//坐标对象
aMap.clear();
MarkerOptions options = new MarkerOptions();//小红点,定位标记
options.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
options.position(latLng);//图标要显示的位置
options.draggable(true);aMap.addMarker(options);//给地图添加标记 CameraUpdate update = CameraUpdateFactory.changeLatLng(latLng);//更新定位区域 aMap.moveCamera(update);//显示到定位区域
}else{
//定位失败}
}
@Override//界面没有交点但可见
protected void onDestroy() {
super.onDestroy();
mapView.onDestroy();
}
@Override//界面
protected void onResume() {
super.onResume();
mapView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mapView.onPause();
}
}
这就是高德地图喽