xamarin - Xamarin 表单上的自定义地图图钉
问题描述
我正在关注 Xamarin 的文章,该文章描述了如何在此处使用图像自定义 pin
protected override MarkerOptions CreateMarker(Pin pin)
{
var marker = new MarkerOptions();
marker.SetPosition(new LatLng(pin.Position.Latitude, pin.Position.Longitude));
marker.SetTitle(pin.Label);
marker.SetSnippet(pin.Address);
marker.SetIcon(BitmapDescriptorFactory.FromResource(Resource.Drawable.pin));
return marker;
}
我在资源/drawable中有一个png图像。但是,地图没有显示任何图钉。我在自定义渲染器中放置了一个断点,它命中了,所以我知道它被调用了。下面是实现自定义地图的页面代码:
Xaml
<controls:CustomMap MapType="Street" x:Name="map" WidthRequest="150" IsVisible="True" HasZoomEnabled="True" HasScrollEnabled="True">
<controls:CustomMap.HeightRequest>
<OnIdiom>
<OnIdiom.Phone>
<OnPlatform
iOS="250"
Android="150" />
</OnIdiom.Phone>
</OnIdiom>
</controls:CustomMap.HeightRequest>
</controls:CustomMap>
和背后的代码
var position = new Xamarin.Forms.Maps.Position(item.Latitude.Value, item.Longitude.Value); // Latitude, Longitude
var pin = new CustomPin
{
Type = PinType.Place,
Position = position,
Label = item.Name,
Address = item.AddressString
};
pin.Clicked += async (sender, e) =>
{
await Navigation.PushAsync(new RestaurantDetails(item));
};
Device.BeginInvokeOnMainThread(() =>
{
map.Pins.Add(pin);
map.CustomPins.Add(pin);
// map.MoveToRegion(MapSpan.FromCenterAndRadius(position, Distance.FromMiles(0.3)));
});
解决方案
这已解决,没有将图像也放在 drawable-xxxx 文件夹中。啊!
推荐阅读
- reactjs - 如何在 ReactJs 卡中包含 s3image
- xcode - XCode - 如何重置/“删除”从 XCode 运行的 mac os 应用程序(类似于在 ios 模拟器中删除应用程序)?
- angular - Angular 上的 resizeSensor Amcharts
- python - 运行python脚本时出现gunicorn错误
- optaplanner - Optaplanner:如何调整 NurseRosteringPanel 列的大小?
- android - Android Studio 4.1 模拟器崩溃
- database - 在数据库中搜索 - Sqlite Flutter
- sass - 在 nextjs 上使用 scss 进行样式设置不适用于 .active
- javascript - 如何在 React (async/await) 中创建一个原子进程?
- zsh - zsh:如何使用 $+commands 测试 zsh 上是否存在两个程序