标签: google-maps-android-api-2

Android地图v2缩放以显示所有标记

我有10个标记GoogleMap.我想尽可能放大并保持所有标记在视野中?在早期版本中,这可以实现,zoomToSpan()但在v2中,我不知道如何做到这一点.此外,我知道需要看到的圆的半径.

android google-maps google-maps-api-2 google-maps-android-api-2

276
推荐指数
7
解决办法
14万
查看次数

Google Maps Android API v2 - 交互式InfoWindow(与原版Android谷歌地图一样)

InfoWindow点击带有新Google Maps API v2的标记后,我正在尝试制作自定义.我希望它看起来像谷歌的原始地图应用程序.像这样:

示例图像

当我在ImageButton里面时,它不起作用 - 整个InfoWindow选择而不仅仅是ImageButton.我读到这是因为它View本身没有,但它是快照,所以不能区分各个项目.

编辑:文档中(感谢Disco S2):

正如上一节关于信息窗口中所提到的,信息窗口不是实时视图,而是视图在地图上呈现为图像.因此,您在视图上设置的任何侦听器都将被忽略,并且您无法区分视图各个部分上的单击事件.建议您不要在自定义信息窗口中放置交互式组件(如按钮,复选框或文本输入).

但如果谷歌使用它,必须有一些方法来实现它.有谁有想法吗?

android google-maps infowindow google-maps-android-api-2

189
推荐指数
3
解决办法
12万
查看次数

如何使用Android map API v2创建自定义形状的位图标记

我正在开发一个Android应用程序,我正在使用Google Map API v2.我需要在地图上显示带有自定义标记的用户位置.

每个标记将从URL显示用户的图片.必须从服务器以异步模式下载映像.有关示例,请参见随附的屏幕截图.

如何在标记中添加图像和自定义信息?

在此输入图像描述

android google-maps-markers google-maps-android-api-2

160
推荐指数
3
解决办法
16万
查看次数

AndroidRuntime:致命异常:androidmapsapi-ZoomTableManager

我使用 Google Maps SDK (v2) 的应用程序刚刚开始崩溃,出现以下异常:

Process: com.currentlocation.android, PID: 7328
    java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
        at com.google.maps.api.android.lib6.gmm6.vector.ct.<init>(:com.google.android.gms.dynamite_mapsdynamite@201216081@20.12.16 (120400-0):9)
        at com.google.maps.api.android.lib6.gmm6.vector.cv.a(:com.google.android.gms.dynamite_mapsdynamite@201216081@20.12.16 (120400-0):23)
        at com.google.maps.api.android.lib6.gmm6.util.m.run(:com.google.android.gms.dynamite_mapsdynamite@201216081@20.12.16 (120400-0):14)
        at java.lang.Thread.run(Thread.java:919)
Run Code Online (Sandbox Code Playgroud)

在 v3 beta SDK 中,堆栈跟踪是:

2020-04-23 15:59:06.064 E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example, PID: 22717
    java.lang.ArrayIndexOutOfBoundsException: length=1; index=12
        at com.google.android.libraries.maps.bv.zzbs.<init>(ZoomTable.java:24)
        at com.google.android.libraries.maps.bv.zzbv.zza(ZoomTableQuadTree.java:57)
        at com.google.android.libraries.maps.br.zzd.zza(Unknown Source:4)
        at com.google.android.libraries.maps.hi.zzas.zza(Suppliers.java:7)
        at com.google.android.libraries.maps.br.zza.zzh(SharedMapComponentImpl.java:58)
        at com.google.android.libraries.maps.gu.zzat.zza(RendererFactoryImpl.java:88)
        at com.google.android.libraries.maps.it.zzav.zza(GoogleMapImpl.java:59)
        at com.google.android.libraries.maps.it.zzci.zza(MapFragmentDelegateImpl.java:3)
        at com.google.android.libraries.maps.it.zzcg.zza(MapFragmentDelegateImpl.java:15)
        at com.google.android.libraries.maps.SupportMapFragment$zza.onCreateView(SupportMapFragment.java:15)
        at com.google.android.gms.dynamic.zae.zaa(com.google.android.gms:play-services-base@@17.1.0:4)
        at com.google.android.gms.dynamic.DeferredLifecycleHelper.zaa(com.google.android.gms:play-services-base@@17.1.0:9)
        at com.google.android.gms.dynamic.DeferredLifecycleHelper.onCreateView(com.google.android.gms:play-services-base@@17.1.0:25)
        at com.google.android.libraries.maps.SupportMapFragment.onCreateView(SupportMapFragment.java:34)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2698)
        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:310)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1185)
        at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1354)
        at …
Run Code Online (Sandbox Code Playgroud)

android ios google-maps-android-api-2 google-maps-sdk-ios google-maps-android-api-3

158
推荐指数
7
解决办法
1万
查看次数

Google Maps API v2:如何使标记可点击?

如何在Android中制作标记Google Maps API v2变得可点击,这样他们可以调出带有选项的菜单,还是只启动新活动?我相信我在我的应用程序中使用"newb"方法制作了标记.我没有为它们分配名称或方法,以便能够将其与其余所需代码链接.

googleMap.addMarker(new MarkerOptions()
        .position(latLng)
        .title("My Spot")
        .snippet("This is my spot!")
        .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
Run Code Online (Sandbox Code Playgroud)

如果您回答这个问题,请提供一个标记的示例代码,该代码是使用唯一名称引入的,然后设置为可点击以打开新活动.

android google-maps google-maps-android-api-2

118
推荐指数
3
解决办法
15万
查看次数

除非您更新Google Play服务(通过Bazaar),否则此应用无法运行

我正在测试适用于Android的新Google Maps API V2,并在应用启动时收到此消息:

MainActivity显示错误消息

这是在4.1模拟器上运行.

这是我的AndroidManifest.xml档案:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.maptest"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />

    <permission
        android:name="com.example.maptest.permission.MAPS_RECEIVE"
        android:protectionLevel="signature"/>
    <uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE"/>
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
    <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"/>

    <!-- Require OpenGL ES version 2 -->
    <uses-feature
          android:glEsVersion="0x00020000"
          android:required="true"/>

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="##myapikey##"/>

    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

文件MainActivity.java:

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); …
Run Code Online (Sandbox Code Playgroud)

android google-maps android-mapview google-maps-android-api-2

100
推荐指数
4
解决办法
21万
查看次数

Android Google Maps v2 - 为myLocation设置缩放级别

是否可以使用新的Google Maps API v2更改myLocation的缩放级别?如果设置了GoogleMap.setEnableMyLocation(true); 你在地图上找到一个按钮来找到你的位置.如果您点击它,地图会将您带到您的位置并将其放大到某个级别.我可以将此缩放更改为更少或更多吗?

android google-maps-mobile google-maps-android-api-2

99
推荐指数
6
解决办法
16万
查看次数

使用CameraUpdateFactory.newLatLngBounds崩溃的moveCamera

我正在使用新的Android Google Maps API.

我创建了一个包含MapFragment的活动.在活动中,onResume我将标记设置为GoogleMap对象,然后为地图定义包含所有标记的边界框.

这是使用以下伪代码:

LatLngBounds.Builder builder = new LatLngBounds.Builder();
while(data) {
   LatLng latlng = getPosition();
   builder.include(latlng);
}
CameraUpdate cameraUpdate = CameraUpdateFactory
   .newLatLngBounds(builder.build(), 10);
map.moveCamera(cameraUpdate);
Run Code Online (Sandbox Code Playgroud)

调用map.moveCamera()导致我的应用程序崩溃与以下堆栈:

Caused by: java.lang.IllegalStateException: 
    Map size should not be 0. Most likely, layout has not yet 

    at maps.am.r.b(Unknown Source)
    at maps.y.q.a(Unknown Source)
    at maps.y.au.a(Unknown Source)
    at maps.y.ae.moveCamera(Unknown Source)
    at com.google.android.gms.maps.internal.IGoogleMapDelegate$Stub
        .onTransact(IGoogleMapDelegate.java:83)
    at android.os.Binder.transact(Binder.java:310)
    at com.google.android.gms.maps.internal.IGoogleMapDelegate$a$a
        .moveCamera(Unknown Source)
    at com.google.android.gms.maps.GoogleMap.moveCamera(Unknown Source)
    at ShowMapActivity.drawMapMarkers(ShowMapActivity.java:91)
    at ShowMapActivity.onResume(ShowMapActivity.java:58)
    at android.app.Instrumentation
        .callActivityOnResume(Instrumentation.java:1185)
    at …
Run Code Online (Sandbox Code Playgroud)

android android-mapview google-maps-android-api-2

94
推荐指数
9
解决办法
8万
查看次数

Google Maps Android API v2授权失败

我的步骤:

  • 从debug.keystore获取SHA1代码
  • 在谷歌apis控制台中创建应用程序
  • 启用了谷歌地图api v2
  • 输入SHA1; my.package.name
  • 获取API密钥
  • 创建AndroidManifest文件:

        <permission
                android:name="my.package.name.permission.MAPS_RECEIVE"
                android:protectionLevel="signature"/>
    
        <uses-permission android:name="my.package.name.permission.MAPS_RECEIVE"/>
    
        <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15"/>
    
        <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:label="@string/app_name" android:icon="@drawable/ic_launcher" android:hardwareAccelerated="true">
    
            <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="MY_API_KEY_HERE" />
    
            <activity android:name="MyActivity"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN"/>
                    <category android:name="android.intent.category.LAUNCHER"/>
                </intent-filter>
            </activity>
        </application>
    </manifest>
    
    Run Code Online (Sandbox Code Playgroud)
  • 创建布局

  • 把"google-play-services.jar"放到libs上

编译后我崩溃了:

  ERROR/AndroidRuntime(10182): FATAL EXCEPTION: main
                java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable
                at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)
                at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
                at android.app.Activity.onCreateView(Activity.java:4716)
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:466)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
                at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
                at android.app.Activity.setContentView(Activity.java:1881) …
Run Code Online (Sandbox Code Playgroud)

android google-maps android-maps google-maps-android-api-2

92
推荐指数
6
解决办法
13万
查看次数

将Google Play服务版本添加到您应用的清单中?

我正在关注本教程:https://developers.google.com/maps/documentation/android/start#overview ,了解如何将Google地图添加到Android SDK中的应用.

我似乎唯一的问题就是在这一点上(我做了其他一切没有错误):

Edit your application's AndroidManifest.xml file, and add the following declaration within the

 <application> element. This embeds the version of Google Play services that the app was compiled with.

 <meta-data
 android:name="com.google.android.gms.version"
 android:value="@integer/google_play_services_version" />

The error is:
   No resources found that match the given name (at 'value' with value '@integer/    
   google_play_services_version').
Run Code Online (Sandbox Code Playgroud)

我试图按照这个人解决方案来解决同样的问题:Google Play服务库更新和缺少符号@ integer/google_play_services_version

但我仍然得到同样的错误.有什么帮助吗?

android google-play-services google-maps-android-api-2

88
推荐指数
5
解决办法
18万
查看次数