0

我一直在将我的 Android Java 应用程序从 Googlemaps V1 升级到 V2,这相当痛苦。我需要按程序进行所有显示(即没有 XML 布局文件),因为它是我开发的跨平台引擎。

在 V1 中,我可以在通过创建 MapView 时设置 API 密钥

String apikey = MySettings.getMapsKey();
MapView mapView = new MapView( activity, apikey );

这非常好,因为我可以构建许多使用不同证书签名的应用程序,并为其提供不同的数据文件来工作。

看来您现在必须通过以下方式在清单文件中设置 API 密钥

        <meta-data  android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyD_LwdRJXXXxn9VdOgKWbPaVxH-YqX67-8" />

所以这两个问题是

  • 我的假设是否正确,即 MapView 仅适用于 Googlemaps V1,所以我必须放弃它并开始使用 MapFragment 来支持 Googlemaps V2?
  • 如果我们现在必须使用 MapFragment 有没有办法在程序上设置这个键而不是嵌入到代码/清单中?
4

1 回答 1

2

1)是的,除了使用MapFragment之外别无选择(使用SupprotMapFragment for API [v4-v10])

2)除了从清单中设置 API 密钥外,没有其他方法(至少记录在案)。可以在代码中获取元数据,并以某种方式使用反射将MapFragment设置为MapFragment ,但源已关闭,不值得付出努力。

更让您失望的是,Marker InfoWindow 是静态的,您不能设置按钮或动态视图(例如,ProgressBar)。但总的来说,我比 v1 更喜欢它。

于 2013-04-26T10:25:15.370 回答