标签: android-maps-utils

无法运行Google Maps Android API实用程序演示

我在运行Google Maps Android API Utility Demo时遇到问题,它显示以下错误:

04-03 16:32:37.397: E/dalvikvm(2592): Could not find class 'com.google.maps.android.utils.demo.ClusteringDemoActivity', referenced from method com.google.maps.android.utils.demo.MainActivity.onCreate
    04-03 16:32:37.452: E/AndroidRuntime(2592): FATAL EXCEPTION: main
    04-03 16:32:37.452: E/AndroidRuntime(2592): java.lang.NoClassDefFoundError: com.google.maps.android.utils.demo.ClusteringDemoActivity
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at com.google.maps.android.utils.demo.MainActivity.onCreate(MainActivity.java:20)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.Activity.performCreate(Activity.java:5163)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2061)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2122)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.ActivityThread.access$600(ActivityThread.java:140)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1228)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.os.Handler.dispatchMessage(Handler.java:99)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.os.Looper.loop(Looper.java:137)
    04-03 16:32:37.452: E/AndroidRuntime(2592):     at android.app.ActivityThread.main(ActivityThread.java:4895)
    04-03 …
Run Code Online (Sandbox Code Playgroud)

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

2
推荐指数
1
解决办法
1643
查看次数

如何在使用群集时禁用android地图标记点击自动中心?

我知道使用以下方法点击标记时可以避免使相机居中:

mGoogleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker marker) {
        marker.showInfoWindow();
        return true;
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,我遇到的问题是现在我想使用群集,当然我想在标记(实际上是项目或群集)的时候看到信息窗口.但我不知道在这些情况下如何调用类似showInfoWindow的东西.在这段代码中,如果我返回false,我会看到信息窗口,但是map是居中的.如果我返回true,则map不居中,但不显示info窗口:

    mClusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<HotspotMarker>() {
        @Override
        public boolean onClusterItemClick(HotspotMarker item) {
            Log.e(LOG_TAG, "---OnClusterItemClick");
            return false;
        }
    });

    mClusterManager.setOnClusterItemInfoWindowClickListener(new ClusterManager.OnClusterItemInfoWindowClickListener<HotspotMarker>() {
        @Override
        public void onClusterItemInfoWindowClick(HotspotMarker hotspotMarker) {
            Log.e(LOG_TAG, "---onClusterItemInfoWindowClick");
            HotspotDetailActivity.hotspot = hotspotMarker.getHotspot();
            Intent intent = new Intent(getActivity(), HotspotDetailActivity.class);
            startActivity(intent);
        }
    });

    mClusterManager.setOnClusterClickListener(new ClusterManager.OnClusterClickListener<HotspotMarker>() {
        @Override
        public boolean onClusterClick(Cluster<HotspotMarker> cluster) {
            Log.e(LOG_TAG, "---OnClusterClickListener");
            return false;
        }
    });

    mClusterManager.setOnClusterInfoWindowClickListener(new ClusterManager.OnClusterInfoWindowClickListener<HotspotMarker>() {
        @Override
        public void onClusterInfoWindowClick(Cluster<HotspotMarker> cluster) {
            Log.e(LOG_TAG, "---onClusterInfoWindowClick"); …
Run Code Online (Sandbox Code Playgroud)

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

2
推荐指数
1
解决办法
2485
查看次数

使用谷歌地图工具从 url 渲染集群图标

我为每个集群项目使用动态图标,所以我有特殊的图标 url 和从 url 加载标记图标。我使用以下代码:

override fun onBeforeClusterItemRendered(item: T, markerOptions: MarkerOptions?) {

    super.onBeforeClusterItemRendered(item, markerOptions)
try {
    var url = URL("https://cdn3.iconfinder.com/data/icons/places/100/map_pin_big_1-128.png")
    Glide.with(context)
        .asBitmap()
        .load(url)
        .into(object : CustomTarget<Bitmap>() {
            override fun onLoadCleared(placeholder: Drawable?) {
            }

            override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
                markerOptions?.icon(BitmapDescriptorFactory.fromBitmap(resource))
            }

        })

} catch (ex: Exception) {
    Log.e("map", ex.toString())
}
Run Code Online (Sandbox Code Playgroud)

}

在我的情况下,某些图标仍然默认,放大后有时会更改缩小图标。问题是此代码不适用于每个集群项,缩放更改的集群图标也更改后,它可能会呈现我的自定义图标并可能使用默认值。

在此处输入图片说明

在此处输入图片说明

android google-maps markerclusterer android-maps-utils android-glide

2
推荐指数
1
解决办法
541
查看次数

带有毕加索的谷歌地图集群项目标记图标

我将 Google Map SDK 7.3.0 与 android-maps-utils 0.3.4 一起使用,因为我需要为地图上的标记创建集群。

我的地图

好的,所以问题是,我不应该有红色标记。只有绿色+蓝色标记。我子类化DefaultClusterRenderer以创建我的自定义标记视图,但有时它不起作用。

我正在使用 picasso 来获取绿色图标,因为它来自 API。但问题是,当毕加索加载位图时为时已晚,图标已经设置为默认的(红色)。

这是我的 onBeforeClusterItemRenderer :

            Picasso.with(getApplicationContext()).load(item.url).into(new Target() {
            @Override
            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                FrameLayout icon = (FrameLayout) LayoutInflater.from(getApplicationContext()).inflate(R.layout.marker, null);
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
                    icon.findViewById(R.id.bg).setBackground(new BitmapDrawable(getResources(), bitmap));
                } else {
                    icon.findViewById(R.id.bg).setBackgroundDrawable(new BitmapDrawable(getResources(), bitmap));
                }


                Bitmap b = createDrawableFromView(Home.this, icon);

                if (marker != null) {
                    marker.icon(BitmapDescriptorFactory.fromBitmap(b));
                }
            }

            @Override
            public void onBitmapFailed(Drawable errorDrawable) {

            }

            @Override
            public void onPrepareLoad(Drawable placeHolderDrawable) {

            }
        });
Run Code Online (Sandbox Code Playgroud)

android google-maps android-maps-utils

1
推荐指数
1
解决办法
4094
查看次数