谷歌地图api全屏

时间:2013-06-12 13:46:53

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

您好我正在开发一个项目,该项目需要特定的全屏谷歌地图才能位于页眉和页脚之间。我确定答案很简单,但我想我还是会问。该项目包含一个表单,用户可以在填写地址后删除标记等,不确定是否有任何自定义可能会受到干扰......

过去我使用谷歌地图API时,通常只是将css高度更改为100%,但出于某种原因而不是改变大小,它会完全删除地图。

#map {
height:500px;
width:1200px;
}

这是代码。

var map;
var marker;
var Longitude = -1.8822221000000354;
var Latitude = 50.72569620000001;
var zoom = 20;
var bounds = new google.maps.LatLngBounds();
var markers;
var new_marker;
var C;
var popupbubblepath = <%= this.popupbubble.ToString() %>;
var infowindow = new google.maps.InfoWindow();
var ib;

function LoadMap() {

    // Create an array of styles.
    var styles = [
        {
            stylers: [
                { saturation: -100 }, { lightness: -100 }
            ]
        },{
            featureType: "all",
            elementType: "all",

        }
    ];

    // Create a new StyledMapType object, passing it the array of styles,
    // as well as the name to be displayed on the map type control.
    //var styledMap = new google.maps.StyledMapType(styles, {name: "Styled Map"});

    var myOptions = {
        zoom: zoom,
        center: new google.maps.LatLng(Latitude, Longitude),
        mapTypeControl: false,
        scaleControl: false,
        streetViewControl: true,
        overviewMapControl: false,
        zoomControl: true,
        mapTypeControlOptions: {
            style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,
            position:google.maps.ControlPosition.LEFT_BOTTOM 
        },
        zoomControlOptions: {
            style: google.maps.ZoomControlStyle.SMALL
        },
        panControl: false,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }

    map = new google.maps.Map(document.getElementById("map"), myOptions);

5 个答案:

答案 0 :(得分:5)

使用绝对定位设置顶部,左侧,底部,右侧的vaules,看看http://alistapart.com/article/conflictingabsolutepositions

#map-canvas{
    position: absolute;
    top: 100px;
    left: 0;
    bottom: 100px;
    right: 0;
}

现在将窗口拖到您心中的内容,并观看您的地图保持全尺寸。做响应式设计时也很棒。

答案 1 :(得分:3)

问题在于您的HTML不是使用您的JavaScript。尝试以下

<div id='wrapper'>
     <div id='header'>header stuff<div>
     <div id='map-canvas'></div>
     <div id='footer'>footer stuff<div>
</div>

添加以下css

html, body, #wrapper{
    height: 100%;
    width: 100%;
}
#header{
    height: 100px; //or whatever. Note px not %.
    width: 100%;
}
#footer{
    height: 100px; //or whatever. Note px not %.
    width: 100%;
}
#map-canvas{
    height: 100%;
    width: 100%;
    margin-top: 100px;
    margin-bottom: 100px;

}

我还没有机会对此进行测试,但这可以让您了解需要做些什么。

答案 2 :(得分:3)

Google Maps API文档explain this effect rather neatly

  

请注意,在quirks模式下工作的某些CSS在标准模式下无效。具体而言,所有基于百分比的大小都必须从父块元素继承,如果这些祖先中的任何一个未能指定大小,则假定它们的大小为0 x 0像素。

答案 3 :(得分:0)

我认为问题不在于地图,而在于包含div。如果将div的高度设置为100%,请确保所有包含div的高度都已定义。您可以通过在div周围放置边框来判断这是否是问题,您可能会看到高度是问题。

如果你可以让我们玩它,会更容易解决。

答案 4 :(得分:0)

如果您希望空白div占据所有屏幕的高度,则必须定义min-height值,如下所示:

html, body {
    height: 100%;
}

#map {
    min-height: 100%; 
}

但同样,这与“google-maps-api-3”......

无关