如何在Visual Studio Web表单中使用Google Maps?

堆垛机

请注意,对于这个问题,我从下面的代码中删除了我的API密钥,并替换为API_KEY,但是在我测试的代码中,我已经安装了密钥

我在Google Developers Console中生成了一个API密钥(似乎您不需要它来完成我想做的事情,但是无论如何我都得到了它,无论是否使用它都可以尝试,但这没什么区别)。我访问了Google Maps JavaScript API v3“入门”页面,按照说明进行操作,并将此代码复制到Notepad ++中,另存为.html文件,当我在浏览器中打开它时,它可以正常工作:

    <!DOCTYPE html>
    <html>
      <head>
        <style type="text/css">
          html, body, #map-canvas { height: 100%; margin: 0; padding: 0;}
        </style>
        <script type="text/javascript"
          src="https://maps.googleapis.com/maps/api/js?key=API_KEY">
        </script>
        <script type="text/javascript">
          function initialize() {
            var mapOptions = {
              center: { lat: -34.397, lng: 150.644},
              zoom: 8
            };
            var map = new google.maps.Map(document.getElementById('map-canvas'),
                mapOptions);
          }
          google.maps.event.addDomListener(window, 'load', initialize);
        </script>
      </head>
      <body>
    <div id="map-canvas"></div>
      </body>
    </html>

我想让Google Maps在我使用C#在Visual Studio(2013 Premium)中制作的Web应用程序中工作。我尝试创建一个新的空项目,添加一个Web表单,然后在适当的区域中从上面添加了代码。但是,当我在Chrome或Firefox中进行测试时,浏览器中没有任何内容,而VS中没有任何错误。这是在Visual Studio中的外观:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication18.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
      html, body, #map-canvas { height: 100%; margin: 0; padding: 0;}
    </style>
    <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key=API_KEY">
    </script>
    <script type="text/javascript">
      function initialize() {
        var mapOptions = {
          center: { lat: -34.397, lng: 150.644},
          zoom: 8
        };
        var map = new google.maps.Map(document.getElementById('map-canvas'),
            mapOptions);
      }
      google.maps.event.addDomListener(window, 'load', initialize);
    </script>
</head>

<body>
    <form id="form1" runat="server">
    <div id="map-canvas">
    </div>
    </form>
</body>
</html>

有什么想法我在这里做错了吗?

编辑这是我右键单击并在Chrome浏览器窗口中选择“查看源代码”时的代码:

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>

</title>
    <style type="text/css">
      html, body, #map-canvas { height: 100%; margin: 0; padding: 0;}
    </style>
    <script type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?key=API_KEY">
    </script>
    <script type="text/javascript">
      function initialize() {
        var mapOptions = {
          center: { lat: -34.397, lng: 150.644},
          zoom: 8
        };
        var map = new google.maps.Map(document.getElementById('map-canvas'),
            mapOptions);
      }
      google.maps.event.addDomListener(window, 'load', initialize);
    </script>
</head>

<body>
    <form method="post" action="WebForm1.aspx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="hi2L1ymHDf4m8B8t0C7bGUHkzJoVY/TtxD8fMRwrGdRBRFyxRBkyp57WUnHCMItu0mDNlYrYGkHtWKhgOW3lB5fBBg4iLd5t9cqMKP5h3yg=" />
</div>

    <div id="map-canvas">
    </div>

<div class="aspNetHidden">

    <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="C687F31A" />
</div></form>

<!-- Visual Studio Browser Link -->
<script type="application/json" id="__browserLink_initializationData">
    {"appName":"Chrome","requestId":"dd8420e975b84211bfc48926bc521058"}
</script>
<script type="text/javascript" src="http://localhost:57972/92ec7b1e9f6b45d880f3def8ac954bae/browserLink" async="async"></script>
<!-- End Browser Link -->

</body>
</html>
詹姆斯·冈特

在.aspx版本中,您的webforms表单元素是一个block元素,但是因为里面除了地图画布之外没有其他东西,它具有百分比高度,因此表单的高度为0(即0的100%仍为0)。

添加form { height: 100%; }到CSS,地图应该可见。

通过在地图画布上设置固定高度而不是百分比高度,可以达到类似的效果。

顺便说一句-您的密钥在第3个代码块中可见-我对其进行了编辑,但仍将保留在历史记录中,因此,如果您担心的话,我会生成一个新密钥。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章