24小时免费服务热线:15320418221

怎样实现地图的poi搜索功能的气泡和定位的气泡一同显示在上

2021-09-23 17:49

十一

十一

程序清单:布局文件res/layout/main。xml                               复制代码布局文件基本上都这么个格式,这里可以加入一些其他的功能。  2)继承了com。baidu。map。MapActivity的Activity类package com。  search。map;import 。location。  Location;import 。os。Bundle;import com。baidu。map。BMapManager;import com。baidu。map。GeoPoint;import com。    baidu。map。LocationListener;import com。baidu。map。MKAddrInfo;import com。baidu。map。  MKDrivingRouteResult;import com。baidu。map。  MKPoiResult;import com。baidu。map。MKSearch;import com。  baidu。map。MKSearchListener;import com。baidu。map。MKTransitRouteResult;import com。  baidu。  map。MKWalkingRouteResult;import com。baidu。map。MapActivity;import com。baidu。map。MapController;import com。  baidu。map。  MapView;import com。baidu。map。MyLocationOverlay;import com。baidu。map。  PoiOverlay;public class PoiSearchActivity extends MapActivity {        // 定义地图引擎管理类        private BMapManager mapManager;// 定义搜索服务类        private MKSearch mMKSearch;        private MapView mapView;        private MapController mapController;        LocationListener mLocationListener = null;// onResume时注册此listener,onPause时需要Remove        MyLocationOverlay mLocationOverlay = null; // 标注图层        @Override        public void onCreate(Bundle savedInstanceState) {                super。    onCreate(savedInstanceState);                setContentView(R。layout。main);                // 初始化MapActivity                mapManager = new BMapManager(getApplication());                // init方法的第一个参数需填入申请的APIKey                mapManager。    init("285B415EBAB2A92293E85502150ADA7F0777C4", null);                super。initMapActivity(mapManager);                mapView = (MapView) findViewById(R。    id。map_View);                // 设置地图模式为交通地图                mapView。setTraffic(true);                // 设置启用内置的缩放控件                mapView。    setBuiltInZoomControls(true);                // 设置在缩放动画过程中也显示overlay,默认为不绘制                mapView。  setDrawOverlayWhenZooming(true);                // 添加标注图层                mLocationOverlay = new MyLocationOverlay(this, mapView);                mapView。    getOverlays()。add(mLocationOverlay);                // 注册标注                mLocationListener = new LocationListener() {                        @Override                        public void onLocationChanged(Location location) {                                if (location != null) {                                        GeoPoint geoPoint = new GeoPoint((int) (location。    getLatitude() * 1e6),                                                        (int) (location。  getLongitude() * 1e6));                                        mapView。  getController()。  animateTo(geoPoint);                                        mapController = mapView。getController();                                        // 设置地图的中心                                        mapController。    setCenter(geoPoint);                                        // 设置地图默认的缩放级别                                        mapController。  setZoom(16);                                        // 初始化                                        MKSearch mMKSearch = new MKSearch();                                        mMKSearch。    init(mapManager, new MySearchListener());                                        // 搜索贵州大学校门口附近500米范围的自动取款机                                        mMKSearch。    SearchNearBy("ATM", geoPoint, 500);                                }                        }                };        }        @Override        protected boolean isRouteDisplayed() {                return false;        }        @Override        protected void onDestroy() {                if (mapManager != null) {                        // 程序退出前需调用此方法                        mapManager。    destroy();                        mapManager = null;                }                super。  onDestroy();        }        @Override        protected void onPause() {                if (mapManager != null) {                        // 终止地图API                        mapManager。    getLocationManager()。removeUpdates(mLocationListener);                        mLocationOverlay。  disableMyLocation();                mLocationOverlay。  disableCompass(); // 关闭指南针                        mapManager。  stop();                }                super。onPause();        }        @Override        protected void onResume() {                if (mapManager != null) {                        // 开启地图API                        // 注册标注,标注后将地图移动到标注点                        mapManager。    getLocationManager()。requestLocationUpdates(mLocationListener);                        mLocationOverlay。  enableMyLocation();                        mLocationOverlay。  enableCompass(); // 打开指南针                        mapManager。  start();                }                super。onResume();        }        /**         * * 实现MKSearchListener接口,用于实现异步搜索服务 * @author liufeng         */        public class MySearchListener implements MKSearchListener {                /** * 根据经纬度搜索地址信息结果 * * @param result 搜索结果 * @param iError 错误号 (0表示正确返回) */                @Override                public void onGetAddrResult(MKAddrInfo result, int iError) {                }                /** * 驾车路线搜索结果 * * @param result 搜索结果 * @param iError 错误号 */                @Override                public void onGetDrivingRouteResult(MKDrivingRouteResult result, int iError) {                }                /**                 * * POI搜索结果(范围检索、城市POI检索、周边检索) * * @param result 搜索结果 * @param type                 * 返回结果类型(11,12,21:列表 7:城市列表) * @param iError 错误号(0表示正确返回)                 */                @Override                public void onGetPoiResult(MKPoiResult result, int type, int iError) {                        if (result == null) {                                return;                        }                        // PoiOverlay是baidu map 提供的用于显示POI的Overlay                        PoiOverlay overlay = new PoiOverlay(PoiSearchActivity。    this, mapView);                        // 设置搜索到的POI数据                        overlay。  setData(result。getAllPoi());                        // 在地图上显示PoiOverlay(将搜索到的兴趣点标注在地图上)                        mapView。    getOverlays()。    add(overlay);                }                /** * 公交换乘路线搜索结果 * * @param result 搜索结果 * @param iError 错误号(0表示正确返回) */                @Override                public void onGetTransitRouteResult(MKTransitRouteResult result, int iError) {                }                /** * 步行路线搜索结果 * * @param result 搜索结果 * @param iError 错误号(0表示正确返回) */                @Override                public void onGetWalkingRouteResult(MKWalkingRouteResult result, int iError) {                }        }}复制代码。

2021-09-23 19:27:08

相关地图标注文章

相关地图标注热门问答

岁岁年年

地图 点击标注出现的气泡能不能自定义

可以,在代理方法中1234567/** *根据anntation生成对应的View *@param mapView 地图View *@param annotation 指定的标注 *@return 生成的标注View */- (BMKAnnotationView *)mapVie...

2021-09-23 17:19:42

天王盖地虎

地图标注中显示的标记为什么有红色气泡并有英文,有的是黄色五角星,有的是小的黄色气泡但是没有

您好:我们现在提供的商户名称是在地图上生效后是用小起泡显示在您标注的地址,不是标注在地图上。地图底图上的标注物为以第三方形式”抓取“和页面”收录“其他网站信息。

2021-09-23 17:20:35

粹碾婶猪弛乘乡

地图如何移除气泡

都是可以的,你可以把气泡作为一个对象,里面有一个属性是表示状态的,这样的话,你就知道状态了。

2021-09-23 17:35:39

Clarence

怎样实现地图的搜索功能的气泡和定位的气泡一同显示在上

程序清单:布局文件res/layout/main。xml                               复制代码布局文件基本上都这么个格式,这里可以加入一些其他的功能。  2)继承了com。baidu。map。MapActivity的Activity类pack...

2021-09-23 17:49:23

欲效庄周

地图怎么从气泡标注变成地图直接显示呢?

气泡标注是临时展示的,下次展示就没有了,想变成地图直接显示的话,需要进行商户标注,标注成功后就可以直接在地图显示了。地图商户免费标注的方法:1、打开地图首页,如果没有帐号的,可以去注册一个帐号,并完善信息,然后点击右上角的"商户免费标注"。2、可以看到有两个提...

2021-10-17 14:35:26

豆油

地图商户标注后,能搜索到气泡,但是地图没有直接显示

你附近的指路人地图标注服务中心是标注在地图底图上的 不需要搜索就可以看到你在地图上的标注(气泡)并不是标注到底图上找网络公司问下现在还能不能标注上去

2021-10-17 15:40:24

烟味短裙

请问手机加载自己的地图,并实现定位这个功能实现了吗

还没有呢!再过几年吧

2022-02-11 17:25:02