如何禁用谷歌地图上的交通层?

Posted

技术标签:

【中文标题】如何禁用谷歌地图上的交通层?【英文标题】:How can I disable transit layer on Google Maps? 【发布时间】:2019-11-30 09:41:36 【问题描述】:

在 Google 地图中,交通图层默认显示。我希望能够禁用它,就像在谷歌地图应用程序中一样。

我找不到这样做的选项。我已经看到了交通、室内、建筑物的选项,但没有公交或自行车层的选项。

【问题讨论】:

“中转层”是指公共交通站点还是别的什么? 运输层是指地图上显示的地铁/地铁轨道 你可以使用map styling。 【参考方案1】:

它不能被禁用,但可以隐藏起来,见:Hiding Map Features with Styling。

您只需要找出要设置哪个featureType 的样式...

transit                 // selects all transit stations and lines.
transit.line            // selects transit lines.
transit.station         // selects all transit stations.
transit.station.airport // selects airports.
transit.station.bus     // selects bus stops.
transit.station.rail    // selects rail stations.

【讨论】:

哇,这太棒了。我在这里创造了一种新的风格。 mapstyle.withgoogle.com 从来不知道这是可能的。这对我来说是一个游戏规则改变者!谢谢你马丁!【参考方案2】:

您可以通过custom map style 隐藏中转层(中转标记)。您可以使用wizard 创建您自己的带有隐藏交通标记的地图样式:

然后将 JSON 复制粘贴到 map_style.xml 文件到项目的 raw 文件夹中:

然后将地图样式应用于您的地图:

@Override
public void onMapReady(GoogleMap googleMap) 
    mGoogleMap = googleMap;

    try 
        // Customise the styling of the base map using a JSON object defined
        // in a raw resource file.
        boolean success = mGoogleMap.setMapStyle(
                MapStyleOptions.loadRawResourceStyle(
                        this, R.raw.map_style));

        if (!success) 
            Log.e(TAG, "Style parsing failed.");
        
    ...

【讨论】:

以上是关于如何禁用谷歌地图上的交通层?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用markerwithlabel隐藏或禁用谷歌地图上的默认标记

如何通过叠加层检测谷歌地图上的点击事件?

禁用谷歌地图 api 上的滚动和地图/卫星选项?

首次加载android后如何禁用谷歌地图当前位置跟踪

Android 谷歌地图标记禁用导航选项

谷歌地图传递样式并在移动设备上禁用滚动