Пример #1
0
/*
extern GEOSSTRtree GEOS_DLL *GEOSSTRtree_create(size_t nodeCapacity);

GeosSTRtree = lgeo_geos_index:strtree_create().
<<>>
*/
static ERL_NIF_TERM
strtree_create(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[])
{
    ERL_NIF_TERM eterm;

    GeosSTRtree_t **tree = \
        enif_alloc_resource(GEOSSTRTREE_RESOURCE, sizeof(GeosSTRtree_t*));

    size_t nodeCapacity = 10;
    GEOSSTRtree *rtree = GEOSSTRtree_create(nodeCapacity);
    ErlNifEnv *tree_env = enif_alloc_env();

    *tree = (GeosSTRtree_t*) enif_alloc(sizeof(GeosSTRtree_t));
    (*tree)->env = tree_env;
    (*tree)->tree = rtree;

    eterm = enif_make_resource(env, tree);
    enif_release_resource(tree);
    return eterm;
}
Пример #2
0
StrTree::StrTree(int size) {
    geos_strTree_ = GEOSSTRtree_create(size);
}