怎样实现地图的poi搜索功能的气泡和定位的气泡一同显示在上
2021-09-23 17:49
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
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