先下载百度地图http://lbsyun.baidu.com/sdk/download?selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool
创新互联建站是一家集网站建设,平陆企业网站建设,平陆品牌网站建设,网站定制,平陆网站建设报价,网络营销,网络优化,平陆网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。百度地图绑定库文件
新建一个BindingsLibrary项目,并把刚下载的BaiduLBS_Android.jar添加到项目的Jars文件夹下,更改BaiduLBS_Android.jar的属性中的”生成操作”属性为EmbeddedJar
生成些项目,如果遇到这样的错误:
VersionInfo”: 成员名不能与它们的封闭类型相同
打开项目中的Transforms的Metadate.xml,在
< attr path = " /api/package[@name='com.baidu.mapapi']/class[@name='VersionInfo']/field[@name='VERSION_INFO'] " name = " name " > VersionInfos attr >
因为在C#中不能定义和类名相同的类成员(构造函数除外)
创建andorid项目
在项目中创建一个libs文件夹,把下载的百度地图包中的.so文件添加进来,并在属性上设置成AndroidNativeLibrary

添加权限和设置百度地图访问应用Key
在布局文件中添加地图控件(注意大小写:)
C#代码如下
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);
//初台化地图,注意位置,在SetContentView前
SDKInitializer.Initialize(Application.Context);
SetContentView(Resource.Layout.Main);
mMapView = FindViewById(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);
}
///
/// 实现ILocationListener中方法,位置改变
///
///
public void OnLocationChanged(Location location)
{
var point = new LatLng(location.Latitude, location.Longitude);
//使地图移动到当前位置
MapStatus mMapStatus = new MapStatus.Builder()
.Target(point)
.Zoom(12)
.Build();
//定义MapStatusUpdate对象,以便描述地图状态将要发生的变化
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.NewMapStatus(mMapStatus);
//改变地图状态
mBaiduMap.SetMapStatus(mMapStatusUpdate);
//创建当前位置Marker图标
BitmapDescriptor bitmap = BitmapDescriptorFactory
.FromResource(Resource.Drawable.icon_gcoding);
//构建MarkerOption,用于在地图上添加Marker
OverlayOptions option = new MarkerOptions()
.InvokePosition(point)
.InvokeIcon(bitmap);
//在地图上添加Marker,并显示
mBaiduMap.AddOverlay(option);
}
///
/// 实现ILocationListener中方法
///
///
public void OnProviderDisabled(string provider)
{
}
///
/// 实现ILocationListener中方法
///
///
public void OnProviderEnabled(string provider)
{
}
///
/// 实现ILocationListener中方法
///
///
///
///
public void OnStatusChanged(string provider, [GeneratedEnum] Availability status, Bundle extras)
{
}
}
} 另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
网页标题:Xamarin只言片语4——Xamarin.Android百度地图绑定-创新互联
网址分享:http://www.jxjierui.cn/article/cepisi.html


咨询
建站咨询
