扣丁学堂笔记第25天百度地图
来源:互联网 发布:sql与mysql 编辑:程序博客网 时间:2024/04/27 15:50
1.密钥申请与环境配置
申请密钥与环境配置详见官网
2.Hello Baidu Map!
详见官网
3.基础地图
4.检索功能
MainActivity
package com.example.baidumaptest;import java.util.List;import com.baidu.mapapi.SDKInitializer;import com.baidu.mapapi.map.BaiduMap;import com.baidu.mapapi.map.BitmapDescriptor;import com.baidu.mapapi.map.BitmapDescriptorFactory;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.PoiInfo;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.PoiResult;import com.baidu.mapapi.search.poi.PoiSearch;import android.app.Activity;import android.os.Bundle;import android.view.View;public class MainActivity extends Activity {private MapView mMapView;private BaiduMap baiduMap;private PoiSearch poiSearch;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 在使用SDK各组件之前初始化context信息,传入ApplicationContext// 注意该方法要再setContentView方法之前实现SDKInitializer.initialize(getApplicationContext());setContentView(R.layout.activity_main);mMapView = (MapView) findViewById(R.id.bmapView);baiduMap = mMapView.getMap();// baiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);//卫星图// 定义Maker坐标点LatLng point = new LatLng(39.963175, 116.400244);// 构建Marker图标BitmapDescriptor bitmap = BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher);// 构建MarkerOption,用于在地图上添加MarkerOverlayOptions option = new MarkerOptions().position(point).icon(bitmap);// 在地图上添加Marker,并显示baiduMap.addOverlay(option);//1.实例化POI检索poiSearch = PoiSearch.newInstance();//2.创建POI检索监听者; OnGetPoiSearchResultListener poiListener = new OnGetPoiSearchResultListener(){ public void onGetPoiResult(PoiResult result){ //获取POI检索结果 List<PoiInfo> poiInfos = result.getAllPoi(); for (PoiInfo poiInfo : poiInfos) {System.out.println(poiInfo.address+"---"+poiInfo.city+"---"+poiInfo.phoneNum);} } public void onGetPoiDetailResult(PoiDetailResult result){ //获取Place详情页检索结果 } };//3.设置POI检索监听者poiSearch.setOnGetPoiSearchResultListener(poiListener);}public void poiClick(View view){//4.发起检索请求,异步过程poiSearch.searchInCity((new PoiCitySearchOption()) .city("北京") .keyword("美食") .pageNum(10));}@Overrideprotected void onDestroy() {super.onDestroy();// 在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理mMapView.onDestroy();//5.释放POI检索请求poiSearch.destroy();}@Overrideprotected void onResume() {super.onResume();// 在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理mMapView.onResume();}@Overrideprotected void onPause() {super.onPause();// 在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理mMapView.onPause();}}
activity_main
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.baidumaptest.MainActivity" > <Button android:id="@+id/btn_poi" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="POI检索" android:onClick="poiClick"/> <com.baidu.mapapi.map.MapView android:id="@+id/bmapView" android:layout_width="fill_parent" android:layout_height="fill_parent" android:clickable="true" android:layout_below="@+id/btn_poi"/> </RelativeLayout>
AndroidManifest
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" />在<application></application>中添加如下标签
<meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="**************************" />
5.显示检索结果与定位
在foreach循环中添加三行代码即可显示检索结果
BitmapDescriptor bd = BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher);// 构建MarkerOption,用于在地图上添加MarkerOverlayOptions option = new MarkerOptions().position(poiInfo.location).icon(bd);// 在地图上添加Marker,并显示baiduMap.addOverlay(option);
6.定位显示我的位置
定位部分详见:http://blog.csdn.net/dt235201314/article/details/50680219
7.实时跟踪导航案例
略
0 0
- 扣丁学堂笔记第25天百度地图
- 扣丁学堂——百度地图
- 扣丁学堂笔记第02天UI布局
- 扣丁学堂笔记第08天Activity组件
- 扣丁学堂笔记第09天Intent
- 扣丁学堂笔记第10天Service组件
- 扣丁学堂笔记第12天Fragments
- 扣丁学堂笔记第14天Handler与多线程
- 扣丁学堂笔记第16天SQLite数据库
- 扣丁学堂笔记第18天HttpURLConnection与HttpClient
- 扣丁学堂笔记第20天动画与图形
- 扣丁学堂笔记第21天Bitmaps与优化
- 扣丁学堂笔记第22天多媒体播放
- 扣丁学堂笔记第24天性能最佳实战
- 扣丁学堂笔记第01天Android开发环境搭建
- 扣丁学堂笔记第03天基础UI组件(一)
- 扣丁学堂笔记第04天基础UI组件(二)
- 扣丁学堂笔记第05天高级UI组件(一)
- Spark的日志配置
- XFire入门示例
- spring 注解
- C语言—局部变量同名初始化问题
- Cocos2d-x 场景中的生命周期函数?
- 扣丁学堂笔记第25天百度地图
- UIColor *_color[5] UIColor数组
- 关于ARC中block的用法 及weak self等(持续更新)
- node使用buffer生成图片
- Rxjava学习笔记
- mysql数据库插入中文乱码或问号--解决历程
- Canvas绘制2D图像API列表
- NSDateFormatter 和 NSDateComponents 的用法
- LR有的JMeter也有之一“参数化”