kd_rnn()

Поиск узлов в заданном диапазоне.

Прототип:

#include <gis/gis_kdtree.h>
int kd_rnn( gis_kd_tree_t *tree, double *coors, struct gis_kd_uniq_id **ids);

Аргументы:

tree
Указатель на КД дерево
coors
Указатель на массив координат диапазона в N измерениях. Должны быть записаны в следующем формате:(мин1, мин2, ..., минN, макс1, макс2, ..., максN).
ids
Пустой массив идентификаторов для записи id найденных узлов

Библиотека:

kd-tree

Описание:

Функция осуществляет поиск узлов в заданном диапазоне, который задается минимальными и максимальными значениеми через массив coors. Идентификаторы найденных точек помещаются в массив ids.

Возвращаемое значение:

count
Количество найденных узлов

Примеры использования:

int count;
gis_kd_tree_t *kd_t;
kd_t = kd_init( 2 );
struct gis_kd_uniq_id id;
double point[2];
id.obj = NULL;
id.attr = 1;
point[0] = 10;
point[1] = 10;
kd_add( kd_t, &point[0], &id );
id.obj = NULL;
id.attr = 2;
point[0] = 20;
point[1] = 15;
kd_add( kd_t, &point[0], &id );
gis_kd_uniq_id *found;
double range[4];
range[0] = 14;
range[1] = 14;
range[2] = 21;
range[3] = 21;
if ( ( count = kd_rnn( kd_t, (double *)range, &found )) == 0 )
{
printf( "KD-tree error: kd_dnn failed" );
return 1;
}
if ( found->attr != 2 )
{
printf( "KD-tree found incorrect point\n" );
return 1;
}

Классификация:

ПК ЦКИ для ЗОСРВ «Нейтрино»

Поддерживается в ПК ЦКИ, начиная с версии 1.0.0




Предыдущий раздел: Описание API картографического фреймворка