2016-11-11 20 views
5

私の目標は、アフターマップ上に一連の座標マーカーを表示する前後のマップを作成することです。スタイルが完了していませんロード:Mapbox GL JS

コードが実行されると、私はコンソールにこのエラーメッセージが表示されます。Style is not done loading

最終的な目標は、ユーザーが水平方向にスワイプして(後に前から)マップの変更を見ることができるようになるカーソルを確認することです。

これまでのところ私のコードは、どんな助けも遠くに行くでしょう!

$(document).ready(function() { 
 
    var request_one = $.ajax({ 
 
     url: "https://geohack-framework-gbhojraj.c9users.io/ny", 
 
     dataType: 'json' 
 
    }) 
 
    var request_two = $.ajax({ 
 
     url: "https://geohack-framework-gbhojraj.c9users.io/man", 
 
     dataType: 'json' 
 
    }); 
 
    $.when(request_one, request_two).done(function(response_one, response_two) { 
 
     console.log(response_one, response_two); 
 
     //create map of ny state 
 
     var nyGeo = response_one[0]; 
 
     var manGeo = response_two[0]; 
 
     (function() { 
 
      mapboxgl.accessToken = 'pk.eyJ1IjoiamdhcmNlcyIsImEiOiJjaXY4amM0ZHQwMDlqMnlzOWk2MnVocjNzIn0.Pos1M9ZQgxMGnQ_H-bV7dA'; 
 
      //manhattan map 
 
      var manCenter = manGeo.features[0].geometry.coordinates[0][0][0]; 
 
      console.log('man center is', manCenter); 
 
      var beforeMap = new mapboxgl.Map({ 
 
       container: 'before', 
 
       style: 'mapbox://styles/mapbox/light-v9', 
 
       center: manCenter, 
 
       zoom: 5 
 
      }); 
 
      console.log('man geo is ', manGeo); 
 
      //ny state map 
 
      var nyCenter = nyGeo.features[0].geometry.coordinates[0][0]; 
 
      console.log('the ny center is ', nyCenter); 
 
      var afterMap = new mapboxgl.Map({ 
 
       container: 'after', 
 
       style: 'mapbox://styles/mapbox/dark-v9', 
 
       center: nyCenter, 
 
       zoom: 9 
 
      }); 
 
      console.log('ny geo homie', nyGeo); 
 
      afterMap.on('load', function() { 
 
       afterMap.addSource("points", { 
 
        "type": "geojson", 
 
        "data": nyGeo 
 
       }) 
 
      }); 
 
      afterMap.addLayer({ 
 
       "id": "points", 
 
       "type": "symbol", 
 
       "source": "points", 
 
       "layout": { 
 
        "icon-image": "{icon}-15", 
 
        "text-field": "{title}", 
 
        "text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"], 
 
        "text-offset": [0, 0.6], 
 
        "text-anchor": "top" 
 
       } 
 
      }); 
 
      var map = new mapboxgl.Compare(beforeMap, afterMap, { 
 
       // Set this to enable comparing two maps by mouse movement: 
 
       // mousemove: true 
 
      }); 
 
     }()); 
 
    }) 
 
});

答えて

5

問題は、マップがロードされる前に、マップにレイヤを追加しているということです。 loadイベントハンドラにタイルソースとスタイルレイヤーを添付していることを確認してください。

afterMap.on('load', function() { 
    afterMap.addSource("points", { 
    "type": "geojson", 
    "data": nyGeo 
    }) 
    afterMap.addLayer({ 
    "id": "points", 
    "type": "symbol", 
    "source": "points", 
    "layout": { 
     "icon-image": "{icon}-15", 
     "text-field": "{title}", 
     "text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"], 
     "text-offset": [0, 0.6], 
     "text-anchor": "top" 
    } 
    }); 
}); 
+0

しかし、おそらく、この問題に直面する可能性があります。https://github.com/mapbox/mapbox-gl-js/issues/4849最後にスタイルをロードする前に2秒の遅延を追加しました: - \ – 2ndGAB

関連する問題