我可以隐藏Google地图的默认“退出街景按钮”吗?

时间:2015-09-22 08:09:11

标签: google-maps google-maps-api-3

Google地图文档提供了StreetViewPanorama的一些自定义功能。但是,我使用的是常规Google地图Map,但可以选择转到街景视图,因为StreetViewControl选项已启用。

用户进入我的Google地图上的街景视图后,街景视图会显示默认控件:右上角的全屏按钮和左上角有地址的后退按钮。但这是我的用户不太直观地理解的东西(坦白说我不怪他们)。我需要一种隐藏这些控件的方法,所以我可以替换自己的按钮。

我熟悉检测用户何时进入街景视图,并且我知道如何显示按钮以退出街景视图。我不知道的是,我可以隐藏Google默认的“后退”按钮吗?我已经尝试将StreetViewControl对象的属性直接用于我的Map对象初始化,但它不起作用;这是可以理解的,因为一些选项名称会发生​​冲突。

根据请求,这是显示地图的代码,并显示/隐藏退出街景的我的按钮:

// Create a map object and specify the DOM element for display.
map = new google.maps.Map(document.getElementById('map'), {
    center: this.mapCenter,
    scrollwheel: true,
    scaleControl: false,
    overviewMapControl: false,
    zoom: this.zoom
});

// Show the button for exiting Street View when Street view is entered
google.maps.event.addListener(map.getStreetView(), 'visible_changed', function(){
    if(this.getVisible() == true) {
        document.getElementById("exitStreetViewButton").style.display = "block";
    } else {
        document.getElementById("exitStreetViewButton").style.display = "none";
    }
});

这是退出按钮执行退出街景的代码:

map.getStreetView().setVisible(false);

3 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。禁用UI不起作用,退出按钮是唯一的元素(除了底部的合法内容)仍然存在。

就文档而言,没有办法删除它。我使用css隐藏了它:

.gm-iv-container {
    display: none;
}

答案 1 :(得分:1)

查看StreetViewPanoramaOptions

尝试使用disableDefaultUI选项。您可以将其设置为true以禁用默认UI,然后根据需要单独启用某些控件。

var panoramaOptions = {
    disableDefaultUI: true
};

JSFiddle demo

修改

如果您需要,也可以这样做:

var panorama = map.getStreetView();
panorama.setOptions(panoramaOptions);

答案 2 :(得分:0)

您可以使用此选项:

class ServiceProvider extends \Illuminate\Support\ServiceProvider
{
    public function boot(Factory $view)
    {
        $view->composer('template::name', ProfileComposer::class);
    }
}