如何从谷歌片addMarker到谷歌应用程序脚本
问题描述:
我曾在谷歌片两个栏,包含经度和纬度, 我用下面的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');
答
我不能” 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()));
}
答
您需要大约+标记+引号。这是您可以运行的测试。检查 日志结果。
谢谢你,埃德尼尔森 但它返回,只有串 和不谷歌地图的返回图像。
谢谢你,埃德纳尔逊。但它只返回字符串!和不返回地图:( –