2017-12-13 17 views
0

私は最近、Mapbox Store Locatorチュートリアルに従い、私が働いているツアーアーティストのための簡単な "Upcoming Tour Dates"マップを作成しました。素晴らしいことですが、私はgeoJSONポイントをより簡単に更新する方法を探しています - 私は共同作業者にページの毎日のメンテナンスを渡して、ポイントを追加/削除するのが簡単になりたい。現在、geoJSONポイントはスクリプトにインラインでコーディングされていますが、geojson.ioまたはMapboxデータを使用してファイルを更新できれば、自動的に新しいポイントがマップに引き込まれます。任意の時点で地図上に表示されるデータの最大値は〜100の単一の場所であり、ポリゴンやバウンディングボックスは使用されません。Mapbox Store Locator用の外部GeoJSONファイルを取得する

これは、スクリプトが現在geoJSONポイントを取得している方法です。変数「ストア」は、それらをすべてインラインに保持します。 Mapboxやgeojson.ioのようなCMSのgeoJSONデータを編集/追加/削除し、スクリプトのURLを使って動的に更新できるようにするにはどうすればよいでしょうか。

これらのいずれかが無意味な場合は、私に許してください - 私はこれに新しいです!あなたの助けを前もってありがとう!

var stores = { 

"type": "FeatureCollection", 
"features": [ 
{ 
    "type": "Feature", 
    "geometry": { 
    "type": "Point", 
    "coordinates": [ 
     -77.034084142948, 
     38.909671288923 
    ] 
    }, 
    "properties": { 
    "phoneFormatted": "(202) 234-7336", 
    "phone": 2022347336, 
    "address": "1471 P St NW", 
    "city": "Washington DC", 
    "country": "United States", 
    "crossStreet": "at 15th St NW", 
    "postalCode": 20005, 
    "state": "D.C." 
    } 
} 

map.on('load', function(e) { 
    map.addSource("places", { 
    "type": "geojson", 
    "data": stores 
}); 

答えて

0

実際には本当に簡単です。

"data": "https://..." 

ドキュメントで

"data": stores 

:あなたは、この行を置き換えるhttps://www.mapbox.com/mapbox-gl-js/style-spec#sources-geojson

だから、あなたはちょうどあなたがオンラインことにGeoJSONファイルを保存し、定期的に更新することができる場所を見つける必要があります。私はこの目的のためにGithubのGistを使用することがあります。

+0

ありがとうスティーブ!しかし、私が見つけたことは、Mapbox Store Locatorスクリプトが、店舗リストなどを作成する関数に "stores"変数を使用していることです。この関数が、 "stores"変数インラインgeoJSONデータ? –

+0

Ah。あなたはそれを言及すべきでした。その場合は、最初にGeoJSONを直接(D3の '.json()'メソッドのようなものを使用して)取得し、元の方法に従ってください。 –

関連する問題