Как добавить много точек на карту 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 градуса не подойдут) и добавьте карту стилей в векторный слой.

Другие вопросы по тегам