Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 马克赢了';我的谷歌硬盘坐标无法在GMAP上显示_Html_Google Maps_Google Drive Api - Fatal编程技术网

Html 马克赢了';我的谷歌硬盘坐标无法在GMAP上显示

Html 马克赢了';我的谷歌硬盘坐标无法在GMAP上显示,html,google-maps,google-drive-api,Html,Google Maps,Google Drive Api,我在谷歌硬盘上有一个电子表格,上面有全球各个城市的“名称”、“Lat”、“Lng”和“Pop”。我使用以下脚本创建了一个DoGet函数: var SPREADSHEET_ID = '0ArgTJt0LQs91dFNXNnk1ZXVjTlE0SmE1MVFpTE5GQUE'; var SHEET_NAME = 'Data'; function doGet(request) { var range = SpreadsheetApp.openById(SPREADSHEET_ID).getS

我在谷歌硬盘上有一个电子表格,上面有全球各个城市的“名称”、“Lat”、“Lng”和“Pop”。我使用以下脚本创建了一个DoGet函数:

var SPREADSHEET_ID = '0ArgTJt0LQs91dFNXNnk1ZXVjTlE0SmE1MVFpTE5GQUE';
var SHEET_NAME = 'Data';

function doGet(request) {
    var range = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(SHEET_NAME).getDataRange();
    var values = range.getValues();
    var cities = [];

    for (var i = 1; i < values.length; i++) 
    {
        var city = {
            name: values[i][0],
            latlng: [values[i][1], values[i][2]],
            population: values[i][3]
        };
        cities.push(city);
    }

    var json = Utilities.jsonStringify(cities);

    if (request && request.parameters) {
        var callback = request.parameters.jsonp;
        if (callback) {
            json = callback + '(' + json + ')';
        }
    }
    return ContentService.createTextOutput(json).setMimeType(ContentService.MimeType.JSON);
}
var电子表格_ID='0ArgTJt0LQs91dFNXNnk1ZXVjTlE0SmE1MVFpTE5GQUE';
var表_名称='数据';
函数doGet(请求){
var range=SpreadsheetApp.openById(电子表格ID).getSheetByName(表格名称).getDataRange();
var values=range.getValues();
var cities=[];
对于(变量i=1;i
然后,我使用以下URL部署为web应用程序:

下面是带有我的数据服务url的脚本。只有地图会显示,没有标记

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>My Awesome Map</title>

    <style>
      html, body {
        margin: 0;
        padding: 0;
        width: 100%;
        height: 100%;
      }

      #map_canvas {
        width: 100%;
        height: 100%;
      }
    </style>

    <script src="https://maps.google.com/maps/api/js?sensor=false"></script>

    <script>
       var DATA_SERVICE_URL = "https://script.google.com/macros/s/AKfycbwZyZI0saAdAruEYtvKDb0r1WofVfVzi7XIi6YQzq0s4BJqhnDZ/exec?jsonp=callback";

      var map;

      function initialize() {
        map = new google.maps.Map(document.getElementById('map_canvas'), {
          center: new google.maps.LatLng(0, 0),
          zoom: 2,
          maxZoom: 20,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        });

        var scriptElement = document.createElement('script');
        scriptElement.src = DATA_SERVICE_URL;
        document.getElementsByTagName('head')[0].appendChild(scriptElement);
      }

      function callback(data) {
        for (var i = 0; i < data.length; i++) {
          var marker = new google.maps.Marker({
            position: new google.maps.LatLng(data[i][3], data[i][2]),
            map: map
          });
        }
      }
    </script>
  </head>

  <body onload="initialize()">
    <div id="map_canvas"></div>
  </body>
</html>

我很棒的地图
html,正文{
保证金:0;
填充:0;
宽度:100%;
身高:100%;
}
#地图画布{
宽度:100%;
身高:100%;
}
var数据\服务\ URL=”https://script.google.com/macros/s/AKfycbwZyZI0saAdAruEYtvKDb0r1WofVfVzi7XIi6YQzq0s4BJqhnDZ/exec?jsonp=callback";
var映射;
函数初始化(){
map=new google.maps.map(document.getElementById('map_canvas'){
中心:新google.maps.LatLng(0,0),
缩放:2,
maxZoom:20,
mapTypeId:google.maps.mapTypeId.ROADMAP
});
var scriptElement=document.createElement('script');
scriptElement.src=数据\服务\ URL;
document.getElementsByTagName('head')[0].appendChild(scriptElement);
}
函数回调(数据){
对于(变量i=0;i
数组索引以0开头,创建标记位置时使用了错误的项

这对我很有用:

    function callback(data) {
      //note: i is set to 1, because the first row contains the column-names
      for (var i = 1; i < data.length; i++) {
        var marker = new google.maps.Marker({
          position: new google.maps.LatLng(data[i][1], data[i][2]),
          title:data[i][0],
          map: map
        });
      }      
    }
函数回调(数据){
//注意:i设置为1,因为第一行包含列名
对于(变量i=1;i
感谢您的快速反应,但在应用更改后,它仍然不起作用。您提供的脚本的Mime类型错误(必须是JAVASCRIPT而不是JSON),大多数浏览器在提供错误的Mime类型时都不会执行脚本。我在Chrome和IE中尝试了JSON Mime类型。我使用的教程说它必须是JSON@2:38,我如何才能使它工作或将其更改为Java,这样它将自动显示我在Gdrive中输入的坐标的标记?教程不正确,MIME类型必须是
text/javascript
。例如,在chrome中会出现以下错误:拒绝从[script url]执行脚本,因为其MIME类型(“应用程序/json”)不可执行,并且启用了严格的MIME类型检查。要发送正确的MIME类型,请使用
.setMimeType(ContentService.MimeType.JAVASCRIPT)
Demo和正确的MIME类型:注意:不要在脚本中使用演示中的脚本URL,它是我自己的宏,不会反映电子表格中的更改。