代码之家  ›  专栏  ›  技术社区  ›  Daniel Reyhanian

google maps api mapview没有完全加载

  •  0
  • Daniel Reyhanian  · 技术社区  · 7 年前

    当我打开我的应用程序时,地图视图显示的唯一东西就是世界地图(它的一部分)加载非常缓慢。分辨率很低,我无法放大并看到条纹、道路等。基本上,所有的东西都是像素化的,当我放大地图时甚至没有加载,我只能看到网格。

    我试了很多东西,但都没用。有什么建议吗?

    • 我检查了很多次API密钥,甚至生成了一个新的。
    • 我确实限制了我的钥匙。
    • 我授予了所有必需的权限。

    This is my app, when I zoom in, it stays pixelated

    我很确定我的代码是好的,但无论如何我都会发布它。

    //The map code
            public void LoadMap()
            {
                if (IsGoogleApiAvailabe())
                {
                    MapFragment mMapFragment = MapFragment.NewInstance();
                    FragmentTransaction fragmentTransaction = FragmentManager.BeginTransaction();
                    fragmentTransaction.Add(Resource.Id.fragment_container, mMapFragment);
                    fragmentTransaction.Commit();
                    mMapFragment.GetMapAsync(this);
                }
            }
    
    //Manifest File
    <?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.example.android.porject">
      <permission
             android:name="com.example.android.PCP.permission.MAPS_RECEIVE"
             android:protectionLevel="signature" />
    
      <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="27" />
    
      <uses-permission android:name="android.permission.VIBRATE" />
      <uses-permission android:name="com.example.android.PCP.permission.MAPS_RECEIVE" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
      <uses-permission android:name="android.permission.INTERNET"/>
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
      <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    
      <uses-feature
            android:glEsVersion="0x00020000"
            android:required="true"/>
    
    
      <application 
        android:allowBackup="true" 
        android:icon="@mipmap/ic_launcher" 
        android:label="P.C.P" 
        android:roundIcon="@mipmap/ic_launcher_round" 
        android:supportsRtl="true" 
        android:theme="@style/AppTheme">
    
        <meta-data
          android:name = "com.google.android.maps.v2.API_KEY"
          android:value = "@string/GoogleKey" />
        <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    
      </application>
    </manifest>
    
    

    我错过了什么?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Daniel Reyhanian    7 年前

    由于某种原因,系统会说“我们接受这个账户的答案的时间更长。”你也可以把这个作为答案寄出去吗?我将验证一下:显然,这段时间我一直在使用错误的sha-1。不要犯这样的错误:出于某种原因,来自Android Studio谷歌地图项目的SHA-1是错误的——正如大多数谷歌地图教程中所解释的,这是获取指纹的最简单方法。获取指纹的其他方法:

    1. 在VS的调试输出窗口中,调试应用程序时,在输出窗口中的那些指令下搜索“keystore certificate”:授权失败。有关如何正确设置地图,请参阅developers.google.com/maps/documentation/android-api/start。在google开发者控制台(console.developers.google.com)中,确保启用“google maps android api v2”。确保存在以下Android密钥:密钥”。

    2. 我还没有尝试此选项,但使用以下命令获取指纹::keytool-list-v-keystore mystore.keystore