2017-04-12 24 views
0

私のマップ上にデータを表示できないようです。 geojsonファイルは膨大なので、外部ソースをロードしています。私のindex.htmlファイルは、私は、コンソールからこのエラーを取得しています。このマップボックスにgeojsonデータを読み込む

<div id='map'></div> 
<script> 
mapboxgl.accessToken = 'pk.eyJ1Ijoic2VhbmRyYWFkbG96ZSIsImEiOiJjajA3cW1pOTcwMDA5Mndvd2hicHlmNWc1In0.7bt7sPXDoymYJyVDvVmqZw'; 
var map = new mapboxgl.Map({ 
    container: 'map', // container id 
    style: 'mapbox://styles/seandraadloze/cj1dcc3ho00f82smkvjxp4frb', //hosted style id 
    center: [24.530,-32.254], // starting position 
    zoom: 14.5 // starting zoom 
    }); 

    var url = 'http://bestersurveys.co.za/htmlsite/quintin.geojson'; 
    var source = new map.addSource()({ 
     data: url 
    }); 

    window.setInterval(function() { 
     source.setData(url); 
    }, 1000); 

    map.on('style.load', function() { 
     map.addSource("markers", source); 
     map.addLayer({ 
     "id": "markers", 
     "type": "circle", 
     "visibility": "visible", 
     "source": "markers", 
     "paint": { 
      "circle-radius": 0.2, 
      "circle-color": "#f3f3f3" 
     } 
     }); 
    }); 

    </script> 

    </body> 
    </html> 

のように見えます

map.js:895 Uncaught TypeError: Cannot read property 'addSource' of undefined 
    at new e.addSource (map.js:895) 
    at maptest.html:27 

あなたがここにマップをチェックアウトすることができます - http://bestersurveys.co.za/htmlsite/maptest.html

は、誰もが私は教えてもらえます間違っている?

おかげ

ショーン

+0

私は) 'VARソースは=新しいmap.addSource(この部分を推測している({'。新しいキーワードを削除してください。 –

+0

こんにちはメイト、感謝。オーケーエラーをソートしますが、まだデータは、私のコンソールは今 不明なエラーを印刷しない:t.addSource(style.js:372)で e.addSource(マップで :スタイルt._checkLoaded(272 style.js)で をロードして行われていません。 js:895) at maptest.html:27 –

+0

まあ、それ以前に遭遇したことはありません。 'map.on( 'style.load''の間にすべてを置くことで問題を解決できるので、スタイルがロードされるとすぐにコードが実行されます。 –

答えて

0

my console now prints Uncaught Error: Style is not done loading

style.loadイベントハンドラ( https://gis.stackexchange.com/questions/200733/mapbox-error-style-is-not-done-loadingを参照)にご map.addSource()コールを移動

また、addSourceと間違っています(https://www.mapbox.com/mapbox-gl-js/api/#map#addsource参照)。

mapboxgl.accessToken = 'pk.eyJ1Ijoic2VhbmRyYWFkbG96ZSIsImEiOiJjajA3cW1pOTcwMDA5Mndvd2hicHlmNWc1In0.7bt7sPXDoymYJyVDvVmqZw'; 
 

 
var map = new mapboxgl.Map({ 
 
    container: 'map', 
 
    style: 'mapbox://styles/seandraadloze/cj1dcc3ho00f82smkvjxp4frb', 
 
    center: [-71.059568, 42.360482], 
 
    zoom: 1 
 
}); 
 

 
map.on('style.load', function() { 
 
    map.addSource("sample", { 
 
    type: "geojson", 
 
    data: "https://raw.githubusercontent.com/chelm/grunt-geo/master/samples/postgis.geojson" 
 
    }); 
 
    // one layer per GeoJSON feature type, see http://stackoverflow.com/a/36927026 
 
    map.addLayer({ 
 
    "id": "sample-line", 
 
    "type": "line", 
 
    "source": "sample", 
 
    "filter": ["==", "$type", "LineString"], 
 
    "paint": { 
 
     "line-color": "white" 
 
    } 
 
    }); 
 
    map.addLayer({ 
 
    "id": "sample-point", 
 
    "type": "circle", 
 
    "source": "sample", 
 
    "filter": ["==", "$type", "Point"], 
 
    "paint": { 
 
     "circle-radius": 5, 
 
     "circle-color": "red" 
 
    } 
 
    }); 
 
});
#map { 
 
    width: 600px; 
 
    height: 200px; 
 
    border: 1px solid black; 
 
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/0.35.0/mapbox-gl.css" rel="stylesheet" /> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/mapbox-gl/0.35.0/mapbox-gl.js"></script> 
 

 
<div id='map'></div>

+0

こんにちは、ここで助けてくれてありがとう。私はコードを再配置して、私はあなたの答えの後に一歩近づいていると思う(まだデータがない)。 に「source not defined」エラーが表示されます。source.setData(url); ここでは設定されていませんか?var url = 'http://bestersurveys.co.za/htmlsite/quintin.geojson'; 相手に尋ねるのは申し訳ありません –

+0

私のコードをコピーするだけではなく、詳細に注意してください。私は 'source.set()'と呼んでいません。なぜなら、それは必要ではないからです。 – Tomalak

+0

こんにちは、私は間違いを認識しました。ごめんなさい。これは機能しているようですが、入力データは有効なGeoJSONオブジェクトではありません。ここにすべてがあることがわかります。http://bestersurveys.co.za/htmlsite/maptest.html –

関連する問題