package com.liu.map;

import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Point;
import android.location.Location;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

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.MKLocationManager;
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;
import com.baidu.mapapi.Overlay;
import com.liu.R;
import com.liu.util.MapApplication;

public class LocMapActivity extends MapActivity implements LocationListener {

MapView mMapView;// 地图控件

MapController mMapController;// 得到mMapView的控制权,可以用它控制和驱动平移和

GeoPoint geoPoint;

MyLocationOverlay mylocTest;

MKLocationManager mkLocManager;

MKSearch mKSearch;

LocationListener mLocationListener;

@Override
protected void onCreate(Bundle arg0) {
// TODO Auto-generated method stub
super.onCreate(arg0);
setContentView(R.layout.activity_main);
super.initMapActivity(MapApplication.getInstance().getMapManager());
MapApplication.getInstance().getMapManager().start();
initMap();

}

@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}

@Override
protected void onPause() {
MapApplication.getInstance().getMapManager().getLocationManager()
.removeUpdates(mLocationListener);
MapApplication.getInstance().getMapManager().stop();
super.onPause();
}

@Override
protected void onResume() {
MapApplication.getInstance().getMapManager().getLocationManager()
.requestLocationUpdates(mLocationListener);
MapApplication.getInstance().getMapManager().start();
super.onResume();
}

@Override
protected void onDestroy() {

super.onDestroy();
}

public void initMap() {

mMapView = (MapView) findViewById(R.id.bmapsView);

mMapController = mMapView.getController();

mMapView.setBuiltInZoomControls(true); // 设置启用内置的缩放控件

mMapController.setZoom(12); // 设置地图zoom级别

mKSearch = new MKSearch();
mKSearch.init(MapApplication.getInstance().getMapManager(),
new MKSearchListener() {

public void onGetWalkingRouteResult(
MKWalkingRouteResult arg0, int arg1) {
// TODO Auto-generated method stub

}

public void onGetTransitRouteResult(
MKTransitRouteResult arg0, int arg1) {
// TODO Auto-generated method stub

}

public void onGetSuggestionResult(MKSuggestionResult arg0,
int arg1) {
// TODO Auto-generated method stub

}

public void onGetRGCShareUrlResult(String arg0, int arg1) {
// TODO Auto-generated method stub

}

public void onGetPoiResult(MKPoiResult arg0, int arg1,
int arg2) {
// TODO Auto-generated method stub

}

public void onGetDrivingRouteResult(
MKDrivingRouteResult arg0, int arg1) {
// TODO Auto-generated method stub

}

public void onGetBusDetailResult(MKBusLineResult arg0,
int arg1) {
// TODO Auto-generated method stub

}

public void onGetAddrResult(MKAddrInfo info, int error) {
if (error != 0) {
String str = String.format("错误号:%d", error);
return;
}
String strInfo = String.format("纬度:%f 经度:%f 地址:%s\r\n",
info.geoPt.getLatitudeE6() / 1e6,
info.geoPt.getLongitudeE6() / 1e6,
info.addressComponents.city
+ info.addressComponents.district
+ info.addressComponents.street);
Toast.makeText(LocMapActivity.this, strInfo,
Toast.LENGTH_LONG).show();

}
});
mLocationListener = new LocationListener() {

public void onLocationChanged(Location loc) {
if (loc != null) {
geoPoint = new GeoPoint((int) (loc.getLatitude() * 1E6),
(int) (loc.getLongitude() * 1E6));
mKSearch.reverseGeocode(geoPoint);
mMapController.animateTo(geoPoint);
mMapController.setCenter(geoPoint); // 设置地图中心点
// 添加到MapView的覆盖物中
mMapView.getOverlays().add(new MyOverlay());
Log.e("baidu_lat", String.valueOf(loc.getLatitude()));
Log.e("baidu_lon", String.valueOf(loc.getLongitude()));
}

}
};

}

public class MyOverlay extends Overlay {

Paint paint = new Paint();

@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
// 在所在位置绘制一个String
Point point = mMapView.getProjection().toPixels(geoPoint, null);
canvas.drawText("★当前位置", point.x, point.y, paint);
}
}

public void onLocationChanged(Location location) {
location.getLatitude();
location.getLongitude();

}

}


更多相关文章

  1. Android(安卓)之 布局训练
  2. OpenGL学习1
  3. Android(安卓)View事件分发机制理解
  4. android 背景设置
  5. Android(安卓)-- Notification
  6. Android(安卓)监听电话状态
  7. android辅助圆按钮
  8. android studio gradle常用设置
  9. 使用ComponentName启动Activity

随机推荐

  1. Android(安卓)围绕中心旋转一个ImageView
  2. android 天气预报 界面
  3. Android文件简单读写操作
  4. 你追我赶进度条
  5. android 图片拖动简单例子
  6. Android(安卓)add external jar
  7. android修改默认桌面
  8. Android(安卓)开机启动程序
  9. Android(安卓)通知提示功能
  10. Android(安卓)UI界面之TableLayout