高德地图

博客主要围绕高德地图开发展开。介绍了Dom操作,如获取节点、子节点、属性和文本等。详细说明了高德地图注册api的流程,包括在清单文件添加内容、加权限、导入依赖和布局等。还给出了初始化数据和定位功能的代码实现,包含地图对象获取、定位改变处理等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高德地图

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();
}
}
在这里插入图片描述
这就是高德地图喽

INTERESTING!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值