@crossbind/port-spatialite-wasi 2.0.0-beta.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/LICENSE +35 -0
  2. package/README.md +11 -0
  3. package/config.guess +1823 -0
  4. package/config.sub +1885 -0
  5. package/crossbind.build.js +1 -0
  6. package/crossbind.config.js +11 -0
  7. package/dist/prebuilt/CMakeLists.txt +57 -0
  8. package/dist/prebuilt/wasi-wasm32-st-release/crossbind-emccflags.fingerprint +1 -0
  9. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/control_points.h +259 -0
  10. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/debug.h +77 -0
  11. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaia_network.h +627 -0
  12. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaia_topology.h +1221 -0
  13. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiaaux.h +540 -0
  14. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiaconfig-msvc.h +56 -0
  15. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiaconfig-msvc.h.in +55 -0
  16. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiaconfig.h +68 -0
  17. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiaconfig.h.in +67 -0
  18. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiaexif.h +669 -0
  19. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiageo.h +77 -0
  20. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gaiamatrix.h +277 -0
  21. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/geojson.h +586 -0
  22. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/geopackage.h +198 -0
  23. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_advanced.h +5184 -0
  24. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_const.h +606 -0
  25. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_core.h +2294 -0
  26. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_dxf.h +993 -0
  27. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_dynamic.h +416 -0
  28. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_formats.h +2056 -0
  29. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_mbr.h +606 -0
  30. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_sequence.h +173 -0
  31. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_structs.h +880 -0
  32. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_wfs.h +581 -0
  33. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/gg_xml.h +818 -0
  34. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/spatialite_ext.h +64 -0
  35. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/sqlite.h +70 -0
  36. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite/stored_procedures.h +641 -0
  37. package/dist/prebuilt/wasi-wasm32-st-release/include/spatialite.h +2098 -0
  38. package/dist/prebuilt/wasi-wasm32-st-release/lib/libspatialite.a +0 -0
  39. package/dist/prebuilt/wasi-wasm32-st-release/lib/libspatialite.la +41 -0
  40. package/dist/prebuilt/wasi-wasm32-st-release/lib/mod_spatialite.a +0 -0
  41. package/dist/prebuilt/wasi-wasm32-st-release/lib/mod_spatialite.la +41 -0
  42. package/dist/prebuilt/wasi-wasm32-st-release/lib/pkgconfig/spatialite.pc +12 -0
  43. package/e2e/main.c +38 -0
  44. package/e2e/run.mjs +89 -0
  45. package/package.json +40 -0
@@ -0,0 +1,627 @@
1
+ /*
2
+ gaia_network.h -- Gaia common support for Topology-Network
3
+
4
+ version 5.1.0, 2023 August 4
5
+
6
+ Author: Sandro Furieri a.furieri@lqt.it
7
+
8
+ ------------------------------------------------------------------------------
9
+
10
+ Version: MPL 1.1/GPL 2.0/LGPL 2.1
11
+
12
+ The contents of this file are subject to the Mozilla Public License Version
13
+ 1.1 (the "License"); you may not use this file except in compliance with
14
+ the License. You may obtain a copy of the License at
15
+ http://www.mozilla.org/MPL/
16
+
17
+ Software distributed under the License is distributed on an "AS IS" basis,
18
+ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
19
+ for the specific language governing rights and limitations under the
20
+ License.
21
+
22
+ The Original Code is the SpatiaLite library
23
+
24
+ The Initial Developer of the Original Code is Alessandro Furieri
25
+
26
+ Portions created by the Initial Developer are Copyright (C) 2015-2023
27
+ the Initial Developer. All Rights Reserved.
28
+
29
+ Contributor(s):
30
+
31
+ Alternatively, the contents of this file may be used under the terms of
32
+ either the GNU General Public License Version 2 or later (the "GPL"), or
33
+ the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
34
+ in which case the provisions of the GPL or the LGPL are applicable instead
35
+ of those above. If you wish to allow use of your version of this file only
36
+ under the terms of either the GPL or the LGPL, and not to allow others to
37
+ use your version of this file under the terms of the MPL, indicate your
38
+ decision by deleting the provisions above and replace them with the notice
39
+ and other provisions required by the GPL or the LGPL. If you do not delete
40
+ the provisions above, a recipient may use your version of this file under
41
+ the terms of any one of the MPL, the GPL or the LGPL.
42
+
43
+ */
44
+
45
+
46
+ /**
47
+ \file gaia_network.h
48
+
49
+ Topology-Network handling functions and constants
50
+ */
51
+
52
+ #ifndef DOXYGEN_SHOULD_SKIP_THIS
53
+ /* stdio.h included for FILE objects. */
54
+ #include <stdio.h>
55
+ #ifdef DLL_EXPORT
56
+ #define GAIANET_DECLARE __declspec(dllexport)
57
+ #else
58
+ #define GAIANET_DECLARE extern
59
+ #endif
60
+ #endif
61
+
62
+ #ifndef _GAIANET_H
63
+ #ifndef DOXYGEN_SHOULD_SKIP_THIS
64
+ #define _GAIANET_H
65
+ #endif
66
+
67
+ #ifdef __cplusplus
68
+ extern "C"
69
+ {
70
+ #endif
71
+
72
+ /**
73
+ Typedef for Topology-Network Accessor Object (opaque, hidden)
74
+
75
+ \sa GaiaNetworkAccessorPtr
76
+ */
77
+ typedef struct gaia_network_accessor GaiaNetworkAccessor;
78
+ /**
79
+ Typedef for Network Accessor Object pointer (opaque, hidden)
80
+
81
+ \sa GaiaNetworkAccessor
82
+ */
83
+ typedef struct gaia_network_accessor *GaiaNetworkAccessorPtr;
84
+
85
+ /**
86
+ returns the last Topology-Network exception (if any)
87
+
88
+ \param network_name unique name identifying the Topology-Network.
89
+
90
+ \return pointer to the last Topology-Network error message: may be NULL if
91
+ no Topology error is currently pending.
92
+ */
93
+ GAIANET_DECLARE const char *gaiaNetworkGetLastException (const char
94
+ *network_name);
95
+
96
+ /**
97
+ creates a new Topology-Network and all related DB objects
98
+
99
+ \param handle pointer to the current DB connection.
100
+ \param network_name unique name identifying the Topology-Network.
101
+ \param spatial boolean: if TRUE this Topology-Network will be assumed
102
+ to be of the Spatial type, otherwise a Logical Network will be assumed.
103
+ \param srid a spatial reference identifier (only applies to Spatial
104
+ Networks).
105
+ \param has_z boolean: if TRUE this Topology-Network supports 3D (XYZ)
106
+ (only applies to Spatial Networks).
107
+ \param allow_coincident boolean: if TRUE coincident Nodes will be
108
+ tolerated, otherwise a coincident Node condition will raise an exception.
109
+ This argument only applies to Spatial Networks and is meaningless for
110
+ Logical Networks.
111
+
112
+ \return 0 on failure: any other value on success.
113
+
114
+ \sa gaiaNetworkDrop
115
+ */
116
+ GAIANET_DECLARE int gaiaNetworkCreate (sqlite3 * handle,
117
+ const char *network_name,
118
+ int spatial, int srid, int has_z,
119
+ int allow_coincident);
120
+
121
+ /**
122
+ completely drops an already existing Topology-Network and removes all related DB objects
123
+
124
+ \param handle pointer to the current DB connection.
125
+ \param network_name unique name identifying the Topology-Network.
126
+
127
+ \return 0 on failure: any other value on success.
128
+
129
+ \sa gaiaNetworkCreate
130
+ */
131
+ GAIANET_DECLARE int gaiaNetworkDrop (sqlite3 * handle,
132
+ const char *network_name);
133
+
134
+ /**
135
+ creates an opaque Topology-Network Accessor object starting from its DB configuration
136
+
137
+ \param handle pointer to the current DB connection.
138
+ \param cache pointer to the opaque Cache Object supporting the DB connection
139
+ \param network_name unique name identifying the Topology-Network.
140
+
141
+ \return the pointer to newly created Topology-Network Accessor Object:
142
+ NULL on failure.
143
+
144
+ \sa gaiaNetworkCreate, gaiaNetworkDestroy, gaiaNetworkFromCache,
145
+ gaiaGetNetwork
146
+
147
+ \note you are responsible to destroy (before or after) any allocated
148
+ Topology-Network Accessor Object. The Topology-Network Accessor once
149
+ created will be preserved within the internal connection cache for
150
+ future references.
151
+ */
152
+ GAIANET_DECLARE GaiaNetworkAccessorPtr gaiaNetworkFromDBMS (sqlite3 *
153
+ handle,
154
+ const void
155
+ *cache,
156
+ const char
157
+ *network_name);
158
+
159
+ /**
160
+ retrieves a Topology configuration from DB
161
+
162
+ \param handle pointer to the current DB connection.
163
+ \param cache pointer to the opaque Cache Object supporting the DB connection
164
+ \param net_name unique name identifying the Topology-Network.
165
+ \param network_name on completion will point to the real Topology-Network name.
166
+ \param spatial on completion will report if the Topology-Network is of
167
+ the Spatial or Logical type.
168
+ \param srid on completion will contain the Topology-Network SRID.
169
+ \param has_z on completion will report if the Topology-Network is of the 3D type.
170
+ \param allow_coincident on completion will report if the Topology-Network
171
+ tolerates a Coindident Nodes condition without raising an exception.
172
+
173
+ \return 1 on success: NULL on failure.
174
+
175
+ \sa gaiaNetworkCreate, gaiaNetworkDestroy, gaiaNetworkFromCache,
176
+ gaiaGetNetwork
177
+ */
178
+ GAIANET_DECLARE int gaiaReadNetworkFromDBMS (sqlite3 *
179
+ handle,
180
+ const char
181
+ *net_name,
182
+ char **network_name,
183
+ int *spatial, int *srid,
184
+ int *has_z,
185
+ int *allow_coincident);
186
+
187
+ /**
188
+ retrieves an already defined opaque Topology-Network Accessor object from the
189
+ internal connection cache
190
+
191
+ \param cache pointer to the opaque Cache Object supporting the DB connection
192
+ \param network_name unique name identifying the Topology-Network.
193
+
194
+ \return pointer to an already existing Topology-Network Accessor Object: NULL on failure.
195
+
196
+ \sa gaiaNetworkCreate, gaiaNetworkDestroy, gaiaNetworkFromDBMS,
197
+ gaiaGetNetwork
198
+ */
199
+ GAIANET_DECLARE GaiaNetworkAccessorPtr gaiaNetworkFromCache (const void
200
+ *cache,
201
+ const char
202
+ *network_name);
203
+
204
+ /**
205
+ will attempt to return a reference to a Topology-Network Accessor object
206
+
207
+ \param handle pointer to the current DB connection.
208
+ \param cache pointer to the opaque Cache Object supporting the DB connection
209
+ \param network_name unique name identifying the Topology-Network.
210
+
211
+ \return pointer to Topology-Network Accessor Object: NULL on failure.
212
+
213
+ \sa gaiaNetworkCreate, gaiaNetworkDestroy, gaiaNetworkFromCache,
214
+ gaiaNetworkFromDBMS
215
+
216
+ \note if a corresponding Topology-Network Accessor Object is already defined
217
+ will return a pointer to such Objet. Otherwise an attempt will be made
218
+ in order to create a new Topology-Network Accessor object starting from
219
+ its DB configuration.
220
+ */
221
+ GAIANET_DECLARE GaiaNetworkAccessorPtr gaiaGetNetwork (sqlite3 *
222
+ handle,
223
+ const void
224
+ *cache,
225
+ const char
226
+ *network_name);
227
+
228
+ /**
229
+ destroys a Topology-Network Accessor object and any related memory allocation
230
+
231
+ \param ptr pointer to the Topology-Network Accessor Object to be destroyed.
232
+
233
+ \sa gaiaNetworkFromDBMS
234
+ */
235
+ GAIANET_DECLARE void gaiaNetworkDestroy (GaiaNetworkAccessorPtr ptr);
236
+
237
+ /**
238
+ Adds an isolated node into the Topology-Network
239
+
240
+ \param ptr pointer to the Topology-Network Accessor Object.
241
+ \param pt pointer to the Node Geometry.
242
+
243
+ \return the ID of the inserted Node; a negative number on failure.
244
+
245
+ \sa gaiaNetworkFromDBMS, gaiaMoveIsoNetNode, gaiaRemIsoNetNode,
246
+ gaiaAddLink
247
+ */
248
+ GAIANET_DECLARE sqlite3_int64 gaiaAddIsoNetNode (GaiaNetworkAccessorPtr
249
+ ptr, gaiaPointPtr pt);
250
+
251
+ /**
252
+ Moves an isolated node in a Topology-Network from one point to another
253
+
254
+ \param ptr pointer to the Topology-Network Accessor Object.
255
+ \param node the unique identifier of node.
256
+ \param pt pointer to the Node Geometry.
257
+
258
+ \return 1 on success; 0 on failure.
259
+
260
+ \sa gaiaNetworkFromDBMS, gaiaAddIsoNetNode, gaiaRemIsoNetNode
261
+ */
262
+ GAIANET_DECLARE int gaiaMoveIsoNetNode (GaiaNetworkAccessorPtr ptr,
263
+ sqlite3_int64 node,
264
+ gaiaPointPtr pt);
265
+
266
+ /**
267
+ Removes an isolated node from a Topology-Network
268
+
269
+ \param ptr pointer to the Topology-Network Accessor Object.
270
+ \param node the unique identifier of node.
271
+
272
+ \return 1 on success; 0 on failure.
273
+
274
+ \sa gaiaNetworkFromDBMS, gaiaAddIsoNetNode, gaiaMoveIsoNetNode
275
+ */
276
+ GAIANET_DECLARE int gaiaRemIsoNetNode (GaiaNetworkAccessorPtr ptr,
277
+ sqlite3_int64 node);
278
+
279
+ /**
280
+ Adds a link into the Topology-Network
281
+
282
+ \param ptr pointer to the Topology-Network Accessor Object.
283
+ \param start_node the Start Node's unique identifier.
284
+ \param end_node the End Node unique identifier.
285
+ \param ln pointer to the Link Geometry.
286
+
287
+ \return the ID of the inserted Link; a negative number on failure.
288
+
289
+ \sa gaiaNetworkFromDBMS, gaiaAddIsoNetNode, gaiaChangeLinkGeom,
290
+ gaiaRemoveLink, gaiaNewLogLinkSplit, gaiaModLogLinkSplit,
291
+ gaiaNewGeoLinkSplit, gaiaModGeoLinkSplit, gaiaNewLinkHeal,
292
+ gaiaModLinkHeal
293
+ */
294
+ GAIANET_DECLARE sqlite3_int64 gaiaAddLink (GaiaNetworkAccessorPtr ptr,
295
+ sqlite3_int64 start_node,
296
+ sqlite3_int64 end_node,
297
+ gaiaLinestringPtr ln);
298
+
299
+ /**
300
+ Changes the shape of a Link without affecting the Topology-Network structure
301
+
302
+ \param ptr pointer to the Topology-Network Accessor Object.
303
+ \param link_id the Link unique identifier.
304
+ \param ln pointer to the Link Geometry.
305
+
306
+ \return 1 on success; 0 on failure.
307
+
308
+ \sa gaiaNetworkFromDBMS, gaiaAddLink, gaiaRemoveLink
309
+ */
310
+ GAIANET_DECLARE int gaiaChangeLinkGeom (GaiaNetworkAccessorPtr ptr,
311
+ sqlite3_int64 link_id,
312
+ gaiaLinestringPtr ln);
313
+
314
+ /**
315
+ Removes a Link from a Topology-Network
316
+
317
+ \param ptr pointer to the Topology-Network Accessor Object.
318
+ \param link the unique identifier of link.
319
+
320
+ \return 1 on success; 0 on failure.
321
+
322
+ \sa gaiaNetworkFromDBMS, gaiaAddLink
323
+ */
324
+ GAIANET_DECLARE int gaiaRemoveLink (GaiaNetworkAccessorPtr ptr,
325
+ sqlite3_int64 link);
326
+
327
+ /**
328
+ Split a logical link, replacing it with two new links.
329
+
330
+ \param ptr pointer to the Topology-Network Accessor Object.
331
+ \param link the unique identifier of the link to be split.
332
+
333
+ \return the ID of the inserted Node; a negative number on failure.
334
+
335
+ \sa gaiaNetworkFromDBMS, gaiaAddLink, gaiaModLogLinkSplit,
336
+ gaiaNewGeoLinkSplit, gaiaModGeoLinkSplit, gaiaNewLinkHeal,
337
+ gaiaModLinkHeal
338
+ */
339
+ GAIANET_DECLARE sqlite3_int64 gaiaNewLogLinkSplit (GaiaNetworkAccessorPtr
340
+ ptr, sqlite3_int64 link);
341
+
342
+ /**
343
+ Split a logical link, modifying the original link and adding a new one.
344
+
345
+ \param ptr pointer to the Topology-Network Accessor Object.
346
+ \param link the unique identifier of the link to be split.
347
+
348
+ \return the ID of the inserted Node; a negative number on failure.
349
+
350
+ \sa gaiaNetworkFromDBMS, gaiaAddLink, gaiaNewLogLinkSplit,
351
+ gaiaNewGeoLinkSplit, gaiaModGeoLinkSplit, gaiaNewLinkHeal,
352
+ gaiaModLinkHeal
353
+ */
354
+ GAIANET_DECLARE sqlite3_int64 gaiaModLogLinkSplit (GaiaNetworkAccessorPtr
355
+ ptr, sqlite3_int64 link);
356
+
357
+ /**
358
+ Split a spatial link by a node, replacing it with two new links.
359
+
360
+ \param ptr pointer to the Topology-Network Accessor Object.
361
+ \param link the unique identifier of the link to be split.
362
+ \param pt pointer to the Node Geometry.
363
+
364
+ \return the ID of the inserted Node; a negative number on failure.
365
+
366
+ \sa gaiaNetworkFromDBMS, gaiaAddLink, gaiaNewLogLinkSplit,
367
+ gaiaModLogLinkSplit, gaiaModGeoLinkSplit, gaiaNewLinkHeal,
368
+ gaiaModLinkHeal
369
+ */
370
+ GAIANET_DECLARE sqlite3_int64 gaiaNewGeoLinkSplit (GaiaNetworkAccessorPtr
371
+ ptr,
372
+ sqlite3_int64 link,
373
+ gaiaPointPtr pt);
374
+
375
+ /**
376
+ Split a spatial link by a node, modifying the original link and adding
377
+ a new one.
378
+
379
+ \param ptr pointer to the Topology-Network Accessor Object.
380
+ \param link the unique identifier of the link to be split.
381
+ \param pt pointer to the Node Geometry.
382
+
383
+ \return the ID of the inserted Node; a negative number on failure.
384
+
385
+ \sa gaiaNetworkFromDBMS, gaiaAddLink, gaiaNewLogLinkSplit,
386
+ gaiaModLogLinkSplit, gaiaNewGeoLinkSplit, gaiaNewLinkHeal,
387
+ gaiaModLinkHeal
388
+ */
389
+ GAIANET_DECLARE sqlite3_int64 gaiaModGeoLinkSplit (GaiaNetworkAccessorPtr
390
+ ptr,
391
+ sqlite3_int64 link,
392
+ gaiaPointPtr pt);
393
+
394
+ /**
395
+ Heal two links by deleting the node connecting them, deleting both links,
396
+ and replacing them with a new link whose direction is the same as the
397
+ first link provided.
398
+
399
+ \param ptr pointer to the Topology-Network Accessor Object.
400
+ \param link the unique identifier of the first link to be healed.
401
+ \param anotherlink the unique identifier of the second link to be healed.
402
+
403
+ \return the ID of the removed Node; a negative number on failure.
404
+
405
+ \sa gaiaNetworkFromDBMS, gaiaAddLink, gaiaNewLogLinkSplit,
406
+ gaiaModLogLinkSplit, gaiaNewGeoLinkSplit, gaiaModGeoLinkSplit,
407
+ gaiaModLinkHeal
408
+ */
409
+ GAIANET_DECLARE sqlite3_int64 gaiaNewLinkHeal (GaiaNetworkAccessorPtr
410
+ ptr, sqlite3_int64 link,
411
+ sqlite3_int64 anotherlink);
412
+
413
+ /**
414
+ Heal two links by deleting the node connecting them, modfying the first
415
+ link provided, and deleting the second link.
416
+ *
417
+ \param ptr pointer to the Topology-Network Accessor Object.
418
+ \param link the unique identifier of the first link to be healed.
419
+ \param anotherlink the unique identifier of the second link to be healed.
420
+
421
+ \return the ID of the removed Node; a negative number on failure.
422
+
423
+ \sa gaiaNetworkFromDBMS, gaiaAddLink, gaiaNewLogLinkSplit,
424
+ gaiaModLogLinkSplit, gaiaNewGeoLinkSplit, gaiaModGeoLinkSplit,
425
+ gaiaNewLinkHeal
426
+ */
427
+ GAIANET_DECLARE sqlite3_int64 gaiaModLinkHeal (GaiaNetworkAccessorPtr
428
+ ptr, sqlite3_int64 link,
429
+ sqlite3_int64 anotherlink);
430
+
431
+ /**
432
+ Creates a temporary table containing a validation report for a given
433
+ Logical TopoNet.
434
+
435
+ \param ptr pointer to the Topology Accessor Object.
436
+
437
+ \return 1 on success; 0 on failure.
438
+
439
+ \sa gaiaNetworkFromDBMS
440
+ */
441
+ GAIANET_DECLARE int gaiaValidLogicalNet (GaiaNetworkAccessorPtr ptr);
442
+
443
+ /**
444
+ Creates a temporary table containing a validation report for a given
445
+ Spatial TopoNet.
446
+
447
+ \param ptr pointer to the Topology Accessor Object.
448
+
449
+ \return 1 on success; 0 on failure.
450
+
451
+ \sa gaiaNetworkFromDBMS
452
+ */
453
+ GAIANET_DECLARE int gaiaValidSpatialNet (GaiaNetworkAccessorPtr ptr);
454
+
455
+ /**
456
+ Find the ID of a NetNode at a Point location
457
+
458
+ \param ptr pointer to the Topology-Network Accessor Object.
459
+ \param pt pointer to the Point Geometry.
460
+ \param tolerance approximation factor.
461
+
462
+ \return the ID of a NetNode; -1 on failure.
463
+
464
+ \sa gaiaNetworkFromDBMS
465
+ */
466
+ GAIANET_DECLARE sqlite3_int64
467
+ gaiaGetNetNodeByPoint (GaiaNetworkAccessorPtr ptr, gaiaPointPtr pt,
468
+ double tolerance);
469
+
470
+ /**
471
+ Find the ID of a Link at a Point location
472
+
473
+ \param ptr pointer to the Topology-Network Accessor Object.
474
+ \param pt pointer to the Point Geometry.
475
+ \param tolerance approximation factor.
476
+
477
+ \return the ID of a Link; -1 on failure.
478
+
479
+ \sa gaiaNetworkFromDBMS
480
+ */
481
+ GAIANET_DECLARE sqlite3_int64
482
+ gaiaGetLinkByPoint (GaiaNetworkAccessorPtr ptr, gaiaPointPtr pt,
483
+ double tolerance);
484
+
485
+ /**
486
+ Populates a Network by importing a whole GeoTable
487
+
488
+ \param ptr pointer to the Network Accessor Object.
489
+ \param db-prefix prefix of the DB containing the input GeoTable.
490
+ If NULL the "main" DB will be intended by default.
491
+ \param table name of the input GeoTable.
492
+ \param column name of the input Geometry Column.
493
+ Could be NULL is the input table has just a single Geometry Column.
494
+
495
+ \return 1 on success; -1 on failure (will raise an exception).
496
+
497
+ \sa gaiaNetworkFromDBMS
498
+ */
499
+ GAIANET_DECLARE int
500
+ gaiaTopoNet_FromGeoTable (GaiaNetworkAccessorPtr ptr,
501
+ const char *db_prefix, const char *table,
502
+ const char *column);
503
+
504
+ /**
505
+ Return a Point geometry (seed) identifying a Network Link
506
+
507
+ \param ptr pointer to the Network Accessor Object.
508
+ \param link the unique identifier of the link.
509
+
510
+ \return pointer to Geomtry (point); NULL on failure.
511
+
512
+ \sa gaiaNetworkFromDBMS
513
+ */
514
+ GAIANET_DECLARE gaiaGeomCollPtr
515
+ gaiaGetLinkSeed (GaiaNetworkAccessorPtr ptr, sqlite3_int64 link);
516
+
517
+ /**
518
+ Ensures that all Links on a Topology-Network will have not less
519
+ than three vertices; for all Links found being simple two-points
520
+ segments a third intermediate point will be interpolated.
521
+
522
+ \param ptr pointer to the Network Accessor Object.
523
+
524
+ \return the total number of changed Links; a negativa number on error
525
+
526
+ \sa gaiaNetworkFromDBMS
527
+ */
528
+ GAIANET_DECLARE int
529
+ gaiaTopoNet_DisambiguateSegmentLinks (GaiaNetworkAccessorPtr ptr);
530
+
531
+ /**
532
+ Will update all Seeds for a Topology-Network
533
+
534
+ \param ptr pointer to the Network Accessor Object.
535
+ \param mode if set to 0 a full update of all Seeds will be performed,
536
+ otherwise an incremental update will happen.
537
+
538
+ \return 1 on success; 0 on failure.
539
+
540
+ \sa gaiaNetworkFromDBMS
541
+ */
542
+ GAIANET_DECLARE int
543
+ gaiaTopoNetUpdateSeeds (GaiaNetworkAccessorPtr ptr, int mode);
544
+
545
+ /**
546
+ Extracts a Simple Features Table out from a Network by matching
547
+ Network Seeds to a given reference Table.
548
+
549
+ \param ptr pointer to the Network Accessor Object.
550
+ \param db-prefix prefix of the DB containing the reference GeoTable.
551
+ If NULL the "main" DB will be intended by default.
552
+ \param ref_table name of the reference GeoTable.
553
+ \param ref_column name of the reference Geometry Column.
554
+ Could be NULL is the reference table has just a single Geometry Column.
555
+ \param out_table name of the output table to be created and populated.
556
+ \param with_spatial_index boolean flag: if set to TRUE (non ZERO) a Spatial
557
+ Index supporting the output table will be created.
558
+
559
+ \return 1 on success; -1 on failure (will raise an exception).
560
+
561
+ \sa gaiaNetworkFromDBMS
562
+ */
563
+ GAIANET_DECLARE int
564
+ gaiaTopoNet_ToGeoTable (GaiaNetworkAccessorPtr ptr,
565
+ const char *db_prefix, const char *ref_table,
566
+ const char *ref_column, const char *out_table,
567
+ int with_spatial_index);
568
+
569
+ /**
570
+ Extracts a simplified/generalized Simple Features Table out from a Network
571
+ by matching Network Seeds to a given reference Table.
572
+
573
+ \param ptr pointer to the Network Accessor Object.
574
+ \param db-prefix prefix of the DB containing the reference GeoTable.
575
+ If NULL the "main" DB will be intended by default.
576
+ \param ref_table name of the reference GeoTable.
577
+ \param ref_column name of the reference Geometry Column.
578
+ Could be NULL is the reference table has just a single Geometry Column.
579
+ \param out_table name of the output table to be created and populated.
580
+ \param tolerance approximation radius required by the Douglar-Peucker
581
+ simplification algorithm.
582
+ \param with_spatial_index boolean flag: if set to TRUE (non ZERO) a Spatial
583
+ Index supporting the output table will be created.
584
+
585
+ \return 1 on success; -1 on failure (will raise an exception).
586
+
587
+ \sa gaiaNetworkFromDBMS
588
+ */
589
+ GAIANET_DECLARE int
590
+ gaiaTopoNet_ToGeoTableGeneralize (GaiaNetworkAccessorPtr ptr,
591
+ const char *db_prefix,
592
+ const char *ref_table,
593
+ const char *ref_column,
594
+ const char *out_table,
595
+ double tolerance,
596
+ int with_spatial_index);
597
+
598
+ /**
599
+ Creates and populates a Table containing a comprehensive report
600
+ about all intesections between the Links of some Network and
601
+ a given reference Table of the Linestring/Multilinestring type.
602
+
603
+ \param ptr pointer to the Network Accessor Object.
604
+ \param db-prefix prefix of the DB containing the reference GeoTable.
605
+ If NULL the "main" DB will be intended by default.
606
+ \param ref_table name of the reference GeoTable.
607
+ \param ref_column name of the reference Geometry Column.
608
+ Could be NULL is the reference table has just a single Geometry Column.
609
+ \param out_table name of the output output table to be created and populated.
610
+
611
+ \return 1 on success; -1 on failure (will raise an exception).
612
+
613
+ \sa gaiaNetworkFromDBMS
614
+ */
615
+ GAIANET_DECLARE int
616
+ gaiaTopoNet_LineLinksList (GaiaNetworkAccessorPtr ptr,
617
+ const char *db_prefix, const char *ref_table,
618
+ const char *ref_column,
619
+ const char *out_table);
620
+
621
+
622
+ #ifdef __cplusplus
623
+ }
624
+ #endif
625
+
626
+
627
+ #endif /* _GAIANET_H */