package cn.wuyong.baidumap;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.graphics.drawable.Drawable;
import android.location.Location;
import android.os.Bundle;
import android.os.Process;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.WindowManager;
import cn.wuyong.bmaplogic.BMapApiDemoApp;
import cn.wuyong.overlay.TItemizedOverlay;
import cn.wuyong.overlay.TPoiOverlay;
import com.baidu.mapapi.BMapManager;
import com.baidu.mapapi.GeoPoint;
import com.baidu.mapapi.LocationListener;
import com.baidu.mapapi.MKAddrInfo;
import com.baidu.mapapi.MKBusLineResult;
import com.baidu.mapapi.MKDrivingRouteResult;
import com.baidu.mapapi.MKPoiResult;
import com.baidu.mapapi.MKSearch;
import com.baidu.mapapi.MKSearchListener;
import com.baidu.mapapi.MKSuggestionResult;
import com.baidu.mapapi.MKTransitRouteResult;
import com.baidu.mapapi.MKWalkingRouteResult;
import com.baidu.mapapi.MapActivity;
import com.baidu.mapapi.MapController;
import com.baidu.mapapi.MapView;
import com.baidu.mapapi.MyLocationOverlay;
public class TMapActivity extends MapActivity {
public MKSearch mkSearch;
public static MapView mapView;
public static View mPopView;
MapController controller;
BMapApiDemoApp app;
LocationListener locationListener;
MyLocationOverlay TLocationOverlay;
public GeoPoint LocationP;
public int area = 500;//附近500米半径
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);
app = (BMapApiDemoApp) this.getApplication();
if (app.mBMapMan == null) {
app.mBMapMan = new BMapManager(getApplication());
app.mBMapMan.init(app.mStrKey,
new BMapApiDemoApp.MyGeneralListener());
}
app.mBMapMan.start();
//初始化Activity
super.initMapActivity(app.mBMapMan);
mapView = (MapView) findViewById(R.id.bmapView);
//初始化定位覆盖物
TLocationOverlay = new MyLocationOverlay(TMapActivity.this, mapView);
//使用内置缩放按钮
mapView.setBuiltInZoomControls(true);
controller = mapView.getController();
controller.setZoom(12);
// 设置在缩放地图过程中也显示overlay
mapView.setDrawOverlayWhenZooming(true);
// 注册定位事件,定位后将地图移动到定位点
locationListener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
if (location != null) {
LocationP = new GeoPoint(
(int) (location.getLatitude() * 1000000),
(int) (location.getLongitude() * 1000000));
//mapView.getController().animateTo(LocationP);
moveToPosition(LocationP.getLatitudeE6(),LocationP.getLongitudeE6());
//定位并且显示一定范围内的大厦
mkSearch.poiSearchNearBy("大厦", LocationP, area);
}
}
};
mkSearch = new MKSearch();
mkSearch.init(app.mBMapMan, new MKSearchListener(){
@Override
public void onGetPoiResult(MKPoiResult result, int type, int iError) {
if(result==null){
Log.d("MYLOG","ERROR:" + iError);
return ;
}
//初始化mPopView
mPopView = getLayoutInflater().inflate(cn.wuyong.baidumap.R.layout.popview,null);
mapView.addView(mPopView, new MapView.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, null,
MapView.LayoutParams.TOP));
mPopView.setVisibility(View.GONE);
TPoiOverlay tpoiOverlay = new TPoiOverlay(LocationP,mkSearch,result,TMapActivity.this,TMapActivity.mapView);
tpoiOverlay.setData(result.getAllPoi()); //获得所有符合条件的点
mapView.getOverlays().add(tpoiOverlay);
mapView.invalidate(); //刷新
}
@Override
public void onGetDrivingRouteResult(MKDrivingRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetTransitRouteResult(MKTransitRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetWalkingRouteResult(MKWalkingRouteResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetBusDetailResult(MKBusLineResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetSuggestionResult(MKSuggestionResult arg0, int arg1) {
// TODO Auto-generated method stub
}
@Override
public void onGetAddrResult(MKAddrInfo arg0, int arg1) {
// TODO Auto-generated method stub
}
});
}
private void moveToPosition(int latitude, int longitude) {
GeoPoint point = new GeoPoint(latitude, longitude);
MyLocationOverlay mLocationOverlay = null; // 定位图层
controller.setZoom(17);
controller.animateTo(point);
mapView.getOverlays().clear();
mLocationOverlay = new MyLocationOverlay(this, mapView);
mapView.getOverlays().add(mLocationOverlay);
Drawable marker = getResources().getDrawable(R.drawable.mark);
marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker.getIntrinsicHeight()); //为maker定义位置和边界s
marker.setAlpha(0);//贴上去的图片不在定位点正中心,通透图片,保留点击功能,暂时没有找到贴图正中心位置设置
mapView.getOverlays().add(new TItemizedOverlay(marker, this,LocationP,area));
mapView.invalidate();
point = null;
}
@Override
protected void onPause() {
if (mPopView != null) {
mPopView.setVisibility(View.GONE);
}
BMapApiDemoApp app = (BMapApiDemoApp) this.getApplication();
app.mBMapMan.getLocationManager().removeUpdates(locationListener);
if (TLocationOverlay != null) {
Log.i("MYLOG", "onpause and mylocation not null");
TLocationOverlay.disableMyLocation();
TLocationOverlay.disableCompass();
}
app.mBMapMan.stop();
Log.i("MYLOG", "onpause");
super.onPause();
}
@Override
protected void onResume() {
BMapApiDemoApp app = (BMapApiDemoApp) this.getApplication();
// 注册Listener
app.mBMapMan.getLocationManager().requestLocationUpdates(
locationListener);
app.mBMapMan.start();
super.onResume();
}
@Override
protected void onDestroy() {
// destroy BMapManager 百度API管理类
BMapApiDemoApp.mDemoApp.onTerminate();
Process.killProcess(Process.myPid());
Log.i("MYLOG", "destroy");
super.onDestroy();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
new AlertDialog.Builder(this)
.setTitle("退出")
.setCancelable(false)
.setMessage("你确定要退出吗?")
.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface dialoginterface, int i) {
Process.killProcess(Process.myPid());
}
})
.setNegativeButton("取消",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
dialog.cancel();
}
}).show();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
android百度地图.rar (58个子文件)
TMap
.project 840B
project.properties 562B
lint.xml 53B
proguard.cfg 1KB
src
cn
wuyong
baidumap
TMapActivity.java 7KB
overlay
TPoiOverlay.java 2KB
TItemizedOverlay.java 3KB
bmaplogic
BMapApiDemoApp.java 2KB
AndroidManifest.xml 1KB
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
drawable
mark.png 384B
icon.png 3KB
iconmarka.png 867B
pop.png 1KB
popbg.xml 521B
drawable-mdpi
icon.png 3KB
layout
popview.xml 475B
main.xml 427B
values
strings.xml 167B
.settings
org.eclipse.ltk.core.refactoring.prefs 137B
org.eclipse.jdt.core.prefs 629B
assets
gen
cn
wuyong
baidumap
BuildConfig.java 160B
R.java 1KB
libs
armeabi
baidumapapi.jar 232KB
libBMapApiEngine_v1_3_3.so 994KB
.classpath 603B
bin
resources.ap_ 18KB
classes
cn
wuyong
baidumap
R$layout.class 425B
BuildConfig.class 345B
R$drawable.class 517B
R$attr.class 340B
TMapActivity$1.class 1KB
TMapActivity$3.class 953B
TMapActivity$4.class 885B
TMapActivity.class 6KB
R$id.class 418B
R.class 531B
R$string.class 427B
TMapActivity$2.class 4KB
overlay
TPoiOverlay.class 2KB
TItemizedOverlay.class 4KB
bmaplogic
BMapApiDemoApp$MyGeneralListener.class 1KB
BMapApiDemoApp.class 1KB
AndroidManifest.xml 1KB
dexedLibs
annotations-03e020f19e3147b30426d3f8e2d77491.jar 943B
baidumapapi-626cd6ec67a558885d526ac25a209bde.jar 189KB
res
drawable-ldpi
icon.png 2KB
drawable-hdpi
icon.png 4KB
drawable
mark.png 271B
icon.png 2KB
iconmarka.png 1KB
pop.png 2KB
drawable-mdpi
icon.png 2KB
TMap.apk 806KB
classes.dex 141KB
baidumapapi.jar 232KB
libBMapApiEngine_v1_3_3.so 994KB
共 58 条
- 1
wuyong201301
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页