PoiOverlay 的点击优衣库事件怎么处理的

PoiOverlay
com.mapabc.mapapi
类 PoiOverlay
java.lang.Object
com.mapabc.mapapi.PoiOverlay
所有已实现的接口:
public class PoiOverlayextends &&
该类继承自ItemizedOverlay,提供了在地图上标识搜索结果的方法,在效果上定义了一个POI图层。当用户点击PoiOverlay在地图上显示的“气泡”时,将弹出一个信息窗口,显示此POI的详情。在地图上,每个PoiOverlay只会显示一个信息窗口,即当气泡点击发生时,会自动关闭已有信息窗口,再打开新的窗口。
用于接收item焦点变化的监听器。
Overlay的接口定义,这个overlay包含的项目可被对齐(例如,当用户触发一个缩放时,这函数可被调用允许用户把缩放框和一个兴趣点对齐)。
(Drawable&pic,
java.util.List&&&items)
&&&&&&&&根据给定的参数来构造一个PoiOverlay的新对象。&&&
(Drawable&pic,
java.util.List&&&items,
java.lang.String&catagory)
&&&&&&&&根据给定的参数来构造一个PoiOverlay的新对象。&&&
&&&将PoiOverlay加入到地图中。&&&&&&&&
&&&如果有已经打开的信息窗口,则关闭。&&&&&&&&
protected &
&&&子类创建实体item的方法。&&&&&&&
(boolean&enable)
&&&打开/关闭信息窗口功能。&&&&&&&&
protected &
&&&返回信息窗口的显示位置。&&&&&&&&
protected &
(int&index)
&&&根据给定的索引返回信息窗口的显示位置。&&&&&&&&
protected &Drawable
&&&返回信息窗口的背景图片。&&&&&&&&
protected &Drawable
&&&返回信息窗口显示的POI的图片。&&&&&&&&
protected &View
&&&返回信息窗口的显示内容。&&&&&&&&
protected &boolean
(int&index)
&&&覆盖这个方法去处理一个item上的一个“点击”。&&&&&&&&
&&&将PoiOverlay从地图中移除。&&&&&&&&
(int&index)
&&&打开Overlay的信息窗口。&&&&&&&&
&&&这个overlay中的item总数。
, , , , , , , , , , , , , , , , , , , , ,
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
PoiOverlay
public PoiOverlay(Drawable&pic,
java.util.List&&&items)
根据给定的参数来构造一个PoiOverlay的新对象。
pic - 此Overlay的图标
items- POI列表
PoiOverlay
public PoiOverlay(Drawable&pic,
java.util.List&&&items,
java.lang.String&catagory)
根据给定的参数来构造一个PoiOverlay的新对象。
pic - 此Overlay的图标,如果pic为空,则使用缺省图标。
items- POI列表,在items中的POI,如果属于该类型组合,则加入标注,否则摒弃。
catagory- 类型组合
closePopupWindow
public void closePopupWindow()
如果有已经打开的信息窗口,则关闭。
createItem
createItem(int&i)
复制的描述
子类创建实体item的方法。
类 && 中的
i - POI的索引。
创建的实体item。
public int size()
复制的描述
这个overlay中的item总数。
类 && 中的 。
overlay中的item总数
public void addToMap(&mv)
将PoiOverlay加入到地图中。
mv - 已加入此Overlay的MapView。
removeFromMap
public boolean removeFromMap()
将PoiOverlay从地图中移除。
一个布尔值,表示移除是否成功,true表示成功,false表示失败。
getPopupMarker
protected Drawable getPopupMarker(&item)
返回信息窗口显示的该POI的图片。
若参数缺省实现上将先选取该POI的marker
(OverlayItem.getMarker),如果该POI没有设置marker,则取参数PoiItem的缺省图标。
信息窗口显示的该POI的图片。
enablePopup
public void enablePopup(boolean&enable)
打开/关闭信息窗口功能。
enable - 一个布尔值,表示打开还是关闭信息窗口功能,
true表示打开信息窗口功能(缺省为打开),false表示关闭信息窗口功能,此时再点击气泡,不会弹出信息窗口。
showPopupWindow
public boolean showPopupWindow(int&index)
打开Overlay的信息窗口。
如果信息窗口为enable状态,将打开信息窗口并返回true;否则,不做任何事情,同时,返回false。
index- 需要打开的PoiItem的索引
一个布尔值,表示打开是否成功,true表示成功,false表示失败。
protected boolean onTap(int&index)
覆盖这个方法去处理一个item上的一个“点击”。
index - POI的索引。
类 && 中的
getPopupBackground
protected Drawable getPopupBackground()
返回信息窗口的背景图片。
一般为9-patch-png格式。如果未重载此方法或返回值为空,则使用缺省的背景。
信息窗口的背景图片。
getLayoutParam
getLayoutParam(int&index)
返回信息窗口的显示位置。
如果未重载此方法或返回值为空,则使用缺省的显示位置。如果定制了信息窗口的背景图片,则一般需重载此函数。
index- 需要打开的PoiItem的索引
信息窗口的显示位置。
getLayoutParam
getLayoutParam()
返回信息窗口的显示位置。
如果未重载此方法或返回值为空,则使用缺省的显示位置。如果定制了信息窗口的背景图片,则一般需重载此方法。
信息窗口的显示位置。
getPopupView
protected View getPopupView(&item)
返回信息窗口的显示内容。可重载此接口,以定制PoiItem的显示内容。参数为此时被激活(点击)的PoiItem。
item- 此时被激活(点击)的PoiItem。
信息窗口的显示内容。map Overlay 点击事件
[问题点数:40分,无满意结帖,结帖人liang0356]
map Overlay 点击事件
[问题点数:40分,无满意结帖,结帖人liang0356]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。7038人阅读
Android 百度地图 简单实现--- &美食
添加 Android 百度依赖包:
&&!-- & & & &开发者 key --&
&meta-data
android:name=&com.baidu.lbsapi.API_KEY&
android:value=& 申请的Key& /&
&!-- baimap 权限 --&
&uses-permission android:name=&android.permission.GET_ACCOUNTS& /&
&uses-permission android:name=&android.permission.USE_CREDENTIALS& /&
&uses-permission android:name=&android.permission.MANAGE_ACCOUNTS& /&
&uses-permission android:name=&android.permission.AUTHENTICATE_ACCOUNTS& /&
&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.CHANGE_WIFI_STATE& /&
&uses-permission android:name=&android.permission.ACCESS_WIFI_STATE& /&
&uses-permission android:name=&android.permission.READ_PHONE_STATE& /&
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE& /&
&uses-permission android:name=&android.permission.BROADCAST_STICKY& /&
&uses-permission android:name=&android.permission.WRITE_SETTINGS& /&
&uses-permission android:name=&android.permission.READ_PHONE_STATE& /&
package com.example.
import java.util.L
import android.app.A
import android.graphics.C
import android.os.B
import android.util.L
import android.view.M
import android.webkit.WebS
import android.webkit.WebV
import android.webkit.WebViewC
import android.widget.B
import android.widget.T
import com.baidu.mapapi.SDKI
import com.baidu.mapapi.map.BaiduM
import com.baidu.mapapi.map.BaiduMap.OnMarkerClickL
import com.baidu.mapapi.map.BitmapD
import com.baidu.mapapi.map.BitmapDescriptorF
import com.baidu.W
import com.baidu.Window.OnInfoWindowClickL
import com.baidu.mapapi.map.MapV
import com.baidu.mapapi.map.M
import com.baidu.mapapi.map.MarkerO
import com.baidu.mapapi.map.OverlayO
import com.baidu.mapapi.model.LatL
import com.baidu.mapapi.overlayutil.PoiO
import com.baidu.mapapi.search.core.PoiI
import com.baidu.mapapi.search.poi.OnGetPoiSearchResultL
import com.baidu.mapapi.search.poi.PoiCitySearchO
import com.baidu.mapapi.search.poi.PoiDetailR
import com.baidu.mapapi.search.poi.PoiDetailSearchO
import com.baidu.mapapi.search.poi.PoiR
import com.baidu.mapapi.search.poi.PoiS
public class MainActivity extends Activity {
// MapView
private MapView mapV
// 百度地图
MapView.getMap();
private BaiduMap baiduM
private PoiSearch poiS
webView 显示详情
private WebView webV
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
去掉标题的显示(就是app 最顶上的显示内容!)
requestWindowFeature(1);
// 在使用SDK各组件之前初始化context信息,传入ApplicationContext
// 注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
// 获取 MapView
mapView = (MapView) this.findViewById(R.id.map);
webView = (WebView) this.findViewById(R.id.webview);
poiSearch 对象!
poiSearch = PoiSearch.newInstance();
// 获取地图视图:
baiduMap = mapView.getMap();
baiduMap.setTrafficEnabled(true);
baiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
baiduMap.setMaxAndMinZoomLevel(15, 19);
// 1 创建当前位置的标志
setOnePointToMap();
// 2 设置为 点击事件:
setPointListener();
// 3 获取 兴趣点: 搜索服务!
getPoiResourse();
//TODO 1 创建当前位置的标志
private void setOnePointToMap() {
// 2 描述其
BitmapDescriptor descriptor = BitmapDescriptorFactory
.fromResource(R.drawable.ic_launcher);
// 3 位置 纬经度
// 116..916097
LatLng latLng = new LatLng(39.6.396364);
// 1 覆盖一层 透视的 图层!
OverlayOptions overlayOptions = new MarkerOptions().title(&北京站&)
.icon(descriptor).position(latLng);
// 向地图添加一个 Overlay
baiduMap.addOverlay(overlayOptions);
2 设置 当前位置的
弹出视图!
private void setPointListener() {
baiduMap 的 覆盖物 被点击! 触发该 事件。
baiduMap.setOnMarkerClickListener(new OnMarkerClickListener() {
public boolean onMarkerClick(Marker marker) {
// TODO 开启检索:
实在 点击之后触发的事件。
所搜方式: 城市内搜索!
poiSearch.searchInCity(new PoiCitySearchOption().keyword(&美食&)
.city(&北京&).pageNum(0).pageCapacity(10));
Button btn = new Button(getApplicationContext());
btn.setBackgroundColor(Color.RED);
btn.setText(marker.getTitle());
// btn 变成 View 图片
BitmapDescriptor descriptor = BitmapDescriptorFactory
.fromView(btn);
* 弹窗的点击事件:
- InfoWindow 展示的bitmap position
- InfoWindow 显示的地理位置
- InfoWindow Y 轴偏移量 listener
- InfoWindow 点击监听者
InfoWindow 点击的时候 消失。
InfoWindow infoWindow = new InfoWindow(descriptor, marker
.getPosition(), -60, new OnInfoWindowClickListener() {
public void onInfoWindowClick() {
// TODO Auto-generated method stub
// 当用户点击 弹窗 触发:
// 开启 POI 检索、 开启 路径规矩, 跳转界面!
// 1 隐藏 弹窗!
baiduMap.hideInfoWindow();
// 2 show infoWindow
baiduMap.showInfoWindow(infoWindow);
// 3 获取 兴趣点:
点击 本地的 图标的时候 开始 所搜数据。
TODO 1 把兴趣点 显示在地图上
*  TODO 2 点击一个兴趣点 弹窗显示 该点的名字!
private void getPoiResourse() {
设置poi检索监听者
poiSearch.setOnGetPoiSearchResultListener(
new OnGetPoiSearchResultListener() {
public void onGetPoiResult(PoiResult arg0) {
// TODO 获取到 兴趣结果数据时 触发
// bind to baidumap
// PoiOverlay poiOverlay = new PoiOverlay(baiduMap);
//显示所有的兴趣点结果:
MyPoiOvrely poiOverlay = new MyPoiOvrely(baiduMap);
//MyPoiOvrely 实现了 new OnMarkerClickListener() 所以点击覆盖物的时候 会触发事件!
baiduMap.setOnMarkerClickListener(poiOverlay);
poiOverlay.setData(arg0);
poiOverlay.addToMap();
// 价格地图缩放至 可以显示 全部情趣店的级别!
poiOverlay.zoomToSpan();
public void onGetPoiDetailResult(PoiDetailResult arg0) {
// TODO 但获取 兴趣
详情时 触发
String url = arg0.getDetailUrl();
设置 webView 显示的客户端!
webView.getSettings().setJavaScriptEnabled(true);
webView.setScrollBarStyle(0);
WebSettings webSettings = webView.getSettings();
webSettings.setAllowFileAccess(true);
webSettings.setBuiltInZoomControls(true);
webView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(
WebView view, String url) {
// TODO Auto-generated method stub
//加载数据
webView.loadUrl(url);
// 自定义 PoiOverlay:
class MyPoiOvrely extends PoiOverlay {
public MyPoiOvrely(BaiduMap arg0) {
super(arg0);
// TODO Auto-generated constructor stub
1 需要 点击事件:兴趣点的位置 索引!
public boolean onPoiClick(int index) {
// TODO Auto-generated method stub
获取当前 覆盖层的Poi结果对象PoiResult.
PoiResult result =
getPoiResult();
在获取 PoiResult 中的List《poiInfo》 集合数据!
List&PoiInfo& lists =result.getAllPoi();
根据索引 获取 集合中的 数据信息! 兴趣点对象数据对象。
final PoiInfo info = lists.get(index);
弹出弹窗 弹窗中 内容: poiinfo name!
baiduMap.setOnMarkerClickListener(new OnMarkerClickListener() {
public boolean onMarkerClick(Marker marker) {
// TODO Auto-generated method stub
点击获取 显示详细信息!
getPoiInfo(info);
* 点击获取 显示详细信息!
* @param info
* @param marker
private void getPoiInfo(final PoiInfo info) {
// 设置弹窗 (View arg0, LatLng arg1, int arg2) y 偏移量 ,
Button btn = new Button(getApplicationContext());
btn.setBackgroundColor(Color.GREEN);
btn.setText(info.name);
// btn 变成 View 图片
BitmapDescriptor descriptor = BitmapDescriptorFactory
.fromView(btn);
* 弹窗的点击事件:
* bd - InfoWindow 展示的bitmap position - InfoWindow 显示的地理位置
* yOffset - InfoWindow Y 轴偏移量 listener - InfoWindow 点击监听者
InfoWindow infoWindow = new InfoWindow(
descriptor,
info.location,
new OnInfoWindowClickListener() {
public void onInfoWindowClick() {
//TODO 当用户点击 弹窗 触发:
// 开启 POI 检索、 开启 路径规矩, 跳转界面!
// 在弹窗监听器中
二次检索兴趣点的详情!
开始搜索:
poiSearch.searchPoiDetail(
new PoiDetailSearchOption().poiUid(info.uid));
// 1 隐藏 弹窗!
baiduMap.hideInfoWindow();
// 2 show infoWindow
baiduMap.showInfoWindow(infoWindow);
return super.onPoiClick(index);
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
mapView.onResume();
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mapView.onPause();
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mapView.onDestroy();
public boolean onCreateOptionsMenu(Menu menu) {
// I this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
版权声明:本文为博主原创文章,未经博主允许不得转载。
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:301629次
积分:3954
积分:3954
排名:第4027名
原创:140篇
转载:52篇
评论:86条
(1)(2)(4)(7)(16)(4)(5)(5)(12)(27)(5)(2)(34)(8)(9)(9)(3)(6)(3)(4)(3)(9)(6)(2)(6)百度地图遇到的问题 - 推酷
百度地图遇到的问题
* 在地头上设置Marker标记
public void setMarker(LatLng point){
setLatitude.setText(point.latitude+&&);
&setLongitude.setText(point.longitude+&&);
&setName.setText(&&);
//在此处理点击事件 &
&//构建Marker图标 &
&BitmapDescriptor bitmap = BitmapDescriptorFactory &
&& &.fromResource(R.drawable.icon_gcoding); &
&//构建MarkerOption,用于在地图上添加Marker &
&OverlayOptions option = new MarkerOptions() &
&& &.position(point) &
&& &.icon(bitmap); &
&//在地图上添加Marker,并显示 &
&mBaiduMap.clear();
&mBaiduMap.addOverlay(option);&
*设置地图显示到指定位置
public void setNowLocation(LatLng point){
//定义地图状态
MapStatus mMapStatus = new MapStatus.Builder()
.target(point)
//.zoom(10)
//定义MapStatusUpdate对象,以便描述地图状态将要发生的变化
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
//改变地图状态
mBaiduMap.setMapStatus(mMapStatusUpdate); &
//输入城市和关键字找位置
PoiSearch mPoiSearch = PoiSearch.newInstance();
OnGetPoiSearchResultListener poiListener = new OnGetPoiSearchResultListener(){ &
public void onGetPoiResult(PoiResult result){ &
//获取POI检索结果
Log.d(&TAG&, &PoiResult&+result.getAllPoi().get(0).location.latitude);
Log.d(&TAG&, &PoiResult&+result.getAllPoi().get(0).location.longitude);
//将位置定位到此位置(上面方法)
setNowLocation(result.getAllPoi().get(0).location);
//将第一个设置为选择的位置(上面方法)
setMarker(result.getAllPoi().get(0).location);
public void onGetPoiDetailResult(PoiDetailResult result){ &
//获取Place详情页检索结果 &
Log.d(&TAG&, &PoiDetailResult&+result);
//设置POI检索监听者;
mPoiSearch.setOnGetPoiSearchResultListener(poiListener); &
//发起检索请求;
//PoiCitySearchOption pso=new PoiCitySearchOption();
//pso.city(city);
//pso.keyword(arg0)
mPoiSearch.searchInCity((new PoiCitySearchOption()) &
.city(city) &&
.keyword(&宾馆&) &&
.pageNum(10)); &
//在地图上点击某位置,在此添加一个标注
mBaiduMap=mMapView.getMap();
mBaiduMap.setOnMapClickListener(new OnMapClickListener() { &
public void onMapClick(LatLng point) { &
&collectPoint=
&Log.d(&TAG&, &点击的位置&+point.toString());
&setMarker(point);//(上面的加标注的方法)
public boolean onMapPoiClick(MapPoi poi) { &
//在此处理底图标注点击事件 &
&Log.d(&TAG&, &点击的位置poi&+poi.toString());
已发表评论数()
&&登&&&录&&
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见&百度地图SDK为开发者们提供了如下类型的地图覆盖物:我的位置图层(MyLocationOverlay):用于显示用户当前位置的图层(支持自定义位置图标);Poi搜索结果图层(PoiOverlay):用于显示兴趣点搜索结果的图层;路线图层(RouteOverlay):公交、步行和驾车线路图层,将公交、步行和驾车出行方案的路线及关键点显示在地图上(起、终点图标用户可自定义);公交换乘图层(TransitOverlay):公交换乘线路图层,将某一特定地区的公交出行方案的路线及换乘位置显示在地图上(起、终点图标用户可自定义);自定义图层(ItemizedOverlay):可将一个或多个兴趣点绘制到地图上,且支持自定义图标(支持动态更新Item位置、图标);弹出窗图层(PopupOverlay):在地图上显示一个弹出窗口;几何图形绘制图层(GraphicsOverlay):用于绘制点、折线段、弧线、圆、矩形、多边形等几何图形的图层;文字绘制图层(TextOverlay):用于绘制文字的图层。图片图层(GroundOverlay):用于展示用户传入图片的图层。全景图图层(PanoramaOverlay):在全景图内标绘兴趣点,支持自定义图标样式。注:除弹出窗图层外,其他各个图层均已实现多实例。全景图图层是针对全景图所使用的特殊图层。MapView使用一个List管理覆盖物,通过向MapView.getOverlays() add或remove上述类或其基类的实例即可向地图添加或删除覆盖物。在更新地图覆盖物后,需调用MapView.refresh() 使更新生效。&&定位原理使用百度Android定位SDK必须注册GPS和网络使用权限。定位SDK采用GPS、基站、Wi-Fi信号进行定位。当应用程序向定位SDK发起定位请求时,定位SDK会根据应用的定位因素(GPS、基站、Wi-Fi信号)的实际情况(如是否开启GPS、是否连接网络、是否有信号等)来生成相应定位依据进行定位。用户可以设置满足自身需求的定位依据:若用户设置GPS优先,则优先使用GPS进行定位,如果GPS定位未打开或者没有可用位置信息,且网络连接正常,定位SDK则会返回网络定位(即Wi-Fi与基站)的最优结果。为了使获得的网络定位结果更加精确,请打开手机的Wi-Fi开关。&下面我们将利用 MyLocationOverlay和 PopupOverlay 这两个类&一 . 导入库文件在使用百度定位SDKv4.0之前,我们要下载最新的库文件,下载地址:点击下载相关库文件,将liblocSDK4.so文件拷贝到libs/armeabi目录下。将locSDK4.0.jar文件拷贝到工程的libs目录下目录结构如下:%20库文件下载地址:http://kf/ware/vc/"%20target="_blank"%20class="keylink">vcGFuLmJhaWR1LmNvbS9zLzFudE5xS3dwPC9wPgo8cD62/iAuILK8vtbOxLz+o6zSu7j2sNm2yLXYzby/2Lz+o6y809K7uPbK1ravteO798q1z9a2qM67tcSwtMWlPC9wPgo8cD4mbmJzcDs8L3A+CjxwcmUgY2xhc3M9"brush:"> %20%20%20%20然后是主%20Activity&&package%20com.majianjie.import%20android.app.Aimport%20android.graphics.Bimport%20android.graphics.drawable.Dimport%20android.os.Bimport%20android.view.LayoutIimport%20android.view.Mimport%20android.view.MenuIimport%20android.view.Vimport%20android.view.View.MeasureSimport%20android.widget.Bimport%20android.widget.TextVimport%20android.widget.Timport%20com.baidu.location.BDLimport%20com.baidu.location.BDLocationLimport%20com.baidu.location.LocationCimport%20com.baidu.location.LocationClientOimport%20com.baidu.mapapi.BMapMimport%20com.baidu.mapapi.MKGeneralLimport%20com.baidu.mapapi.map.LocationDimport%20com.baidu.mapapi.map.MKEimport%20com.baidu.mapapi.map.MKMapViewLimport%20com.baidu.mapapi.map.MapCimport%20com.baidu.mapapi.map.MapPimport%20com.baidu.mapapi.map.MapVimport%20com.baidu.mapapi.map.MyLocationOimport%20com.baidu.mapapi.map.PopupClickLimport%20com.baidu.mapapi.map.PopupOimport%20com.api.basestruct.GeoPimport%20com.example.baidumap.R;public%20class%20MainActivity%20extends%20Activity%20{ //声明控件
private%20Button%20
private%20Toast%20mToast=
private%20BMapManager%20mBMapManager=
private%20MapView%20mMapView%20=%20
//MapView%20是地图主控件
private%20MapController%20mMapController%20=%20//用MapController完成地图控制
private%20LocationClient%20mLocC%20
%20public%20LocationData%20mLocData%20=%20
private%20LocationOverlay%20myLocationOverlay%20=%20//定位图层
private%20boolean%20isRequest%20=%20//是否手动触发请求定位%20%20 %20%20%20%20private%20boolean%20isFirstLoc%20=%20//是否首次定位%20%20 %20%20%20 %20%20%20%20private%20PopupOverlay%20mPopupOverlay%20%20=%20//弹出泡泡图层,浏览节点时使用 %20%20%20%20private%20View%20viewCache= %20%20%20%20public%20BDLocation%20location%20=%20new%20BDLocation();%20 %20%20%20%20 %20%20%20%20 @Override protected%20void%20onCreate(Bundle%20savedInstanceState)%20{
super.onCreate(savedInstanceState);
//**使用地图sdk前需先初始化BMapManager,这个必须在setContentView()先初始化
mBMapManager%20=%20new%20BMapManager(this);
//第一个参数是API%20key,%20%20%20第二个参数是常用事件监听,用来处理通常的网络错误,授权验证错误等,你也可以不添加这个回调接口
mBMapManager.init(LDtH1sVwr7kygaF0aTqaVwWU,%20new%20MKGeneralListener()%20{
//授权错误的时候调用的回调函数
public%20void%20onGetPermissionState(int%20iError)%20{
if%20(iError%20==%20%20MKEvent.ERROR_PERMISSION_DENIED)%20{
showToast(API%20KEY错误,%20请检查!);
%20%20%20%20%20%20%20%20%20%20%20%20}
//一些网络状态的错误处理回调函数
public%20void%20onGetNetworkState(int%20iError)%20{
if%20(iError%20==%20MKEvent.ERROR_NETWORK_CONNECT)%20{
Toast.makeText(getApplication(),%20您的网络出错啦!,%20Toast.LENGTH_LONG).show();
%20%20%20%20%20%20%20%20%20%20%20%20}
//单击事件
click(); } //*%20显示Toast消息%20%20%20%20%20private%20void%20showToast(String%20msg){%20%20%20%20%20%20%20%20%20%20if(mToast%20==%20null){%20%20%20%20%20%20%20%20%20%20%20%20%20%20mToast%20=%20Toast.makeText(this,%20msg,%20Toast.LENGTH_SHORT);%20%20%20%20%20%20%20%20%20%20}else{%20%20%20%20%20%20%20%20%20%20%20%20%20%20mToast.setText(msg);%20%20%20%20%20%20%20%20%20%20%20%20%20%20mToast.setDuration(Toast.LENGTH_SHORT);%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20mToast.show();%20%20%20%20%20%20}%20 private%20void%20click()%20{
request.setOnClickListener(new%20View.OnClickListener()%20{
public%20void%20onClick(View%20arg0)%20{
requestLocation();
} @Override protected%20void%20onResume()%20{%20%20%20%20 //MapView的生命周期与Activity同步,当activity挂起时需调用MapView.onPause()
mMapView.onResume();
mBMapManager.start();//重新启动
super.onResume(); } @Override protected%20void%20onPause()%20{
//MapView的生命周期与Activity同步,当activity挂起时需调用MapView.onPause()
mMapView.onPause();
super.onPause(); } private%20void%20init()%20{
//使用自定义的title,注意顺序
setContentView(R.layout.activity_main);%20%20%20//activity的布局%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//这里是添加自己定义的titlebtn.xml
//通过id找到他们
mMapView%20=%20(com.baidu.mapapi.map.MapView)%20findViewById(R.id.bmapView);
mMapController=mMapView.getController();%20//获取地图控制器
mMapController.enableClick(true);%20%20%20//设置地图是否响应点击事件
request=(Button)findViewById(R.id.request);
viewCache%20=%20LayoutInflater.from(this).inflate(R.layout.pop_layout,%20null);
mPopupOverlay=%20new%20PopupOverlay(mMapView,%20new%20PopupClickListener()%20{//%20*%20点击弹出窗口图层回调的方法
public%20void%20onClickedPopup(int%20arg0)%20{
//隐藏弹出窗口图层%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mPopupOverlay.hidePop();%20%20
%20%20%20%20%20%20%20%20mMapController.enableClick(true);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//*%20%20设置地图是否响应点击事件%20%20.%20%20%20%20%20%20%20%20%20mMapController.setZoom(12);
//%20*%20设置地图缩放级别%20%20%20%20%20%20%20%20mMapView.setBuiltInZoomControls(true);%20%20%20%20%20%20//%20*%20显示内置缩放控件%20%20%20%20%20%20%20%20mMapView.setTraffic(true);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mLocData%20=%20new%20LocationData();%20%20%20%20%20%20%20%20
mLocClient%20=%20new%20LocationClient(getApplicationContext());%20%20//%20%20%20*%20定位SDK的核心类
%20//实例化定位服务,LocationClient类必须在主线程中声明%20%20%20%20%20%20%20%20%20%20mLocClient.registerLocationListener(new%20BDLocationListenerImpl());//注册定位监听接口%20%20%20%20 /**
%20*%20设置定位参数
LocationClientOption%20option%20=%20new%20LocationClientOption();
option.setOpenGps(true);%20//打开GPRS
option.setAddrType(all);//返回的定位结果包含地址信息
option.setCoorType(bd09ll);//返回的定位结果是百度经纬度,默认值gcj02
option.setScanSpan(5000);%20//设置发起定位请求的间隔时间为5000ms
option.disableCache(false);//禁止启用缓存定位
option.setPoiNumber(5);%20%20%20%20//最多返回POI个数%20%20%20
option.setPoiDistance(1000);%20//poi查询距离%20%20%20%20%20%20%20%20
option.setPoiExtraInfo(true);%20%20//是否需要POI的电话和地址等详细信息%20%20%20%20%20%20%20%20
mLocClient.setLocOption(option);
mLocClient.start();%20%20// 调用此方法开始定位%20%20%20%20%20%20%20%20
myLocationOverlay%20=%20new%20LocationOverlay(mMapView);//定位图层初始化
%20//将定位数据设置到定位图层里%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20myLocationOverlay.setMarker(getResources().getDrawable(R.drawable.set)); %20%20%20%20//添加定位图层 %20%20%20%20mMapView.getOverlays().add(myLocationOverlay); %20%20%20%20myLocationOverlay.enableCompass();%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//更新图层数据执行刷新后生效%20%20%20%20%20%20%20%20%20%20mMapView.refresh();%20%20%20%20%20%20%20%20%20%20%20%20%20/*%20%20 %20%20%20%20%20%20%20%20//准备要添加的Overlay%20%20%20%20%20%20%20%20%20%20double%20mLat1%20=%;%20%20%20%20%20%20%20%20%20%20double%20mLon1%20=%;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20用给定的经纬度构造GeoPoint,单位是微度%20(度%20*%201E6)%20%20%20%20%20%20%20%20%20%20GeoPoint%20p1%20=%20new%20GeoPoint((int)%20(mLat1%20*%201E6),%20(int)%20(mLon1%20*%201E6));%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//准备overlay图像数据,根据实情情况修复%20%20%20%20%20%20%20%20%20%20Drawable%20mark=%20getResources().getDrawable(R.drawable.set);%20%20%20%20%20%20%20%20%20%20//用OverlayItem准备Overlay数据%20%20%20%20%20%20%20%20%20%20OverlayItem%20item1%20=%20new%20OverlayItem(p1,item1,item1);%20%20%20%20%20%20%20%20%20%20//使用setMarker()方法设置overlay图片,如果不设置则使用构建ItemizedOverlay时的默认设置%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//创建IteminizedOverlay%20%20%20%20%20%20%20%20%20%20CustomItemizedOverlay%20itemOverlay%20=%20new%20CustomItemizedOverlay(mark,%20mMapView);%20%20%20%20%20%20%20%20%20%20//将IteminizedOverlay添加到MapView中%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mMapView.getOverlays().clear();%20%20%20%20%20%20%20%20%20%20mMapView.getOverlays().add(itemOverlay);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20
//现在所有准备工作已准备好,使用以下方法管理overlay.%20%20%20%20%20%20%20%20%20%20
//添加overlay,%20当批量添加Overlay时使用addItem(List)效率更高%20%20%20%20%20%20%20%20%20%20itemOverlay.addItem(item1);%20%20
%20%20%20%20%20%20//删除overlay%20.%20%20
%20%20%20%20%20%20//itemOverlay.removeItem(itemOverlay.getItem(0));%20%20
%20%20%20%20%20%20//mMapView.refresh();%20%20
%20%20%20%20%20%20//清除overlay%20%20
%20%20%20%20%20%20//%20itemOverlay.removeAll();%20%20
%20%20%20%20%20%20//%20mMapView.refresh();%20%20%20%20%20%20%20%20%20%20mMapView.refresh();%20%20%20%20*/%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20mMapController.setCenter(p1);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mMapView.regMapViewListener(mBMapManager,%20new%20MKMapViewListener()%20{%20%20%20%20%20%20%20%20 //%20*%20地图移动完成时会回调此接口%20方法
public%20void%20onMapMoveFinish()%20{
showToast(地图移动完毕!);
%20//*%20地图加载完毕回调此接口方法
public%20void%20onMapLoadFinish()%20{
showToast(地图载入完毕!);
%20//*%20%20地图完成带动画的操作(如:%20animationTo())后,此回调被触发
public%20void%20onMapAnimationFinish()%20{
%20//当调用过%20mMapView.getCurrentMap()后,此回调会被触发%20%20可在此保存截图至存储设备
public%20void%20onGetCurrentMap(Bitmap%20arg0)%20{
%20//*%20点击地图上被标记的点回调此方法
public%20void%20onClickMapPoi(MapPoi%20arg0)%20{
if%20(arg0%20!=%20null){
showToast(arg0.strText);
});%20%20%20%20%20%20%20%20 } @Override public%20boolean%20onCreateOptionsMenu(Menu%20menu)%20{
super.onCreateOptionsMenu(menu);
CreateMenu(menu);
return%20 } private%20void%20CreateMenu(Menu%20menu){
MenuItem%20mnu1%20=menu.add(0,0,0,显示卫星地图);
mnu1.setAlphabeticShortcut('a');//设置快捷键
//mnu1.serIcon(R.drawable.icon);//设置图片
MenuItem%20mnu2%20=menu.add(0,1,1,显示街道地图);
mnu2.setAlphabeticShortcut('b');//设置快捷键
//mnu1.serIcon(R.drawable.icon);//设置图片
MenuItem%20mnu3%20=menu.add(0,2,2,3D地图);
mnu3.setAlphabeticShortcut('c');//设置快捷键
//mnu1.serIcon(R.drawable.icon);//设置图片
@Override%20%20%20%20public%20boolean%20onOptionsItemSelected(MenuItem%20item)%20{%20%20%20%20%20%20%20%20if(item.getItemId()%20==%200){%20%20%20%20%20%20%20%20 %20mMapView.setSatellite(true);
//设置显示为卫星地图:%20%20%20%20%20%20%20%20 %20mMapView.setTraffic(false); %20%20%20%20%20%20%20%20}else%20if(item.getItemId()%20==%201){%20%20%20%20%20%20%20%20 %20mMapView.setTraffic(true);
//显示街道地图%20%20%20%20%20%20%20%20 %20mMapView.setSatellite(false);%20%20%20%20%20%20%20%20}else%20if(item.getItemId()%20==%202){%20%20%20%20%20%20%20%20 %20//mMapView.se%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20return%20%20%20%20%20} public%20class%20BDLocationListenerImpl%20implements%20BDLocationListener%20{%20%20%20%20%20%20%20%20%20//%20%20*%20接收异步返回的定位结果,参数是BDLocation类型参数%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20public%20void%20onReceiveLocation(BDLocation%20location)%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(location%20==%20null)%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20/*%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20StringBuffer%20sb%20=%20new%20StringBuffer(256);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(time%20:%20);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(location.getTime());%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(error%20code%20:%20);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(location.getLocType());%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(latitude%20:%20);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(location.getLatitude());%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(lontitude%20:%20);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(location.getLongitude());%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(radius%20:%20);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(location.getRadius());%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20(location.getLocType()%20==%20BDLocation.TypeGpsLocation){%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(speed%20:%20);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(location.getSpeed());%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(satellite%20:%20);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(location.getSatelliteNumber());%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20else%20if%20(location.getLocType()%20==%20BDLocation.TypeNetWorkLocation){%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(addr%20:%20);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sb.append(location.getAddrStr());%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20*/%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20MainActivity.this.location%20=%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mLocData.latitude%20=%20location.getLatitude();%20%20%20%20%20%20%20%20%20%20%20%20%20%20mLocData.longitude%20=%20location.getLongitude();%20%20%20%20%20%20%20%20%20%20%20%20%20%20//如果不显示定位精度圈,将accuracy赋值为0即可%20%20%20%20%20%20%20%20%20%20%20%20%20%20mLocData.accuracy%20=%20location.getRadius();%20%20%20%20%20%20%20%20%20%20%20%20%20%20mLocData.direction%20=%20location.getDerect();%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//将定位数据设置到定位图层里%20%20%20%20%20%20%20%20%20%20%20%20myLocationOverlay.setData(mLocData);%20%20%20%20%20%20%20%20%20%20%20%20//更新图层数据执行刷新后生效%20%20%20%20%20%20%20%20%20%20%20%20mMapView.refresh();%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if(isFirstLoc%20||%20isRequest){%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//将给定的位置点以动画形式移动至地图中心%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mMapController.animateTo(new%20GeoPoint(%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20(int)%20(location.getLatitude()%20*%201e6),%20(int)%20(location.getLongitude()%20*%201e6)));%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20showPopupOverlay(location);%20%20//载入时候就弹出%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20isRequest%20=%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20%20%20isFirstLoc%20=%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20//%20接收异步返回的POI查询结果,参数是BDLocation类型参数%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20public%20void%20onReceivePoi(BDLocation%20poiLocation)%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20}%20%20%20%20%20%20 private%20void%20requestLocation()%20{
isRequest%20=%20%20%20%20%20%20%20%20%20%20%20if(mLocClient%20!=%20null%20&&%20mLocClient.isStarted()){%20%20%20%20%20%20%20%20%20%20%20%20%20%20showToast(正在定位......);%20%20%20%20%20%20%20%20%20%20%20%20%20%20mLocClient.requestLocation();%20%20%20%20%20%20%20%20%20%20}%20%20 }%20%20%20%20 //继承MyLocationOverlay重写dispatchTap方法%20%20%20%20%20%20private%20class%20LocationOverlay%20extends%20MyLocationOverlay{%20%20%20%20%20%20%20%20%20%20%20%20public%20LocationOverlay(MapView%20arg0)%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20super(arg0);%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20//%20%20*%20在&我的位置&坐标上处理点击事件。%20%20%20%20%20%20%20%20%20@Override%20%20%20%20%20%20%20%20%20%20protected%20boolean%20dispatchTap()%20{%20%20%20%20%20%20%20%20%20%20%20%20%20%20//点击我的位置显示PopupOverlay%20%20%20%20%20%20%20%20%20%20%20%20%20%20showPopupOverlay(location);%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20super.dispatchTap();%20%20%20%20%20%20%20%20%20%20}%20%20
public%20void%20setMarker(Drawable%20arg0)%20{
super.setMarker(arg0);
%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20 %20%20%20%20@Override protected%20void%20onDestroy()%20{
//MapView的生命周期与Activity同步,当activity销毁时需调用MapView.destroy()
mMapView.destroy();
//退出应用调用BMapManager的destroy()方法
if(mBMapManager%20!=%20null){
mBMapManager.destroy();
mBMapManager%20=%20
//退出时销毁定位%20%20%20%20%20%20%20%20if%20(mLocClient%20!=%20null){%20%20%20%20%20%20%20%20%20%20%20%20mLocClient.stop();%20%20%20%20%20%20%20%20}
super.onDestroy(); }%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//*%20显示弹出窗口图层PopupOverlay%20%20%20%20%20private%20void%20showPopupOverlay(BDLocation%20location){%20%20%20%20%20%20%20%20%20%20%20TextView%20popText%20=%20((TextView)viewCache.findViewById(R.id.location_tips));%20%20%20%20%20%20%20%20%20%20%20popText.setText([我的位置]%20+%20location.getAddrStr());%20%20%20%20%20%20%20%20%20%20%20mPopupOverlay.showPopup(getBitmapFromView(popText),%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20new%20GeoPoint((int)(location.getLatitude()*1e6),%20(int)(location.getLongitude()*1e6)),%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2015);%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20//%20*%20将View转换成Bitmap的方法%20%20%20%20%20public%20static%20Bitmap%20getBitmapFromView(View%20view)%20{%20%20%20%20%20%20%20%20%20%20view.measure(MeasureSpec.makeMeasureSpec(0,%20MeasureSpec.UNSPECIFIED),%20MeasureSpec.makeMeasureSpec(0,%20MeasureSpec.UNSPECIFIED));%20%20%20%20%20%20%20%20%20%20view.layout(0,%200,%20view.getMeasuredWidth(),%20view.getMeasuredHeight());%20%20%20%20%20%20%20%20%20%20view.buildDrawingCache();%20%20%20%20%20%20%20%20%20%20Bitmap%20bitmap%20=%20view.getDrawingCache();%20%20%20%20%20%20%20%20%20%20return%20%20%20%20%20%20%20}%20%20%20%20%20%20%20%20%20%20%20%20}大家注意:这里我把上一次的添加marker的代码注释了,原因是当我这两个同时弄的时候会无法给当前位置添加标记。。。这个问题稍后会得到解决。下面的布局文件是弹出框的布局,一个%20很简单的文件:pop_layout.xml %20%20%20%20%20%20%20%20%20/&%20%20%20%20%20%20%20%20%20&&&&LocationClient%20定位SDK的核心类,LocationClient类必须在主线程中声明。需要Context类型的参数。Context需要时全进程有效的context,推荐用getApplicationConext获取全进程有效的context,我们调用registerLocationListener(BDLocationListener)方法来注册定位监听接口,BDLocationListener里面有两个方法,onReceiveLocation()(接收异步返回的定位结果),onReceivePoi()(接收异步返回的POI查询结果,POI是&Point%20of%20Interest&的缩写,可以翻译成&信息点&,每个POI包含四方面信息,名称、类别、经度、纬度、附近的酒店、饭店,商铺等信息。我们可以叫它为&导航地图信息&,导航地图数据是整个导航产业的基石),我们这里只需要重写onReceiveLocation就行了BDLocation%20封装了定位SDK的定位结果,在BDLocationListener的onReceive方法中获取。通过该类用户可以获取error%20code,位置的坐标,精度半径,地址等信息,对于其getLocType%20()方法获取的error%20code一些情况61%20:%20GPS定位结果62%20:%20扫描整合定位依据失败。此时定位结果无效。63%20:%20网络异常,没有成功向服务器发起请求。此时定位结果无效。65%20:%20定位缓存的结果。66%20:%20离线定位结果。通过requestOfflineLocaiton调用时对应的返回结果67%20:%20离线定位失败。通过requestOfflineLocaiton调用时对应的返回结果68%20:%20网络连接失败时,查找本地离线定位时对应的返回结果161:%20表示网络定位结果162~167:%20服务端定位失败LocationClientOption%20用来设置定位SDK的定位方式,比如设置打开GPS,设置是否需要地址信息,设置发起定位请求的间隔时间等等,参数设置完后调用LocationClient%20的setLocOption方法LocationOverlay%20MyLocationOverlay的子类,重写里面的dispatchTap()方法,显示弹出窗口图层PopupOverlay,调用mMapView.getOverlays().add(myLocationOverlay)就将我的位置图层添加到地图里面PopupOverlay%20弹出图层,这个类还是比较简单,里面只有三个方法,hidePop()%20(隐藏弹出图层)showPopup(Bitmap%20pop,%20GeoPoint%20point,%20int%20yOffset)%20(显示弹出图层)和showPopup显示多张图片的重载方法,由于showPopup方法只接受Bitmap对象,所以我们必须将我们的弹出图层View对象转换成Bitmap对象,我们调用getBitmapFromView方法就实现这一转换BDLocationListener接口的onReceiveLocation(BDLocation%20location)%20方法我还要重点讲解下,我们会发现onReceiveLocation方法会反复执行,他执行的间隔跟LocationClientOption类的setScanSpan()方法设定的值有关,我们设定的是5000毫秒,则onReceiveLocation方法每隔5秒执行一次,注意,当我们设定的值大于1000(ms),定位SDK内部使用定时定位模式。调用requestLocation(%20)后,每隔设定的时间,定位SDK就会进行一次定位。如果定位SDK根据定位依据发现位置没有发生变化,就不会发起网络请求,返回上一次定位的结果;如果发现位置改变,就进行网络请求进行定位,得到新的定位结果。如果你只需要定位一次的话,这个设置小于1000,或者不用设置就可以了,定时定位时,调用一次requestLocation,会定时监听到定位结果%20四%20.%20在运行程序之前,我们还必须在AndroidManifest.xml进行相关配置和权限的声明&%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20还有很重要的一点就是在AndroidManifest.xml中添加下面的内容&&%20android:name=com.baidu.location.fandroid:enabled=trueandroid:process=:remote%20&%20<meta-data%20android:name=com.baidu.lbsapi.API_KEYandroid:value=6KOX4mXHeBRzgriV6OP1T2Hw/&其中的meta-data问题:网上这样说,大家记住就得了。。。。因为单独的定位sdk需要一个key值,而定位sdk的值又不像mapManager中可以直接赋值所以就需要在注册表单中注册运行图示: apk地址:/s/1hqqWSuw部分内容摘自百度官方文档。部分来自博客:http://blog.csdn.net/xiaanming/article/details/定位自己的位置基本就这些内容,出现的问题随后会补充上。。今天就这样吧。。吃饭去了。。</meta-data

我要回帖

更多关于 js点击事件怎么写 的文章

 

随机推荐