私はポリマップJS lybraryを使用してプロジェクトを作成しています。私は約20万点をプロットする必要があります。ブラウザにポイントを読み込むのに時間がかかり、ナビゲータが非常に遅いです。プリロード(プレフィルタ)がポリマップAPIをポイントします
私はドキュメントを読んだので、データをページに追加する前にGeoJsonをフィルタリングするオプションはありません。
var po = org.polymaps;
var map = po.map()
.container(document.body.appendChild(po.svg("svg")))
.center({lat: 45.468318, lon: 9.1709})
.zoom(13)
.add(po.interact());
//Skinning the map
map.add(po.image()
.url(po.url("http://{S}tile.cloudmade.com"
+ "/1a1b06b230af4efdbb989ea99e9841af" // http://cloudmade.com/register
+ "/998/256/{Z}/{X}/{Y}.png")
.hosts(["a.", "b.", "c.", ""])));
//Importing the geoJSON
map.add(po.geoJson()
.url("test_4sq.json")
.id("streets")
.on("load", loadAreas)
.tile(false));
map.add(po.compass()
.pan("none"));
// This function loads all the data and then do the filtering (very sluggish method)
function loadAreas(obj) {
for (var i = 0; i < obj.features.length; i++) {
var f = obj.features[i];
var e = obj.features[i].element;
var p = obj.features[i].data.properties;
e.setAttribute('r', 4);
e.setAttribute('id', f.data.id);
e.setAttribute('title', p.venueName);
//console.log(e);
// Displaying the data in August (month propriety = '8')
if (p.month != "08")
console.log(e);
else
e.setAttribute('display', 'none');
}
}
ただし、潜在的に2つの部分があることがわかります: 1 - 膨大な数の点を表示する方法。 2 - GeoJSONをプレフィルターする方法。 フィルタリング後に表示するポイント数に興味がありますか?それがたくさんあるとすれば、それはおそらくパート1に焦点を当てるのが最善であり、ほんの少しであればパート2がより重要になります。 –
ビューごとに数百点(最大500)を表示することに興味がありません。私はブラウザがこれを処理できると思います! – MrSlash
合意。 500は一枚のケーキになります。 –