OpenLayers Overlaysで使用するテスト座標を持つ配列を作成しようとしています。は、HTMLスクリプトタグでEJS変数を配列にプッシュできませんか?
これはコードである:
var parada = [];
for(var i = 0; i < <%- coords.length%>; i++){ //First loop to fill the array
var arr = [<%- coords[i].lon %>, <%- coords[i].lat %>]; //THIS IS THE ERROR LINE! ... says the console...
parada.push(arr);
}
var overlays = [];
for (i = 0; i < parada.lenght; i++) { //Second loop to build the overlays
overlays.push(new ol.Overlay({
position: ol.proj.fromLonLat([parada[i][0], parada[i][1]]), //With the data of the array above
positioning: 'center-center',
element: document.getElementById('parada' + i),
stopEvent: false
}));
}
for (i = 0; i<overlays.length; i++){ // Last loop to assign the overlays.
map.addOverlay(overlays[i]);
}
重要:私のapp.jsファイルで、COORDSは(iは({})のMongoDBで見つけること)オブジェクトの配列として定義されます。
私は本当にここにこだわっています! ありがとうございました! :DDD
ありがとう!それはうまくいくようです:) 私はあなたのようにapp.jsファイルにあなたのコードを入れました。 さらにもう1つ:EJSで変数を呼び出すにはどうすればいいですか? <%= %>? <%= parada [0]%>または<%= parada [0] .lon%>は動作していないようです... ありがとうございました!あなたは素晴らしいです:D –
@AlanSchwarz変数 'parada'は、クライアントサイドJSでのみ存在し、サーバサイドJSでは存在しません。 '<% %>'のコードは、コードとは完全に別のものです。両方がJavaScriptを使用しているのは偶然です。 EJSの観点からは、 '<% %>'のコードだけがコードとして解釈されます。外側のビットは、飛び出す任意のテキストです。テンプレートによって生成されたテキストはブラウザに送られ(開発ツールで見ることができます)、ブラウザは生成されたコードを実行します。 2つは完全に別々のプロセスです。 – skirtle