using
Android.App;
using
Android.Content;
using
Android.Runtime;
using
Android.Widget;
using
Android.OS;
using
Com.Baidu.Mapapi.Map;
using
Com.Baidu.Mapapi;
using
Android.Locations;
using
Com.Baidu.Mapapi.Model;
namespace
BaiduMapDemo
{
[Activity(Label =
"BaiduMapDemo"
, MainLauncher =
true
, Icon =
"@drawable/icon"
)]
public
class
MainActivity : Activity, ILocationListener
{
LocationManager locMgr;
MapView mMapView ;
BaiduMap mBaiduMap ;
protected
override
void
OnCreate(Bundle bundle)
{
base
.OnCreate(bundle);
SDKInitializer.Initialize(Application.Context);
SetContentView(Resource.Layout.Main);
mMapView = FindViewById<MapView>(Resource.Id.bmapView);
mBaiduMap = mMapView.Map;
mBaiduMap.MapType = BaiduMap.MapTypeNormal;
}
protected
override
void
OnResume()
{
base
.OnResume();
locMgr = GetSystemService(Context.LocationService)
as
LocationManager;
Criteria locationCriteria =
new
Criteria();
locationCriteria.Accuracy = Accuracy.Coarse;
locationCriteria.PowerRequirement = Power.Medium;
locationCriteria.AltitudeRequired =
false
;
locationCriteria.BearingRequired =
false
;
locationCriteria.SpeedRequired =
false
;
locationCriteria.CostAllowed =
true
;
var
locationProvider = locMgr.GetBestProvider(locationCriteria,
true
);
if
(locationProvider !=
null
)
{
locMgr.RequestLocationUpdates(locationProvider, 2000, 1,
this
);
}
else
{
Toast.MakeText(
this
,
"The Network Provider does not exist or is not enabled!"
, ToastLength.Long).Show();
}
}
protected
override
void
OnStart()
{
base
.OnStart();
}
protected
override
void
OnStop()
{
base
.OnStop();
}
protected
override
void
OnPause()
{
base
.OnPause();
locMgr.RemoveUpdates(
this
);
}
/// <summary>
/// 实现ILocationListener中方法,位置改变
/// </summary>
/// <param name="location"></param>
public
void
OnLocationChanged(Location location)
{
var
point =
new
LatLng(location.Latitude, location.Longitude);
MapStatus mMapStatus =
new
MapStatus.Builder()
.Target(point)
.Zoom(12)
.Build();
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.NewMapStatus(mMapStatus);
mBaiduMap.SetMapStatus(mMapStatusUpdate);
BitmapDescriptor bitmap = BitmapDescriptorFactory
.FromResource(Resource.Drawable.icon_gcoding);
OverlayOptions option =
new
MarkerOptions()
.InvokePosition(point)
.InvokeIcon(bitmap);
mBaiduMap.AddOverlay(option);
}
/// <summary>
/// 实现ILocationListener中方法
/// </summary>
/// <param name="provider"></param>
public
void
OnProviderDisabled(
string
provider)
{
}
/// <summary>
/// 实现ILocationListener中方法
/// </summary>
/// <param name="provider"></param>
public
void
OnProviderEnabled(
string
provider)
{
}
/// <summary>
/// 实现ILocationListener中方法
/// </summary>
/// <param name="provider"></param>
/// <param name="status"></param>
/// <param name="extras"></param>
public
void
OnStatusChanged(
string
provider, [GeneratedEnum] Availability status, Bundle extras)
{
}
}
}