Android 高德地图选点以及POI搜索

在Android应用中集成地图功能是很常见的需求,而高德地图作为国内领先的地图服务提供商,为开发者提供了丰富的API接口,可以轻松实现地图相关功能,如选点以及POI搜索。

高德地图选点功能实现

要在Android应用中实现地图选点功能,首先需要引入高德地图SDK,然后在地图上添加点击事件,获取用户选点的经纬度信息。以下是一个简单的示例代码:

// 在Activity中初始化地图
MapView mapView = findViewById(R.id.map_view);
mapView.onCreate(savedInstanceState);
AmapLocationClient locationClient = new AmapLocationClient(getContext());
locationClient.setLocationListener(location -> {
    LatLng point = new LatLng(location.getLatitude(), location.getLongitude());
    // 在地图上添加标记
    MarkerOptions markerOptions = new MarkerOptions();
    markerOptions.position(point);
    Marker marker = aMap.addMarker(markerOptions);
    // 点击标记显示信息窗口
    marker.showInfoWindow();
});
// 设置地图点击事件监听
aMap.setOnMapClickListener(latLng -> {
    // 点击地图时添加标记
    MarkerOptions markerOptions = new MarkerOptions();
    markerOptions.position(latLng);
    aMap.addMarker(markerOptions);
});

以上代码中,首先初始化地图并添加定位监听器,然后设置地图点击事件监听,在地图上点击时会在点击位置添加一个标记。

高德地图POI搜索功能实现

除了选点功能外,还可以利用高德地图的POI搜索功能,实现根据关键词搜索周边POI信息的功能。以下是一个简单的POI搜索示例代码:

// 在Activity中初始化地图
MapView mapView = findViewById(R.id.map_view);
mapView.onCreate(savedInstanceState);
// 创建POI搜索对象
PoiSearch.Query query = new PoiSearch.Query("餐厅", "", "北京");
PoiSearch poiSearch = new PoiSearch(getContext(), query);
poiSearch.setOnPoiSearchListener(new PoiSearch.OnPoiSearchListener() {
    @Override
    public void onPoiSearched(PoiResult poiResult, int i) {
        // 处理搜索结果
        List<PoiItem> poiItems = poiResult.getPois();
        for (PoiItem poiItem : poiItems) {
            // 在地图上添加POI标记
            MarkerOptions markerOptions = new MarkerOptions();
            markerOptions.position(new LatLng(poiItem.getLatLonPoint().getLatitude(), poiItem.getLatLonPoint().getLongitude()));
            aMap.addMarker(markerOptions);
        }
    }

    @Override
    public void onPoiItemSearched(PoiItem poiItem, int i) {
    }
});
poiSearch.searchPOIAsyn();

以上代码中,首先创建一个POI搜索对象,设置搜索关键词、城市等信息,然后设置POI搜索监听器,在搜索结果返回时处理结果并在地图上添加POI标记。

结语

通过以上示例代码,我们可以实现在Android应用中集成高德地图的选点以及POI搜索功能。开发者可以根据自己的需求进一步扩展和优化这些功能,为用户提供更好的地图体验。

希望本文对您有所帮助,谢谢阅读!