如何在 Xamarin Google 地图中的标记上设置特定图标
How can I set an specific Icon on a Marker in Xamarin GoogleMaps
我会创建一个 Android 应用程序,我可以在其中显示地理数据和其他内容。
我实现了 Android.Gms.Maps 并将标记的默认 ping 图标更改为一个点。
我尝试了不同的方法,但没有任何效果...请帮助我!
尝试 1:(从路径打开 bmp 图标)
_myPositionMarker = _map.AddMarker(new MarkerOptions()
.SetPosition(new LatLng(34.8094, 12.7484))
.SetTitle("Actual Position")
.SetIcon(BitmapDescriptorFactory.FromPath("C:\Users\my.name\source\repos\repo\appName\Resources\drawable\dot.bmp")));
错误信息:图片解码失败,必须是位图
尝试 2:(我已将 bmp 文件包含为嵌入资源)
_myPositionMarker = _map.AddMarker(new MarkerOptions()
.SetPosition(new LatLng(34.8094, 12.7484))
.SetTitle("Actual Position")
.SetIcon(BitmapDescriptorFactory.FromResource(Resource.Drawable.dot)));
错误消息:应用程序未编译但未显示失败
尝试 3:(也作为资源)
var markerImg = BitmapDescriptorFactory.FromResource(Resource.Drawable.dot);
_myPositionMarker = _map.AddMarker(new MarkerOptions()
.SetPosition(new LatLng(34.8094, 12.7484))
.SetTitle("Actual Position")
.SetIcon(markerImg));
错误消息:应用程序未编译但未显示失败
没有任何效果!我不知道如何解决这个问题:-/
确定...
_myPositionMarker = _map.AddMarker(new MarkerOptions()
.SetPosition(new LatLng(24.8094, 12.7484))
.SetTitle("Actual Position")
...正确显示默认标记并且应用运行良好
感谢您的帮助!
尝试 1 不会成功,因为该路径未指向设备本身的路径。
只要 Drawable 不是 VectorDrawable 或基于 XML 的 drawable,尝试 2 和 3 应该可以工作。它需要是 jpg 或 png。
这些也不能是嵌入式资源,但必须是 Android 资源,因此它们需要位于适当的 Resources 文件夹中,并且 Build Action 设置为 AndroidResource
.
还要确保在调用地图就绪回调后添加标记。
我会创建一个 Android 应用程序,我可以在其中显示地理数据和其他内容。 我实现了 Android.Gms.Maps 并将标记的默认 ping 图标更改为一个点。
我尝试了不同的方法,但没有任何效果...请帮助我!
尝试 1:(从路径打开 bmp 图标)
_myPositionMarker = _map.AddMarker(new MarkerOptions()
.SetPosition(new LatLng(34.8094, 12.7484))
.SetTitle("Actual Position")
.SetIcon(BitmapDescriptorFactory.FromPath("C:\Users\my.name\source\repos\repo\appName\Resources\drawable\dot.bmp")));
错误信息:图片解码失败,必须是位图
尝试 2:(我已将 bmp 文件包含为嵌入资源)
_myPositionMarker = _map.AddMarker(new MarkerOptions()
.SetPosition(new LatLng(34.8094, 12.7484))
.SetTitle("Actual Position")
.SetIcon(BitmapDescriptorFactory.FromResource(Resource.Drawable.dot)));
错误消息:应用程序未编译但未显示失败
尝试 3:(也作为资源)
var markerImg = BitmapDescriptorFactory.FromResource(Resource.Drawable.dot);
_myPositionMarker = _map.AddMarker(new MarkerOptions()
.SetPosition(new LatLng(34.8094, 12.7484))
.SetTitle("Actual Position")
.SetIcon(markerImg));
错误消息:应用程序未编译但未显示失败
没有任何效果!我不知道如何解决这个问题:-/
确定...
_myPositionMarker = _map.AddMarker(new MarkerOptions()
.SetPosition(new LatLng(24.8094, 12.7484))
.SetTitle("Actual Position")
...正确显示默认标记并且应用运行良好
感谢您的帮助!
尝试 1 不会成功,因为该路径未指向设备本身的路径。
只要 Drawable 不是 VectorDrawable 或基于 XML 的 drawable,尝试 2 和 3 应该可以工作。它需要是 jpg 或 png。
这些也不能是嵌入式资源,但必须是 Android 资源,因此它们需要位于适当的 Resources 文件夹中,并且 Build Action 设置为 AndroidResource
.
还要确保在调用地图就绪回调后添加标记。