【问题标题】:Getting an error on with my code on apps script我的应用程序脚本代码出错
【发布时间】:2022-11-18 01:10:33
【问题描述】:

Not Defined Error

我正在使用 SpreadsheetApp 显示电子表格半径范围内的位置,但出现此错误。有人可以帮助我解决我的代码中的错误以修复此错误吗?

下面是我在 Index.html 文件中使用谷歌表格应用程序脚本的代码:

<!DOCTYPE html>
<html>
<head>
    <title>Draw Circles using Google Map API</title> 
    <script src="https://maps.google.com/maps/api/js?key=AIzaSyArRKMKMbDrCz1h1KKpKbfqOfzNGfZiT_o"></script>
    <!--PLEASE NOTE: As of June 22 2016, Google Maps require an API key.
    * GET YOUR API KEY FROM ... https://developers.google.com/maps/documentation/javascript/get-api-key
    * ONCE YOU GET THE KEY, REPLACE 'js?sensor=false' IN THE ABOVE URL WITH "js?key=YOUR_NEW_API_KEY".--> 
</head>

<body>
    <div id="mapContainer" style="width:750px;height:350px;"></div>
</body>
</html>

<script>
  
    // LOCATION IN LATITUDE AND LONGITUDE. 
    function onFormSubmit(event) {
       var ss = SpreadsheetApp.getActiveSheet();
        // MAP ATTRIBUTES
        var center = new google.maps.LatLng(33.6608243, -84.4954219);
        var mapAttr = {
            center: center,
            zoom: 10,

            mapTypeId: google.maps.MapTypeId.ROADMAP
        };

        // THE MAP TO DISPLAY.
        var map = new google.maps.Map(document.getElementById("mapContainer"), mapAttr);
    

        var circle = new google.maps.Circle({
            center: center,
            map: map,
            radius: 16093.40,          // IN METERS.
            fillColor: '#FF6600',
            fillOpacity: 0.3,
            strokeWeight: 0,        // DON'T SHOW CIRCLE BORDER.
            content:'<h1>Atlanta Community Food FoodBank</h1>'
  
        });  

        var marker = new google.maps.Marker({
          position:{lat:33.6608243, lng:-84.4954219},
        map:map,
        icon: 'https://img.icons8.com/fluent/48/000000/marker.png',
        draggable: false
        });

        var information = new google.maps.InfoWindow({
          content: '<h4>Atlanta Community Food Bank</h4>'
        }); 

        marker.addListener('click', function() {
          information.open(map, marker);
        })

        var lastRow = ss.getLastRow();
        var markers = "coords:[{lat:"+ss.getRange('D2').getValue()+", "+"lng:"+ss.getRange('E2').getValue()+"}]";
        
        
     
        for(var i = 1; i < markers.length; i++){
          addMarker(markers[i]);
        }

        function addMarker(props){
          var marker = new google.maps.Marker({
            position:props.coords,
            map:map,
          })
        }

    }
   
    google.maps.event.addDomListener(window, 'load', onFormSubmit);
</script>
</html>

我想根据电子表格上的经纬度显示半径内外的位置

enter image description here

【问题讨论】:

  • onFormSubmit 是一个谷歌应用程序脚本服务器端事件。
  • SpreadsheetApp 也是如此

标签: google-apps-script google-sheets


【解决方案1】:

我建议您先替换以下代码行。或者干脆删除。

var ss = SpreadsheetApp.getActiveSheet();

// var ss = SpreadsheetApp.getActiveSheet();

其次替换以下代码。

var lastRow = ss.getLastRow();
var markers = "coords:[{lat:"+ss.getRange('D2').getValue()+", "+"lng:"+ss.getRange('E2').getValue()+"}]";
        
        
     
for(var i = 1; i < markers.length; i++){
  addMarker(markers[i]);
}

function addMarker(props){
  var marker = new google.maps.Marker({
     position:props.coords,map:map,
   })
}

function addMarker(props){
  var marker = new google.maps.Marker({
    position:props.coords,
    map:map,
  })
}

google.script.run.withSuccessHandler( 
  function(markers) {
    for(var i = 1; i < markers.length; i++) {
      addMarker(markers[i]);
    }
  }
).getMarkers();

并在服务器代码 Code.gs 中包含以下内容。

function getMarkers() {
  try {
    var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Name");
    var markers = [{lat:ss.getRange('D2').getValue(),lng:ss.getRange('E2').getValue()}];
    return markers;
  }
  catch(err) {
    console.log("Error in getMarkers: "+err);
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多