Xamarin 地图不在模拟中显示地图
Xamarin maps don't show map in simulation
我正在关注一本书,我的应用确实导航到我创建的地图页面,它显示了每本书的预期位置,但它没有在背景中显示地图。结果,地图上的 +/- zomm 按钮也没有任何作用。
我的XAML
<ContentPage.Content>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="4*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<maps:Map x:Name="map" Grid.RowSpan="3" />
<BoxView Grid.Row="1" BackgroundColor="White"
Opacity=".8" />
<StackLayout Padding="10" Grid.Row="1">
<Label x:Name="title"
HorizontalOptions="Center" />
<Label x:Name="date"
HorizontalOptions="Center" />
<Label x:Name="rating"
HorizontalOptions="Center" />
<Label x:Name="notes"
HorizontalOptions="Center" />
</StackLayout>
</Grid>
</ContentPage.Content>
我的任何 AndroidMenifest.xml 文件是
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.triplog2">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
<application android:label="TripLog2.Android" android:theme="@style/MainTheme">
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="YOUR-MAPS-API-KEY-HERE" />
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
这是我的地图屏幕的样子:
我不知道实际设备的结果是什么(我还没有部署它)但我希望它在模拟中工作。
所以我已经完成了 google 地图等的初始化(部分地图配置如概述 here)但关键部分是:
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="YOUR-MAPS-API-KEY-HERE" />
我需要为 YOUR-MAPS-API-KEY-HERE 生成我自己的值。
本文已涵盖here,但这篇文章的日期是 2018 年 6 月 25 日(现在是 2020 年 6 月 11 日),因此一些屏幕截图并不完全相同,但您会明白的。
但是,如果您只是想快速查看 google 地图的运行情况而不担心太多的安全性(出于学习目的),您可以跳过 keytool
部分并跳转到 Creating an API Project
.
基本上转到 Google Developers Console API & Services Dashboard 并按照屏幕截图进行操作。
当您创建 API 密钥凭据时,基本上您会获得需要为 YOUR-MAPS-API-KEY-HERE 传递的密钥。剩下的步骤是限制它的安全性。
此处是可用设置的最终屏幕截图。
有关完整详细信息,请参阅文章,这是开始的最低限度,并不包含所有详细信息。
*** 更新 ***
如果确实需要使用keytool
生成SHA1密钥,也很简单。
启动命令行,它将在默认位置 c:\windows\system32).
启动
键入 keytool
并输入,它应该是一个可识别的命令(您会得到它的帮助)。
下一个运行实际命令:
keytool.exe -list -v -keystore "C:\Users\[YOUR_LOGIN]\AppData\Local\Xamarin\Mono for Android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
用您在 windows 中的实际用户名替换上面的 [YOUR_LOGIN]
。它将生成所有您可以提供的完整信息 security/permissions(主要是您只需要 SHA1 密钥)
我正在关注一本书,我的应用确实导航到我创建的地图页面,它显示了每本书的预期位置,但它没有在背景中显示地图。结果,地图上的 +/- zomm 按钮也没有任何作用。
我的XAML
<ContentPage.Content>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="4*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<maps:Map x:Name="map" Grid.RowSpan="3" />
<BoxView Grid.Row="1" BackgroundColor="White"
Opacity=".8" />
<StackLayout Padding="10" Grid.Row="1">
<Label x:Name="title"
HorizontalOptions="Center" />
<Label x:Name="date"
HorizontalOptions="Center" />
<Label x:Name="rating"
HorizontalOptions="Center" />
<Label x:Name="notes"
HorizontalOptions="Center" />
</StackLayout>
</Grid>
</ContentPage.Content>
我的任何 AndroidMenifest.xml 文件是
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.triplog2">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
<application android:label="TripLog2.Android" android:theme="@style/MainTheme">
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="YOUR-MAPS-API-KEY-HERE" />
</application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
这是我的地图屏幕的样子:
我不知道实际设备的结果是什么(我还没有部署它)但我希望它在模拟中工作。
所以我已经完成了 google 地图等的初始化(部分地图配置如概述 here)但关键部分是:
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="YOUR-MAPS-API-KEY-HERE" />
我需要为 YOUR-MAPS-API-KEY-HERE 生成我自己的值。
本文已涵盖here,但这篇文章的日期是 2018 年 6 月 25 日(现在是 2020 年 6 月 11 日),因此一些屏幕截图并不完全相同,但您会明白的。
但是,如果您只是想快速查看 google 地图的运行情况而不担心太多的安全性(出于学习目的),您可以跳过 keytool
部分并跳转到 Creating an API Project
.
基本上转到 Google Developers Console API & Services Dashboard 并按照屏幕截图进行操作。
当您创建 API 密钥凭据时,基本上您会获得需要为 YOUR-MAPS-API-KEY-HERE 传递的密钥。剩下的步骤是限制它的安全性。
此处是可用设置的最终屏幕截图。
有关完整详细信息,请参阅文章,这是开始的最低限度,并不包含所有详细信息。
*** 更新 ***
如果确实需要使用keytool
生成SHA1密钥,也很简单。
启动命令行,它将在默认位置 c:\windows\system32).
启动键入 keytool
并输入,它应该是一个可识别的命令(您会得到它的帮助)。
下一个运行实际命令:
keytool.exe -list -v -keystore "C:\Users\[YOUR_LOGIN]\AppData\Local\Xamarin\Mono for Android\debug.keystore" -alias androiddebugkey -storepass android -keypass android
用您在 windows 中的实际用户名替换上面的 [YOUR_LOGIN]
。它将生成所有您可以提供的完整信息 security/permissions(主要是您只需要 SHA1 密钥)