【bubble】JavascriptでJSONデータをループ処理で作成したい[mapbox, GeoJSON]

1.実装したい機能

Mapのサービス(今回はMappBox※)で、データテーブルからGeoJSON作成し、複数のマーカーを地図上に立てたい。
※Mapboxは、google map APIと同等の考え方でOK。

2.前提条件

・html内でjavascriptを走らせる。
・データテーブルに必要なプロパティを保存済み。
・API連携はすでにできている
・cssのマーカー作りも問題なし。

3.1.発生している問題-大枠

①ループ処理でGEOJSONデータを作成していくことが出来ない
特に「JSON内のJSONを作成する」ところで行き詰まっている
②ループ処理内の各array?の中にbubble内データベースのレコードを変数としてぶち込む。

3.2.想定している手順と出来ているところ

◯→出来てる、×→出来てない、★問題部分

  1. [◯・フロント] htmlの設置、CSSのクラスをheaderに追加
  2. [◯・html内]
    タグのセット
  3. [◯・html内] 内に以下の設置
    ・3.1.[◯]API元のaccessToken = private key
    ・3.2.[★]GeoJSONデータを置く
    ・[ver.1-◯] JSONデータのベタ打ちでやる
    ・[ver.2-×] JSONデータをbubbleのカラムを使ってループ処理で作成する
    'features'内のJSONデータをループ処理で作成していきたい。
    ・3.3.[◯]上記GeoJSONごとに、ループ処理でクラスやプロパティ(タップ時の遷移URL)を追加

3.3. 上記「3.2.[ver.1]」で出来てること

JSONデータのベタ打ちはこちら。
featuresの中身が地図のマーカーを置きたいとこのリストになる。

const geojson = {
'type': 'FeatureCollection',
'features': [
{
'type': 'Feature',
'geometry': {
'type': 'Point',
'coordinates': [139.695473, 35.670871]//経度・緯度。ここも苦戦しそう
     }//つまりJSON内にさらに下階層ある。 "features[i].geometry.type: 'Point',"的な...?
   }, //{この後、このfeature[i]が続く}
 ]
}

3.4. 上記「3.2.[ver.2]」で考えたこと

stringデータをJSON化(stringify)し、読める形(parse)する?
といいつつ、JSON化でも苦戦してる。
parse不要?そもそもこの方法が間違っている説もある。

const geojson = JSON.stringify(
'type': 'FeatureCollection',
'features': 
 var datasets = "ここにbubble内データのsearch forしたカラム";
  for ( var =i,i<=datasets.length, i++){
  var keido = datasets[i].keido //ここにSQLでいうselect 経度カラムの数字を入れる
  var ido = datasets[i].ido //ここにSQLでいうselect 緯度カラムの数字を入れる
  'type': 'Feature',
  'geometry': {
      'type': 'Point',
      'coordinates': [[keido], [ido]]//上記のvarの値をセット
    }
  }
)

var Geodata = JSON.parse(geojson); //これいる...?最初なかったぞ。Features内のJSONをJSON.stringifyすべき?

###4.スクリーンショット
*できれば、全体が分かるようにスクリーンショットを載せてもらえれば助かります。

  1. 出来てるやつ (JSONデータ部分)

補足情報 (調べたURL/参考になりそうな事例)

  1. MapBoxのexample (ループなし。Ver1のもの)
    出来てる部分はここからほぼコピペ。
    Add custom icons with Markers | Mapbox GL JS | Mapbox

2.MapboxのJSONデータ複数のものを直接管理画面にぶち込むチュートリアル&動画。
まぁ、上記出来てるJSONデータの羅列ですね。

  1. GeoJSON作成(stringify)のstackoverflow
    活かせてないがありえる。
    javascript - Cannot "stringify" geoJSON data - Stack Overflow

  2. 上記2内のベタ打ちverのJSONデータ
    JS Bin - Collaborative JavaScript Debugging

実装サンプルをまま作る時間がないのでヒントだけでも。

javascriptで配列を含んだオブジェクトをそのまま作成し、それをJSON.stringifyでJSONにすることでやりたきことができると思います。

下記のような構造かと

const js_array = []
js_array.push({key1 : "aaa"}) // ここはループで任意に追加

const js_json = {
  id: "aaa",
  value: "bbb",
  jsonarray: js_array
}

const json =JSON.stringify(js_json)
「いいね!」 2

わぁぁぁ…!!ヒントだけでもめちゃありがたいです…泣泣泣
やはり変数[]にJSONデータを作って、そこにpushで追加して、stringifyですね…!
ちょっとまだ数クッションある気がしますが試してみます!
取り急ぎお礼を…!!🙇‍♂️

P.S.不明点②…array内のループは、落ち着いたらイメージついた気がするので、ここだけでも助かります><

メモがてら②の方は大丈夫な気がしたので、上記試してみます…!

search for {テーブル名}:format as text {Key1:"{this テーブル名'カラム1"}...}
「いいね!」 2

こちら、無事に解決しました!!!
まさかの、stringifyが不要だったのですが、
pushで追加していく形がとても参考になりました!

push内容はそれごとに変数を定義する形にしましたが汗

ちょっとデモを守秘義務上、直接は出せないので、希望があれば用意したいなぁ、などと。

「いいね!」 2

解決したようでよかったです!
javascriptのオブジェクトとして配列を含んだ要素を作ってJSON化すればライブラリ側で自動で処理してくれるので、JSONを無理やり作るよりもjavascriptに頼るのが正解ですね笑

「いいね!」 2