0

我曾在谷歌片兩個欄,包含經度和緯度, 我用下面的foramt:如何從谷歌片addMarker到谷歌應用程序腳本

var map=Maps.newStaticMap().setLanguage('en') 
     .beginPath() 
     .addMarker(lat, long) 
     .addMarker(lat1, long1) 
     .addMarker(lat2, long2) 
     .addMarker(lat3, long3) 
     .endPath().getAs('image/jpeg'); 

我想從讀谷歌表添加多addmarker ,

我在谷歌腳本中使用此代碼:

var app=SpreadsheetApp 
var ss= app.openById("1dNw5loVnxpBysrYC9t49vc5LRkOytSP23Blo-ny_oM"); 
var sheet2=ss.getSheetByName('Sheet2'); 
var lastRow2= sheet2.getLastRow(); 
var numRow=lastRow2-7; 
var marker= ""; 
for (var i=8;i<=lastRow2;i++){ 
marker=marker+".addMarker("+sheet2.getRange(i,1).getValue()+","+ sheet2.getRange(i,2).getValue()+")"; 
} 
marker=marker+"."; 

var map=Maps.newStaticMap().setLanguage('en').beginPath()+marker+endPath().getAs('image/jpeg'); 

標記輸出是這樣的:

.addMarker(32.645814,51.669745).addMarker(32.646284,51.66835).addMarker(32.645769,51.665775).addMarker(32.645769,51.665775).addMarker(32.645769,51.665775).addMarker(32.645769,51.665775).addMarker(32.647468,51.665443).addMarker(32.650087,51.665625).addMarker(32.652779,51.665893).addMarker(32.653032,51.665389).addMarker(32.653032,51.665389).addMarker(32.653032,51.665389).addMarker(32.653032,51.665389).addMarker(32.653493,51.66599).addMarker(32.653899,51.664413).addMarker(32.654812,51.665571).addMarker(32.656347,51.665582).addMarker(32.656808,51.66202).addMarker(32.656916,51.660207).addMarker(32.660204,51.660572).addMarker(32.663049,51.661119).addMarker(32.663302,51.661666).addMarker(32.663302,51.661666).addMarker(32.663302,51.661666). 

它時,我過去的標記輸出複製manuly在地圖變量工作:

var map=Maps.newStaticMap().setLanguage('en').setMarkerStyle(Maps.StaticMap.MarkerSize.TINY, Maps.StaticMap.Color.RED , '1').beginPath().addMarker(32.645814,51.669745).addMarker(32.646284,51.66835).addMarker(32.645769,51.665775).addMarker(32.645769,51.665775).addMarker(32.645769,51.665775).addMarker(32.645769,51.665775).addMarker(32.647468,51.665443).addMarker(32.650087,51.665625).addMarker(32.652779,51.665893).addMarker(32.653032,51.665389).addMarker(32.653032,51.665389).addMarker(32.653032,51.665389).addMarker(32.653032,51.665389).addMarker(32.653493,51.66599).addMarker(32.653899,51.664413).addMarker(32.654812,51.665571).addMarker(32.656347,51.665582).addMarker(32.656808,51.66202).addMarker(32.656916,51.660207).addMarker(32.660204,51.660572).addMarker(32.663049,51.661119).addMarker(32.663302,51.661666).addMarker(32.663302,51.661666).addMarker(32.663302,51.661666).endPath().getAs('image/jpeg'); 

BU它不工作時,我用這種形式:

var map=Maps.newStaticMap().setLanguage('en').beginPath()+marker+endPath().getAs('image/jpeg'); 

回答

0

我不能」 t得到一個變量來處理地圖以添加標記,但是,您可以循環添加標記到地圖。這個簡單的例子將所有latlong添加爲標記。我不知道你如何處理地圖。在我的示例中,我獲取了url並創建了一個返回到Sheet4的超鏈接,您可以單擊以查看結果。

function multiMarker() { 
var map = Maps.newStaticMap() 
     .setSize(600, 600) 
     .setCenter('32.647468,51.665443'); 
var ss=SpreadsheetApp.getActiveSpreadsheet() 
var s=ss.getSheetByName("Sheet2") 
var lr= s.getLastRow(); 
var rng=s.getRange(2, 1, lr-1, 2).getValues() 
for (var i=0;i<=rng.length-1;i++){ 
    map.addMarker(rng[i][0],rng[i][1]) 
} 
map.getAs('image/jpeg'); 
    var url=map.getMapUrl(); 
    var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet4').getRange("A1").setValue(url); 
    var app = UiApp.createApplication().setTitle('No Title'); 
    app.add(app.createImage(map.getMapUrl())); 
    } 
+0

謝謝你,埃德納爾遜。但它只返回字符串!和不返回地圖:( –

0

您需要大約+標記+引號。這是您可以運行的測試。檢查 日誌結果。

謝謝你,埃德尼爾森 但它返回,只有串 和不穀歌地圖的返回圖像。

相關問題