Страница 1 из 1

OL: Пространственная выборка

Добавлено: 05 ноя 2010, 15:02
Denis Rykov
Есть векторный слой и некоторый bbox. Как получить набор объектов (features) слоя, пересекающих данный bbox?

Re: OL: Пространственная выборка

Добавлено: 05 ноя 2010, 17:05
Mavka
Опять озадачили...

Из BBOX сделать Polygon:

Код: Выделить всё

var poly = new OpenLayers.Bounds(0,0,10,10).toGeometry(); 
Потом использовать метод intersects. Для точек точно даст те что лежат внутри, про остальные типы геометрии не знаю.

Re: OL: Пространственная выборка

Добавлено: 09 ноя 2010, 13:26
Denis Rykov
Спасибо, воспользовался советом. Есть ещё метод OpenLayers.Feature.Vector.atPoint(), который "is an approximation based on the bounds of the geometry", но я так и не понял для чего он.

Re: OL: Пространственная выборка

Добавлено: 09 ноя 2010, 15:16
Mavka
В atPoint передаются координаты (x,y) и допуски. Он говорит есть ли кто-нибудь в этой точке.
Используется, например, при редактировании что бы приклеиваться к существующим узлам.
Спойлер
Method: atPoint
Note - This is only an approximation based on the bounds of the geometry.

Parameters:
lonlat - {<OpenLayers.LonLat>}
toleranceLon - {float} Optional tolerance in Geometric Coords
toleranceLat - {float} Optional tolerance in Geographic Coords

Returns:
{Boolean} Whether or not the geometry is at the specified location