在谷歌网站上创建的网站上的Google Maps Javascript API

时间:2017-04-27 12:04:04

标签: javascript html mysql

我想了解如何将以下代码添加到Google网站并进行修改,以便将数据保存到Google电子表格而不是MySQL数据库中。

我想学习如何做的两部分是:

  1. 当我尝试在html框中插入代码时,我一直在google网站上收到此错误“(无法加载外部网址js?key = YOUR%5fAPI%5fKEY& callback = initMap)”

  2. 如何修改代码以将其链接到Google Spredsheet而不是MySQL数据库。

  3. 干杯

    <!DOCTYPE html >
      <head>
        <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
        <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
        <title>From Info Windows to a Database: Saving User-Added Form Data</title>
        <style>
          /* Always set the map height explicitly to define the size of the div
           * element that contains the map. */
          #map {
            height: 100%;
          }
          /* Optional: Makes the sample page fill the window. */
          html, body {
            height: 100%;
            margin: 0;
            padding: 0;
          }
        </style>
      </head>
      <body>
        <div id="map" height="460px" width="100%"></div>
        <div id="form">
          <table>
          <tr><td>Name:</td> <td><input type='text' id='name'/> </td> </tr>
          <tr><td>Address:</td> <td><input type='text' id='address'/> </td> </tr>
          <tr><td>Type:</td> <td><select id='type'> +
                     <option value='bar' SELECTED>bar</option>
                     <option value='restaurant'>restaurant</option>
                     </select> </td></tr>
                     <tr><td></td><td><input type='button' value='Save' onclick='saveData()'/></td></tr>
          </table>
        </div>
        <div id="message">Location saved</div>
        <script>
          var map;
          var marker;
          var infowindow;
          var messagewindow;
    
          function initMap() {
            var california = {lat: 37.4419, lng: -122.1419};
            map = new google.maps.Map(document.getElementById('map'), {
              center: california,
              zoom: 13
            });
    
            infowindow = new google.maps.InfoWindow({
              content: document.getElementById('form')
            })
    
            messagewindow = new google.maps.InfoWindow({
              content: document.getElementById('message')
            });
    
            google.maps.event.addListener(map, 'click', function(event) {
              marker = new google.maps.Marker({
                position: event.latLng,
                map: map
              });
    
    
              google.maps.event.addListener(marker, 'click', function() {
                infowindow.open(map, marker);
              });
            });
          }
    
          function saveData() {
            var name = escape(document.getElementById('name').value);
            var address = escape(document.getElementById('address').value);
            var type = document.getElementById('type').value;
            var latlng = marker.getPosition();
            var url = 'phpsqlinfo_addrow.php?name=' + name + '&address=' + address +
                      '&type=' + type + '&lat=' + latlng.lat() + '&lng=' + latlng.lng();
    
            downloadUrl(url, function(data, responseCode) {
    
              if (responseCode == 200 && data.length <= 1) {
                infowindow.close();
                messagewindow.open(map, marker);
              }
            });
          }
    
          function downloadUrl(url, callback) {
            var request = window.ActiveXObject ?
                new ActiveXObject('Microsoft.XMLHTTP') :
                new XMLHttpRequest;
    
            request.onreadystatechange = function() {
              if (request.readyState == 4) {
                request.onreadystatechange = doNothing;
                callback(request.responseText, request.status);
              }
            };
    
            request.open('GET', url, true);
            request.send(null);
          }
    
          function doNothing () {
          }
    
        </script>
        <script async defer
        src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
        </script>
      </body>
    </html>
    

1 个答案:

答案 0 :(得分:0)

您只需要在src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">行上替换“YOUR_API_KEY” 使用您生成的api密钥。没什么太难的,甚至在文档上都说过