私はデータベース内のテーブルを選択し、そのデータをリーフレットマップに表示できるアプリケーションを作成しました。データには一致する凡例があります。JavaScript内の二重ループのエラー
私のアプリケーションでは、さまざまなデータセットを受け入れ、プログラミングの変更を最小限に抑えて地図上に表示できるようにしたいと考えています。これは新しい需要であり、以前のコードを変更しましたが、最適ではありません。
コードでは、特定の値に色を割り当てるためにデータセットをループしていますが、データセットをループして唯一の値を抽出して凡例に使用することもできます。
これは私のアプリケーションにループのループをさせ、不要な計算を引き起こします。これは小さなデータセットでは問題ありません.19レコードx19は実行可能ですが、8062x8062 ...
getColor()
関数のforループが問題です。私は新しい関数(getColor v2)にforループを再配置しようとしましたが、私はいつも最後にはarrayMetKetens
が見つかりませんでした。私はgetColor()
がgetArray()
の前に実行されると思いますが、テーブルを選択すると多くの関数が実行されるため、実際にはgetArray()
を速く返すことはできません。それとも?マーカー/ポリゴンに色を追加するため
コード:
window["mapDataLayer"] = L.geoJson(geojson_dataTable, {
pointToLayer: function (feature, latlng) {
var markerStyle = {
fillColor: getColor(feature.properties.Fastfoodketen),
color: "#696969",
fillOpacity: 0.6,
opacity: 0.9,
weight: 1,
radius: 8
};
return L.circleMarker(latlng, markerStyle);
},
style: function (feature){
if(feature.geometry.type === 'MultiPolygon'){
var polygonStyle = {
fillColor: getColor(feature.properties.Naam),
color: "grey",
weight: 5,
opacity: 1
};
}
else{
return null;
}
return polygonStyle;
}
}).addTo(map);
GETCOLOR機能:
function getColor(keten) {
checkTable();
var ketens = [];
for(i=0;i<(geojson_dataTable.features).length;i++){
ketens = ketens.concat(Object.byString(geojson_dataTable, 'features['+i+'].properties.'+featureVoorSorteer))
}
console.log(ketens);
arrayMetKetens = (jQuery.unique(ketens));
var i = arrayMetKetens.indexOf(keten);
if (i !== -1) {
return arrayKleur[ i ];
}
else {
return '#999999';
}
}
GETCOLORのV2:
function getArray(){
var ketens = [];
for(i=0;i<(geojson_dataTable.features).length;i++){
ketens = ketens.concat(Object.byString(geojson_dataTable, 'features['+i+'].properties.'+featureVoorSorteer))
console.log(ketens);
}
arrayMetKetens = (jQuery.unique(ketens));
return arrayMetKetens.
}
function getColor(keten) {
checkTable();
getArray();
yMetKetens.indexOf(keten);
if (i !== -1) {
return arrayKleur[ i ];
}
else {
return '#999999';
}
console.log("hij doet het")
}
新しい問題がある場合は、新しい質問をするべきだと思います。つまり、あなたの問題が期待通りであれば、コードのさまざまな場所に 'console.log()'をいくつか追加して確認して、実行順序が期待通りであるかどうかを確認するのが簡単ですさあ。 – Jieter
あなたの権利は、ロールバックして全く新しい質問をします。 –