主函数代码

点击查看代码
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
posted @ 2021-12-22 19:09  Timor88  阅读(75)  评论(0)    收藏  举报