gis_kd_rnn()

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

Прототип:

#include <gis/gis_kdtree.h>
int gis_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 = gis_kd_init( 2 );
struct gis_kd_uniq_id id;
double point[2];
id.obj = NULL;
id.attr = 1;
point[0] = 10;
point[1] = 10;
gis_kd_add( kd_t, &point[0], &id );
id.obj = NULL;
id.attr = 2;
point[0] = 20;
point[1] = 15;
gis_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 = gis_kd_rnn( kd_t, (double *)range, &found )) == 0 )
{
printf( "KD-tree error: gis_kd_dnn failed" );
return 1;
}
if ( found->attr != 2 )
{
printf( "KD-tree found incorrect point\n" );
return 1;
}

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

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

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




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