点击查看代码
package com.example.map2;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.BaiduMapOptions;
import com.baidu.mapapi.map.BitmapDescriptor;
import com.baidu.mapapi.map.BitmapDescriptorFactory;
import com.baidu.mapapi.map.MapPoi;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MarkerOptions;
import com.baidu.mapapi.map.OverlayOptions;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.search.core.SearchResult;
import com.baidu.mapapi.search.poi.OnGetPoiSearchResultListener;
import com.baidu.mapapi.search.poi.PoiCitySearchOption;
import com.baidu.mapapi.search.poi.PoiDetailResult;
import com.baidu.mapapi.search.poi.PoiDetailSearchResult;
import com.baidu.mapapi.search.poi.PoiIndoorResult;
import com.baidu.mapapi.search.poi.PoiResult;
import com.baidu.mapapi.search.poi.PoiSearch;
public class nonr extends AppCompatActivity {
private MapView mMapView = null;
private BaiduMap mBaiduMap = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
mMapView.showScaleControl(true);
BaiduMapOptions options = new BaiduMapOptions();
options.mapType(BaiduMap.MAP_TYPE_SATELLITE);
mBaiduMap = mMapView.getMap();
}
@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 onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
}
public void bt_POI_click(View view) {
//118.10292,24.583784 ,集大的经纬度
// 显示到指定位置
LatLng currentLocation = new LatLng(24.543601, 118.120438); //这边输入自己要显示的经纬度,注意纬度在前
MapStatus mMapStatus = new MapStatus.Builder().target(currentLocation).zoom(15).build();//15表示15级
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
mBaiduMap.setMapStatus(mMapStatusUpdate);
//清除地图上的所有覆盖物
mBaiduMap.clear();
PoiSearch mPoiSearch = PoiSearch.newInstance();
OnGetPoiSearchResultListener listener = new OnGetPoiSearchResultListener() {
@Override
public void onGetPoiResult(PoiResult poiResult) {
if (poiResult.error == SearchResult.ERRORNO.NO_ERROR) {
mBaiduMap.clear();
//创建PoiOverlay对象
PoiOverlay poiOverlay = new PoiOverlay(mBaiduMap);
//设置Poi检索数据
poiOverlay.setData(poiResult);
//将poiOverlay添加至地图并缩放至合适级别
poiOverlay.addToMap();
poiOverlay.zoomToSpan();
} else {
Toast.makeText(getApplicationContext(), "没有找到结果", Toast.LENGTH_LONG).show();
}
// Toast.makeText(getApplicationContext(),"Basic Toast message", Toast.LENGTH_SHORT).show();
}
@Override
public void onGetPoiDetailResult(PoiDetailSearchResult poiDetailSearchResult) {
}
@Override
public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {
}
//废弃
@Override
public void onGetPoiDetailResult(PoiDetailResult poiDetailResult) {
}
};
Toast.makeText(getApplicationContext(), "开始查找:", Toast.LENGTH_LONG).show();
mPoiSearch.setOnGetPoiSearchResultListener(listener);
/**
* PoiCiySearchOption 设置检索属性
* city 检索城市
* keyword 检索内容关键字
* pageNum 分页页码
*/
mPoiSearch.searchInCity(new PoiCitySearchOption()
.city("厦门") //必填
.keyword("超市")); //必填
mPoiSearch.destroy();
}//bt_POI_click 事件
public void mapSwitch(View view) {
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
}
// 热力图
public void mapHeat(View view) {
//判断热力图是否开启
if(mBaiduMap.isBaiduHeatMapEnabled()==false){
//开启热力图
mBaiduMap.setBaiduHeatMapEnabled(true);
}else{
//关闭热力图
mBaiduMap.setBaiduHeatMapEnabled(false); ;
}
}
public void mapTraffic(View view) {
//判断交通图是否开启
if(mBaiduMap.isTrafficEnabled()==false){
//开启交通图
mBaiduMap.setTrafficEnabled(true);
}else{
//关闭交通图
mBaiduMap.setTrafficEnabled(false); ;
}
}
public void mapCommon(View view) {
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
}
}
MainActivity.java