Как добавить много точек на карту OpenLayers
Я хочу показать около 50000 точек на слое на карте OpenLayers. Каждая точка составляет около 100 км * 100 км. Другими словами, я хотел бы покрасить зеленую коробку размером 100 км * 100 км в 179,3333,65,5000. Я нашел это руководство онлайн на веб-сайте OpenLayers: http://openlayers.org/dev/examples/styles-context.html
Но это не то, что я ищу. Кто-нибудь знает какие-нибудь учебники или статьи, которые могут мне помочь? или какие-нибудь указатели о том, как это сделать?
Более того, если вы считаете, что Openlayers не является правильным инструментом, и есть лучший инструмент, не могли бы вы сообщить мне?
Спасибо
1 ответ
Хотите показать отдельные очки или большую коробку?
Отображение 50000 точек было бы много, и было бы разумно использовать какой-либо кластерный алгоритм, если вы сильно уменьшите масштаб, см. http://openlayers.org/dev/examples/strategy-cluster-threshold.html
Добавление поля будет просто вопросом добавления полигона в векторный слой, см. http://openlayers.org/dev/examples/boxes-vector.html
В вашем случае это может быть что-то вроде:
var map = new OpenLayers.Map('map');
var ol_wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://vmap0.tiles.osgeo.org/wms/vmap0?", {layers: 'basic'} );
var boxes = new OpenLayers.Layer.Vector( "Boxes" );
var center = OpenLayers.Geometry.Point(179.3333,65.5000);
var bounds = OpenLayers.Geometry.Polygon.createRegularPolygon(center, 0.3, 4, 0);
var box = new OpenLayers.Feature.Vector(bounds.toGeometry());
boxes.addFeatures(box);
map.addLayers([ol_wms, boxes]);
map.zoomToMaxExtent();
Затем найдите способ определить 100x100 километров (мои 0,3 градуса не подойдут) и добавьте карту стилей в векторный слой.