Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

GASでスプレッドシートにマップ画像を表示したい

GASでスプレッドシートから緯度経度を読み込んでピンを立てたマップ画像をシート上に表示したいです。
コード自体にエラーは出ていないのですが、表示されるマップにピンが立たず、エラーが出ています。
解決方法を教えて下さい。

参考にしたサイト
https://myfunc.jp/items/00118/index.html

発生している問題・エラー

スクリーンショット 2023-09-25 18.26.39.png

ソースコード

function generateStaticMaps() {
  var mapSheet = ss.getSheetByName("マップ");
  // 緯度経度の値を取得する
  let values = targetSheet.getRange(11, 1, numRowsToClear, targetSheet.getLastColumn()).getValues();
  
  // 静的な地図を生成する
  let map = Maps.newStaticMap();
  map.setLanguage('ja')
  map.setSize(900, 900);
  map.setZoom(10);
  map.setCenter(35.719577, 139.712553);
  
  // 緯度経度の数だけマーカーを立てていく
  for (let i = 1; i < values.length; i++) {
    map.setMarkerStyle(Maps.StaticMap.MarkerSize.MID, Maps.StaticMap.Color.RED, i + 1);
    // 緯度経度をもとにマーカーをセット
    map.addMarker({ lat: values[i][3], lng: values[i][4] });
  }
  
  mapSheet.insertImage(map, values.length, 1);
}

valuesから緯度経度の値は正しく取得できていました
よろしくお願い致します。

0 likes

1Answer

addMarkerメソッドのArgumentsは、latitude, longitudeのようですので、次のような修正を試してください。 Ref

From

map.addMarker({ lat: values[i][3], lng: values[i][4] });

To

map.addMarker(values[i][3], values[i][4]);

この場合、values[i][3]values[i][4]の値は、それぞれ有効なlatitude, longitudeであると想定しています。ご注意ください。

1Like

Comments

  1. ありがとうございます!!
    解決いたしました!!

Your answer might help someone💌