Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Implementing SE_AutoRegisterStandardBrushes() |
---|---|
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
3f66bb1c1993d273cec3a83e987e9390 |
User & Date: | sandro 2020-07-10 06:17:47 |
Context
2020-07-14
| ||
18:51 | updating spatial_ref_sys definions to Proj-.7.1 and GDAL-3.1.2 level check-in: 6ff985cfa7 user: sandro tags: trunk | |
2020-07-10
| ||
06:17 | Implementing SE_AutoRegisterStandardBrushes() check-in: 3f66bb1c19 user: sandro tags: trunk | |
2020-07-03
| ||
17:49 | removing SLD/SE *group* support check-in: f9d9d8e140 user: sandro tags: trunk | |
Changes
Changes to spatialite-sql-latest.html.
3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 |
<td align="center" bgcolor="#99d099">libxml2</td> <td>Removes an already defined <b>keyword</b> from a Vector Coverage. <ul> <li><b>coverage_name</b> and <b>keyword</b> must identify some previously defined keyword.</li> </ul><hr> the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.</td></tr> <tr><td><b>SE_RegisterExternalGraphic</b></td> <td>SE_RegisterExternalGraphic( xlink_href <i>String</i> , resource <i>BLOB</i> ) : <i>Integer</i><hr> SE_RegisterExternalGraphic( xlink_href <i>String</i> , resource <i>BLOB</i> , title <i>String</i> , abstract <i>String</i> , file_name <i>String</i> ) : <i>Integer</i></td> <td></td> <td align="center" bgcolor="#99d099">libxml2</td> <td>Inserts (or updates) an <b>External Graphic Resource</b>. <ul> |
> > > > > > |
3839 3840 3841 3842 3843 3844 3845 3846 3847 3848 3849 3850 3851 3852 3853 3854 3855 3856 3857 3858 |
<td align="center" bgcolor="#99d099">libxml2</td> <td>Removes an already defined <b>keyword</b> from a Vector Coverage. <ul> <li><b>coverage_name</b> and <b>keyword</b> must identify some previously defined keyword.</li> </ul><hr> the return type is Integer, with a return value of 1 for TRUE (success) or 0 for FALSE (failure): -1 will be returned on invalid arguments.</td></tr> <tr><td><b>SE_AutoRegisterStandardBrushes</b></td> <td>SE_AutoRegisterStandardBrushes( ) : <i>NULL</i></td> <td></td> <td align="center" bgcolor="#99d099">libxml2</td> <td>Inserts all <b>Graphic Standard Brushes</b> supported by RasterLite2 (if not already inserted).<br> Will be automatically invoked by <b>CreateStylingTables()</b>.</td></tr> <tr><td><b>SE_RegisterExternalGraphic</b></td> <td>SE_RegisterExternalGraphic( xlink_href <i>String</i> , resource <i>BLOB</i> ) : <i>Integer</i><hr> SE_RegisterExternalGraphic( xlink_href <i>String</i> , resource <i>BLOB</i> , title <i>String</i> , abstract <i>String</i> , file_name <i>String</i> ) : <i>Integer</i></td> <td></td> <td align="center" bgcolor="#99d099">libxml2</td> <td>Inserts (or updates) an <b>External Graphic Resource</b>. <ul> |
Changes to src/spatialite/dbobj_scopes.c.
2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 .... 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 .... 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 .... 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 |
*sys_scope = sqlite3_mprintf ("Raster/Vector Coverages Auxiliary"); return 1; } if (strcasecmp (tbl_name, "SE_external_graphics") == 0 || strcasecmp (tbl_name, "SE_fonts") == 0 || strcasecmp (tbl_name, "SE_vector_styles") == 0 || strcasecmp (tbl_name, "SE_raster_styles") == 0 || strcasecmp (tbl_name, "SE_group_styles") == 0 || strcasecmp (tbl_name, "SE_vector_styled_layers") == 0 || strcasecmp (tbl_name, "SE_vector_styled_layers") == 0 || strcasecmp (tbl_name, "SE_raster_styled_layers") == 0 || strcasecmp (tbl_name, "SE_styled_groups") == 0 || strcasecmp (tbl_name, "SE_styled_group_refs") == 0 || strcasecmp (tbl_name, "SE_styled_group_styles") == 0) { *sys_scope = sqlite3_mprintf ("SLD/SE Styling"); return 1; } if (strcasecmp (tbl_name, "topologies") == 0) { *sys_scope = sqlite3_mprintf ("Topologies Catalog"); ................................................................................ } if (strcasecmp (tbl_name, "SE_external_graphics_view") == 0 || strcasecmp (tbl_name, "SE_fonts_view") == 0 || strcasecmp (tbl_name, "SE_vector_styles_view") == 0 || strcasecmp (tbl_name, "SE_raster_styles_view") == 0 || strcasecmp (tbl_name, "SE_vector_styled_layers_view") == 0 || strcasecmp (tbl_name, "SE_raster_styled_layers_view") == 0 || strcasecmp (tbl_name, "SE_styled_groups_view") == 0 || strcasecmp (tbl_name, "SE_group_styles_view") == 0) { *sys_scope = sqlite3_mprintf ("SLD/SE Styling"); return 1; } if (strcasecmp (tbl_name, "ISO_metadata_view") == 0) { *sys_scope = sqlite3_mprintf ("ISO Metadata Component"); ................................................................................ || strcasecmp (tbl_name, "idx_serstl_style") == 0) return 1; if (strcasecmp (tbl_name, "idx_ISO_metadata_ids") == 0 || strcasecmp (tbl_name, "idx_ISO_metadata_parents") == 0 || strcasecmp (tbl_name, "idx_ISO_metadata_reference_ids") == 0 || strcasecmp (tbl_name, "idx_ISO_metadata_reference_parents") == 0) return 1; if (strcasecmp (tbl_name, "idx_SE_styled_vgroups") == 0 || strcasecmp (tbl_name, "idx_SE_styled_rgroups") == 0 || strcasecmp (tbl_name, "idx_SE_styled_groups_paint") == 0) return 1; if (strcasecmp (tbl_name, "idx_vector_coverages") == 0 || strcasecmp (tbl_name, "idx_wms_getcapabilities") == 0 || strcasecmp (tbl_name, "idx_wms_getmap") == 0 || strcasecmp (tbl_name, "idx_wms_settings") == 0 || strcasecmp (tbl_name, "idx_wms_ref_sys") == 0) return 1; return 0; ................................................................................ || strcasecmp (tbl_name, "sevector_style_name_ins") == 0 || strcasecmp (tbl_name, "sevector_style_name_upd") == 0 || strcasecmp (tbl_name, "seraster_style_insert") == 0 || strcasecmp (tbl_name, "seraster_style_update") == 0 || strcasecmp (tbl_name, "seraster_style_name_ins") == 0 || strcasecmp (tbl_name, "seraster_style_name_upd") == 0) return 1; if (strcasecmp (tbl_name, "segroup_style_insert") == 0 || strcasecmp (tbl_name, "segroup_style_update") == 0 || strcasecmp (tbl_name, "segroup_style_name_ins") == 0 || strcasecmp (tbl_name, "segroup_style_name_upd") == 0) return 1; if (strcasecmp (tbl_name, "sevstl_coverage_name_insert") == 0 || strcasecmp (tbl_name, "sevstl_coverage_name_update") == 0 || strcasecmp (tbl_name, "serstl_coverage_name_insert") == 0 || strcasecmp (tbl_name, "serstl_coverage_name_update") == 0 || strcasecmp (tbl_name, "segrp_group_name_insert") == 0 || strcasecmp (tbl_name, "segrp_group_name_update") == 0) return 1; if (strcasecmp (tbl_name, "segrrefs_group_name_insert") == 0 || strcasecmp (tbl_name, "segrrefs_group_name_update") == 0 || strcasecmp (tbl_name, "segrrefs_vector_coverage_name_insert") == 0 || strcasecmp (tbl_name, "segrrefs_vector_coverage_name_update") == 0 || strcasecmp (tbl_name, "segrrefs_raster_coverage_name_insert") == 0 || strcasecmp (tbl_name, "segrrefs_raster_coverage_name_update") == 0 || strcasecmp (tbl_name, "segrrefs_insert_1") == 0 || strcasecmp (tbl_name, "segrrefs_update_1") == 0 || strcasecmp (tbl_name, "segrrefs_insert_2") == 0 || strcasecmp (tbl_name, "segrrefs_update_2") == 0) return 1; if (strcasecmp (tbl_name, "segrpstl_group_name_insert") == 0 || strcasecmp (tbl_name, "segrpstl_group_name_update") == 0 || strcasecmp (tbl_name, "storproc_ins") == 0 || strcasecmp (tbl_name, "storproc_upd") == 0) return 1; if (strcasecmp (tbl_name, "ISO_metadata_md_scope_insert") == 0 || strcasecmp (tbl_name, "ISO_metadata_md_scope_update") == 0 || strcasecmp (tbl_name, "ISO_metadata_fileIdentifier_insert") == 0 || strcasecmp (tbl_name, "ISO_metadata_fileIdentifier_update") == 0 || strcasecmp (tbl_name, "ISO_metadata_insert") == 0 |
< | < < | < < < < < | | | | | < < < < | < < | |
2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 .... 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 .... 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 .... 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 |
*sys_scope = sqlite3_mprintf ("Raster/Vector Coverages Auxiliary"); return 1; } if (strcasecmp (tbl_name, "SE_external_graphics") == 0 || strcasecmp (tbl_name, "SE_fonts") == 0 || strcasecmp (tbl_name, "SE_vector_styles") == 0 || strcasecmp (tbl_name, "SE_raster_styles") == 0 || strcasecmp (tbl_name, "SE_vector_styled_layers") == 0 || strcasecmp (tbl_name, "SE_vector_styled_layers") == 0 || strcasecmp (tbl_name, "SE_raster_styled_layers") == 0 || strcasecmp (tbl_name, "rl2map_configurations") == 0) { *sys_scope = sqlite3_mprintf ("SLD/SE Styling"); return 1; } if (strcasecmp (tbl_name, "topologies") == 0) { *sys_scope = sqlite3_mprintf ("Topologies Catalog"); ................................................................................ } if (strcasecmp (tbl_name, "SE_external_graphics_view") == 0 || strcasecmp (tbl_name, "SE_fonts_view") == 0 || strcasecmp (tbl_name, "SE_vector_styles_view") == 0 || strcasecmp (tbl_name, "SE_raster_styles_view") == 0 || strcasecmp (tbl_name, "SE_vector_styled_layers_view") == 0 || strcasecmp (tbl_name, "SE_raster_styled_layers_view") == 0 || strcasecmp (tbl_name, "rl2map_configurations") == 0) { *sys_scope = sqlite3_mprintf ("SLD/SE Styling"); return 1; } if (strcasecmp (tbl_name, "ISO_metadata_view") == 0) { *sys_scope = sqlite3_mprintf ("ISO Metadata Component"); ................................................................................ || strcasecmp (tbl_name, "idx_serstl_style") == 0) return 1; if (strcasecmp (tbl_name, "idx_ISO_metadata_ids") == 0 || strcasecmp (tbl_name, "idx_ISO_metadata_parents") == 0 || strcasecmp (tbl_name, "idx_ISO_metadata_reference_ids") == 0 || strcasecmp (tbl_name, "idx_ISO_metadata_reference_parents") == 0) return 1; if (strcasecmp (tbl_name, "idx_vector_coverages") == 0 || strcasecmp (tbl_name, "idx_wms_getcapabilities") == 0 || strcasecmp (tbl_name, "idx_wms_getmap") == 0 || strcasecmp (tbl_name, "idx_wms_settings") == 0 || strcasecmp (tbl_name, "idx_wms_ref_sys") == 0) return 1; return 0; ................................................................................ || strcasecmp (tbl_name, "sevector_style_name_ins") == 0 || strcasecmp (tbl_name, "sevector_style_name_upd") == 0 || strcasecmp (tbl_name, "seraster_style_insert") == 0 || strcasecmp (tbl_name, "seraster_style_update") == 0 || strcasecmp (tbl_name, "seraster_style_name_ins") == 0 || strcasecmp (tbl_name, "seraster_style_name_upd") == 0) return 1; if (strcasecmp (tbl_name, "rl2map_config_insert") == 0 || strcasecmp (tbl_name, "rl2map_config_update") == 0 || strcasecmp (tbl_name, "rl2map_config_name_ins") == 0 || strcasecmp (tbl_name, "rl2map_config_name_upd") == 0) return 1; if (strcasecmp (tbl_name, "sevstl_coverage_name_insert") == 0 || strcasecmp (tbl_name, "sevstl_coverage_name_update") == 0 || strcasecmp (tbl_name, "serstl_coverage_name_insert") == 0 || strcasecmp (tbl_name, "serstl_coverage_name_update") == 0) return 1; if (strcasecmp (tbl_name, "segrrefs_vector_coverage_name_insert") == 0 || strcasecmp (tbl_name, "segrrefs_vector_coverage_name_update") == 0 || strcasecmp (tbl_name, "segrrefs_raster_coverage_name_insert") == 0 || strcasecmp (tbl_name, "segrrefs_raster_coverage_name_update") == 0 || strcasecmp (tbl_name, "segrrefs_insert_1") == 0 || strcasecmp (tbl_name, "segrrefs_update_1") == 0 || strcasecmp (tbl_name, "segrrefs_insert_2") == 0 || strcasecmp (tbl_name, "segrrefs_update_2") == 0) return 1; if (strcasecmp (tbl_name, "storproc_ins") == 0 || strcasecmp (tbl_name, "storproc_upd") == 0) return 1; if (strcasecmp (tbl_name, "ISO_metadata_md_scope_insert") == 0 || strcasecmp (tbl_name, "ISO_metadata_md_scope_update") == 0 || strcasecmp (tbl_name, "ISO_metadata_fileIdentifier_insert") == 0 || strcasecmp (tbl_name, "ISO_metadata_fileIdentifier_update") == 0 || strcasecmp (tbl_name, "ISO_metadata_insert") == 0 |
Changes to src/spatialite/extra_tables.c.
3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 .... 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 .... 4307 4308 4309 4310 4311 4312 4313 4314 4315 4316 4317 4318 4319 4320 |
int columns; int i; /* checking for existing tables */ sql = "SELECT name FROM sqlite_master WHERE type = 'trigger' AND tbl_name " "IN ('SE_external_graphics', 'SE_fonts', 'SE_vector_styles', 'SE_raster_styles', " "'SE_group_styles', 'SE_vector_styled_layers', 'SE_raster_styled_layers', " "'SE_styled_groups', 'SE_styled_group_refs', 'SE_styled_group_styles')"; ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return; } ................................................................................ ("CREATE VIEW 'SE_vector_styled_layers_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_raster_styled_layers_view (sqlite3 * sqlite) { /* creating the SE_raster_styled_layers_view view */ char *sql_statement; int ret; ................................................................................ if (!create_rl2map_configurations (sqlite, relaxed)) goto error; if (!create_vector_styled_layers (sqlite)) goto error; if (!create_raster_styled_layers (sqlite)) goto error; if (!create_external_graphics_view (sqlite)) goto error; if (!create_fonts_view (sqlite)) goto error; if (!create_vector_styles_view (sqlite)) goto error; if (!create_raster_styles_view (sqlite)) goto error; |
| < > > > > > > > > > > > > > > > > > > > > > > |
3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 .... 4182 4183 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 4214 4215 .... 4326 4327 4328 4329 4330 4331 4332 4333 4334 4335 4336 4337 4338 4339 4340 4341 |
int columns; int i; /* checking for existing tables */ sql = "SELECT name FROM sqlite_master WHERE type = 'trigger' AND tbl_name " "IN ('SE_external_graphics', 'SE_fonts', 'SE_vector_styles', 'SE_raster_styles', " "'SE_vector_styled_layers', 'SE_raster_styled_layers', 'rl2map_configurations')"; ret = sqlite3_get_table (sqlite, sql, &results, &rows, &columns, &err_msg); if (ret != SQLITE_OK) { spatialite_e ("SQL error: %s\n", err_msg); sqlite3_free (err_msg); return; } ................................................................................ ("CREATE VIEW 'SE_vector_styled_layers_view' error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int auto_register_standard_brushes (sqlite3 * sqlite) { /* AutoRegistering all Graphic Standard Brushes reguired by RasterLite2 */ char *sql_statement; int ret; char *err_msg = NULL; sql_statement = sqlite3_mprintf ("SELECT SE_AutoRegisterStandardBrushes()"); ret = sqlite3_exec (sqlite, sql_statement, NULL, NULL, &err_msg); sqlite3_free (sql_statement); if (ret != SQLITE_OK) { spatialite_e ("SELECT SE_AutoRegisterStandardBrushes() error: %s\n", err_msg); sqlite3_free (err_msg); return 0; } return 1; } static int create_raster_styled_layers_view (sqlite3 * sqlite) { /* creating the SE_raster_styled_layers_view view */ char *sql_statement; int ret; ................................................................................ if (!create_rl2map_configurations (sqlite, relaxed)) goto error; if (!create_vector_styled_layers (sqlite)) goto error; if (!create_raster_styled_layers (sqlite)) goto error; if (!create_external_graphics_view (sqlite)) goto error; if (!auto_register_standard_brushes (sqlite)) goto error; if (!create_fonts_view (sqlite)) goto error; if (!create_vector_styles_view (sqlite)) goto error; if (!create_raster_styles_view (sqlite)) goto error; |
Changes to src/spatialite/spatialite.c.
24998 24999 25000 25001 25002 25003 25004 25005 25006 25007 25008 25009 25010 25011 25012 25013 25014 25015 ..... 25024 25025 25026 25027 25028 25029 25030 25031 25032 25033 25034 25035 25036 25037 25038 25039 25040 ..... 26186 26187 26188 26189 26190 26191 26192 26193 26194 26195 26196 26197 26198 26199 26200 26201 26202 26203 26204 ..... 40637 40638 40639 40640 40641 40642 40643 40644 40645 40646 40647 40648 40649 40650 40651 ..... 40731 40732 40733 40734 40735 40736 40737 40738 40739 40740 40741 40742 40743 40744 40745 40746 40747 40748 40749 40750 40751 40752 40753 40754 ..... 41732 41733 41734 41735 41736 41737 41738 41739 41740 41741 41742 41743 41744 41745 ..... 52284 52285 52286 52287 52288 52289 52290 52291 52292 52293 52294 52295 52296 52297 |
line = geo->FirstLinestring; while (line) { /* Linestrings */ l = gaiaGeodesicTotalLength (a, b, rf, line-> DimensionModel, line->Coords, line->Points); if (l < 0.0) { length = -1.0; break; } length += l; line = line->Next; ................................................................................ while (polyg) { /* exterior Ring */ ring = polyg->Exterior; l = gaiaGeodesicTotalLength (a, b, rf, ring->DimensionModel, ring->Coords, ring->Points); if (l < 0.0) { length = -1.0; break; } length += l; for (ib = 0; ................................................................................ break; } if (use_ellipsoid >= 0) { #ifdef ENABLE_RTTOPO /* only if RTTOPO is enabled */ perimeter = gaiaGeodesicTotalLength (a, b, rf, pg-> Exterior->DimensionModel, pg->Exterior->Coords, pg-> Exterior->Points); if (perimeter < 0.0) ret = 0; else ret = 1; #else ret = 0; #endif /* end RTTOPO conditional */ ................................................................................ } length += l; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior Rings */ ring = polyg->Interiors + ib; l = gaiaGeodesicTotalLength (a, b, rf, ring->DimensionModel, ring->Coords, ring->Points); if (l < 0.0) { length = -1.0; break; } ................................................................................ polyg = geo->FirstPolygon; while (polyg) { /* exterior Ring */ ring = polyg->Exterior; length += gaiaGreatCircleTotalLength (a, b, ring->DimensionModel, ring->Coords, ring->Points); for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior Rings */ ring = polyg->Interiors + ib; length += gaiaGreatCircleTotalLength (a, b, ring->DimensionModel, ring->Coords, ring->Points); } polyg = polyg->Next; } } sqlite3_result_double (context, length); ................................................................................ sqlite3_result_int (context, 1); return; error: sqlite3_result_int (context, 0); return; } static void fnct_RegisterExternalGraphic (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterExternalGraphic(String xlink_href, BLOB resource) ................................................................................ 0, 0); sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 1, SQLITE_ANY, 0, fnct_UpdateVectorCoverageExtent, 0, 0); sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 2, SQLITE_ANY, 0, fnct_UpdateVectorCoverageExtent, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterExternalGraphic", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterExternalGraphic, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterExternalGraphic", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterExternalGraphic, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnregisterExternalGraphic", 1, |
> < | > | > | > | > | | | | | > | > | > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > |
24998 24999 25000 25001 25002 25003 25004 25005 25006 25007 25008 25009 25010 25011 25012 25013 25014 25015 25016 ..... 25025 25026 25027 25028 25029 25030 25031 25032 25033 25034 25035 25036 25037 25038 25039 25040 25041 25042 25043 25044 ..... 26190 26191 26192 26193 26194 26195 26196 26197 26198 26199 26200 26201 26202 26203 26204 26205 26206 26207 26208 ..... 40641 40642 40643 40644 40645 40646 40647 40648 40649 40650 40651 40652 40653 40654 40655 40656 ..... 40736 40737 40738 40739 40740 40741 40742 40743 40744 40745 40746 40747 40748 40749 40750 40751 40752 40753 40754 40755 40756 40757 40758 40759 40760 40761 ..... 41739 41740 41741 41742 41743 41744 41745 41746 41747 41748 41749 41750 41751 41752 41753 41754 41755 41756 41757 41758 41759 41760 41761 41762 41763 41764 41765 41766 41767 41768 41769 41770 41771 41772 41773 41774 41775 41776 41777 41778 41779 41780 41781 41782 41783 41784 41785 41786 41787 41788 41789 41790 41791 41792 41793 41794 41795 41796 41797 41798 41799 41800 41801 41802 41803 41804 41805 41806 41807 41808 41809 41810 41811 41812 41813 41814 41815 41816 41817 41818 41819 41820 41821 41822 41823 41824 41825 41826 41827 41828 41829 41830 41831 ..... 52370 52371 52372 52373 52374 52375 52376 52377 52378 52379 52380 52381 52382 52383 52384 52385 52386 |
line = geo->FirstLinestring; while (line) { /* Linestrings */ l = gaiaGeodesicTotalLength (a, b, rf, line->DimensionModel, line-> Coords, line-> Points); if (l < 0.0) { length = -1.0; break; } length += l; line = line->Next; ................................................................................ while (polyg) { /* exterior Ring */ ring = polyg->Exterior; l = gaiaGeodesicTotalLength (a, b, rf, ring-> DimensionModel, ring-> Coords, ring-> Points); if (l < 0.0) { length = -1.0; break; } length += l; for (ib = 0; ................................................................................ break; } if (use_ellipsoid >= 0) { #ifdef ENABLE_RTTOPO /* only if RTTOPO is enabled */ perimeter = gaiaGeodesicTotalLength (a, b, rf, pg->Exterior-> DimensionModel, pg->Exterior->Coords, pg->Exterior-> Points); if (perimeter < 0.0) ret = 0; else ret = 1; #else ret = 0; #endif /* end RTTOPO conditional */ ................................................................................ } length += l; for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior Rings */ ring = polyg->Interiors + ib; l = gaiaGeodesicTotalLength (a, b, rf, ring-> DimensionModel, ring->Coords, ring->Points); if (l < 0.0) { length = -1.0; break; } ................................................................................ polyg = geo->FirstPolygon; while (polyg) { /* exterior Ring */ ring = polyg->Exterior; length += gaiaGreatCircleTotalLength (a, b, ring-> DimensionModel, ring->Coords, ring->Points); for (ib = 0; ib < polyg->NumInteriors; ib++) { /* interior Rings */ ring = polyg->Interiors + ib; length += gaiaGreatCircleTotalLength (a, b, ring-> DimensionModel, ring->Coords, ring->Points); } polyg = polyg->Next; } } sqlite3_result_double (context, length); ................................................................................ sqlite3_result_int (context, 1); return; error: sqlite3_result_int (context, 0); return; } static void fnct_AutoRegisterStandardBrushes (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / AutoRegisterStandardBrushes() / / insert all Standard Brushes / returns NULL */ char *sql; sqlite3 *sqlite = sqlite3_context_db_handle (context); GAIA_UNUSED (); /* LCOV_EXCL_LINE */ /* standard HORZ brush */ sql = sqlite3_mprintf ("INSERT OR IGNORE INTO main.SE_external_graphics " "(xlink_href, title, abstract, resource, file_name) VALUES (%Q, %Q, %Q, %s, %Q)", "http://www.utopia.gov/stdbrush_horz.png", "stdbrush_horz", "PNG icon: 16 X 16", "x'89504E470D0A1A0A0000000D4948445200000010000000100103000000253D6D2200000006504C5445000000000000A567B9CF0000000174524E530040E6D86600000001624B47440088051D48000000097048597300000B1300000B1301009A9C180000000774494D4507E2071F052A0AA4776C2D0000001D69545874436F6D6D656E7400000000004372656174656420776974682047494D50642E6507000000114944415408D76360C006FEFF07216C00005FD003FD0222B80F0000000049454E44AE426082'", "stdbrush_horz.png"); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); /* standard VERT brush */ sql = sqlite3_mprintf ("INSERT OR IGNORE INTO main.SE_external_graphics " "(xlink_href, title, abstract, resource, file_name) VALUES (%Q, %Q, %Q, %s, %Q)", "http://www.utopia.gov/stdbrush_vert.png", "stdbrush_vert", "PNG icon: 16 X 16", "x'89504E470D0A1A0A0000000D4948445200000010000000100103000000253D6D2200000006504C5445000000000000A567B9CF0000000174524E530040E6D86600000001624B47440088051D48000000097048597300000B1300000B1301009A9C180000000774494D4507E2071F052C140822F6C80000001D69545874436F6D6D656E7400000000004372656174656420776974682047494D50642E65070000000E4944415408D763606C6020050100BDB80811166C49120000000049454E44AE426082'", "stdbrush_vert.png"); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); /* standard CROSS brush */ sql = sqlite3_mprintf ("INSERT OR IGNORE INTO main.SE_external_graphics " "(xlink_href, title, abstract, resource, file_name) VALUES (%Q, %Q, %Q, %s, %Q)", "http://www.utopia.gov/stdbrush_cross.png", "stdbrush_cross", "PNG icon: 16 X 16", "x'89504E470D0A1A0A0000000D4948445200000010000000100103000000253D6D2200000006504C5445000000000000A567B9CF0000000174524E530040E6D86600000001624B47440088051D48000000097048597300000B1300000B1301009A9C180000000774494D4507E2071F052B2111D0A42C0000001D69545874436F6D6D656E7400000000004372656174656420776974682047494D50642E6507000000134944415408D763606C60C044FFFF831036290005B60B0B55E3F2160000000049454E44AE426082'", "stdbrush_horz.png"); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); /* standard DIAG1 brush */ sql = sqlite3_mprintf ("INSERT OR IGNORE INTO main.SE_external_graphics " "(xlink_href, title, abstract, resource, file_name) VALUES (%Q, %Q, %Q, %s, %Q)", "http://www.utopia.gov/stdbrush_diag1.png", "stdbrush_diag1", "PNG icon: 16 X 16", "x'89504E470D0A1A0A0000000D4948445200000010000000100103000000253D6D2200000006504C5445000000000000A567B9CF0000000174524E530040E6D86600000001624B47440088051D48000000097048597300000B1300000B1301009A9C180000000774494D4507E2071F053A2AD5DB5EB40000001D69545874436F6D6D656E7400000000004372656174656420776974682047494D50642E6507000000284944415408D76338C0C8F08081A18081C18281418681818F81819D8181B98181F10003A644033300A53305FB13D67A660000000049454E44AE426082'", "stdbrush_diag1.png"); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); /* standard DIAG2 brush */ sql = sqlite3_mprintf ("INSERT OR IGNORE INTO main.SE_external_graphics " "(xlink_href, title, abstract, resource, file_name) VALUES (%Q, %Q, %Q, %s, %Q)", "http://www.utopia.gov/stdbrush_diag2.png", "stdbrush_diag2", "PNG icon: 16 X 16", "x'89504E470D0A1A0A0000000D4948445200000010000000100103000000253D6D2200000006504C5445000000000000A567B9CF0000000174524E530040E6D86600000001624B47440088051D48000000097048597300000B1300000B1301009A9C180000000774494D4507E2071F060413C95D73980000001D69545874436F6D6D656E7400000000004372656174656420776974682047494D50642E6507000000284944415408D76368606660606760E06360906160B0606028606078C0C0788081B9015398E10023007A0D05FB2ED2A2EB0000000049454E44AE426082'", "stdbrush_diag2.png"); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); /* standard CROSSDIAG brush */ sql = sqlite3_mprintf ("INSERT OR IGNORE INTO main.SE_external_graphics " "(xlink_href, title, abstract, resource, file_name) VALUES (%Q, %Q, %Q, %s, %Q)", "http://www.utopia.gov/stdbrush_crossdiag.png", "stdbrush_crossdiag", "PNG icon: 16 X 16", "x'89504E470D0A1A0A0000000D4948445200000010000000100103000000253D6D2200000006504C5445000000000000A567B9CF0000000174524E530040E6D86600000001624B47440088051D48000000097048597300000B1300000B1301009A9C180000000774494D4507E2071F060233A469F4D60000001D69545874436F6D6D656E7400000000004372656174656420776974682047494D50642E65070000002F4944415408D76338C0CCF0809DA1808FC1428641C68281AF8081FD0103F301100232805CA020500AA800A8EC003300EEB009F1542AF56B0000000049454E44AE426082'", "stdbrush_crossdiag.png"); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); // standard DOTS brush sql = sqlite3_mprintf ("INSERT OR IGNORE INTO main.SE_external_graphics " "(xlink_href, title, abstract, resource, file_name) VALUES (%Q, %Q, %Q, %s, %Q)", "http://www.utopia.gov/stdbrush_dots.png", "stdbrush_dots", "PNG icon: 16 X 16", "x'89504E470D0A1A0A0000000D4948445200000010000000100103000000253D6D2200000006504C5445000000000000A567B9CF0000000174524E530040E6D86600000001624B47440088051D48000000097048597300000B1300000B1301009A9C180000000774494D4507E2071F061A20A2CC2D510000001D69545874436F6D6D656E7400000000004372656174656420776974682047494D50642E65070000001F4944415408D76338C0CCD0C0C8800C181B18980F801090810C80CA0E30030079B00511EB64F1C50000000049454E44AE426082'", "stdbrush_dots.png"); sqlite3_exec (sqlite, sql, NULL, NULL, NULL); sqlite3_free (sql); sqlite3_result_null (context); } static void fnct_RegisterExternalGraphic (sqlite3_context * context, int argc, sqlite3_value ** argv) { /* SQL function: / RegisterExternalGraphic(String xlink_href, BLOB resource) ................................................................................ 0, 0); sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 1, SQLITE_ANY, 0, fnct_UpdateVectorCoverageExtent, 0, 0); sqlite3_create_function (db, "SE_UpdateVectorCoverageExtent", 2, SQLITE_ANY, 0, fnct_UpdateVectorCoverageExtent, 0, 0); sqlite3_create_function_v2 (db, "SE_AutoRegisterStandardBrushes", 0, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_AutoRegisterStandardBrushes, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterExternalGraphic", 2, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterExternalGraphic, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_RegisterExternalGraphic", 5, SQLITE_UTF8 | SQLITE_DETERMINISTIC, 0, fnct_RegisterExternalGraphic, 0, 0, 0); sqlite3_create_function_v2 (db, "SE_UnregisterExternalGraphic", 1, |
Changes to src/spatialite/statistics.c.
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
....
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
|
return 0; } static int check_spatialite_table (const char *table) { /* // Note: sqlite3 prevents 'sqlite_master' from being droped [will not list itsself, returns 'not existing table'] // checking for SpatiaLite / RasterLite2 internal tables */ if (strcasecmp (table, "data_licenses") == 0) return 1; if (strcasecmp (table, "geometry_columns") == 0) return 1; if (strcasecmp (table, "geometry_columns_time") == 0) ................................................................................ return 1; if (strcasecmp (table, "virts_geometry_columns_statistics") == 0) return 1; if (strcasecmp (table, "SE_external_graphics") == 0) return 1; if (strcasecmp (table, "SE_fonts") == 0) return 1; if (strcasecmp (table, "SE_group_styles") == 0) return 1; if (strcasecmp (table, "SE_raster_styled_layers") == 0) return 1; if (strcasecmp (table, "SE_styled_group_refs") == 0) return 1; if (strcasecmp (table, "SE_vector_styled_layers") == 0) return 1; if (strcasecmp (table, "SE_vector_styles") == 0) return 1; if (strcasecmp (table, "iso_metadata") == 0) return 1; if (strcasecmp (table, "iso_metadata_reference") == 0) |
|
|
<
<
|
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
....
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
|
return 0; } static int check_spatialite_table (const char *table) { /* // Note: sqlite3 prevents 'sqlite_master' from being droped [will not list itself, returns 'not existing table'] // checking for SpatiaLite / RasterLite2 internal tables */ if (strcasecmp (table, "data_licenses") == 0) return 1; if (strcasecmp (table, "geometry_columns") == 0) return 1; if (strcasecmp (table, "geometry_columns_time") == 0) ................................................................................ return 1; if (strcasecmp (table, "virts_geometry_columns_statistics") == 0) return 1; if (strcasecmp (table, "SE_external_graphics") == 0) return 1; if (strcasecmp (table, "SE_fonts") == 0) return 1; if (strcasecmp (table, "rl2map_configurations") == 0) return 1; if (strcasecmp (table, "SE_raster_styled_layers") == 0) return 1; if (strcasecmp (table, "SE_vector_styled_layers") == 0) return 1; if (strcasecmp (table, "SE_vector_styles") == 0) return 1; if (strcasecmp (table, "iso_metadata") == 0) return 1; if (strcasecmp (table, "iso_metadata_reference") == 0) |