我们有一个适用于 android 和 ios 的 net 8 maui 移动应用程序,它使用 Microsoft.Maui.Controls.Maps。对于 Android 平台,我们有一个从 google 地图平台获取的 api 密钥。此 api 密钥受从密钥库 sha1 获取的指纹的限制。
在应用程序内部,我们以编程方式使用 maui 处理程序创建标记,用于用自定义图像替换默认的引脚形状。
搜索有关计费的信息,我找不到任何有关地图标记的有用信息,只能找到有关地图 ID 或路线的信息,这些是我们不使用的功能。
在官方文档(https://developers.google.com/maps/documentation/android-sdk/usage-and-billing#dynamic-street-view)上我找到了这条信息:
谁能更好地向我解释一下这个计费限额吗?
如果在毛伊岛使用本机谷歌地图 API 确实不是免费的,是否有免费或开源的替代方案,可以使用 openstreetmaps 或类似的选项来以编程方式添加标记?
提前致谢。
首先,你可以查看关于Android Google Map Marker的官方文档。并且可以通过调用平台原生代码来添加标记。
在 xaml 中为地图控件命名:
<Map x:Name="map" ..../>
并声明android平台方法:
#if ANDROID
public void AddMrker(double x, double y,string title,string snippet)
{
var googlemap = map.Handler.PlatformView as Android.Gms.Maps.GoogleMap;
var markeroption = new Android.Gms.Maps.Model.MarkerOptions();
markeroption.SetIcon(Android.Gms.Maps.Model.BitmapDescriptorFactory.FromResource(Resource.Drawable.dotnet_bot));
markeroption.SetPosition(x, y);
markeroption.SetTitle(title);
markeroption.SetSnippet(snippet);
googlemap.AddMarker(markeroption);
}
#endif
您可以将自定义图像文件复制到 \Resources\Images\pin.png 并将其 buid 操作设置为 MauiImage。并使用它:
markeroption.SetIcon(Android.Gms.Maps.Model.BitmapDescriptorFactory
.FromResource(Resource.Drawable.pin));