在Xamarin.Android中显示地图,需要使用Google Maps Android API。在使用Google Maps Android API之前,需要确保已经在Android设备上安装了Google Play服务。
要在Xamarin.Android中显示地图并调用OnMapReady方法,需要按照以下步骤进行操作:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="YOUR_API_KEY" />
其中,YOUR_API_KEY需要替换为你自己的Google Maps API密钥。可以在Google Cloud控制台中创建一个项目,并启用Google Maps Android API来获取API密钥。
<com.google.android.gms.maps.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Widget;
using Com.Google.Android.Gms.Maps;
using Com.Google.Android.Gms.Maps.Model;
[Activity(Label = "MapActivity")]
public class MapActivity : AppCompatActivity, IOnMapReadyCallback
{
private GoogleMap googleMap;
private MapView mapView;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.activity_map);
mapView = FindViewById<MapView>(Resource.Id.mapView);
mapView.OnCreate(savedInstanceState);
mapView.GetMapAsync(this);
}
public void OnMapReady(GoogleMap map)
{
googleMap = map;
// 在地图上添加标记
LatLng location = new LatLng(37.7749, -122.4194);
MarkerOptions markerOptions = new MarkerOptions()
.SetPosition(location)
.SetTitle("San Francisco");
googleMap.AddMarker(markerOptions);
// 移动地图视图到指定位置
CameraUpdate cameraUpdate = CameraUpdateFactory.NewLatLngZoom(location, 12);
googleMap.MoveCamera(cameraUpdate);
}
protected override void OnResume()
{
base.OnResume();
mapView.OnResume();
}
protected override void OnPause()
{
base.OnPause();
mapView.OnPause();
}
protected override void OnDestroy()
{
base.OnDestroy();
mapView.OnDestroy();
}
public override void OnLowMemory()
{
base.OnLowMemory();
mapView.OnLowMemory();
}
}
在OnMapReady方法中,可以进行地图相关的操作,例如添加标记、移动地图视图等。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云