【问题标题】:How to switch between two custom JSON mapStyles in google map Android SDK如何在谷歌地图 Android SDK 中的两个自定义 JSON mapStyles 之间切换
【发布时间】:2020-01-21 19:27:05
【问题描述】:

使用谷歌地图样式文档,我已经能够在 JSON 中创建一个样式并使用它。但是我想通过单击一个按钮在两种自定义地图样式之间切换。该按钮是一个 ImageView,我将附加一个 onclick 侦听器。

JAVA

try {
            boolean success = googleMap.setMapStyle(
                    MapStyleOptions.loadRawResourceStyle(
                            this, R.raw.mystyle.json));

            if (!success) {
                Log.e(TAG, "Style parsing failed.");
            }
        } catch (Resources.NotFoundException e) {
            Log.e(TAG, "Can't find style. Error: ", e);
        }

XML

 <ImageView 
    android:id="@id/change_map"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />


【问题讨论】:

  • 这应该对你有帮助:stackoverflow.com/questions/25803727/…
  • 嗨@Emin Guliev!谢谢你。我知道如何在 setOnClickListener 上使用,但如何在 Android 中的两个地图样式资源之间切换是个问题。如果您有一个有效的示例实现,您可以帮助分享它。

标签: android google-maps


【解决方案1】:

点击按钮即可更改地图样式。 只需添加以下代码:

boolean isMapStyleOne=false;

@Override
public void onClick(View v) {
    switch (v.getId())
    {
        case R.id.change_map:{
            if(isMapStyleOne) {
                googleMap.setMapStyle(
                        MapStyleOptions.loadRawResourceStyle(
                                requireContext(), R.raw.map_styles_1));
                isMapStyleOne=false;
            } else{
                googleMap.setMapStyle(
                        MapStyleOptions.loadRawResourceStyle(
                                requireContext(), R.raw.map_styles_2));
                isMapStyleOne=true;
            }
        }
    }

}

希望这会有所帮助!

【讨论】:

  • 点击按钮效果很好,但加载的地图上的默认样式是谷歌的地图默认样式。
  • 然后在 onMapReady 方法中写入地图的默认样式。像这样 googleMap.setMapStyle(MapStyleOptions.loadRawResourceStyle(requireContext(), R.raw.map_styles_1));
  • 是的,这是我目前使用 setOnClickListener 之外的 try catch 来加载我喜欢的默认地图样式的方法。只是觉得可能会不一样。感谢您的帮助。
猜你喜欢
  • 2012-03-13
  • 1970-01-01
  • 2014-06-21
  • 2014-02-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-02
  • 2014-07-12
  • 1970-01-01
相关资源
最近更新 更多