在主页面中的Web内容表单中的谷歌地图

时间:2011-09-22 01:31:28

标签: c# asp.net google-maps

我正在尝试将简单的Google地图添加到我的网页内容表单(使用母版页),但没有任何显示,我没有收到任何明显的错误

<%@ Page Title="" Language="C#" MasterPageFile="~/Site1.Master" AutoEventWireup="true" CodeBehind="ShelterMap.aspx.cs" Inherits="ShelterExpress.ShelterMap" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<style type="text/css"> 
  #map_canvas { height: 100% } 
</style> 

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js "></script> 
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script> 
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

<div id="map_canvas" style="width:100%; height:100%"></div> 

<script type="text/javascript">
    $(document).ready(function() {
        var latlng = new google.maps.LatLng(-34.397, 150.644);
        var myOptions = {
            zoom: 8,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    });
</script>

</asp:Content>

3 个答案:

答案 0 :(得分:7)

您需要设置宽度和高度明确度,而不是100%。 删除<style></style>代码,然后设置<div id="map_canvas" style="width: 300px; height: 300px">

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js "></script>
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <div id="map_canvas" style="width: 300px; height: 300px">
    </div>
    <script type="text/javascript">
        $(document).ready(function () {
            var latlng = new google.maps.LatLng(-34.397, 150.644);
            var myOptions = {
                zoom: 8,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };
            var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
        }); 
    </script>
</asp:Content>

enter image description here

答案 1 :(得分:2)

地图正在加载但是一旦加载就有一个0px高度div因为(没有看到因为你没有发布母版页代码)我想你没有将html body标签设置为100%高度为以及html标签。

它变得混乱,无法计算出自己的高度,因此你最终得到的地图应该是零高度div。

尝试将#map_canvas设置为具有固定高度(例如600px)或同时制作身体和放大器。 html属性也有100%高度的css规则。

应该解决问题。

答案 2 :(得分:1)

<div id="map_canvas" style="position:absolute;top:0;bottom:0;left:0;right:0;">
</div>